
Summary
-
ESP32 walkie-talkies use ESP-NOW over Wi-Fi for direct device-to-device audio – no radio license needed.
-
XIAO ESP32S3 uses Sense with an onboard PDM microphone, I2S amplifier, PTT and thread-safe audio buffering.
-
External antennas allow an open range of ~200m; the same software automatically detects MAC and assigns peer IDs.
I don’t think I remember the last time I used a walkie-talkie, and with the introduction of smartphones, I’m not sure when I’ll need one. But this does not make them useless in any way. If you want to build your own pair of radios using the ESP32, this project might be what you’re looking for, and best of all, it manages to avoid the need for a radio license using a clever trick.
These ESP32 radios use Wi-Fi to talk to each other
And you can do it yourself
As seen Hackster.iothese radios were the aptly named idea Tech Talkies on YouTube. To drive the ESP32, they use a Seeed Studio XIAO ESP32S3 Sense board and a MAX98357A I2S amplifier coupled with a small speaker. Usually, walkie-talkies use radio frequencies and therefore require a license to manufacture, but since these use Wi-Fi to talk, you don’t need one.
You can see how the walkie-talkies work in the video above. As it turns out, these antennas are quite important for general use; Although the built-in ones tend to lose connection after separating the units by several rooms, the external antennas allow the units to communicate up to 200 meters away when outside.
Some of the optional features that come with this project are:
- Push-to-talk (PTT) — press and hold to transmit, release to listen
- ESP-NOW audio stream — direct device-to-device, no access point required
- PDM microphone on board — XIAO ESP32S3 uses Sense’s built-in microphone, no external microphone wires
- Theme safe audio ring buffer — incoming audio is buffered and read from the main loop, preventing I2S corruption from the WiFi callback wire
- Automatic peer identification – turn it on the same software on both boards; Each board discovers its own MAC address at startup and configures itself as Device 1 or Device 2
If you want to make these radios yourself, you’ll find everything you need to start over. GitHub page.





