Reverse engineer a CD controller IC - Page 1
Forum section: electronics / projects

author: MrZwing
author_rank: Regular Contributor
timestamp: April 07, 2020, 09:31:10 am
content: This might be a overkill subject but still.I'm have had an idea to build my own cd player and stumbled upon some diy:ers that pick apart some old specific models cd player and build out of them.the problem is that due that this blew up in the DIY audio scene the IC's that is used is either hard to find since they are obsolete or freaking expensive.Now i wonder if there is any way to reverse engineer these chips to produce a digital output with an FPGA, or is it as "simple" as finding some other controller IC that is compatible with the CD-carrige that i have? or alternative 2 find some documentation that goes through how the signal and processing works ect.anyone have any ideas?it's a "For fun" project so keep that in mind before spamming "but why!?".

author: amyk
author_rank: Super Contributor
timestamp: April 07, 2020, 01:32:49 pm
content: https://debugmo.de/2007/07/read-your-dvds-the-raw-way/If it's not too integrated you can probably find the digital bitstream somewhere on the board, otherwise you may need to implement the head preamp and servo control as well if you want to drive a bare pickup unit.The signal frequencies are not that high if you only want to play audio CDs at 1x.

author: johnkenyon
author_rank: Regular Contributor
timestamp: April 13, 2020, 10:09:51 am
content: Quote from: MrZwing on April 07, 2020, 09:31:10 amMany CD/DVD players have some kind of keyboard/display driver device located on the display panel. The "intelligence" on the main board communicates with this device using SPI (the main board is the "master", and the display is the "slave").Create a device which emulates the SPI slave, and you get full control of the player - you can emulate key presses to control, and you can get data back to verify that your command has been received and acted on - you can close the control loop. You don't have to emulate the whole device (for example you can just read and ignore display information)An alternative is to simply inject IR remote commands either by removing the IR receiver and wiring in your controller, or by making an infra-red transmitter. The downside of that approach is the lack of feedback - it's an "open loop" system.A closed loop system is better - just because you pressed play and then pressed the "next track" button ten times doesn't guarantee that track 10 will actually be played (for example: a 9 track CD=no track 10, or a button press got missed=track 9 gets played instead, or track 10 gets selected but not played).

author: excitedbox
author_rank: Regular Contributor
timestamp: April 14, 2020, 10:34:09 pm
content: Which part of the CD player are you trying to interface with?If you are trying to control the laser you will need to figure out which module it is and then try to find the datasheet which can be hard. Since you mentioned that it is popular for DIY I assume one of the SD65 etc. I actually have the datasheet for a phillips cd plaver that has the circuit for many optical modules on it and most of them are actually the same or very close to it. Especially the pin outs.The tracking and focus of the laser is all done with electromagnetic coils so that uses a few opamps or in most cases a driver chip that combines a few opamps to do the focusing. Then you need to power the linear motors and the spinning of the cd with a PWM signal. This will most likely need a ULN2003 transistor chip or 2 as the motor driver.The link posted above should help you figure out how to decode the bits read by the OPU and an ESP32 is plenty as a MCU to do the rest. Then you can either add some buttons or an LCD with touch controls depending on how good your programming skills are. There are audio libs for it and the ESP32 has wifi and bluetooth for connectivity which would .That really covers most of what is required to build a basic CD player.So basically You connect a few ESP32 pins to the ULN2003 along with power and from there to the motors. Then a few ADC pins to a cascade of opamps (I think you needed 6 or 7) or one of these driver ICs (I can look up the code for you 9445 or something) and that to the OPU light sensor pins. Then some DAC pins to power the laser, the tracking and focus coils.I am using DVD burners in my project so the pins to the laser are actually laser several which select the CD or DVD laser etc and also pulse the laser for writing but I think you will only need 2 for just a cd drive OPU.The ESP32 has 32 pins so I don´t think you need to deal with a mux or anything like that.