Introduction: Tiny FM Radio

This is a small FM radio based on the Philips TEA5767 stereo FM receiver chip.


  • The audio amplifier is the Texas Instruments (NSC) LM4880
  • Stereo potentiometer is used to control the volume
  • The radio has two control buttons: "Frequency UP" and "Frequency DOWN". Pressing the "Frequency UP' button the radio finds the first available FM radio station and plays it. If a signal is stereo, a LED indicator turns on. For the control of the FM receiver chip, the smallest and cheapest Atmel microcontroller is used (Attiny85).
  • The radio covers the 88MHz-108MHz FM radio range. The frequency scan starts from 88 MHz.
  • The passive devices used are all SMD type
  • The electrolytic capacitors are tantalum. This made it possible to implement the whole radio on a board with size 5 cm x 3.5 cm. The size limiting parts are the mechanical one. I placed all of them on one side of the PCB for easy control of the radio and ease of assembly in a housing.
  • The radio uses the headphone cable as antenna, but if desired additional cable can be soldered

Step 1: Why Did You Make It?

I found such modules (TEA5767) in a fabric MP3 player. I played with them using Arduino for control and I was impressed by the sound they deliver. I decided to make standalone radio based on the module. I wanted to make it as small as possible and I have chose to use 8-pin Atmel Attiny85 nicrocontroller in SO8 package. The main challenge was that the Attiny85 does not directly support the I2C protocol used by the TEA5767 module, so I had to rewrite some libraries to make this possible.The board is small and can be used for DIY project having FM radio. The board has an SPI interface and the microcontroller can be re-programmed as you desire. This also makes the product a development board for TEA5767 module.

Step 2: The Design

The circuit of the FM radio is presented on the picture. It can be seen that the schematic is very simple. The audio amplifier requires only few additional components.The resistors R4 and R5 can be omitted because the internal pull-up ones are activated. The stereo potentiometer is from ebay. The audio jack also. The electrolytic capacitors are tantalum from "Kemet". The gerber files of the PCB are available for download ("").

Step 3: Programming of the Microcontroller

On the PCB I have put 4 contacts, which can be used for programming of the Attiny85 chip (MISO,MOSI,CLK,RESET). As first step I have soldered the Attiny85 chip. After that using a breadboard and 6 cables I have made the setup shown on the second picture. For flashing of the chip I have used USBTinyISP programmer and AVRDUDE. The hex file used is provided for download. The fuse settings are the fabric ones:

LF 62



After programming of the Atmel chip I have soldered all the other devices, starting with those, having the lowest profile. If all devices are soldered properly the radio starts immediately to work. The sound is very clear, the receipt is stable and the listening of the radio is pure pleasure.

The radio is available for purchasing as soldered module or kit at tindie.


mkpeker made it!(author)2016-10-06

Nicely done! Keep it up.

I have also made this 
Simle Fm radio with easy to find parts;

Wolfthorn made it!(author)2015-08-15

When it is set to a specific station, does it stay there or do you have to reset it every time it is powered off and on?

Milen made it!(author)2015-08-16

At powering up it starts at 88MHz each time.It is possible to save the current station frequency all time it changes and after start up to restore it I did not do it. This was requiring the use of the EEPROM libraries, what would make the code bigger.

It is possible instead to start with 88MHz to set another frequency of the preferred radio station, which will be played at power up.

Milen made it!(author)2015-06-21

Hi, you can use for example :

tsilveira made it!(author)2015-06-21

Nice project, BUT, How do I see the files on the eagle has not .brd file?

mrgw98 made it!(author)2015-02-20

Is there a way to add a small lcd screen? I would think you could use a calculator screen with arduino to control it. It would only display the 88.7 or 107.9 part but that is better then nothing. Plus you could add preset tack buttons as well with arduino.

Milen made it!(author)2015-02-20

playing wit the TEA5767 module and Arduino I connected 16x2 LCD display, which was showing the frequency, the signal strength , is the signal stereo or mono. But the LCD screens 16x2 are not very small. Connecting calculator LCD would be more difficult, because the LCD controller is embedded inside the calculator chip. It is possible to connect a HP LED indicator (, but to control it you will need other chip than Attiny85, and the design would became bigger.

About This Instructable



Bio: Thank you all for following me.
More by Milen:DIY Oscilloscope Kit - Assembling and Troubleshooting GuideParty stroboscope done by recycled partsArduino controlled power supply source
Add instructable to: