This page follows the development of a DIY CD player project using a 5.25 inch IDE disc drive. The decision to build this came about when I was looking for a stationary CD player to use instead of a desktop to listen to CDs and found nothing that was all three out of: cheap, small and aesthetically nice.
This project began in the early days of nthpulse.net around September 2024. During early research, I found the ATAPIduino project by Carlos Durandal which makes it possible for an Arduino to communicate with IDE devices, using three PCF8574 I/O expander chips. The Atmega328 microcontroller aboard the Arduino Uno has only 23 GPIO pins, while the IDE bus requires at least 24 signals, so the PCF8574s are used to create a bidirectional serial to parallel interface which can be used to send track control commands to and retrieve track information from the disc drive, using only two pins on the Arduino for the I2C bus.
During October 2024, I built the interface on a piece of protoboard, following the schematics on Durandal's webpage. I got lazy and skipped the decoupling capacitors for each IC.
The following are photos of my hard work (making it look nice was not easy).
Sometime in January 2025, I decided to design a PCB for this, as it's a skill I wanted to learn, and this point-to-point soldering is a severe headache and unsustainable. I designed the following PCB in KiCad:
This is the first PCB I ever designed. The fact that it worked on the first iteration was pleasing at the time, but shocking looking back now. I designed the PCB before learning how to draw schematics, so I had no net lines to help with routing and I had to cross-reference my trace connections with Durandal's schematic countless times. The PCB was designed simply by laying out the required footprints, and drawing the needed connections manually without any routing aids, which gave perfect conditions for countless errors to be made that would have resulted in a non-working board. I will at some point draw up a schematic and design a less questionable PCB that I will release publicly.
Last modified: 22MAR2026