• Taking off into Phase 2

    Akasaka Ryuunosuke • 2 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...

  • Some Changes for the Changers

    Akasaka Ryuunosuke • 10/07/2025 at 13:46 • 0 comments

    While the FTP/NAS playback went nowhere — I have just wrapped up a 2+ month long move from Hokkaido all the way to Tokyo, with a job change at the same time — at last I have finally gotten a working changer drive with a working SPDIF port that would let me test the changer support of the firmware.

    It is less finicky than the TEAC, albeit with more Quirk Flags enabled — then again, I presume any drive from the early to mid DOS era will be like that. If I manage to find the time to get it more stable, though, I might drop it in my primary unit instead of the regular drive I have in there, or build another one — now that I have more than one room, I could use more than one stereo, too :-)

  • FTP anyone?

    Akasaka Ryuunosuke • 05/30/2025 at 08:43 • 0 comments

    More of a proof of concept than anything else, the thing crashes too much and the FTP client library needs quite a bit of work in the error handling department. But it does kinda play from my NAS!

  • Version 1 wrapped up

    Akasaka Ryuunosuke • 05/16/2025 at 02:33 • 0 comments

    The case is done, the software doesn't crash most of the times, I think that's good enough to call it complete for the time being! More photos under the cut.

    Read more »

  • The case taking shape

    Akasaka Ryuunosuke • 03/20/2025 at 14:01 • 0 comments

    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.

    Read more »

  • A detailed look at the ESP32 based CD Player

    Akasaka Ryuunosuke • 03/11/2025 at 13:58 • 0 comments

  • Last.FM Scrobbling and menus and stuff

    Akasaka Ryuunosuke • 03/07/2025 at 14:01 • 0 comments

    Well that's just wonderful. A CD player that scrobbles my discs directly to my Last.fm account! :P

    I'm starting to lose momentum and use AI generated code for this. Albeit I think it's not awful, but not good either. You can find the commit in the WIP github: https://github.com/vladkorotnev/cd-player/commit/4ed21f539889a2d5c68b7d00df741be7b8e5ac7d

    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.