Skip to content

MeshPager/fw

MeshPager

Rugged off-grid mesh networking. LoRa firmware, solar-powered nodes, and field-ready tools for when the towers go dark.

Build License MeshCore Compatible


What is MeshPager?

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.

Features

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.

Supported Hardware

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

Getting Started

Pre-built Firmware

  1. Go to Actions > Build Single Board
  2. Select your board, role (companion/repeater), and connection type
  3. Download the firmware artifact
  4. Flash using the MeshCore Flasher (select Custom Firmware)

Building from Source

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_ble

Connect

After flashing companion firmware, connect with any MeshCore-compatible app:

Config Channel

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.

Roadmap

  • Custom MeshPager companion apps (iOS, Android)
  • Repeater config via encrypted channel (remote management over mesh)
  • Message compression
  • Custom routing improvements

License

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.

About

Rugged off-grid mesh networking. LoRa firmware, solar-powered nodes, and field-ready tools for when the towers go dark.

Resources

License

GPL-3.0, MIT licenses found

Licenses found

GPL-3.0
LICENSE
MIT
LICENSE-MeshCore-MIT.txt

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages