Rugged off-grid mesh networking. LoRa firmware, solar-powered nodes, and field-ready tools for when the towers go dark.
MeshPager is custom LoRa mesh firmware built on MeshCore. It adds text-based device management, message reliability improvements, and field-oriented features while maintaining full compatibility with the MeshCore network and existing companion apps.
Your nodes. Your rules.
Config Channel CLI -- Manage your companion node from the stock iOS/Android app. A private encrypted channel intercepts commands locally with zero radio traffic. Type help and go.
You: status
config: Batt:4150mV Up:2h14m Air:45s/120s Pkts:12/8F 3/1D Q:0/16 C:12
You: set freq 869.618
config: OK freq=869.618
You: help set
config: set name <text> | set freq <400-2500> | set bw <7.8-500> | ...
Auto-Retry -- DM and group messages retry automatically in the background with gradual backoff until delivered or max retries exhausted. No more wondering if your message got through.
Full MeshCore Compatibility -- Works with stock MeshCore nodes, repeaters, room servers, and all companion apps (iOS, Android, web). MeshPager nodes are regular mesh participants.
All hardware supported by MeshCore is supported, including:
- ESP32: Heltec V3, T-Beam, T-Deck, T3S3, Station G2, and more
- nRF52: RAK4631, RAK3401, T-Echo, Mesh Pocket, and more
- RP2040: Pico W, Waveshare RP2040-LoRa, XIAO RP2040
- STM32: Wio-E5, Wio-E5 Mini
- Go to Actions > Build Single Board
- Select your board, role (companion/repeater), and connection type
- Download the firmware artifact
- Flash using the MeshCore Flasher (select Custom Firmware)
git clone https://github.com/MeshPager/fw.git
cd fw
# Install PlatformIO
pip install platformio
# Build for a specific board
FIRMWARE_VERSION=v0.1.0 PLATFORMIO_BUILD_FLAGS="-DCONFIG_CLI_ENABLED" \
pio run -e RAK_4631_companion_radio_bleAfter flashing companion firmware, connect with any MeshCore-compatible app:
- iOS: MeshCore App
- Android: MeshCore App
- Web: app.meshcore.nz
When CONFIG_CLI_ENABLED is set, a private "config" channel appears automatically in the app. All commands are processed locally on the device -- nothing goes over the air.
| Command | Description |
|---|---|
? or help |
Show available commands |
help <cmd> |
Detailed help for a command |
status |
Battery, uptime, airtime, packet stats, queue |
get config |
Show all radio and node parameters |
get repeat |
Query packet forwarding state |
queue |
Show DM retry queue status |
gps |
GPS status, fix, satellite count, coordinates |
ver |
Firmware version and build date |
set name <text> |
Change node name |
set freq <MHz> |
Change frequency (400-2500) |
set bw <kHz> |
Change bandwidth (7.8-500) |
set sf <5-12> |
Change spreading factor |
set cr <5-8> |
Change coding rate |
set power <dBm> |
Change TX power (-9 to 30) |
set repeat <on/off> |
Toggle packet forwarding |
advert |
Send zero-hop advertisement |
advert flood |
Send flood advertisement |
reboot |
Restart device |
For the full command reference including repeater, room server, and sensor commands, see CLI Reference.
- Custom MeshPager companion apps (iOS, Android)
- Repeater config via encrypted channel (remote management over mesh)
- Message compression
- Custom routing improvements
MeshPager is licensed under the GNU General Public License v3.0.
Based on MeshCore by Scott Powell / rippleradios.com, originally released under the MIT License.
With support from 8FF.