Public replica of the MeshCore work of Ripplebiz.
Find a file
2025-05-29 19:06:23 +00:00
.github Update .github/workflows/build-companion-firmwares.yml 2025-05-29 19:06:23 +00:00
.vscode Initial commit 2025-01-13 14:07:48 +11:00
arch wio-e5 : initial port 2025-05-11 09:28:15 +02:00
bin/uf2conv setup automated firmware builds with github actions 2025-03-03 17:58:15 +13:00
boards rak3x72 : first commit 2025-05-22 14:47:44 +02:00
docs initial try at documenting payload formats 2025-05-26 18:22:31 -07:00
examples * ver bump to 1.6.2 2025-05-24 16:19:19 +10:00
include Initial commit 2025-01-13 14:07:48 +11:00
lib moved nrf sdk headers to ./lib/ and added Repeater envs for t114 & t-echo 2025-03-07 00:16:22 +01:00
src * EnvironmentSensorManager: some tidy ups 2025-05-23 19:12:32 +10:00
variants Merge pull request #330 from recrof/dev 2025-05-24 15:11:39 +10:00
.envrc add default.nix/.envrc for automagic platformio dev environment on NixOS 2025-04-16 12:18:49 -04:00
.gitignore 283 Add support of INA3221 to Promicro telemetry 2025-05-13 23:52:49 +03:00
build.sh detect if we have nrf52 by probing for *.zip and *.hex output files 2025-04-27 10:24:38 +02:00
default.nix add default.nix/.envrc for automagic platformio dev environment on NixOS 2025-04-16 12:18:49 -04:00
license.txt * tidy ups 2025-01-20 10:20:42 +11:00
merge-bin.py * merge-bin.py script 2025-01-25 23:09:09 +11:00
platformio.ini wio-e5 : initial port 2025-05-11 09:28:15 +02:00
README.md fix formatting 2025-05-18 02:54:53 +12:00
RELEASE.md add release docs 2025-03-03 18:08:00 +13:00

About MeshCore

MeshCore is a lightweight, portable C++ library that enables multi-hop packet routing for embedded projects using LoRa and other packet radios. It is designed for developers who want to create resilient, decentralized communication networks that work without the internet.

🔍 What is MeshCore?

MeshCore now supports a range of LoRa devices, allowing for easy flashing without the need to compile firmware manually. Users can flash a pre-built binary using tools like Adafruit ESPTool and interact with the network through a serial console. MeshCore provides the ability to create wireless mesh networks, similar to Meshtastic and Reticulum but with a focus on lightweight multi-hop packet routing for embedded projects. Unlike Meshtastic, which is tailored for casual LoRa communication, or Reticulum, which offers advanced networking, MeshCore balances simplicity with scalability, making it ideal for custom embedded solutions., where devices (nodes) can communicate over long distances by relaying messages through intermediate nodes. This is especially useful in off-grid, emergency, or tactical situations where traditional communication infrastructure is unavailable.

Key Features

  • Multi-Hop Packet Routing Devices can forward messages across multiple nodes, extending range beyond a single radio's reach. MeshCore supports up to a configurable number of hops to balance network efficiency and prevent excessive traffic.
  • Supports LoRa Radios Works with Heltec, RAK Wireless, and other LoRa-based hardware.
  • Decentralized & Resilient No central server or internet required; the network is self-healing.
  • Low Power Consumption Ideal for battery-powered or solar-powered devices.
  • Simple to Deploy Pre-built example applications make it easy to get started.

🎯 What Can You Use MeshCore For?

  • Off-Grid Communication: Stay connected even in remote areas.
  • Emergency Response & Disaster Recovery: Set up instant networks where infrastructure is down.
  • Outdoor Activities: Hiking, camping, and adventure racing communication.
  • Tactical & Security Applications: Military, law enforcement, and private security use cases.
  • IoT & Sensor Networks: Collect data from remote sensors and relay it back to a central location.

🚀 How to Get Started

For developers;

The Simple Secure Chat example can be interacted with through the Serial Monitor in Visual Studio Code, or with a Serial USB Terminal on Android.

MeshCore Flasher

We have prebuilt firmware ready to flash on supported devices.

  • Launch https://flasher.meshcore.co.uk
  • Select a supported device
  • Flash one of the firmware types:
    • Companion, Repeater or Room Server
  • Once flashing is complete, you can connect with one of the MeshCore clients below.

📱 MeshCore Clients

Companion Firmware

The companion firmware can be connected to via BLE, USB or WiFi depending on the firmware type you flashed.

Repeater and Room Server Firmware

The repeater and room server firmwares can be setup via USB in the web config tool.

They can also be managed via LoRa in the mobile app by using the Remote Management feature.

🛠 Hardware Compatibility

MeshCore is designed for use with:

  • Heltec V3 LoRa Boards
  • RAK4631
  • XiaoS3 WIO (sx1262 combo)
  • XiaoC3 (plus external sx126x module)
  • LilyGo T3S3
  • Heltec T114
  • Station G2
  • Sensecap T1000e
  • Heltec V2
  • LilyGo TLora32 v1.6

📜 License

MeshCore is open-source software released under the MIT License. You are free to use, modify, and distribute it for personal and commercial projects.

Contributing

Please submit PR's using 'dev' as the base branch! For minor changes just submit your PR and I'll try to review it, but for anything more 'impactful' please open an Issue first and start a discussion. Is better to sound out what it is you want to achieve first, and try to come to a consensus on what the best approach is, especially when it impacts the structure or architecture of this codebase.

📞 Get Support

RAK Wireless Board Support in PlatformIO

Before building/flashing the RAK4631 targets in this project, there is, unfortunately, some patching you have to do to your platformIO packages to make it work. There is a guide here on the process: RAK Wireless: How to Perform Installation of Board Support Package in PlatformIO

After building, you will need to convert the output firmware.hex file into a .uf2 file you can copy over to your RAK4631 device (after doing a full erase) by using the command uf2conv.py -f 0xADA52840 -c firmware.hex with the python script available from: GitHub: Microsoft - uf2