Communication in a Crisis — Building a Local Mesh Network
When cell towers go dark and internet lines go silent, a $35 LoRa radio and open-source firmware can keep your community connected. Here's how to build it.
When cell towers go dark and internet lines go silent, a $35 LoRa radio and open-source firmware can keep your community connected. Here's how to build it.
LoRa operates on ISM bands (915 MHz in US/Canada, 868 MHz in EU/UK, 433 MHz in parts of Asia). These are license-free for low-power use, but you must use region-appropriate hardware. Meshtastic enforces duty-cycle and transmit-power limits in firmware. Do not amplify beyond legal limits or operate outside your region's band plan.
In a crisis, communication infrastructure fails in a predictable order: cell towers overload, then lose power, then lose backhaul. Text messages might squeak through when voice calls won't — SMS uses control-channel bandwidth, not data channels — but once the tower's generator runs dry or the fiber backhaul is cut, even SMS goes dark.
A mesh network inverts this dependency. Each node is a peer — there is no tower, no central coordinator, no backhaul to lose. Messages hop from node to node until they reach their destination. If one node goes offline, traffic routes around it. This is the same architectural principle that made the original ARPANET nuclear-resilient, shrunk down to fit in your pocket.
Meshtastic — the open-source project we'll use — runs on inexpensive ESP32-based LoRa boards. A single node costs about $35. Three nodes and a solar panel can cover a small town. The protocol handles encryption, routing, and channel management. Your phone connects to the node via Bluetooth; the node handles the long-range LoRa radio. The entire stack is infrastructure-independent: no towers, no satellites, no internet, no license.
LoRa (Long Range) uses chirp spread-spectrum modulation — a technique originally developed for radar in the 1940s. It spreads a signal across a wider bandwidth than the data rate requires, which gives you two things crisis comms need:
Meshtastic layers on top: it handles packet framing, AES-256 encryption, adaptive routing (based on signal-strength metrics), and a Bluetooth Low Energy bridge to your phone. The phone app looks and feels like a group chat — but every message in that chat travelled exclusively over unlicensed spectrum, through radios your community owns.
Meshtastic nodes act as store-and-forward relays. If a node is out of range when you send a message, intermediate nodes hold and retransmit it. This means you don't need every node to reach every other node directly — you need coverage, not density. One well-placed solar relay on a ridge can connect two valleys that can't see each other.
The ecosystem has consolidated around a few reliable boards. Here's what I've tested on the CoreConduit bench:
| Device | Radio | Approx. Cost | Best For |
|---|---|---|---|
| Heltec V3 | SX1262 (ESP32-S3) | $25–30 | General-purpose node, OLED display, good power management |
| RAKwireless WisBlock | SX1262 (nRF52840) | $35–45 | Solar/repeater nodes — extremely low sleep current (~11 µA) |
| LILYGO T-Beam Supreme | SX1262 + GPS (ESP32-S3) | $45–55 | Mobile/portable with GPS location sharing; 18650 battery holder built-in |
| Seeed Studio SenseCAP T1000-E | SX1262 (nRF52840) | $40–50 | Weatherproof pocket node, integrated GPS, IP65 rated |
For a basic community starter kit, buy three Heltec V3s and one T-Beam Supreme. The T-Beam becomes your "high ground" relay with GPS; the Heltecs go to key people. Total cost: ~$140.
The SX1276 (used in Heltec V1/V2 and early TTGO boards) has known issues with Meshtastic 2.x firmware — limited modem bandwidth and weaker forward error correction. The SX1262 chips used in all current-gen boards support spreading factor 12 at 125 kHz bandwidth, giving you ~300 bps but link budgets that push through tree cover. Buy SX1262-based boards. The $5 savings on older stock aren't worth the range penalty.
Meshtastic provides a web-based flasher that works from Chrome/Edge/Opera (Web Serial API). No toolchain setup required:
After flashing, the node boots into its default configuration. You'll need to set your region before the radio will transmit — this is an intentional safety lock in Meshtastic firmware:
This is where planning matters more than hardware. A mesh works best when you think about elevation before density. Three well-placed nodes on rooftops outperform thirty nodes at ground level. Here's the topology I recommend for a neighborhood or small-town deployment:
R1 is the only node that needs reliable power. Phones connect to the nearest rooftop node — they don't need line-of-sight to R1. Messages from N1's phones route through N1 → R1 → N2 → N2's phones.
The design principle: one high-ground relay with solar + battery, one rooftop node per neighborhood cluster, phones connect locally. The high-ground relay handles cross-neighborhood traffic. If the relay goes down, nodes within the same neighborhood still talk to each other — the mesh degrades gracefully.
Meshtastic firmware defines node roles that affect routing behavior:
For the three-tier topology above: R1 gets ROUTER role (or REPEATER if no phone will pair to it). N1–N3 get ROUTER role if they have reliable power; CLIENT if they're on battery. Everyone's phone connects as a CLIENT to the nearest node.
The most common failure mode in a real crisis: someone deploys a mesh network, then discovers all the nodes die within 48 hours because nobody thought about power.
A Heltec V3 in CLIENT mode draws roughly 80 mA when receiving (screen on), 120 mA when transmitting the occasional position beacon, and about 15 mA with the screen off and radio in light sleep. A 3,000 mAh 18650 cell runs a CLIENT for roughly 36 hours of continuous operation — worse if the node is in ROUTER role and handling heavy relay traffic.
The RAKwireless WisBlock in sleep mode draws 11 µA. That's three orders of magnitude better. For a solar relay on a ridge, the WisBlock is the correct choice. Pair it with a 5W USB solar panel ($15–20), a single 18650, and a waterproof enclosure. It will run indefinitely with even modest daily sun.
WisBlock (nRF52840 + SX1262) active RX: 12 mA @ 3.3V = ~40 mW. TX burst (22 dBm): ~120 mA @ 3.3V = ~400 mW for ~200 ms per packet. At 100 packets/day (heavy mesh traffic), total daily energy is roughly 350 mAh at 3.3V. A 5W panel produces ~800 mA in full sun — roughly 1.5 hours of sun covers 24 hours of relay operation with margin. A single 3,500 mAh 18650 provides ~10 days of buffer for cloudy stretches.
Meshtastic uses a channel abstraction. The default channel (index 0, named "LongFast") is the primary channel — everyone on the same frequency, spreading factor, and pre-shared key can see each other. You can add secondary channels with different PSKs for subgroup communication.
For crisis prep, I recommend this channel plan:
Share the primary channel PSK before the crisis. This is the single most important pre-deployment step. Write it on a laminated card. Include the frequency (e.g., 906.875 MHz for US channel 20) and a short node-naming convention ("N-Hospital," "N-FireStation1") so new nodes joining during an incident are immediately identifiable.
☐ Flash all nodes to same Meshtastic version (2.5.x stable)
☐ Set region (US/EU/ etc.) on every node
☐ Configure primary channel PSK — same on every node
☐ Label each node physically (location, role, owner)
☐ Test: send message from opposite ends of coverage area, confirm receipt
☐ Document: node locations, relay elevation, approximate coverage map
☐ Power: confirm each relay/rooftop node has at least 72h runtime
☐ Train: every user installs the Meshtastic app and sends at least one test message
Range claims in LoRa marketing ("10 miles!") assume line-of-sight with clear Fresnel zone clearance. In practice, your neighborhood mesh is navigating:
Real-world numbers from CoreConduit testing (Heltec V3, stock antenna, 915 MHz):
The rooftop relay strategy exists specifically because of those suburban and urban numbers. A node at 25 feet elevation eliminates the first Fresnel zone obstruction for most ground-level obstructions within 1,000 feet. That single elevation change often doubles effective range.
If you upgrade one thing, upgrade the antenna — but with precision, not marketing hype:
A mesh network shouldn't be your only tool. Layer it:
The combination is powerful: voice for urgent tactical, text for logistical coordination. Neither depends on infrastructure. Both run on batteries and solar. Both are owned by the community using them.
Meshtastic encrypts payloads with AES-256 using your channel PSK. It does not hide the fact that transmissions are occurring, nor does it hide node locations (if GPS position sharing is enabled). Anyone with a LoRa receiver can see that you're transmitting, and approximately where. In scenarios where radio silence is warranted, power nodes off — don't rely on encryption for stealth. This is inherent to all ISM-band radio, not Meshtastic-specific.
A mesh network deployed and forgotten will fail when you need it. The maintenance is light but non-negotiable:
The quarterly test is the most important habit. It confirms the mesh still routes, validates the PSK, and catches firmware incompatibilities before they become crisis surprises.
Have you deployed Meshtastic? Share range reports, hardware recommendations, or lessons learned.