Home/Get started

Flash your radio. Keep your hardware.

A phone and one board is the whole bill of materials

Same boards, same antennas, same enclosures. Or just a phone, if the people you’re messaging are within Bluetooth or WiFi range.

Step one

What you need

A phone

Android or iOS. The phone is the node: it holds the store, does the cryptography, and makes the decisions. With BLE and WiFi it participates fully on its own — carrying other people’s traffic and sending its own.

One supported LoRa board optional

The radio makes you reach further — kilometers instead of a room. It isn’t the price of entry. If you already own one, you almost certainly don’t need to buy anything.

Hardware

Supported boards

MeshDTN supports 95 boards, and publishes 202 firmware images for them. Every image on this list is served — nothing is named here that the web flasher cannot hand you. If you already own a LoRa mesh radio, it is almost certainly below.

Seeed Studio SenseCAP Solar Node P1-Pro

Solar, GPS, IPX6. The board a station is built from, and the one this project runs on a pole.

Seeed Studio Wio Tracker L1

Small, cheap, carries well, and the second board with a station build published for it.

Seeed Studio SenseCAP T1000-E

Pocket-sized, sealed, LR1110. Nothing to hold and nothing to break.

Heltec v3

Cheap, everywhere, and has a screen. The board to put on a bench while you learn what the mesh is doing.

Board Radio MCU Companion link Station build
Ebyte EoRa-S3SX1262ESP32-S3Bluetooth, USB—
Elecrow ThinkNode M1SX1262nRF52840Bluetooth, USB—
Elecrow ThinkNode M2SX1262ESP32-S3Bluetooth, Wi-Fi, USB, Serial—
Elecrow ThinkNode M3LR1110nRF52840Bluetooth, USB—
Elecrow ThinkNode M5SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Elecrow ThinkNode M6SX1262nRF52840Bluetooth, USB—
Elecrow ThinkNode M7LR1110ESP32-S3Bluetooth, Wi-Fi, USB, Ethernet—
Elecrow ThinkNode M9LR1110ESP32-S3Bluetooth, Wi-Fi, USB—
GAT-IoT GAT562 30sSX1262nRF52840Bluetooth, USB—
GAT-IoT GAT562 Mesh Watch13SX1262nRF52840Bluetooth—
GAT-IoT GAT562 TrackerSX1262nRF52840Bluetooth, USB—
Heltec CT62SX1262ESP32-C3Bluetooth, USB—
Heltec Mesh Node T1SX1262nRF52840Bluetooth, USB—
Heltec MeshPocketSX1262nRF52840Bluetooth, USB—
Heltec MeshSolar / MeshTowerSX1262nRF52840Bluetooth, USB—
Heltec RC32SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec RC32 (no display)SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec T096SX1262nRF52840Bluetooth, USB—
Heltec T114SX1262nRF52840Bluetooth, USB—
Heltec T114 (no display)SX1262nRF52840Bluetooth, USB—
Heltec Tower V2SX1262nRF52840Bluetooth, USB—
Heltec v2SX1276ESP32Bluetooth, Wi-Fi, USB—
Heltec v3SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec v4SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec v4 (TFT)SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec v4 R8SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec v4 R8 (TFT)SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec Vision Master E213SX1262ESP32-S3Bluetooth, USB—
Heltec Vision Master E290SX1262ESP32-S3Bluetooth, USB—
Heltec Vision Master T190SX1262ESP32-S3Bluetooth, USB—
Heltec Wireless PaperSX1262ESP32-S3Bluetooth, USB—
Heltec Wireless TrackerSX1262ESP32-S3Bluetooth, USB—
Heltec Wireless Tracker v2SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Heltec WSL3SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Ikoka Handheld (E22 30 dBm, 096)SX1262nRF52840Bluetooth, USB—
Ikoka Handheld (E22 30 dBm, 096, rotated)SX1262nRF52840Bluetooth, USB—
Ikoka Nano (22 dBm)SX1262nRF52840Bluetooth, USB—
Ikoka Nano (30 dBm)SX1262nRF52840Bluetooth, USB—
Ikoka Nano (33 dBm)SX1262nRF52840Bluetooth, USB—
Ikoka Stick (22 dBm)SX1262nRF52840Bluetooth, USB—
Ikoka Stick (30 dBm)SX1262nRF52840Bluetooth, USB—
Ikoka Stick (33 dBm)SX1262nRF52840Bluetooth, USB—
Keepteen LT1SX1262nRF52840Bluetooth, USB—
LilyGo LoRa32 V2.1_1.6SX1276ESP32Bluetooth, Wi-Fi, USB—
LilyGo T-Beam (SX1262)SX1262ESP32Bluetooth—
LilyGo T-Beam 1.2 (SX1276)SX1276ESP32Bluetooth—
LilyGo T-Beam 1WSX1262ESP32-S3Bluetooth, Wi-Fi, USB—
LilyGo T-Beam Supreme (SX1262)SX1262ESP32-S3Bluetooth, Wi-Fi—
LilyGo T-DeckSX1262ESP32-S3Bluetooth, USB—
LilyGo T-EchoSX1262nRF52840Bluetooth, USB—
LilyGo T-Echo CardSX1262nRF52840Bluetooth, USB—
LilyGo T-Echo LiteSX1262nRF52840Bluetooth—
LilyGo T-Echo Lite (no shell)SX1262nRF52840Bluetooth, USB—
LilyGo T-ETH Elite (SX1262)SX1262ESP32-S3Bluetooth, USB—
LilyGo T-Impulse PlusSX1262nRF52840Bluetooth—
LilyGo T-LoRa C6SX1262ESP32-C6Bluetooth—
LilyGo T3 S3 (SX126x)SX1262ESP32-S3Bluetooth, USB—
LilyGo T3 S3 (SX127x)SX1276ESP32-S3Bluetooth, USB—
M5Stack Unit C6LSX1262ESP32-C6Bluetooth, USB—
Meshadventurer (SX1262)SX1262ESP32Bluetooth, USB—
Meshadventurer (SX1268)SX1268ESP32Bluetooth, USB—
MeshimiSX1262ESP32-C6Bluetooth—
Meshnology W12LR2021ESP32-S3Bluetooth, Wi-Fi, USB—
MeshtinySX1262nRF52840Bluetooth, USB—
Minewsemi ME25LS01LR1110nRF52840Bluetooth, USB—
MuziWorks R1 NeoSX1262nRF52840Bluetooth, USB—
Nibble Screen ConnectSX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Nibble Zero ConnectSX1262ESP32-S3Bluetooth, Wi-Fi, USB—
ProMicro nRF52840SX1262nRF52840Bluetooth, USB—
RAK 11310SX1262RP2040USB—
RAK 3x72STM32WLx (on-chip)STM32WLE5USB—
RAK WisBlock / WisMesh (RAK 4631)SX1262nRF52840Bluetooth, USB, Ethernet—
RAK WisBlock 3112SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
RAK WisMesh 1W Booster (3401 + 13302)SX1262nRF52840Bluetooth, USB—
RAK WisMesh TagSX1262nRF52840Bluetooth, USB—
RPI Pico 2040 + WaveShare SX1262SX1262RP2040USB—
Seeed LoRa-E5 Dev BoardSTM32WLx (on-chip)STM32WLE5USB—
Seeed LoRa-E5 miniSTM32WLx (on-chip)STM32WLE5USB—
Seeed SenseCAP MeshTracker X1LR2021nRF52840Bluetooth, USB—
Seeed Studio SenseCAP Solar Node P1-ProSX1262nRF52840Bluetooth, USBYes
Seeed Studio SenseCAP T1000-ELR1110nRF52840Bluetooth, USB—
Seeed Studio Wio Tracker L1SX1262nRF52840Bluetooth, USBYes
Seeed Studio Wio Tracker L1 EINKSX1262nRF52840Bluetooth—
Seeed Studio Xiao C3SX1262ESP32-C3Bluetooth, Wi-Fi, USB—
Seeed Studio Xiao C6SX1262ESP32-C6Bluetooth—
Seeed Studio Xiao nRF52 WIOSX1262nRF52840Bluetooth, USB—
Seeed Studio Xiao RP2040SX1262RP2040USB—
Seeed Studio Xiao S3SX1262ESP32-S3Bluetooth, USB—
Seeed Studio Xiao S3 WIOSX1262ESP32-S3Bluetooth, Wi-Fi, USB, Serial—
Station G3 ESP32SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Tiny RelaySTM32WLx (on-chip)STM32WLE5USB—
UnitEng Nano G2 UltraSX1262nRF52840Bluetooth, USB—
UnitEng Station G2SX1262ESP32-S3Bluetooth, Wi-Fi, USB—
Waveshare RP2040 LoRaSX1262RP2040USB—
WHY2025 badgeSX1262ESP32-C6Bluetooth—

Scroll the table sideways to see every column.

Board names match the flasher exactly, so whatever you find here you can pick there. Companion link is how the radio talks to your phone or computer — not how it talks to the mesh, which is always LoRa. Station build marks the boards that have store-and-forward firmware published; any board on the list can carry.

Ten minutes

From download to first carried message

Install the app

Android and iOS builds, plus desktop targets, are produced from the meshdtn-app repository. Build instructions and release artifacts live with the source.

Flash the firmware

Build the meshdtn_companion environment for your board from the meshdtn-firmware repository, or take the published image straight from the web flasher. Your antennas, enclosures and mounts are unchanged.

Pair phone and radio

The companion link is BLE between a phone and its own radio. The app finds the board, and from then on the radio is a stateless adapter — it advertises capability, passes frames, and transmits. Nothing about you is stored on it.

Add a contact

Scan their QR code. That’s a Tier 2 contact — verified out of band — and it persists like a real messenger, not like a radio scanner. You cannot message a stranger, and the app tells you so at the moment you try.

Write, and let it go

In Auto, the default: if they’re reachable, it goes now; if they’re not, your phone keeps it and hands a copy to the next node that passes. A contact or a single message can be set to MeshCore or MeshDTN instead. Either way you find out what happened to it.

Where the builds live

MeshDTN is three repositories: meshdtn for the specifications, meshdtn-firmware for the radio, and meshdtn-app for the phone. Current build and flashing instructions ship with each repository rather than on this page, so they can’t drift out of date here.

Keeping a radio current

Updates come from your phone, over Bluetooth

Any MeshDTN radio, not only a Station. Open Update a radio over Bluetooth in the app’s settings. It finds the radios near you, says what each one is running and what is published for that exact board, and waits to be told. No cable, and nothing to do at the radio.

It only offers an update when there is a newer one for that board, and it tells you what the radio is running after the update by asking the radio — not by repeating what it meant to install.

If an update is interrupted

A radio that loses the connection part-way through stops behaving like a radio and waits to be finished. It is not damaged. It appears at the top of that same screen, by name, with Finish the update beside it — over the air, still there after you close and reopen the app.

It has to be within a few meters to be reached. If it stays out of sight, press its reset button twice, plug it into a computer, and install the firmware over the cable.

One board needs a one-time job first. Over-the-air updates need the OTAFIX bootloader; the app checks before it offers anything and tells you if yours needs it. What that is and how to install it.

Build a station

Put one on a pole and walk away

A station is a radio with a persistent store, no phone, no user, and no key to anything it carries. It holds sealed messages it cannot read and hands them to whoever comes along next — which is how two people who are never in the same place on the same day exchange messages at all.

Flash the station role onto a SenseCAP Solar Node P1-Pro, mount it, and manage it from your phone over Bluetooth: records held, uptime, clock state, radio status, and over-the-air firmware updates. No laptop up a ladder in the rain.

Reference station BOM

Board
Seeed Studio SenseCAP Solar Node P1-Pro
Radio
Wio-SX1262
Power
Solar panel, 4×18650 cells
Enclosure
IPX6, onboard GPS
Role
Carrier, station, or both — configuration, not firmware
Management
Bluetooth on demand, off by default

Before you transmit

Operating a radio lawfully is your responsibility

MeshDTN runs on license-free bands. The radio’s frequency, spreading factor, bandwidth and coding rate are fixed in the firmware build and cannot be changed from the app or the command line — but nothing in the software knows where you are, so choosing a build that is legal where you are is yours to get right.

That is not legal advice and does not make any configuration lawful where you are. NOTICE.md sets out the relevant regulatory facts with citations and draws no conclusions. Read it before you transmit.

Every phone is a mailbag.

Questions first? The FAQ answers the ones people actually ask.