projects/World Wide Radio

Published: 2023-09-22 | Last edited: 2023-09-29


Ever since I first laid my grubby hands on the wonderful internet radio station aggregator site radio.garden several years ago, I've felt a strong desire to build a physical front-end for it.


Not because I don't enjoy the tactile and responsive, Google Earth-esque interface of radio.garden, mind you. I think it's great! But whenever I find something amazing online, the feeling that it's inherently temporary irks me.


The metaphysical existence of a website doesn't do it for me, I want a real object! I need to feel the weight of a thing in my hands to fully appreciate the value of it! But first and foremost I simply enjoy building retro-looking IoT shit, so that is what I did.


It's a little rough around the edges, and the excessive amount of questionable features stuffed inside the Python firmware (including a plugin system, allowing for infinite ridiculousness) hasn't exactly undergone equally excessive testing... But the thing works and I am audaciously pleased with both functionality and aesthetics!


And speaking of aesthetics... To add to the feeling of a 1970's DIY electronics project à la Heathkit, the radio "comes with" a printed manual, complete with a circuit diagram to help you build/fault-find, and a Morse code cheat sheet to relieve some of the stress caused by painstakingly tapping in a WiFi password (and all the other crap that needs text input), using the two big screws on the front panel as an iambic morse key. But I mean, if it works it works! Right?


Should you have any objections regarding my design choices (be they artistic, programmatic, grammatic¹⁾, functionalistic or any other ick), feel free to send me a fax or something.


¹⁾Just leave my french spelling of the word menus alone. I like it and I'm keeping it.


Bill of Materials:
1 x Case from an old router
1 x Piece of perfboard
1 x Raspberry Pi 4 Model B OKDO Starter kit with a metal case, cooling fan and power supply
11 x Digital pushwheel switches (two of them have the wheels painted white and custom symbols added)
1 x Flip switch
1 x Panel-mount USB-C extension cord
6 x PCF8574 I/O Expander IC's
1 x MPR121 touch sensor board
1 x Op162i 16x2 OLED display module
1 x C-Media USB sound card
1 x Piezo buzzer
1 x Electret microphone (currently not used)
1 x Old red LED
1 x Star TSP143 receipt printer


radio front


 Source code on GitLab


 << Back to projects