The ESP32 Beeper is a peer-to-peer encrypted messaging device that works completely offline.
Originally an academic project for a Wireless Communication and Microcontroller class, it uses ESP-NOW over IEEE 802.11 on Channel 1 (2.412 GHz) with Espressif's vendor-specific action frames (OUI 0x18FE34) for direct bidirectional communication. Three packet types handle all communication: a 239-byte Message for text, a 9-byte AlertPacket for SOS and cancel, and a 1-byte PingPacket sent every 5 seconds to signal presence. RSSI is measured passively by capturing incoming 802.11 management frames in promiscuous mode. All messages are encrypted end‑to‑end using AES‑128‑CCMP with a shared PMK and a single LMK.
See coms.cpp and coms.h for the full communication implementation.
3D model of the beepers under pcb_3dmodel
The two ESP32 Beeper were named after Kenji and Athena from the Filipino movie She’s Dating the Gangster. In the movie, the story begins when a beeper message goes to the wrong person after a pager ID gets recycled. The 1990s pagers broadcast unencrypted messages to every device in range, and a pager only showed the message if the ID matched. Since pager IDs were reused, messages could easily end up with the wrong person.
The ESP32 Beeper is a modern version of that idea without those limitations. Instead of broadcasting, it sends messages directly between devices using the boards' MAC addresses that never change or get reassigned. All messages are AES‑128 encrypted end‑to‑end, and only the intended device can read them.
- Write messages to peers
- Quick-send premade messages to peers
- Send SOS alerts to peers
- View the last received message
- Check peer signal strength (RSSI) and last active time
- End-to-end AES-128 encrypted communication
- Works completely offline (no internet or router required)
- Freenove ESP32-WROOM-32E Dev Kit
- 128x64 SSD1306 OLED display
- Passive buzzer
- 6x6x10 tactile push buttons
- 3.7V LiPo battery + TP4056 charging module
- The OLED UI was designed using Lopaka with a mix of custom and existing bitmap assets. See a few screenshots under ui_designs and bitmaps can be found under bitmaps.cpp
- 3D printed enclosure
- Redesign UI
- Freenove for providing the Freenove ESP32-WROOM-32E Dev Board 3D model
