What You're Building
BitChat
Bluetooth mesh chat app with IRC-style interface. Works offline, peer-to-peer, with end-to-end encryption.
MeshCore
Lightweight LoRa mesh protocol for long-range communication. Multi-hop routing extends range for miles.
The Bridge
Messages on the #mesh channel are relayed between BitChat (Bluetooth) and MeshCore (LoRa) networks.
Required Hardware
Heltec LoRa32 V3
Bridge Device
- ESP32-S3 MCU
- SX1262 LoRa Radio
- Built-in OLED display
- USB-C for flashing
SenseCAP Solar Node P1
LoRa Repeater
- nRF52840 MCU
- SX1262 LoRa Radio
- 5W Solar Panel
- Battery powered (18650)
Android Phone
BitChat Client
- Android 8.0+
- Bluetooth LE support
- USB debugging (for ADB install)
Download Firmware & App
Heltec V3 BitChat Bridge
Firmware that bridges BitChat (Bluetooth) to MeshCore (LoRa)
Official Releases- MeshCore Web Flasher (Standard firmware)
Step 1: Flash Heltec V3 (Bridge)
The Heltec V3 will serve as the bridge between BitChat (Bluetooth) and MeshCore (LoRa). This device needs special "BitChat Bridge" firmware.
Connect Heltec V3 to Computer
Use a USB-C cable to connect your Heltec V3 to your computer. The device should power on and show the Heltec logo on the OLED display.
Open Web Flasher
Open Chrome or Edge browser (WebSerial required) and navigate to:
Or use the ESP Web Flasher:
Put Device in Flash Mode
To enter bootloader/flash mode on the Heltec V3:
- Hold down the BOOT button
- While holding BOOT, press and release RST
- Release the BOOT button
The OLED display should go blank, indicating bootloader mode.
Flash the Firmware
In the web flasher:
- Click Connect and select the serial port (usually "USB JTAG/Serial")
- Select Erase to clear existing firmware (recommended)
- Upload the downloaded
firmware-merged.binat address0x0 - Click Program
Verify Flash Success
After flashing completes:
- Press the RST button to reboot
- The OLED should display "MeshCore" and device info
- The device is now ready for configuration
Command Line Alternative
If you prefer the command line, use esptool:
# Install esptool
pip install esptool
# Flash (replace /dev/ttyUSB0 with your port)
esptool.py --chip esp32-s3 -p /dev/ttyUSB0 \
write_flash 0x0 firmware-merged.bin
Step 2: Flash SenseCAP Solar P1 (Repeater)
The SenseCAP Solar P1 uses an nRF52840 chip and is flashed differently. It will serve as your LoRa mesh repeater.
Enter DFU Mode
To put the SenseCAP Solar into DFU (Device Firmware Upgrade) mode:
- Connect the device via USB-C
- Double-press the RST (Reset) button quickly
- A new USB drive named XIAO-SENSE should appear on your computer
Flash the Firmware
Flashing nRF52 devices is as simple as drag-and-drop:
- Extract the downloaded
sensecap_solar_repeater.zip - Find the
.uf2file inside - Drag and drop the
.uf2file onto the XIAO-SENSE drive - The device will automatically flash and reboot
Verify Flash Success
After the device reboots:
- The XIAO-SENSE drive will disappear
- The device LED may blink to indicate activity
- The repeater is now operational
Command Line Alternative
Using adafruit-nrfutil:
# Install nrfutil
pip install adafruit-nrfutil
# Flash (replace /dev/ttyACM0 with your port)
adafruit-nrfutil --verbose dfu serial \
--package firmware.zip \
-p /dev/ttyACM0 -b 115200 \
--singlebank --touch 1200
Step 3: Configure Devices
Both devices need basic configuration. The most important setting is the LoRa frequency for your region.
Configure Heltec V3 Bridge
Connect via USB serial console or use the MeshCore web config tool:
Essential Commands
# Set your region's frequency
set freq 869.525 # EU: 869.525 MHz
# set freq 906.875 # US: 906.875 MHz
# set freq 916.875 # AU/NZ: 916.875 MHz
# Set device name
set name "MyBridge"
# Set location (optional, for maps)
set lat 51.5074
set long -0.1278
# Change admin password (default: "password")
password mynewpassword
# Save and reboot
reboot
Configure SenseCAP Solar Repeater
Connect via USB serial or use the web config tool:
Essential Commands
# Set your region's frequency (MUST match bridge!)
set freq 869.525 # EU: 869.525 MHz
# Set repeater name
set name "SolarRepeater1"
# Set location (important for repeaters)
set lat 51.5074
set long -0.1278
# Change admin password
password mynewpassword
# Save and reboot
reboot
Regional Frequency Reference
| Region | Frequency | Band |
|---|---|---|
| Europe (EU) | 869.525 MHz | 868 MHz |
| United States (US) | 906.875 MHz | 915 MHz |
| Australia/NZ (ANZ) | 916.875 MHz | 915 MHz |
| Japan (JP) | 920.625 MHz | 920 MHz |
| Korea (KR) | 921.125 MHz | 920 MHz |
Step 4: Install BitChat App
Install the APK
You can install BitChat from:
- Google Play: BitChat on Play Store
- Direct APK: Download from the Downloads section
For direct APK installation:
- Enable "Install from unknown sources" in Android settings
- Download and open the APK file
- Tap "Install"
Grant Permissions
When first launching BitChat, grant these permissions:
- Bluetooth - Required for mesh networking
- Location - Required for Bluetooth scanning on Android
- Notifications - For message alerts
Connect to Bridge
BitChat will automatically discover nearby devices:
- Make sure your Heltec V3 bridge is powered on
- Open BitChat app
- The bridge should appear as a nearby peer
- BitChat connects automatically via BLE
Join #mesh Channel
To communicate with MeshCore users, join the bridged channel:
/j #mesh
Messages sent to #mesh will be relayed to the MeshCore network!
Step 5: Test Your Setup
Verification Checklist
Useful Test Commands
In BitChat App:
/j #mesh # Join the bridged channel
/w # List online users
/channels # Show discovered channels
Hello MeshCore! # Send a test message
On MeshCore (via serial/app):
# Check peers
peers
# Send to #mesh
msg #mesh Hello BitChat!
Troubleshooting
BitChat doesn't see the bridge device
- Make sure Heltec V3 is powered on
- Check that you flashed the BitChat Bridge firmware (not regular companion)
- Unpair any existing MeshCore devices in Bluetooth settings
- Restart Bluetooth on your phone
Messages not reaching MeshCore network
- Verify frequencies match on all devices
- Make sure you're in the #mesh channel
- Check that the SenseCAP repeater is online
- Try moving devices closer together for testing
Can't enter DFU mode on SenseCAP
- Double-press RST button faster (within 500ms)
- Try a different USB cable
- Connect directly to computer (not through a hub)
Web flasher can't connect to Heltec V3
- Use Chrome or Edge browser (WebSerial required)
- Make sure device is in bootloader mode (BOOT+RST)
- Try a different USB port
- Install CH340/CP210x drivers if needed