A quick guide to building your first browser-flashed internet radio without the usual headaches

Oct 27, 2026 Last reply: 1 day ago 3 Replies
Jump to replies (3)

After building two of these little ESP32 radios now, one on a breadboard and one properly soldered, there are a few things I wish someone had told me up front. First, don't scrimp on the board. Get the version with the extra flash and PSRAM even if it costs a couple bucks more, beacuse the cheaper variants will leave you stuck halfway through a flash with no room for your settings later. Plan your wiring on paper before you even open the editor. Yes, the tool stops you from assigning two signals to the same pin, but undoing a soldered perfboard is way more painful than five minutes with a pencil. And here's the one that cost me a whole evening: flashing happens through the UART port, not the other USB socket, so use a proper data cable there and save the charge-only ones for the drawer they belong in. Last tip, keep the DAC wires short and give it its own ground point if you can. I chased a faint whine through my speakers for days before I moved a single jumper and it vanished. Test with headphones before you commit to an amp, it'll save you the same hunt.


That UART port catch got me too, though in my case I wasted an evening flashing the wrong socket and wondering why nothing showed up in the browser. Now I put a strip of tape over the other port so I stop doing it every time I reflash. My build runs a PCM5102 board into a little 3W amp from an old computer speaker set, and I had a diffrent noise problem than you describe. Mine buzzed worse the moment the wifi connected. Turned out the antenna end of the board was sitting right next to the amp input wires on my perfboard. Shuffled the layout so the DAC sits at the far corner and the buzz dropped to almost nothing. So for anyone planning a layout, distance from the radio side matters as much as wire length.

I also skipped the paper planning step and paid for it. Had to desolder three jumpers because I forgot the rotary encoder needed pins I'd alredy given to the display. The editor warning popped up and I dismissed it, thinking I'd work around it later. I did not work around it later. One thing I'd add from my setup: I power the whole thing from a 5V phone charger and it reboots whenever the volume gets loud. Suspect the amp pulls more than the charger likes at peaks, so a beefier supply is on my shopping list.

I wonder if anyone has empirically measured the thermal profile of thier finished assemblies, because sustained high-bitrate audio decoding and streaming places a surprisingly significant load on the silicon. If the ESP32 core reaches elevated temperatures, the clock stability and the radio frequency output coud become compromised, introducing subtle timing artifacts that manifest as audible digital noise. I suggest paying close attention to adequate passive cooling solutions, or even forced air movement if the device is housed in a restricted enclosure.

I totally agree with the part about power supply limits; my own radio reboots happened for the same reason, expecially when the audio processing spiked. It’s frustrating when you spend all that time on the code and the board just quits because of current draw. I fixed this by adding a couple of large electrolytic capacitors right across the power rails near the board. It smoothed out those peak demands and stopped the unexpected reboots without needing to upgrade to a massive power supply.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required