The Open Music Box is vanaf dag één open source geweest. Maar tussen "de code staat op GitHub" en "je kunt je eigen box bouwen" zat een gat: je moest een toolchain installeren, uitvogelen hoe esptool werkt en de juiste binaire bestanden naar de juiste adressen schrijven. Niet bepaald toegankelijk.

De aanpak is eenvoudig, en dat is de hele geest van het project: jij bouwt de box, de behuizing en de elektronica rond een ESP32-S3-module. Ik lever de twee softwarestukken, de firmware die de box laat draaien en de mobiele app om hem te besturen. Alles is samengebracht op de Bouwpagina, en waar ik echt trots op ben, is dat de firmware rechtstreeks vanuit je browser flasht, zonder dat je iets hoeft te installeren.

Drie manieren om te bouwen
Niet iedereen begint op dezelfde plek. Sommigen willen solderen, sommigen willen gewoon een kant-en-klaar board, sommigen willen op een afgewerkt product wachten. Daarom biedt de Bouwpagina drie routes, allemaal rond dezelfde ESP32-S3-module en dezelfde open source firmware:
- Met de hand, op een breadboard en daarna een eigen PCB: de volledige makerroute, met het bedradingsschema voor elk onderdeel (NFC-lezer, I2S-audio, LED-ring, encoder, knoppen).
- Met de HermitX PCB, een board ontworpen door een andere maker dat de NFC-lezer en de essentiële onderdelen op één circuit samenbrengt. Een handige snelkoppeling die de bedrading overslaat.
- Met de officiële The Open Music Box PCB, die nog wordt afgerond. Certificeringen gepland, ontworpen om standalone te gebruiken, als doe-het-zelfkit, of ingebouwd in een compleet product.
Eén eerlijke kanttekening: de HermitX PCB is een prototypeproduct dat gericht is op prototyping en makers. Het draagt geen enkele wettelijke certificering en wordt geleverd zoals het is. Dat staat duidelijk op de pagina, ik ben er liever open over.
Flashen vanuit de browser
Hier komt het deel dat alles verandert. Sluit je ESP32-S3 aan via USB, open de flashpagina in Chrome of Edge, kies je versie, klik. De firmware installeert zich. Dat is alles.
Geen Python, geen toolchain, geen commandoregel. Onder de motorkap is het ESP Web Tools dat via Web Serial met het board praat, rechtstreeks vanuit het browsertabblad. Je kunt het kanaal kiezen (stable of beta) en de exacte versie uit de gepubliceerde builds. Het flashmanifest wordt ter plekke gegenereerd, in de browser.
Het detail dat me het meeste zweet heeft gekost, is ironisch genoeg het meest onzichtbare. De binaries worden gepubliceerd op GitHub, maar GitHub Release-bestanden geven geen CORS-headers terug, waardoor de browser ze niet rechtstreeks kan ophalen. Daarom heb ik een kleine CORS-proxy opgezet op fw.theopenmusicbox.com die de .bin-bestanden serveert met de juiste headers en een cache. Niets wat je ooit zult zien, maar zonder dat zou flashen met één klik gewoon niet werken.
Bedrading en het behuizing
De Bouwpagina beschrijft ook de echte pinout van elk onderdeel, rechtstreeks uit de firmwarecode gehaald in plaats van uit giswerk: de SPI-bus van de NFC-lezer, de SPI-bus van de SD-kaart, de audio-I2S, de LED-ring, de encoder en de knoppen. Genoeg om de build netjes te reproduceren.
Voor de behuizing werk ik aan een compactere v4. De beoogde onderdelen worden nog geselecteerd en de printbestanden komen pas naar buiten wanneer ze echt klaar zijn om te volgen. In de tussentijd blijft de v3-behuizing gedocumenteerd.
Nu jij
Het project ging van iets waar ik voor mijn kinderen aan zat te knutselen naar een systeem dat iedereen kan oppakken. De code is er, flashen kost één klik, en de mobiele app bestuurt het hele geheel.
Het startpunt is de Bouwpagina: de drie bouwroutes, de pinout van de onderdelen en de flasher, allemaal op één plek.
Als je ervoor gaat en je eigen box bouwt, laat het me weten. En als je ergens vastloopt, vragen zijn welkom, laten we het samen doorpraten.