The Open Music Box has been open source from day one. But between "the code is on GitHub" and "you can build your own" there was a gap: you had to install a toolchain, figure out esptool, write the right binary files to the right addresses. Not exactly accessible.

The approach is simple, and it's the whole spirit of the project: you build the box, the enclosure and the electronics around an ESP32-S3 module. I provide the two software pieces, the firmware that runs the box and the mobile app to drive it. Everything is gathered on the Build page, and the part I'm genuinely proud of is that the firmware flashes straight from your browser, with nothing to install.

Three ways to build
Not everyone starts from the same place. Some want to solder, some just want a ready-made board, some want to wait for a finished product. So the Build page offers three paths, all around the same ESP32-S3 module and the same open source firmware:
- By hand, on a breadboard then a custom PCB: the full maker route, with the wiring diagram for every component (NFC reader, I2S audio, LED ring, encoder, buttons).
- With the HermitX PCB, a board designed by another maker that brings the NFC reader and the essentials onto a single circuit. A handy shortcut that skips the wiring.
- With the official The Open Music Box PCB, still being finalised. Certifications planned, designed to be used standalone, as a DIY kit, or built into a complete product.
One honest note: the HermitX PCB is a prototype product aimed at prototyping and makers. It carries no regulatory certification and is supplied as is. That's stated clearly on the page, I'd rather be upfront about it.
Flashing from the browser
Here's the part that changes everything. Plug your ESP32-S3 in over USB, open the flash page in Chrome or Edge, pick your version, click. The firmware installs. That's it.
No Python, no toolchain, no command line. Under the hood it's ESP Web Tools talking to the board over Web Serial, right from the browser tab. You can choose the channel (stable or beta) and the exact version among the published builds. The flash manifest is generated on the fly, in the browser.
The detail that cost me the most sweat is, ironically, the most invisible one. The binaries are published on GitHub, but GitHub Release files return no CORS headers, so the browser can't fetch them directly. So I set up a small CORS proxy on fw.theopenmusicbox.com that serves the .bin files with the right headers and a cache. Nothing you'll ever see, but without it one-click flashing simply wouldn't work.
Wiring and the enclosure
The Build page also spells out the real pinout of every component, pulled straight from the firmware code rather than from guesswork: the NFC reader SPI bus, the SD card SPI bus, the audio I2S, the LED ring, the encoder and the buttons. Enough to reproduce the build cleanly.
For the enclosure, I'm working on a more compact v4. The target components are still being selected, and the print files will go out once they're truly ready to follow. In the meantime, the v3 enclosure stays documented.Your turn
The project went from something I tinkered with for my kids to a system anyone can pick up. The code is there, flashing takes one click, and the mobile app drives the whole thing.The starting point is the Build page: the three assembly paths, the component pinout and the flasher, all in one place.
If you go for it and build your own, let me know. And if you get stuck somewhere, questions are welcome, let's talk it through.