Introduction: DIY Arduino Retro Look FM Radio With Linear Scale
The device presented in the video is a standard FM Arduino radio but with an nice retro look. Contains a linear scale in which the frequency is displayed with an color LED dot which is an integral part of the WS2812 LED strip.
Step 1: Description
There are several ways to select stations: standard with Rotary encoder, predefined (memorized) stations in Code and auto dial (seek) function.
This Project was sponsored by NextPCB. You can help support me by checking them out at one of these links:
Only $7 for SMT Order: https://www.nextpcb.com/?code=Mirko
Reliable Multilayer Boards Manufacturer: https://www.nextpcb.com/?code=Mirko
PCB Boards 10pcs for Free: https://www.nextpcb.com/?code=Mirko
20% off - PCB Orders: https://www.nextpcb.com/?code=Mirko
Step 2: Building...
For the same hardware I will present you two different ways of working which are actually two different codes.
In the first case, the stations are selected manually using a rotary encoder which in this case simulates a variable capacitor. Also, in the code, we can redefine known radio station frequencies which we can select then by pressing the rotary encoder switch. We can actually "memorize" favorite stations. This time we will not talk about the sensitivity and selectivity of the receiver because our focus is the unusual scale with a retro look. Anyway the features are limited by the radio chip that is used. In the second case we have automated station dialing using the seek function. This function is activated by briefly turning the encoder left or right. A blue LED blinking indicates a dialing , a green LED is for a mono station received and a red LED is for a stereo station received. The codes are taken from the Franz-Josef Haffner blog , and I made small modifications to the number of LEDs in the bar, Brightness of Leds and the sensitivity threshold for radio signal detection in the second code. On his blog you can see a large number of old radios modified in different ways.
Step 3: Schematic and Code
And now a few words about the making. The Si4703 is powered by 3.3V, so a level shifter between it and the Arduino nano is required. As you can see in the diagram I did not use a level shifter, but not because it is so correct, but because I did not have it at the moment. Surprisingly, the device works quite normally without this part.
Finally, I placed the whole device in a suitable retro-look housing made of 5mm PVC and then coated with a self-adhesive label. At the end of the video you can follow the method of making this radio.
Codes are given below: