Skip to content
MCU Atlas
ESP32NRF52ESP32-S3NRF52840

MeshCore: off-grid LoRa text messaging with repeaters and room servers

Free MIT firmware that turns cheap LoRa boards into an off-grid text mesh: phone-paired companions, high-placed repeaters and BBS-style room servers.

Difficulty:Beginner

What it is

Firmware that turns a LoRa board into a node in an off-grid text-messaging mesh.

What you need

How hard

Beginner: flash from the browser, pair the phone app.

Key Facts

  • Roles: Companion (BLE / USB / Wi-Fi client), Repeater, Room Server
  • Companion nodes never repeat messages
  • Room Server keeps posts for clients that connect later
  • Web flasher at meshcore.io/flasher; repeater setup at config.meshcore.io
  • Firmware MIT; phone app is a separate freemium product

About This Project

MeshCore is a lightweight multi-hop routing protocol and firmware for LoRa packet radios. Its FAQ lists off-grid communication, emergency response and disaster recovery among the uses. Our note: it only reaches other MeshCore nodes. It can't call 911 or any emergency service, so it doesn't replace a phone or radio that can. You flash a board from the web flasher (meshcore.io/flasher) with one of three roles: Companion (you chat through the phone app over BLE, or the web app app.meshcore.nz over USB), Repeater (forwards messages, best placed up high) or Room Server (a small BBS that keeps posts, so a client that connects later gets the messages it missed). Companions never repeat, which keeps routes predictable. With one device you flash Companion; with two, either two Companions or a Companion plus a Repeater. Set your radio to your region's preset in the app (or with the set freq command in the web flasher console for a repeater): the FAQ covers the 868 MHz UK/EU and 915 MHz NZ/AU/US ranges and lists 433 MHz devices too. Why now: Norway's self-preparedness week (Egenberedskapsuka, week 44, 26 Oct – 1 Nov 2026) took crisis communication when electronic communications fail as its theme. The firmware is MIT and free. The phone app by Liam Cottle is a separate, freemium product, and some T-Deck features are paid unlocks.

Source & Attribution

Source: GitHub
License: MIT
Last verified: 10/30/2026
MeshCore: off-grid LoRa text messaging with repeaters and room servers

Illustration

How to Build It
Flash a LoRa board as a MeshCore Companion from the browser, pair the app, set your region preset, and add a Repeater if you have a second board.

Parts Needed

  • A MeshCore-supported LoRa board (e.g. Heltec V3, RAK4631, T-Deck, T-Pager, XIAO S3 WIO)
  • LoRa antenna for your band
  • USB data cable
  • Phone with the MeshCore app (optional for USB Serial Companion)

Steps

  1. 1

    Fit the antenna

    Screw on the antenna for your board's band before you power it up.

  2. 2

    Flash Companion firmware

    Open meshcore.io/flasher in Chrome or Edge, pick your device and flash the BLE Companion firmware (or USB Serial Companion to use the web app app.meshcore.nz).

  3. 3

    Pair and pick your region

    Open the MeshCore app, connect to the node over Bluetooth and choose your region's radio preset, so you're on the same settings as nodes near you. Our note: only transmit on the band your country allows for licence-free LoRa (for example 868 MHz in the UK/EU, 915 MHz in the US/AU/NZ), stay within its power limits, and use an antenna for that band.

  4. 4

    Add a repeater (optional)

    Flash a second board as a Repeater, set its frequency with the set freq command in the web flasher console or at config.meshcore.io, and place it as high as you can. Companions don't repeat, so repeaters are what extend the mesh.

  5. 5

    Try a room server (optional)

    A Room Server firmware acts as a small BBS: it keeps posts, and a client that connects later gets the messages it missed.

Bill of Materials

Parts list

8 parts · 5 linked

Heads up: some Buy links are affiliate links. If you buy through one, MCU Atlas may earn a small commission at no extra cost to you. It never changes which parts we list. How this works

Not included: phone (for BLE Companion)

Download CSV

Related Projects

RNode firmware: turn a LoRa board into a Reticulum radio that works without the internet
Illustration
ESP32
Open firmware that turns supported LoRa boards into RNodes for Reticulum, Sideband and Nomad Network. Flash it yourself, and buy only from honest makers.
Intermediate
5 parts listed
MeshCore-BitChat: bridge Bitchat phone chats onto a MeshCore LoRa mesh
Illustration
ESP32ESP32-S3
Firmware for a cheap ESP32 LoRa board that relays the #mesh channel between Bitchat's Bluetooth phone mesh and a MeshCore LoRa network, both ways.
Beginner
4 parts listed
LilyGO T-Lora Pager: Meshtastic handheld without a phone
Illustration
ESP32ESP32-S3
A standalone LoRa pager with full QWERTY keyboard, color display, and Meshtastic firmware—no phone pairing required.
Beginner·Code
1 part listed