I wanted the radio site I make as a little object on the desk, so I wrote firmware for the Waveshare ESP32-S3-Touch-LCD-1.85 (round 360x360 touch screen, speaker connector, battery header). There's no soldering at all.
Drift picks a country, weighted by how many stations it has, and lands on one of its most played. If a station doesn't answer, it drifts on. Left alone while it plays, the screen becomes a spectrum radiating from the song's album cover, with the station and song running round the rim. There are favourites, a web remote at airdrift.local for searching 61,000+ stations from your phone, a battery gauge that learns its own discharge curve, and it updates itself from GitHub releases.
It installs from the browser: plug the board in, open https://airdrift.stream/esp32 in Chrome or Edge, press Install, and scan the WiFi QR code on the screen.
Fun problems along the way:
mbedTLS on the S3 only allocates internal RAM, so with an HTTPS stream playing there's room for about one more handshake.…