esp-idf-fm-radio

FM radio using esp-idf

MIT License

Stars
4

esp-idf-fm-radio

FM radio using esp-idf.

I used this component. This component can communicate directly with the browser. There is an example of using the component here. It's a great job.

I used this for segment display.

Software requiment

ESP-IDF V5.0 or later. ESP-IDF V4.4 release branch reached EOL in July 2024. ESP-IDF V5.1 is required when using ESP32-C6.

Hardware requirements

TEA5767 FM Stereo Radio Module. I bought this on AliExpress about $4.

The module has a standard antenna, but if you want to use it in a room, you need a long antenna. With a long antenna, you can get more signals. I used an AC power cable.

Installation

git clone https://github.com/nopnop2002/esp-idf-fm-radio
cd esp-idf-fm-radio
git clone https://github.com/Molorius/esp32-websocket components/websocket
idf.py set-target {esp32/esp32s2/esp32s3/esp32c2/esp32c3/esp32c6}
idf.py menuconfig
idf.py flash

Configuration

WiFi Setting

You can use Static IP. config-wifi-2

You can use the MDNS hostname instead of the IP address. config-wifi-3

TEA5767 Setting

  • CONFIG_SCL_GPIO
    GPIO number(IOxx) to SCL.
  • CONFIG_SDA_GPIO
    GPIO number(IOxx) to SDA.
  • CONFIG_FM_BAND
    In US/EU it ranges from 87.5 MHz to 108 MHz.
    In Japan it ranges from 76 MHz to 91 MHz.
    Used when wrapping in a search.

Wireing

TEA5767 ESP32 ESP32-S2/S3 ESP32-C2/C3/C6
SCL -- GPIO22 GPIO12 GPIO5 (*1)
SDA -- GPIO21 GPIO11 GPIO4 (*1)
GND -- GND GND GND
VCC -- 3.3V 3.3V 3.3V (*2)

(*1) You can change it to any pin using menuconfig. But it may not work with other GPIOs.

(*2) The PCB marking is +5V, but it works at 3.3V.

How to use

  • Open browser

  • Enter the esp32 address in your browser's address bar

  • Search Up Search for radio stations upwards.

  • Search Down Search for radio stations downwards.

  • Add Preset Record the current radio station in NVS.

  • Segment Color Change segment color.

  • Goto Goto preset station.

  • As system default At boot time, set to this Radio station.

Clear preset

idf.py erase-flash

Reference

https://github.com/nopnop2002/esp-idf-tea5767