So with this modification what do you control, what kind of mechanics?
Question, do you think it is possible to adapt an SPI display with your PCB?
Question, do you think it is possible to adapt an SPI display with your PCB?
These are the pins I would like to adapt to control Philips CDM mechanics:
#include <DSA.h> // Include the custom DSA library for communication with CD-Pro2M/LF
#include <Wire.h> // Required for I2C communication (even if OLED here uses SPI, sometimes it's a dependency)
#include <SPI.h> // Required for SPI communication with the OLED display
#include <Adafruit_GFX.h> // Adafruit's basic graphics library
#include <Adafruit_SSD1306.h> // Specific library for the SSD1306 OLED display
#include <IRremote.h> // Library for the IR receiver
#include <math.h> // Required for sin() function for vumeter animation
// --- Hardware Definitions ---
#define SCREEN_WIDTH 128 // OLED display width in pixels
#define SCREEN_HEIGHT 64 // OLED display height in pixels
// Pin di connessione per il display OLED (SPI)
// Questi pin devono corrispondere ai collegamenti fisici sul tuo Arduino.
// Per Arduino UNO/Mega: MOSI (51/11), MISO (50/12), SCK (52/13) sono gestiti automaticamente dalla libreria SPI.
#define OLED_DC 8 // Data/Command (D/C) Pin
#define OLED_CS 53 // Chip Select (CS) Pin
#define OLED_RESET 9 // Reset (RES) Pin
#define IR_RECEIVE_PIN 2 // Pin to which the IR sensor is connected (e.g., Arduino D2 Pin)
// Create a DSA controller instance, defining pins in "Data", "Strobe", and "Acknowledge" order
// Ensure pins (25, 26, 27) match your physical connections for DSA communication.
DSA myDSA(25, 26, 27);
#include <DSA.h> // Include the custom DSA library for communication with CD-Pro2M/LF
#include <Wire.h> // Required for I2C communication (even if OLED here uses SPI, sometimes it's a dependency)
#include <SPI.h> // Required for SPI communication with the OLED display
#include <Adafruit_GFX.h> // Adafruit's basic graphics library
#include <Adafruit_SSD1306.h> // Specific library for the SSD1306 OLED display
#include <IRremote.h> // Library for the IR receiver
#include <math.h> // Required for sin() function for vumeter animation
// --- Hardware Definitions ---
#define SCREEN_WIDTH 128 // OLED display width in pixels
#define SCREEN_HEIGHT 64 // OLED display height in pixels
// Pin di connessione per il display OLED (SPI)
// Questi pin devono corrispondere ai collegamenti fisici sul tuo Arduino.
// Per Arduino UNO/Mega: MOSI (51/11), MISO (50/12), SCK (52/13) sono gestiti automaticamente dalla libreria SPI.
#define OLED_DC 8 // Data/Command (D/C) Pin
#define OLED_CS 53 // Chip Select (CS) Pin
#define OLED_RESET 9 // Reset (RES) Pin
#define IR_RECEIVE_PIN 2 // Pin to which the IR sensor is connected (e.g., Arduino D2 Pin)
// Create a DSA controller instance, defining pins in "Data", "Strobe", and "Acknowledge" order
// Ensure pins (25, 26, 27) match your physical connections for DSA communication.
DSA myDSA(25, 26, 27);
1. control board work whith C.E.C. CD3100, Parasound CD1000, tray mechanic, C.E.C. TL5100 Parasound CBD2000 top load mechanic1.So with this modification what do you control, what kind of mechanics?
2.Question, do you think it is possible to adapt an SPI display with your PCB?
2. It is possible, but you must control time for data transfer to display. I think about 2-5milliseconds.
Display Buffer Size:
A 128x64 pixel SSD1306 display has a memory buffer of 128 * 64 / 8 = 1024 bytes. Each byte controls 8 pixels vertically.
When you call display.display(), the entire image (1024 bytes) is transferred to the display.
Theoretical Transfer Time Calculation:
Data Rate: 4 Mbps (megabits per second) = 4,000,000 bits/second.
Bytes per second: 4,000,000 / 8 = 500,000 bytes/second.
Time to transfer 1024 bytes: 1024 bytes / 500,000 bytes/second = 0.002048 seconds = 2.048 milliseconds.
A 128x64 pixel SSD1306 display has a memory buffer of 128 * 64 / 8 = 1024 bytes. Each byte controls 8 pixels vertically.
When you call display.display(), the entire image (1024 bytes) is transferred to the display.
Theoretical Transfer Time Calculation:
Data Rate: 4 Mbps (megabits per second) = 4,000,000 bits/second.
Bytes per second: 4,000,000 / 8 = 500,000 bytes/second.
Time to transfer 1024 bytes: 1024 bytes / 500,000 bytes/second = 0.002048 seconds = 2.048 milliseconds.
The tests I did with the CDM philips mechanics and arduino were done with an Atmega2560, my idea is to use an Atmega1248P from what I saw the pinout between mega32 and mega1284 is identical, so I assume that by checking the pins well I can adapt your controller which I would replace with mega1284.
I could try to convert the file and adapt it by changing the pins or adding new connectors for the CDM servo control.
I could try to convert the file and adapt it by changing the pins or adding new connectors for the CDM servo control.
Even though I would have already created the PCB with the possibility of being programmed directly from the PCB.
- Home
- Source & Line
- Digital Source
- Full DIY CD Transport based on old SANYO pickup