Repository navigation
v3.0.0 — The station directory moves onto the device
The station directory now lives on the device.
Until now, adding a station to a Cardputer radio meant powering it down, pulling
the microSD card, finding a card reader, searching the web for a stream URL that
actually works, and editing a text file. This release removes that entirely.
Press BtnG0 → Online stations and you are browsing
radio-browser.info: 42 countries, with Germany
and the United States broken down by region. ENTER plays a station right away.
Save station writes it into your own list on the SD card — written by the
device, no cable involved.
The same goes for Wi-Fi: scan, pick, type the password. Up to five networks are
remembered and can be replaced or deleted from the menu. No recompiling to move
to a different network.
What else is new in this version
- Local station list fully editable on the device — play, add, delete
- Real visualizations: VU meters from the decoder's own level data, and a
spectrum analyzer running a 512-point radix-2 FFT with a Hann window over the
actual PCM samples. The code this grew from filled the display withrandom() - German and English, switchable at runtime, remembered across restarts
- Nokia pixel font in two sizes, generated from the original TTF
- Stream monitoring — a stream that connects but delivers nothing says so
instead of failing silently - Paging with ← / → on every level of the browser
Flashing
| File | Use with |
|---|---|
Cardputer-WebRadio_v3.0.0.bin |
SD card / M5Launcher — application only |
Cardputer-WebRadio_v3.0.0_merged.bin |
M5Burner or a web flasher — complete image, write to address 0x0 |
On first start the device scans for Wi-Fi and asks for a password. The interface
comes up in English; switch under BtnG0 → Language.
Building from source: the library patch is required
ESP32-audioI2S must be patched before you compile, or the device can crash and
lose its stored Wi-Fi credentials. Some stations are listed as http but
redirect to https when you press play; the library then brings up mbedTLS,
which without PSRAM wants about 32 KB on a device that has 13 to 25 KB free.
Measured on hardware, free heap dropped to 996 bytes.
Four lines, in library-patch/ with the full reasoning and the measurements.
Devices with PSRAM are unaffected.
Known limitations
The Cardputer Adv has no PSRAM, and that shapes everything:
- https streams do not play. The station directory is filtered accordingly
- AAC does not play — the AAC decoder needs more memory than exists here.
The directory is filtered to MP3. Note that a station's name is no guide:
"ABC News Radio MP3" is served as AAC+ - 128 kbit/s or lower is the sweet spot. The input buffer holds 0.87 s at
128 kbit/s but only 0.44 s at 256 kbit/s — not enough to ride out network
jitter
All three are explained with measurements in the README.
Credits
Built on WuSiU/WebRadio_WuSiU_Cardputer_Adv,
which is based on cyberwisk/M5Cardputer_WebRadio.
Audio by schreibfaul1/ESP32-audioI2S.
Station data from radio-browser.info, free and
without registration.