Bitle is a self-powered ESP32-C3 BitChat relay node. It extends BitChat's Bluetooth mesh by hosting a dedicated BLE gateway that handles Noise XX handshakes, validates BitChat packets, and re-broadcasts encrypted payloads without user interaction. The current hardware uses an ESP32-C3 with a flexible 2.4 GHz antenna, weatherproof enclosure, solar input, and battery pack. Bitle is well suited to extend the mesh network range in places like remote trails, campsites, or any offline comms grid.
The firmware implements the full Noise XX handshake pattern, binding Ed25519 identities the same way the BitChat mobile apps do. Once flashed to an ESP32-C3, a Bitle node powers on, starts advertising, and begins relaying traffic autonomously — no phone, no configuration, no internet required.
Designed for field deployment in environments where infrastructure is absent. Solar charging keeps nodes alive on remote trails and campsites indefinitely. The weatherproof enclosure protects hardware in the conditions where off-grid comms matter most.
Firmware source code is open and MIT-licensed. Clone the repo, flash a board, and drop it in the field. → github.com/bitleproject/bitle
noise_ref library, performing Ed25519 identity binding like the mobile apps.
anon#### nicknames configurable through NVS.
Developed and tested with ESP-IDF v6.0; other recent 5.x/6.x releases should
also work. Adjust the serial port flag for your setup — sdkconfig is generated
from sdkconfig.defaults during the first build.
idf.py set-target esp32c3 idf.py build idf.py -p /dev/cu.usbmodem101 flash monitor
For field deployment, drop the firmware onto an ESP32-C3 in your Bitle enclosure, connect power, and the node will immediately begin extending nearby BitChat meshes.