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.
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.
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.
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
You can use the MDNS hostname instead of the IP address.
- 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.
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.
-
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.
idf.py erase-flash