Saturday, December 2, 2023

Arduino-Based FM Receiver

This project is of an FM radio based on Philips TEA5767 digital radio-receiver module. The radio receiver uses I2C interface with Arduino UNO development board. The TEA5767 module offers such features as stereo or mono outputs, radio station scanning. -- By Madhuram Mishra

- Advertisement -


TEA5767 receiver module

The TEA5767 is a single-chip electronically-tuned FM stereo radio module for low-voltage applications with fully-integrated intermediate frequency (IF) selectivity and demodulation. The TEA5767 module is shown in Fig. 3. Its operating power supply can range from 2.5V to 5V (maximum).

The radio module is completely adjustment-free and requires a minimum of small and low-cost external components. The oscillator in TEA5767 operates with a 32.768kHz or 13MHz external crystal. The module can be configured to operate either in I2C mode or 3-wire bus mode, selectable via BUSMODE pin. In this project, the module is operated in I2C mode by grounding the BUSMODE pin.

- Advertisement -

The module also provides 4-bit level information via the bus. There is autonomous search tuning function inbuilt in the module along with many more features.

Pins 3 and 6 of TEA5767 module (FM1) are connected to ground. Pins 7 and 8 of FM1 provide outputs for right and left channel, respectively.

Fig. 4: Write mode data sequence
Fig. 4: Write mode data sequence

LM386 amplifier. The output signals from the module are very low and inaudible, so we need to use an audio-amplifier circuit. Here, for testing purpose, we use low-voltage power amplifier LM386 at the left channel output. Use VR2 to adjust the volume in the speaker. If you want stereo output, you should use another LM386 with the same configuration at the right channel output of the module.

Software program

BZ1_partsThe software of fm receiver circuit is written in Arduino programming language. The Arduino UNO is programmed using Arduino IDE software. ATmega328 on Arduino UNO comes with a boot loader that allows you to upload new code to it without the use of external hardware programmer. It communicates using the STK500 protocol. You can also bypass the boot loader and program the microcontroller through ICSP (in circuit serial programming) header, but using boot loader programming is quick and easy. Select the correct board from ‘Tools → Board’ menu in Arduino IDE and burn the program (sketch) through standard USB port in the computer.

The source code for the same is provided with auto-scan function as well as without auto-scan function.


  1. What about turning it into an airtraffic receiver. Does the TEA5767 go above 108MHz?
    The datasheet does no say that but does anyone tried it?
    It would be great if it could be told to tune from 108-118MHz in 50kHz steps (i a not shure about this channel spacing).
    I hava an analog FM receiver modfied for this but would it be great to have a digital one?
    If it’s not possible with this chip then what else to use? I think it’s a great project that is not yet done (i found none in google)


Electronics News

Truly Innovative Tech

MOst Popular Videos

Electronics Components