Finding a good internet radio station usually means scrolling through endless lists, and this build does away with that completely. A single press picks a random station from anywhere on Earth, so every listen can land somewhere new. It feels like a proper answer to discovery fatigue.
The hardware side is tidy. The maker built the device without any soldering, using the Waveshare ESP32-S3-Touch-LCD-1.85 board, which brings a circular 360x360 colour touchscreen on the top face of a compact cylindrical black body. The sketch runs on Arduino-ESP32 3.3 under PlatformIO, with libraries such as ESP32-audioI2S, JPEGDEC, PNGdec, U8g2 fonts and ArduinoJson doing the heavy lifting. The single mono speaker keeps the whole thing simple.
Two choices stand out to me. First, driving the ST77916 panel through esp_lcd directly was a smart fix after the Arduino_GFX QSPI bus garbled the output. Second, the memory budgeting reads like careful work: PSRAM holds covers, decoders and task stacks, while internal RAM is reserved for TLS, freeing room for one more handshake. Leaving the device alone turns the screen into a spectrum radiating out of the song's cover, with the station and song running around the rim.
Memory was, by the maker's own note, the hardest part of the project, and I would love to hear how close to the limit things run. Flashing happens over USB through a web remote, and the device updates itself from GitHub, which seems a sensible way to keep units current. The battery gauge learning its own curve sounds clever too, though how well it converges over time is something I would want to see confirmed.