Retro Arduino Radio

by exposedwire in Circuits > Arduino

19115 Views, 127 Favorites, 0 Comments

Retro Arduino Radio

IMG_2011.JPG
Retro Fm Arduino Radio

I love the look of old 1920's radios. They are the embodiment of a decade. The radios that I like the most were vacuum tube cathedral radios made by Philco. When I think of old-timey radios those are the first thing that pops into my mind. So, I decided to make one using an old Arduino that I had just laying around. I'm very happy with the final product and hope that you find some enjoyment from this post.

Supplies

These are affiliate links 

Arduino Uno https://amzn.to/3TNPFaT

rotary encoder https://amzn.to/3ZkkDZr

Tea 5767

amp https://amzn.to/3niDiHM

2 1000uf capacitor https://amzn.to/3nd50We

5v power supply

7segment display https://amzn.to/3LN4ubT

speaker https://amzn.to/3TLRdC9

potentiometer https://amzn.to/3z7ZCXh

power jack socket https://amzn.to/3KapFUb

stainless steel woven wire mesh https://amzn.to/3ZgmheC

walnut wood

walnut veneer https://amzn.to/3FRytvm

black filament https://amzn.to/3z8N2XM


TOOLS -links to the tools I used

3d Printer https://amzn.to/3LZPEyC

router https://amzn.to/3zcKKXq

drill https://amzn.to/3FTBbkd

files https://amzn.to/40j05BM

soldering iron https://amzn.to/42FIcic

Getting the Parts

In my experience I have found it to be very important that you get everything working perfectly before you even begin thinking about building an enclosure. That means that the code has to be done. but before we can begin writing the code, we need to know what components we need to do all the things that we want a radio to do. So, since this is a radio, already we already know how a most radio works just from our experience of using them all are lives. We know that we are going to need a speaker, an amp and a potentiometer (to control the volume). For changing the stations we'll use a rotary encoder. And for displaying the station selected there is a 7-segment display. and for actually receiving the Fm Am signal we are going to be using a tea5767. And for the enclosure itself I want it to have that vintage look. To accomplish that we'll use 1/4" black walnut. For the main structure I’ll use 3d printed parts.

Writing the Code

arduino fm radio code.JPG

Now that we have all the parts, it’s time to connect it to the Arduino and start coding. The best strategy I have for coding something like this is to take it piece by piece. The first thing that I got up and running was the Tea5767, which is the chip that allows us to receive radio frequencies. There is a Library (https://github.com/big12boy/TEA5767) for this chip, with a lot of great documentation that makes writing code very easy. in addition, you will also need the library Wire.h which allows you to communicate with I2C. Connecting this chip to the Arduino is very easy, and it only needs 2 Pins of the Arduino. The second component that I got working was the 7segment display. Again, there is another well documented library to help you get started (https://github.com/avishorp/TM1637). The only thing that this display is going to do, is display the current radio station. After the display, the next thing that we will work on is a way to control the and change the station. For this I first thought of just using a potentiometer, However I found that it was very difficult to tune it to a proper station. Just a small movement of the pot would change the station 10 times. So, I made the switch to a rotary encoder. You will find that a rotary encoder is often used in radios. For example, your car radio most likely uses one for not only changing stations but also controlling the volume. The set is very easy and only uses two lines of IO. next came the amp and speaker. I just used the smallest amp that I had on hand which was a NS8002 amp and for the speaker I just used one 4ohm speaker. Once you have this all put together you will notice that the sound is absolutely terrible. this is because the speaker is putting out every sound that the radio is picking up. this includes high points of static. What we need to do is, smooth out the signal that we are receiving from the Tea5767. So, the last piece of the puzzle is filtering capacitors. I used two 1000Uf capacitors that I had on hand. This worked great and did not reduce the volume coming out of the speaker.

Soldering It All Together

IMG_1974.JPG
IMG_1975.JPG
IMG_1973.JPG
IMG_1985.JPG
IMG_2015.JPG

This step is really straight forward, most of the heavy lifting was done is the previous step. I built it all on a breadboard so all I did was transfer all of it over to a PCB. A tip that I can offer for soldering your own circuits is this. You often need some every small wire for making point to point connections. You could buy some thin gage wire online but I have found it to be cheaper to buy Ethernet cable and cut the lengths that you need. Each cable has 8 different color wire which are stranded in pairs which is often helpful and you could buy it in either stranded or solid core. Most of the components are connected on one PCB. But since we need to see the LEDs and use the rotary encoder they will need to be mounted to the front of the case and attached latter using header pins. I used a small power plug and socket that I got off amazon to deliver the 5V of power. The socket will be later attached to the back of the case.

Making the Face Plate

IMG_1976.JPG
IMG_1977.JPG
IMG_1978.JPG
IMG_1979.JPG
IMG_1981.JPG
IMG_1982.JPG

I would say is the most important part of this build is the face plate. It the one thing that gives the radio its retro look. Most of this radio’s life is going to be spent as a decoration so I wanted to make sure the it really captured the essence of the old Plilco radios. So, I opened fusion 360 and got to work. I did some experimenting with different designs but eventually came up with my own design that looked retro enough to have been made in the 30's. Something that I really like to do when making something intricate with wood is to draw it in fusion 360 and print it out in a one-to-one scale to use as a templet. I bought a nice plank of walnut from my local Rockler Woodworking and cut off a 3X4 inch piece on my table saw. I then attached the templet to the wood using double sided tape. Next I moved over to the router and using a 1/4" flush cut bit I rounded the wood flush to the templet. For cutting out the speaker openings I just drilled a bunch of holes with a 1/4" drill bit then used a file to file the wood flush with the templet. I did mess up a little bit at the end. When I was taking the templet off, I used too much force and cracked off one of the sides. To fix this all I did was use some super glue to attach back good as new. In person you can tell that there is a small hair line crack but I think it makes it look better, more old and rustic looking.

3D Printing

IMG_2005.JPG
IMG_1996.JPG
IMG_2001.JPG
IMG_1984.JPG
IMG_1988.JPG
IMG_1995.JPG
IMG_1983.JPG
IMG_1987.JPG
IMG_1989.JPG
IMG_1990.JPG
IMG_1997.JPG
IMG_2003.JPG
IMG_2004.JPG

For the main body and structure of the radio I used 3D prints. All the pieces were made with black PETG on my ender 3. And all of the drafting was done in fusion 360. There are 4 structural pieces that need to be made. The base, outer case, back support, speaker bracket. We also need to panels, one on the front for holding the 7segment display and rotary encoder. The other for the back which holds the power jack, volume control and antenna. Once all the parts were printed, I used super glue and baking soda to attach the speaker and back brace panel. The base will be attached later using 4 screws. The reason the base is held on with screws is so that I will always have access to the electronics. One of the first rules of building something like this is always build something that you can take apart. I ran into a little problem with the base. were the screws go there needs to be a small overhang in order for the screws to have something to hold on to. but because there was nothing supporting it during the printing, it sagged and didn’t come out very neat. It still ended up working fine and you can’t tell that there was ever an issue. But a better idea would have been instead of drawing out the overhang in the print, I should have just drilled out the holes by hand after the print was done.

Back Cover

IMG_1994.JPG
IMG_1998.JPG

There is one more piece that needs to be made before we are ready for final assembly, the back cover. I wanted it to match the front face plate but I needed it to be much thinner than the front. So, for this I found a small sheet of veneer that looks like it might be walnut but I'm not sure. I traced out the shape of the back of the enclosure onto the veneer. Then cut out the rough shape using scissors. The back also needs an opening for the control panel. For this I just used a wood chisel to cut out a rectangle smaller than the plastic cover of the control panel. Then gave it a test fit, and after some sanding it looked good.

Final Assembly

IMG_1991.JPG
IMG_2002.JPG
IMG_2007.JPG
IMG_1999.JPG
IMG_2000.JPG
IMG_1986.JPG
IMG_1993.JPG
IMG_2006.JPG
IMG_2009.JPG

At this point most of the work is done it just needs to be put together. So, I started by placing the speaker onto the bracket and added a drop of hot glue to keep it from moving around. Next, I glued the back panel into place with super glue followed by the back control panel, also held in with super glue. Once the glue on was dry I attached the power jack and volume controller pot. Then slid the antenna wire through the small hole. Then I moved onto the face plate. The first thing I did was glue the front control panel in place, once again using super glue. Then I attached the seven-segment display and rotary encoder. Both the rotary encoder and display are pressure fit but I used a bit of hot glue just to give it a bit of extra security. Next, I cut out a small square of stainless-steel woven wire mesh to use as a speaker cover. This is placed between the speaker and the face. I then glued the face to the rest of the enclosure. Once this was all done, I did a final test of the unit with the Arduino and circuit still outside. Tested all the functionality to make sure that everything was still working. Everything was still working well so placed the circuit and Arduino Uno into the radio. Then attached the base using four screws.

Final Thoughts

IMG_2010.JPG
IMG_2014.JPG
IMG_2013.JPG
IMG_2012.JPG

I am very happy with how this came out, and have no real complaints with it. The way it looks is just what I was going for, the sound quality is surprisingly good and tuning the stations is fast and easy. If I were to make it again the only things that I would change is some of the 3D prints to make the assembly a little easier, but that's it. I hope you enjoyed this build. Thank you so much for taking the time to read.