Maker Releases Open-Source ESP32-S3 World Map Radio With 3,700 Stations

Hardware maker Adrian Cubas has released Radio Mundial, a free, open-source project that turns a €25 Freenove FNK0104 ESP32-S3 touchscreen board into a desktop internet radio with a clickable world map. Anyone with a 3D printer, a USB-C data cable and a Chrome or Edge browser can flash the firmware in under two minutes and tap across 207 countries to stream roughly 3,700 live stations over 2.4 GHz Wi-Fi, with no coding, accounts or subscription fees required.

Cubas published the code, 3D enclosure files and an eight-step Instructables guide on Nov. 8, before XDA Developers highlighted the build on Wednesday. Instead of scrolling through long text menus, listeners tap a region and a country on the 2.8-inch display to start a broadcast right away.

“It’s surprisingly addictive to hop from Ghana to Brunei to Greenland in a few taps,” Cubas wrote in the build guide.

How the dual-core firmware and station updates work

The radio runs on the capacitive touch version of the Freenove FNK0104 development board, which pairs an ESP32-S3 microcontroller with 8 megabytes of PSRAM, an ES8311 audio codec chip and a small bundled speaker. Like an earlier open-source ESP32 touchscreen project, the build splits the workload across the chip’s two processors so the screen stays responsive while audio plays.

In his project breakdown, Cubas noted that the firmware uses “LVGL 8 + LovyanGFX for the UI, ESP32-audioI2S for MP3/AAC streams (one core for audio, one for the UI)”.

Public internet radio directories often suffer from dead links, so Cubas built a PC script to verify every stream before adding it to the device. He explained that the directory pulls “~3,700 stations from radio-browser.info, filtered and tested on a PC the same way the board requests them (one gotcha: zeno.fm returns 401 without a User-Agent, so I patch the library to send one)”.

Users do not need to plug the radio back into a computer when stations change. “The station list lives in LittleFS and updates over Wi-Fi from GitHub Pages, no reflashing,” Cubas wrote, referring to the microcontroller’s onboard flash file system. If a station fails to connect twice in a row during normal use, the radio automatically pushes it to the bottom of the country’s list.

Interface tools and 3D-printed case specs

Beyond the world map, the English and Spanish interface displays the local time in the selected station’s country and shows song titles when the stream provides them. Listeners can save favorites, browse recent stations, hit a random button, search by station name or filter by 13 music and talk genres. Prompt & Solder reported that Cubas used the Claude AI assistant to help write the firmware and built a shared-code PC simulator to test the screen layout, adding alarm clocks and a weather sleep screen.

To house the electronics, Cubas uploaded a two-piece snap-fit enclosure to Printables that measures 130 by 69 by 17 millimeters with a 4-millimeter back cover. The case prints without support material in about 1 hour and 48 minutes using 52 grams of PETG filament on a Bambu Lab P2S printer, and fastens with four M3 by 5-millimeter screws for the circuit board and four M3 by 8-millimeter screws for the rear cover.

Builders need to watch for two hardware catches before ordering parts. Freenove sells the FNK0104 board in both touch and non-touch versions, and Radio Mundial only works on the 2.8-inch IPS capacitive touch model. The small speaker included with the Freenove board also comes with a wire lead that is too short to reach the front grille of the 3D-printed case, so makers must either solder a short two-wire extension or buy a replacement speaker with a longer 1.25-millimeter two-pin connector cable. Once assembled, the radio has no internal battery and runs continuously off USB-C power, with initial Wi-Fi setup handled either through the browser installer or by scanning an on-screen QR code.

Recent Articles

Related News

Leave A Reply

Please enter your comment!
Please enter your name here