Your phone is useless on a ridge line, in a basement car park or after a storm takes the towers down. Meshtastic fills that gap. It is free, open-source firmware that turns a low-power LoRa radio into a text messenger and GPS position tracker that needs no SIM, no router and no subscription. You pair it with your phone over Bluetooth, type a message, and the radios pass it along among themselves.
01What Meshtastic actually is
Meshtastic is firmware that runs on small, battery-friendly development boards built around an ESP32 or nRF52 microcontroller paired with a LoRa radio. Each board is a node. Nodes form a mesh: an ad-hoc network where every node both sends its own messages and relays messages for the others. There is no base station and no single point of failure. If one node goes flat, the rest carry on.
You do not talk to the node directly. You install the Meshtastic app on an Android or iPhone, connect to the node over Bluetooth LE (or Wi-Fi), and use it like any chat app. The node handles the radio. Because LoRa data rates are tiny, Meshtastic is built for short text, GPS positions and telemetry — not voice, photos or web browsing.
02Why LoRa reaches kilometres on so little power
LoRa (Long Range) is a radio modulation from Semtech. It gets its distance not from brute transmit power but from a clever trick called chirp spread spectrum. Instead of holding a steady tone, the transmitter sweeps its frequency smoothly up across the channel. The receiver knows the exact shape of that sweep, so it can pull the signal out of the noise even when the signal is weaker than the noise floor. That is the whole secret: it trades speed for sensitivity.
- High sensitivity. A LoRa receiver can decode signals down to roughly −130 dBm, far below what Wi-Fi or Bluetooth can hear.
- Low power. A node transmits for only a fraction of a second per message and sleeps the rest of the time, so a small battery or a tiny solar panel can run it for weeks.
- Narrow and slow. The payback is data rate. A LoRa link moves on the order of hundreds of bits to a few kilobits per second — fine for a sentence, hopeless for a photo.
Three settings control the trade-off between range and speed: bandwidth (how wide the channel is), spreading factor (how slow and robust the chirp is) and coding rate (how much error-correction is added). A higher spreading factor reaches further but sends fewer bits per second. Meshtastic hides all of this behind named presets so you never have to tune it by hand.
03How a message hops across the mesh
This is the part that makes Meshtastic more than a walkie-talkie. When you send a message, your node broadcasts it once. Every node that hears it checks whether it has seen that exact message before. If not, it rebroadcasts it. The message spreads outward like a ripple until it has reached every corner of the mesh — including nodes far out of your own radio's reach, as in the diagram above.
- Flooding with de-duplication. Each message carries a packet ID. A node that already relayed that ID drops the copy instead of echoing it forever, so the mesh does not drown in loops.
- A hop limit. Every message starts with a small hop counter (3 by default). Each relay decreases it by one, and at zero the message stops. This keeps a big mesh from flooding endlessly.
- No fixed route. There is no master that plans paths. The mesh simply forwards, so it self-heals when nodes move, appear or disappear.
04Channels and AES encryption
A channel in Meshtastic is a named group with its own encryption key. Only nodes that share the same channel name and key can read the messages on it. Under the hood the payload is encrypted with AES (128- or 256-bit), so a bystander listening on the same frequency hears traffic but cannot read it.
Every node ships with a public default channel called LongFast. Its key is published openly so that strangers can find each other out of the box. That is great for meeting people, but it means the default channel is effectively public — anyone with the standard key can read it.
A node can carry several channels at once: the public one for discovery plus one or two private ones for your family or team. Each message is tagged with its channel, and your app only shows the channels whose keys you hold.
05Regions and the LongFast preset
LoRa runs in licence-free ISM bands, and those bands differ by country. You must set your region so the node stays legal and so everyone in your area lands on the same frequency. The firmware then derives the exact channel from the region and preset — you do not type a frequency yourself.
| Region | Band | LongFast default frequency |
|---|---|---|
| United States | 915 MHz | 906.875 MHz |
| Europe | 868 MHz | 869.525 MHz |
| Other regions | 433 / 865 / 920 MHz | Set by the firmware per region |
The default radio preset is LongFast, a balance of range and speed that is a sensible starting point for everyone. Its LoRa parameters are:
| Parameter | LongFast value | What it does |
|---|---|---|
| Bandwidth | 250 kHz | Channel width; wider is faster but less sensitive |
| Spreading factor | SF 11 | How slow and robust the chirp is; higher reaches further |
| Coding rate | 4/5 | Amount of forward error correction added |
06How to join your first mesh
Getting on air takes about five minutes. The workflow is the same whether you use a dedicated Meshtastic board or an ESP32-S3 board with an SX1262 radio, such as the SGP Card Mini, flashed with the Meshtastic firmware.
- Flash the firmware. Use the official web flasher at
flasher.meshtastic.orgfrom a Chromium browser, or the Meshtastic CLI. Pick the build that matches your board. - Install the app. Get the Meshtastic app on Android or iPhone and pair with the node over Bluetooth. On first pairing it shows a code.
- Set your region. This is the one setting you must get right. Choose US, EU_868 or your local region. The node reboots onto a legal channel.
- Check the preset. Leave it on LongFast to start. Confirm your group is on the same preset.
- Add a private channel. Create a channel, let the app generate a random key, and share its QR code with your group. Keep the public channel too, for discovery.
- Send a test. Type "radio check" on your private channel and watch for an ACK or a reply. Nodes you hear appear on the map with their signal and hop count.
If you prefer the command line, the Meshtastic CLI configures the same things over USB:
# set the legal band for your country (US or EU_868) meshtastic --set lora.region US # keep the LongFast preset (range/speed balance) meshtastic --set lora.modem_preset LONG_FAST # add a private channel with a fresh random AES key meshtastic --ch-add SGP meshtastic --ch-set psk random --ch-index 1 # print the channel QR/URL to share with your group meshtastic --qr
From there it is just a chat window. Positions, battery levels and signal quality update on their own, and the mesh grows every time a friend powers on another node.
07FAQ
Do I need a SIM card or internet for Meshtastic?
No. Meshtastic nodes talk directly to each other over LoRa radio. There is no SIM, no cell tower and no monthly fee. You only need internet if you choose to bridge your mesh to the wider world with an MQTT gateway, which is optional.
What range can I really expect?
Be realistic. In a town with buildings and trees, a single hop is usually a few hundred metres to a couple of kilometres. With clear line of sight between high points, hobbyists regularly reach tens of kilometres. The mesh then extends that further by relaying through other nodes.
Are Meshtastic messages encrypted?
Yes. Each channel carries an AES key, so only nodes that share the key can read the text on that channel. The public default channel ships with a well-known key, so treat it as open. For private groups, create your own channel with a fresh key.
Which frequency should I use?
Use the licence-free band for your region. In the United States that is the 915 MHz band, and the US LongFast preset defaults to 906.875 MHz. In most of Europe it is the 868 MHz band, where LongFast defaults to 869.525 MHz. Set the region once and the firmware picks a legal channel for you.