Repository navigation
v3.2.0 — The world, searchable
This is the release that makes the world findable from the device.
The point
Until now this radio knew 42 countries, and finding a station meant paging
through a list. Germany alone has 2,678 of them — 244 pages. A listener in
Taiwan opened issue #1 because his country was not in the list at all, and
because everything he did find was drawn as a row of question marks.
Both are fixed, and the fix went further than the report.
What's new
- 240 countries — every country radio-browser.info knows a station in,
instead of the 42 with the most stations. - A search field for countries. Type, and the list narrows; three letters
are usually enough. It appears at the bottom of the screen, andBACKSPACE
only ever deletes a character — you cannot fall out of the list by holding it
down. - A search field for stations, invisible until you type and gone again when
the last character is deleted. Its space stays reserved, so the list does not
jump. The search runs on the server: only eleven names fit in this device at
a time. - Foreign scripts are displayed. Chinese, Japanese, Korean, Greek and
Cyrillic station names and stream titles now arrive as UTF-8 and are drawn
with the matching font from M5GFX. Numeric HTML references — some stations
send百instead of the character — are resolved. - A 5-band equalizer, ±6 dB at 100 Hz, 350 Hz, 1 kHz, 3.5 kHz and 10 kHz,
in 1 dB steps, stored on the device and active from the next start. Measured
before it was built: the filter arithmetic costs nothing the audio buffer
notices, at 320 kbit/s the buffer stays at 99 %. - Playlists are recognised. A station that serves HLS or
.m3usays
Playlist - not supportedin the footer instead of feeding the decoder text.
HLS stations are skipped while the list is read — in Taiwan that is 18 % of
them, and five of the first eleven. - Both channels are averaged before the output. The Cardputer Adv has a
mono codec; until now it silently took the left channel, and anything a
station put hard right was lost.
What is gone
- The regional subdivision. The directory leaves the state empty for 1,443
of 2,678 German stations and spells the rest inconsistently — "Bayern" next
to "Bavaria". HR1 was missing from Hessen because of it. A filter that hides
more than it shows is worse than none. - The duplicate check. Same name does not mean same station: 228 of 346
same-named German entries have different addresses — "Sunshine Live" three
times with different bitrates, "Rock Antenne" four times. Dropping them by
name would have thrown away the working one and kept the dead address.
Fixed
- A crash when opening the system menu while an online station was playing.
The menu could assemble seven entries into an array of six; the seventh
landed on the audio object's vtable pointer, and the next call into the
decoder jumped into nothing. It has been there from the beginning and needed
two rare conditions at once to show. - A fine crackle, audible on headphones, that had nothing to do with
clipping: the library offers the same sample again when it did not fit into
the I2S buffer, and the equalizer ran over it a second time.
Known limits
No https. HLS is recognised, not played. AAC+ plays its base layer, because SBR
needs PSRAM this device does not have. The output is mono, at the speaker and
at the 3.5 mm jack alike — that is the codec, not the software. Arabic, Hebrew
and Thai need a text engine that is not there; station names in a legacy
encoding such as Big5 are discarded rather than drawn as boxes.
Flashing
| File | Use with |
|---|---|
Cardputer-WebRadio_v3.2.0.bin |
SD card / M5Launcher — application only |
Cardputer-WebRadio_v3.2.0_merged.bin |
M5Burner or a web flasher — complete image, write to address 0x0 |
Board settings are unchanged: Huge APP partition scheme, PSRAM disabled.
The application is now 2.91 MB of the 2880 KB the M5Launcher provides — 29 KB
to spare. Most of the growth is the CJK fonts, which live in flash and cost no
RAM.