Introduction: Conversion of a Vintage Radio Into an Arduino FM Radio and Internet-based Weather Display
This instructable is about converting a vintage radio into an Arduino-based FM radio and internet weather display. The weather display provides the current temperature and forecast for a selected city by accessing data available at OpenWeatherMap.org. To access that data requires an internet connection through a wifi-enabled ESP8266 board and home wifi. The FM radio is via a dedicated board that is controlled by the ESP8266.
This project is for expert hobbyists mainly because the physical layout of the radio will be different for each donor radio. Therefore some experience, judgement, and trial-and-error will be necessary, along with skills and tools for custom mechanical and electronic assembly.
Supplies
Step 1: Find a Donor Radio
The first step is to find a donor radio. Will usually be an AM/FM model from the 1960s or 70's. Ebay and Facebook Marketplace are good places to look along with flea markets and garage sales
Step 2: Gut the Radio
You have to make space for the new electronics so remove the old electronics. It may be useful to save the potentiometers, knobs, and switches for reuse as part of the project. However, these removals can require some desoldering from the old motherboards.
Step 3: Parts Layout Inside and Outside of the Radio Chassis
This is the step that requires experience, judgement, and trial-and-error. You have to determine how to fit the new electronics and displays into the old radio, including knob and display placement on the chassis. Note that you'll have two displays (one for the radio and one for the weather information). You need a plug for the power, room for a switch, the on/off & volume knob/amplifier, and the station selection knob/encoder. In some cases, you can reuse locations and parts from the original radio (ex: the switch). You also have to mount the electronics. Typically you would mount the electronics to a perf board and place the perf board into the radio. This may mean shaping the perf board appropriately and/or removing or adding some structure to the radio. This is where your creativity comes into play! Note that, ideally, you want to reuse the original radio antenna and speaker including their attachment mechanisms.
Lessons learned:
a. when playing around with placement of things, don't forget the cables and connectors
b. a terminal block is a handy way to create the buses needed for power and serial communication
Step 4: Electronics Schematic and Layout
The hardware schematic is simple. The FM radio and LCDs are all connected to the ESP8266 via the SCL/SDA serial communications. The Encoder attaches via 3 digital I/O ports. The TEA5767 output is sent to the PAM amplifier board which is connected to the speaker. The switch that toggles to/from station setting mode is connected to the ESP8266 analog input via a pullup resistor.
Per Step 3, the work is in the layout, and, of course, varies with the donor radio. The use of a terminal block may be handy for keeping the wiring neat.
Step 5: The Software
The software is reasonably straightforward. It helps to think about 4 functions separately when examining the code:
(1) initialization
(2) operation: selecting the city of interest for weather and saving to the EEPROM in the ESP8266
(3) operation: internet weather reading and display
(4) operation: FM radio
Note that the code for reading the encoder isn't trivial. There are different versions available online. The more complicated version (used in this software) uses logic to compensate for signal bounce.
Also note that the free API connection to Openweathermap.org will lock out if it's used to query information too often. Every 10 minutes works.
Before loading the software, the following information has to be added to the code:
A. The SSID and password for the local network
B. The names of the cities to select between for the weather
C. The Openweathermap.org API key (getting one is free, but you have to sign up for it: https://openweathermap.org/appid)
Step 6: Demo Video
Step 7: Extensions
With the completion of this project, you now have a platform for further improvements. As an example, Openweathermap has more information that can be displayed, not to mention other sites with APIs.




