Introduction: Arduino Radio

Update 16.04.2015

just thought how would a "cool" kit look a like, so I get an altoids tin box eat all the thinks inside and put all necassary parts inside. ;)

a new project from good old Germany.

I got some of those very popular FM radio modules at banggood.com, and was thinking how to use them.

I found some nice instructables about the TEA 5767 most of them use a NOKIA LCD Display and some buttons to change the frequency or auto scan...., I try those first to learn how to use the TEA 5767, but I didn't like ithem so much it was to boring for me just copy another work and so I think what else could I build with such an TEA 5767 and an Arduino plus some other parts.

I like LED's, to be honest I'm addicted to those LED's. Trust me everything with LED is funny.

I remember those old FM Radios with an "knob" to turn around for adjusting the frequency and showing the frequency on an bar graph like display.

I owned one long time ago there was the indicator for the frequency was a single LED.

So the Idea was born for my own FM radio....

1. it should use the TEA 5767 Modul.

- easy to get and a lot of material about it is avaiable

- cheap I got mine for about 1 € (5x for 5,33€)

- easy to handle after you solder it to a little perfboard

2. it should be controlled by an Arduino or something similar

- of course it is easy to prototype, you can just make some tests with an Arduino UNO and a breadboard

- easy to use IDE, much more easyer then the AVR Studio Software I used a long time ago.

- in my final Design it will be a single ATMEL 328P with the most important parts only not the whole Arduino.

- I got those ATMEL 328P also cheap at banggood.com normaly 5 for less then 10€ they are not preprogrammed with the Arduino bootloader but this is easy to do, I use my handy USBAsp.

3. 2 x 74HC595 to controll 16 LED's

- as allready told I like LED's so much

- ever more LED's is better but 16 should be enough

4. one LED for Power

- never can have enough LED's

- maybe I can use it later for something else

5. a rotary Encoder

- for adjusting the frequency totaly oldstyle just rotating the knob

- it is one with a click switch never now when you can use it

5. 3 - 4 normal tactile switches

- I want to use them for Station Memory

- in my first "firmware" the frequency for the stations will be hardcoded until I understand how to use eeprom on the atmega

Step 1: Get Your Parts

Here is a small overview which parts you need. I think it is called Bill of materials (BOM)

allmost all of the material I bought at banggood.com often in packs with 5 of each.

1 x ATMEL Atmega 328P

1 x 28 pin dip socket

2 x 74HC595

2 x 16 pin dip socket

1 x TEA5767 FM Stereo Radio Module

2 x 5 pin header for the TEA5767 board

1 x 2x3 pin header for the ICSP header

1 x 16MHz Crystal

2 x 22pF Cap

2 x 100nF Cap (SMT 805)

4 x Resistor 10 KOhm

17 x Resistor 220Ohm

4 x Tactile Switch

1 x Rotary Switch

16 x LED's 3mm red color

1 x LED 3mm green color

Step 2: Schematics

I allways start with handwritten schematics, I like them more then starting at the computer and to be honest I'm still searching for a software that I like and do the job.

here are the schematic for the modules and how to connect them to the Arduino board or the single processor, I used the names of an Arduino UNO R3 Board. More documentation will follow soon, if someone would help me with doing the schematic it would be great.

1. 16 LED's with 2 x 74HC595

2. Switch and Rotary Encoder

3. TEA 7567 Modul and PinOut

4. The schematic for the Arduino standard layout can be found at several places. I just used the Crystal and 2 x 22pf caps, and add the Reset circuit to it.

Step 3: Prepare the Perfboard

I always buy the same size ( 90mm x 150mm ) I think with this I got the most perfboard for my money. I got 5 of them for only 9,54€

The perfboard I used for this project is a double sided with round solder holes.

1. two boards with 18 for the circuit and the "supportboard"

2. a small board with 8 x 5 holes for the TEA modul

Step 4: Prepare the TEA Modul

I got five of the bare modules at banggood.com for only 5,35€ already including the sending

get them at banggood.com

For testing I solder the TEA Modules on little perfboards and also add some Pinheader for them. So it was more easy to test them. You can find tones of better tutorials to make them. Soon I will wrote more here after I made some got pictures.

Step 5: Wiring and Putting All Together

That is how I made it, I just want to explain how I done it and show you some pictures the final product was a little bit messy but I like this "flying" wiring. It is like a signature by me.

I used a part of an double sided perfboard guess where I got those. I really like those Chinese company until now I got very good quality there.

I added a picture where you can where I place all the parts so it should be easier if you want to build it.

1. Step just solder the LED's even it would be better to start with the 220 Ohm resistor but hey while soldering I just place the parts and look how it look call it rapid prototyping -> don't think just solder it

2. After I solder the LED's and the resistors I started to place the other parts while this stage I didn't think so much about where the parts have to go to make it more easy to solder I just wanted that it look "cool" for me, only the 74HC595 I have placed upside down so the "outputs" was near to the LED's. This is the second picture

3. Next step is to solder the output from the 74HC595 to the resistors now you can already see it is getting messy but don't worry it will be more worst soon.

4. Go ahead with the wiring for +5V and GND don't forget to put the 100nF caps for decoupling close to the 74HC595 I used some 805 SMT 100nF Caps they are just laying around in my Part bin and fit very well underneath the board. After you finish this you are close to the final and your board should already look very messy "prey" that you don't make a bigger mistake with the wiring finding any "bug" is not easy at this stage trust me I know what I'm talking about.

5. at least start with wiring the signal levels from the ATMEGA to the other parts on the board.

- 3 Signals to the second 74HC595

- 2 Signals to the TEA 5767 Modul

- 4 Signals from the tactile switches

- 3 Signals from the rotary encoder

- after you attach all connections your board will look "messy" this is the look we want. Hey this is the look I want maybe not you. But when you are still reading at this position and still with me then you like this look.

6. Double Check before you give power to the board first time, don't let the magic smoke escape from the chips.

You can put all together on a bread port or build it like me on a double side perfboard I try to build it as small as possible.

With those Pictures I just show how I made it, I'm still try to paint a real schematic, but I can't find a software I can get used to.

Step 6: First Time Power It Up

Power ON, now it is time for the first test.

For me this was the longest part I have had no idea about the programming my last try with the AVR IDE was long time ago and writting software with C is even longer time ago, but I have to say using the Arduino IDE with the great community is very easy and so after some evenings I could finish my first software and so one my first "alpha" of the FM radio firmware.

First I copy the boot loader to the board just with my USBAsbp programmer.

This is a short story how I designed the software, I started with some tutorials about the 74HC595 and figured out already some problems I have had with the connections just make some mistakes so writing the software was also a hardware troubleshooting for me. And there was a lot of mistakes at the beginning.

1. Make the 74HC595 running so I could control the LED's attached to it.

2. Make the rotary encoder running and see what it do.

3. Make the TEA modul running and set a fixed frequency.

4. Change the frequency with the 4 tactile switches. (+ and - 0,01 Mhz)

5. After all modules work as they should I just put the them all together.

There are some Pictures that showing a "cool" old style cell phone like antenna to make it here is an instruction in an instruction.

1. Get some silver plated cooper wire I just get about 30cm and wrap it around an screwdriver.

2. Cut out piece long enough and with a large enough diameter from your favorite colored heat shrink tube.

3. prepare something I call a "Buchse" and solder it to your board at the antenna connection from your TEA modul.

4. Finished you plastic coved removable antenna.

Step 7: Get Some Libraries

I try to keep the software small and easy, so I search for libraries I can use, this was also my first try with the arduino IDE.

Here are the links to get the libraries and the documentation

Wire.h -> http://arduino.cc/en/Reference/Wire

TimerOne.h -> http://playground.arduino.cc/Code/Timer1

ClickEncoder.h -> https://github.com/0xPIT/encoder/tree/arduino

ShiftRegister74HC595.h -> http://shiftregister.simsso.de/

TEA5767Radio.h -> http://playground.arduino.cc/Main/TEA5767Radio

Step 8: The Sourcecode

There is still a lot to do with the project every help is welcome, special I have no idea in the moment how to use the 4 tactile switches as station memory switches like in those old style radios.

So just download my first try of software here and enjoy something of my "code"

To do's

- better documentation so it will be easier to read the code

- I should give github a test and upload all the files there

- paint a nice schematic and maybe make a PCB

- think about the next project

- improve my English I'm from Germany so don't wonder if you can't follow my English it's not you who can't read it's me who can't write. ;)

Step 9: Video

Of course at the end of my totally "cool" oldstyle instruction here is my "proof of concept" video so you can see even with messy wiring it work. Hope I won't get any problems with any copyright because you can hear sometimes some radio stations....

HAVE FUN

see you at my others projects thanks for reading and liking and voting and adding and everything it is so much fun here at instructables.com

Thorsten Max Singer

Step 10:

Comments

author
R Jordan Kreindler (author)2016-07-11

Thank you. This is definitely interesting. I appreciate your taking the time to post this.

author
andrea biffi (author)2016-05-10

great!

author
wired48 (author)2015-05-14

It's fairly simple. if you divide the FM band in 0.1 Mhz increments there are about 220. To save a radio station e.g. 92.9 MHz this what you do. ((92.9 - 87.5) / 0.1) = 54. You then save 54 to EEPROM. When you are ready to read back and tune to a particular station read from EEPROM. If you read 115 EEPROM then your station is (87.5 + (0.1 * 115)) = 99.0 Mhz. Hope that helps.

author
wired48 (author)2015-05-05

If you are interested in saving to and reading to EEPROM you can adapt this code.

code:

word stations[] = {
11000,9010,9070,9210,9290,9470,9530,9690,9750,9810,10070,10110,10210,10330,10410}; // Local Radio Station

void fm1216_presetRead(int dir){// Read Station Offset from Memory and convert it to Frequency;
ps = ps + dir;
if(ps < 1) ps = 14;
if(ps > 14 ) ps = 1;
byte frq = EEPROM.read(ps);
freq =8750 +(frq * 10);
tuner(freq);
}


void fm1216_presetWrite(){ // Convert frequency to a byte and write it to EEPROM
if(EEPROM.read(24) != 225){
for (int q = 0; q <(sizeof(stations)/sizeof(byte)) - 1; q++){
EEPROM.write(q ,((stations[q] - 8750)/ 10));
}
}
}

author
Thorsten Singer (author)wired482015-05-06

Thanks I will try it as soon as possible and after I understand the code..... ;)

author
Tamwyn559 (author)2015-04-15

Great job. Do you know of any other radio modules that might work? Even with your broken English, it was still easy to follow. Keep up the good work!

author

No Idea, just try and search for i2c radio modules, everyone should work with it.

author

Thanks!

author
Mjtrinihobby (author)2015-04-15

this rocks!

author

Thank You for comment

author
Johenix (author)2015-04-13

Have you seen or tried the free schematic software at www.digikey.com?

author
Thorsten Singer (author)Johenix2015-04-14

Yes, I did try it, also the free version from eagle.....

author
farhadzahedi (author)2015-04-13

maYBE IN IRAN i make it

author

My best wishes to Iran one of my friends is from Tehran.

About This Instructable

27,529views

425favorites

License:

Bio: I like everything from wood to plastic, all materials are good.
More by Thorsten Singer:RasPi Retro Computer StationUltra Small portable power supplyPortable prototyping lab with oscilloscope and arduino
Add instructable to: