Close
0%
0%

ESP32 FM Transmitter using GPIO

Single-GPIO FM transmitter: ESP32’s APLL + I²S MCLK spits a clean 100 MHz carrier—Rickrolls any nearby radio with just code + a wire!

Similar projects worth following
ESP32FMRadio — turn one GPIO into a pocket-sized FM station

This project shows how an off-the-shelf ESP32 module becomes a fully-digital FM transmitter.
No DAC, no RF IC, no filters at the start—just GPIO 0 and 30 cm of wire.
The ESP32’s Audio-PLL (APLL) is forced to lock at 100 MHz, we route that clock out through the I²S master-clock (MCLK) line, giving a stable RF carrier straight from the pin.
An 8-bit PCM audio clip (Rick Astley, of course) is stored in flash every 125 µs an ISR nudges the APLL’s 16-bit fractional divider up or down, swinging the carrier ±75 kHz in perfect sync with the music.

esp32_fm.mp4

MPEG-4 Video - 24.99 MB - 08/06/2025 at 12:40

Download

  • 1 × ESP32-WROOM-32

Enjoy this project?

Share

Discussions

Kigi wrote 08/08/2025 at 02:37 point

It's a amazing project, is there any firmware code shared, I want try it 

  Are you sure? yes | no

Alessandro D'Alterio wrote 08/08/2025 at 09:13 point

https://github.com/Alexxdal/ESP32FMRadio

  Are you sure? yes | no

Ruth Anne wrote 08/07/2025 at 13:08 point

It's amazing! Never thought of this thing! I just want to know what is after the 30cm of wire. Could you please let me know?

  Are you sure? yes | no

Alessandro D'Alterio wrote 08/07/2025 at 16:02 point

The project is a PoC, you can change the audio sample to 16khz for better quality, and it's mandatory to add a band pass filter on the output to suppress harmonics, for a simple test you all you need is a wire soldered on GPIO0 pin.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates