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
Arduino Uno
rotary encoder
Tea 5767
amp
2 1000uf capacitor
5v power supply
7segment display
speaker
potentiometer
power jack socket
stainless steel woven wire mesh
walnut wood
walnut veneer
TOOLS
3d Printer
router
drill
files
soldering iron
Step 1: 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.
Step 2: Writing the Code
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.
Step 3: Soldering It All Together
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.
Step 4: Making the Face Plate
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.
Step 5: 3D Printing
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.
Step 6: Back Cover
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.
Step 7: Final Assembly
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.
Step 8: Final Thoughts
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.
Source: Retro Arduino Radio