Main features:
+ Play audio CD using ATAPI + SPDIF
+ Nice but simple graphical user interface using a VFD (no OLEDs/LCDs, unless someone codes in the support for those)
+ CDDB and MusicBrainz connectivity for metadata
+ Last.FM scrobbling
+ Time-synced lyrics display
? Multi-disc changer drive support
+ Internet radio receiver in MP3 and AAC format with metadata
+ Bluetooth reception with metadata display
+ IR and physical button controls
- OTA firmware updates with CI/CD
Stretch goals:
- Bluetooth audio transmission from CD
- HTTP web interface
OOS/Rev.2 ideation:
- SPDIF coax I/O and TOSLINK I/O (it's already on the chip but not on the Rev.1 PCB!)
- FM/AM radio
- Higher speed IDE bus using SPI expanders instead of I2C
- ... to allow reading MOD/XM/S3M/MP3/M4A files
- ... and potentially stream raw data off the disc, eliminating the SPDIF Out requirement on the drive
- ... potentially even allowing to use a SATA drive via an IDE-SATA converter
Components
1×
ESP32-WROVER (4M PSRAM, 8M FLASH)
The heart of the operation
1×
ATAPI CD drive
The thing to actually read the CD
At first I wanted to make a case out of sheet aluminium, custom made at a local case manufacturer.
Then I thought maybe I need to just 3D print something, 'cause of course I didn't buy the IPEX-equipped ESP32s this time so WiFi won't pass through the aluminium.
(Here's the Onshape workspace, by the way, in case you need the PCB sizes or a decently accurate SFF-spec CD-ROM drive size model)
But in the end, ultimately, I just bought a bunch of MDF sheets that looked like they were a suitable size, and some corner brackets which happened to fit perfectly, and here I am again making a 1970s case for a 1990s device rebuilt in 2025.
Then again, the whole menu system is horribly unoptimized (allocate all things on the stack then copy, copy, copy!!), and yet it's completely human, no AI used! :P
Maybe one day I'll have the energy to fix it, for now I just wanna have a working thing!!
On which note it's mostly done I think, with the WiFi settings menu now in place. The only remainder is the radio URL input and selecting the CD track by number, and we're done!. Program playback, etc, maybe some day, but not for the first release.