Close

Taking off into Phase 2

A project log for ESPer-CDP

A smart CD player + Internet radio + Bluetooth receiver HiFi component based upon the ESP32 microcontroller

akasaka-ryuunosukeAkasaka Ryuunosuke • 5 hours ago•0 Comments

Life has been hit n miss, the first version of ESPer has been pretty reliable this far for — wow, over a year!

Minor firmware tweaks aside I have mostly left it untouched. 

However, recently Adstagram has decided to start throwing some videos in my feed about a different guy's project of similar fashion. Unfortunately, theirs is using a subpar ancient control board which only does basic ATAPI playback, and relies on the inbuilt low quality DAC of the drive.

Given the seeming rise of interest in this kind of concoction both of us have been building, and the desire to try selling something at next year's M3 — the city's biggest musical gathering — I've decided to finally update the project to use a less obscure display, consolidate everything on a single PCB that can go into a 3D printed enclosure.


I mean, what's a better place to sell a CD player than a convention full of (approximately 1600) people trying to sell their CDs! :-)

And most importantly — get rid of requiring the drive to have an SPDIF OUT port, but also not using the inbuilt DAC. Yes, I want to stream the PCM data directly via the ESP32!

Now, the problem is the same old thing, where the number of GPIOs you want is probably a few dozen more than the number you have.

So, after a few days of brainstorming this weird thing was born:

In theory, with some careful bus maneuvering (pun-intended), and combined with an MCP23S17, this could allow bulk DMA reads from the drive at 2x amplification — each word would need to be read twice as the DIOR pulse would happen every 32 bits, and the rest of the read during which it happened would then be uncertain.

However, a drive might want a wait-state by asserting IORDY. This circuit, just as the old one, basically prays and hopes that at the pedestrian, comparing to a real PC, speeds, this will never happen. Otherwise I have a couple of ideas on how to make the circuit even more cursed to comply with that. 

Yes, I am that stubborn in keeping an OG ESP32 at the heart of the project without upgrading to a bigger one, or introducing a sub-CPU like the RP2040 unless absolutely necessary. 

For something made by myself and mostly for myself, let alone as, maybe, useless as a CD player — it has to be a work of art all the way through, and in the new era of machine-learning driven homogenization and the upcoming pandemic of mediocrity, doing wild ass shit is the only way to reclaim our space in the world back. No matter whether you are designing hardware, or playing music, or coding, or dancing, or... you name it!

Anyway, that's a bit of a ranty tangent after a (yet another) bad day at work :-)

I've ended up jumping home early, buying all the needed parts in DIP as well as a perfboard, only to sit down and realize how much I don't wanna deal with perfboards anymore. Hastily changed everything into DIP on the computer and stuffed everything into a 10x10cm gerber and sent it off to be printed for $3.50, should be here in a week hopefully, and then we shall see!

I'll probably solder it directly to an older ESPer board or to an ESP devkit for initial testing, and if it proves reliable, move on to the tougher stage of thinking about a case and designing a full board...

Discussions