This CD player was designed in summer 2003. It is an on-going project awaiting its final touches. Click any image for a bigger view. Thanks to Richard for use of the digital camera.
The idea behind this project is to implement some of the nice features found on professional DJ equipment, such as the Denon DN2x00 series players, into a cheap homebrew design. Each half of the player is built from three main components: a Samsung SC-152 52x CDROM drive (about $25 when bought in bulk pack), a PLED alphanumeric display (abt. $40 from Farnell), and a PIC16F877 microcontroller (abt. $10). The remaining hardware comes mostly from computer junk or was bought second-hand.
The player consists of a 19'' player unit, containing the drives, and a 5 cm deep control unit (also 19'' wide) to be mounted together with a mixing desk. The player and control units are connected by a regular 25 lead printer cable.
As this project is not one of unlimited ambition, the player does not have a pitch control, and thus cannot provide the full facilities a 'real' DJ would need to do beat-mixing. Also, since the audio is taken directly from the drives, this project does not count as 'high-end hi-fi'. However, this was not an expensive project, it sounds quite satisfactory for the intended purpose, and it has been possible to create some neat features:
There are a number of projects published on the web, dealing with the use of a microcontroller to control the audio playback mode of CDROM drives via the IDE bus. This can be done with very few components other than the microcontroller and the drive itself.
For this project, building the electronic circuits represented only about 10-20% of the work involved. Most of the efforts went into development of the software, and metal shop work.
Through breadboard experiments, I found that modern CDROM drives have very short search times in audio mode, making it possible to use them in a player for a 'club'-sound system. The requirements are that there must (1) be no noticeable delay between pressing the play button and the track actually starting, and (2) jumping to a nearby position on the track during playback must also be very fast, to make it possible to implement the 'stutter'-effect when searching for a cue position. Also, there must (3) be a minimal delay (only a few seconds) from when a disc in inserted to when the first track starts playing. I found that the Samsung 'Discmaster' SC-152 model fulfills these requirements well. The tray of this unit also has a plain front without a logo, making it possible to make a good-looking design without an obvious computer drive look on the player unit. Older units (4x read) do not work, and other modern models may not fulfill all 3 requirements either. My local computer shop suggested that the LG 52x drive should be a direct equivalent to the Samsung, but this drive fails on requirement (3): When an audio CD is inserted, it spins up to 52x (or something like that) before deciding that the disc is an audio CD. This results in much too long a delay.
I started this project using two Samsung SC-152EB drives. When one failed, I replaced both drives with a newer version called SC-152AEB. While this is sold as a direct replacement, it is significantly improved regarding audio playback. The AEB version has a markedly faster response, and is physically smaller. It also has some updates in the firmware when compared to the -EB version, and my current software works only for the -AEB version.
When mounting each drive in my player chassis, I removed the front bezel, volume control and headphone socket, in order to make the tray fit in a matching slot in the aluminium front of the player. The PCB where the volume pot used to be also has a sense switch that checks whether the tray is closed. I used this switch to get a signal controlling the blue illumination LEDs mounted above the tray slots in the player front.
In the player chassis, there are a small number of electronic parts. These are the two drives, a switchmode power supply, two microcontroller boards, and a small board controlling the tray illumination LEDs. The microcontroller boards are very simple, and each have a DIL socket for the PIC16F877, and a 40-pin IDE connector. These boards are connected to the drives by usual IDE cables. Both microcontroller boards share a 25 pin D-sub socket for connection to the control unit.
The power supply was taken from a junked hard drive cabinet. It provides +5 and +12V at around 2-3A each, which appears adequate for the double setup.
The audio output sockets of the player are simply connected to the corresponding L+R audio output port on the drives, using the cables that came with them.
The control unit consists of two identical halves, each containing a control board, PLED display, switches etcetera. Each control board is populated by four 74LS locic circuits, and communicates with one of the controller boards using an 8-bit parallel port. For the track selector, a Bourns rotary encoder was used. This has 24 pulses per revolution, with distinct 'clicks'. The search wheel function is implemented using an ALPS rotary encoder, also with 24 p.p.r, but with less noticeable clicks. The rotary encoder signals are decoded into up/down pulses using one 74LS74 each. The PLAY/PAUSE and CUE buttons are EAO industrial quality pushbuttons. I was lucky to get these second-hand, as they are very expensive new. I bought new keycaps for those, to get the 'right' red and green colours. The filament bulbs used for illumination of these buttons were replaced by high-intensity LEDS.
Here is the schematic diagram for the player and control units (half of a dual player). It was drawn in April 2006 and may contain mistakes.
The encoder used for track selection is a Bourns type, with distinct 'clicks' -- and the encoder used for the search wheel is an ALPS type, that rotates smoothly without 'clicks'.
Audio is taken directly from the analog output socket on the player, and connected to RCA jacks on the back of the player unit.
The power supply is a standard SMPS unit, which provides +5V and +12V with enough current for two CDROM drives.
The display has a standard interface and pinout, and can be directly replaced with cheaper LCD types.
The PCB layout for the microcontroller and control boards is shown below.
The search wheels are dials from a modular system of a brand called 'Top-Knobs'.
By choosing the biggest dial (40mm diameter), together with a small 'globe'
index, a functional search wheel is formed together with the ALPS rotary encoder.
(c) Marcus Gunnarsson 2003
Back to Electronics