
Stream radio from a board the size of your thumbnail
Stream radio from a board the size of your thumbnail
Internet radios have existed in some form for a quarter of a century, but the hardware budget required to build one has collapsed. The latest proof: maker Milen's "smallest internet radio", published on Instructables in late September 2026 and picked up by Hackaday the following day. It's a streaming receiver built around an ESP32-C3 super-mini board and a custom carrier PCB carrying a PCM5102A I2S DAC and amplifier — so nearly the whole build is connectors. If you can solder header pins, you can build this.
What's inside
The radio is a derivative of yoRadio, an open-source (GPL-3.0) ESP32 web-radio firmware with over 1,100 stars on GitHub and an active release train — version 0.9.693 landed in September 2025. yoRadio handles the hard parts: connecting to your WiFi, pulling an internet stream (MP3, AAC and similar), decoding it, and pushing the samples out over I2S to an external DAC. The ESP32-C3 super-mini does the network and decode work; the PCM5102A does the audio properly, because the built-in DAC on the ESP32 was never designed for music and it shows.
The result is a radio about the size of a stack of coins. Milen's Instructables write-up walks through six steps, and the project was Featured on the site. The supply list is short: the super-mini board, the DAC/amp PCB, a small OLED or TFT display if you want station names on screen, a speaker, and a power source.
How the audio path works
Worth understanding before you buy parts, because it explains half of the build:
- The ESP32 receives a compressed stream over WiFi and decodes it in software — MP3, AAC, OGG and a few others depending on the firmware build.
- The decoded PCM samples are pushed out on the I2S bus: three wires carrying clock, word-select and serial data.
- The DAC chip turns those samples into an analogue line-level signal. The PCM5102A from Texas Instruments is the hobbyist favourite because it needs almost no support circuitry — no external master clock, no awkward configuration, and it outputs line-level directly.
- A small class-D amplifier stage (or an amplified DAC board that includes one) drives a speaker.
Under the hood, yoRadio builds on the ESP32-audioI2S library, the same decoder stack used by a large share of ESP32 audio projects. That's the reassuring part of this build: the firmware isn't exotic. It's the same code path that drives workshop PA boxes and door chimes all over the hobbyist web, just wrapped in a very small package. If you outgrow yoRadio's station management, the library is there beneath it, and it accepts URL streams directly — you can point it at any public station URL and have sound in a dozen lines of code.
The C3 is a single-core RISC-V part, and decode plus WiFi on one core at 160 MHz sounds like a stretch. In practice it holds up for streams up to 256 kbps with headroom to spare; the Espressif ESP32-C3 datasheet lists the part for exactly this class of always-connected audio accessory. If you want to run at higher bitrates or add FLAC, step up to an S3 — the firmware supports both.
Building one in Australia
Parts for this build are all standard hobbyist fare, and nothing here is regulated — it's a receive-only network device, no radio-transmit experimentation at all. A sensible shopping path:
- Controller. Any ESP32-C3 or ESP32-S3 dev board works. If you'd rather have a finished, tested device than a breadboard, our StealthDeck Micro (A$38.82) runs the same M5Stack-family silicon and is the cheapest entry in our ESP32 range.
- Audio. A PCM5102A I2S DAC module, a small amplifier, and a speaker. This is the one part where quality is worth a few extra dollars — the DAC is doing all the audible work. expect to pay A$5–12 for a reputable DAC module; the $2 clones often work but have audibly noisier output and occasional channel imbalance.
- Display (optional). yoRadio supports a long list of displays including the ILI9341 320×240 TFT family used in our StealthDeck Lite.
- Power. A 5V USB supply is fine. The whole radio draws well under half an amp while playing, so any phone charger works.
Flashing yoRadio is a browser-based job with the ESP32 Web Serial tools, and the yoRadio wiki documents the process — Chrome or Edge only, because Firefox doesn't expose Web Serial. Plug the board in, pick the serial port, click flash, wait a couple of minutes. First boot drops the board into its own access point; you join it, hand over your WiFi credentials, and the radio reboots onto your network with a browsable station list at its IP address.
The firmware also speaks MQTT and integrates with Home Assistant — the MQTT integration in HA picks up yoRadio's published state (station, bitrate, volume) as sensor entities, so the same radio can double as a room audio notification endpoint. Publish a TTS or notification payload to the right topic and the kitchen radio announces the washing machine is done. That dual role is why I'd build one for a workshop before buying a dedicated speaker hub.
Station hunting, briefly
The boring truth about internet radio in 2026 is that the streams are free and the discovery is on you. The radio-boxes directory baked into yoRadio covers most public broadcasters — ABC local radio and Triple J stream fine from Australian IP addresses, as do most BBC services. Some commercial streams geo-block; that's a licensing choice by the station, not a bug in your build. Community and college stations are the reliable gems, and most publish a direct stream URL on their site which you can add as a custom station.
Honest limits
Hackaday's editors asked the right question: could it be smaller still? Their suggestion — dropping the connectors and leaning on the ESP32's undocumented built-in DAC — trades sound quality for size. Also worth knowing: an internet radio is only as reliable as your network. The device reboots cleanly after dropouts, but if your home WiFi is flaky, a DAB+ or FM set will still beat it on uptime. And streaming counts against your data quota; a day of background listening is roughly a gigabyte at typical bitrates.
One more limit people discover late: there's no battery by default. Milen's build runs from USB. A small 18650 power bank turns it portable, but the super-mini's voltage regulator wants clean 5V, so pick a bank that doesn't do weird low-current shutoffs.
Why this matters beyond the radio
The interesting pattern here isn't the radio — it's how little hardware a streaming audio endpoint needs in 2026. The same stack (ESP32 + I2S DAC + yoRadio or the ESP32-audioI2S library underneath) powers workshop PA boxes, garden speakers, and intercom experiments. Once you've built one, you've built the core of all of them. The marginal cost of the second one is an afternoon and about A$25 in parts.
If you want a broader view of what the ESP32 platform can receive, our ESP32 SDR starter projects guide covers the RF side of the same coin.
Affiliate disclosure: products linked above are sold in our own store.
Sources: Instructables — "The Smallest Internet Radio" by Milen · Hackaday — "Is This The Smallest Internet Radio?" · e2002/yoradio on GitHub · schreibfaul1/ESP32-audioI2S on GitHub · Texas Instruments PCM5102A product page · Espressif ESP32-C3 · Home Assistant MQTT integration. Links verified live 2026-10-07.