Plug the cube in with a USB-C cable, press the button and wait two minutes. Nothing to install on your computer, nothing to compile, no account to create.
This browser cannot talk to the cube over the cable. Open this page in Chrome or Edge — or scroll down to the terminal route.The browser blocked access to the port. Open the page over HTTPS and try again.
This is the one for a new cube, or when you want to start clean — it erases your settings: Wi-Fi, speaker, chosen stations.
only these browsers can drive the cableChrome ✓Edge ✓Safari noFirefox no
You need a computer running Windows or macOS — a phone will not do, because the cable has to reach a computer. No Chrome or Edge? The terminal route is further down.
WHAT YOU NEEDM5Stack Core2 cubeUSB-C data cableWindows / macOS computerhome Wi-Fi, 2.4 GHzBT speaker (optional)
STEP 01BUY
Buy the cube
M5Stack Core2 — one box with a screen, speaker, battery and both radios, ~€50. No soldering iron required for anything. Buy it from the official M5Stack store ↗ (ships worldwide), or in Poland from Botland ↗ (approx. 220 PLN, 24 h shipping). Every revision so far (v1.0, v1.1, v1.3) runs the same file.
Paid partnership · Botland is a partner of this project. Buy the cube anywhere you like, the system works the same.
STEP 02IMAGE
Download the system image
One file with the whole system. Nothing to build or install on your computer. The current release is 0.4: 222 tested stations, you pick nine from your phone, station logos that fetch themselves, and room for air sensors if you ever want them.
One file, one route. The factory image writes from zero and erases every setting — Wi-Fi, speaker, chosen stations. Yes, that means setting the cube up again after each new version. The second route, which kept your settings, is withdrawn for now — the reason is under step 04 below.
By downloading you accept the terms: GPL-3.0-or-later license, project name protected, no warranty. Full text: LICENSE-0-4.txt. The source corresponding to exactly this binary is published beside it (GPL §6d): open-radio-0-4-corresponding-source.tar.gz (58 MB, .sha256) — with the code cut, four libraries at pinned commits and the rebuild procedure. Public repository: github.com/fiedoruk/open-radio ↗ (still shows 0.2.1; the 0.4 synchronisation is deliberately deferred).
Previous releases: 0.2.1, 0.2 and 0.1
0.2.1 — open-radio-0-2-1.bin (2.4 MB) · SHA-256: 295ca3fdf9f9daf7a11ee979bc3371b2c79aaf48de5afe455668b72b23dc0546 (.sha256). It is the only release with evidence from more than one cube — v1.0, v1.1 and v1.3.
Use a USB-C cable that carries data (many “charging” cables have no data lines and the computer will see nothing). The cube shows up as a serial port through its CH9102 chip. If your system does not see it, install the driver from the M5Stack driver page ↗ (the “CH9102 Driver” section, Windows and macOS builds) and replug the cable.
STEP 04FLASH
Flash the image
▣ FROM THE BROWSER — THE MAIN PATH
Three moves, nothing to install: 1. open this page in Chrome or Edge on a computer, cube on the cable · 2. click the button and pick the port · 3. confirm erase and install. The page flashes the system and reboots the cube (~2 min).
This browser cannot talk to a device over a cable. Open the page in Chrome or Edge, or expand the options below.The browser blocked access to the cable. Expand the options below.
In the port picker the cube may appear as an “Unnamed device”, “USB Single Serial”, cu.usbserial-… (macOS) or COM… (Windows) — the name comes from the cube's factory USB chip (CH9102), not from our system. Unplug other USB-serial devices and the cube will be the only entry.
▣ UPDATE — WITHDRAWN FOR NOW
There was a second route here: it wrote the application alone and kept your settings — Wi-Fi, speaker, chosen stations. We took it down on the evening of 31 July after a report that it did not work for someone.
We are not pretending to be surprised: at publication this page said plainly that nobody had run this route on a physical cube. One report is enough to stop offering it — a button that works sometimes is worse than no button.
One route remains: the factory image above. It erases settings, so Wi-Fi, the speaker and your nine stations go in again — about fifteen minutes. We will bring the update back once we have run it on hardware end to end.
Other options: previous releases and terminal install (esptool)
▣ PREVIOUS RELEASES FROM THE BROWSER
This browser has no Web Serial.Web Serial blocked.
Terminal (Safari/Firefox/Linux, or if you prefer the classic way). esptool is Espressif’s official tool. You install it once and use it with a single command:
▣ WINDOWS
Install Python ↗, then tick “Add python.exe to PATH” in the installer.
Open the Command Prompt (Start → type “cmd”) and install the tool:
python -m pip install esptool
Find the port number: Device Manager → Ports (COM & LPT). E.g. COM5.
Flash the image (swap COM5 and the file name for yours):
After 1–2 minutes you'll see Hash of data verified. The cube reboots on its own straight into the radio.
STEP 05FIRST BOOT
Connect to Wi-Fi with your phone
The cube brings up its own temporary setup network. On your phone: join the OpenRadio-Setup network and enter the one-time code shown on the cube’s screen. The portal opens by itself (if not, go to 192.168.4.1), add your home Wi-Fi there and you're done. The phone is no longer needed.
Right after that the cube asks about stations: you pick nine from a catalogue of 222 tested ones, and you can go through the list on a computer first. You can change it later in the settings, with no reflashing.
STEP 06SPEAKER
Pair a Bluetooth speaker (optional)
The built-in speaker always plays first. Want better sound? Put your BT speaker in pairing mode and tap scan on the cube’s Bluetooth screen. The speaker gets remembered and the two connect on their own from then on. A tip straight from our measurements: the cube likes to sit more than 2 m from the router, whose transmitter can drown out Bluetooth.
Common stumbles:
computer does not see the cube→9 times out of 10 it's a cable with no data lines. Grab another one; then the CH9102 driver (Step 03)
“Permission denied” / port busy→close the programs holding the serial port (Arduino IDE, serial monitors) and try again — no sudo needed
flash OK, but nothing plays→unplug and replug the power (power-cycle); the first time a station starts, the cube buffers for about 2 s
▣ THIS IS WHAT IT LOOKS LIKE — 50 SECONDS
A walk through what you will see and touch: first boot, adding a speaker, changing station with a swipe, volume, all three home screens, the air sensor and the sleep noise. Every screen was drawn by the same code that draws on the cube — these are not mock-ups.
no sound · 1280×720 · MP4 and WebM from our own server, no YouTube and no tracking
Tomasz Fiedoruk — strategic advisor: AI, IT, marketing
Two AI agents wrote this system. I supervised it, and I answer for it. The name, the story and the distribution channel are mine too. The same way I built zenbox, the hosting brand I co-founded as CMO and took into Poland's top five. For clients I do both: I frame the decision, set the brand and communication, run the build and put my name on the result. Doing this since 2003, 8 systems in production, 47 projects under NDA. I take on work, from a one-off consultation to running an entire build.