Lattice + LoRa: messaging across kilometres.
Bluetooth and Wi-Fi cover the room you're in, maybe the building. Plug a USB-C LoRa dongle into the phone and Lattice turns into a long-range radio that reaches across a town or a national park, with no cell network anywhere in the chain.
Status: the LoRa driver and Meshtastic-over-Bluetooth are built into the app today, on both Android and iPhone. A real Lattice handshake has already crossed a physical LoRa hop between two Meshtastic boards. The long-range path is still being shaken out on real hardware. Multi-hop convergence and USB-dongle bring-up aren't finished, and every install picks up those improvements as they land.
What LoRa is.
LoRa ("Long Range") is a low-power radio standard from Semtech. Hobbyists use it, so does agriculture and asset tracking, and lately so do mesh-messenger projects like Meshtastic. It trades throughput for distance: about 5 kbps at the fast setting (SF7), down to 300 bps at the slow-and-far setting (SF12). A single Lattice packet takes around 30 seconds of airtime at SF7. That's slow. But it's real, it's free, and it reaches places nothing else does.
It's also regulated. Each region has its own band, power limit and duty-cycle rules. The dongle's firmware enforces them, and Lattice double-checks the region against the country you set in the app and refuses to transmit if there's a mismatch.
| Region | Band | Max EIRP | Duty cycle |
|---|---|---|---|
| EU (UK, France, Germany, Spain, Italy …) | EU868 (863–870 MHz) | 14 dBm | 1% / hour |
| US, Canada, Mexico | US915 (902–928 MHz) | 30 dBm | Unlimited (LBT) |
| Australia, New Zealand | AU915 | 30 dBm | Unlimited |
| Most of Asia (Japan, Singapore, Thailand …) | AS923 (920–925 MHz) | 16 dBm | 1% / hour |
| India | IN865 (865–867 MHz) | 30 dBm | 1% / hour |
Get the right region. An EU868 dongle won't work legally or reliably in the US, and the same the other way round. Sellers list the band on the spec sheet, so match it to your country before you buy.
How Lattice uses it.
One more transport, same encryption.
Every byte over LoRa is encrypted exactly the way every byte over Bluetooth is: ChaCha20-Poly1305, post-quantum hybrid handshake, sealed-sender padding. To the protocol the dongle is just another bearer. It doesn't care which radio carried the packet.
Bridges happen automatically.
A device with both Bluetooth and LoRa active becomes a bridge. It forwards local packets out over LoRa and pulls incoming long-range traffic into the local mesh. There's nothing to set up. Leave a "home base" phone with a LoRa dongle plugged in and the whole household has a gateway to the long-range network.
The phone still works without it.
Lattice runs fine with no LoRa at all. The local mesh handles most everyday cases. The dongle is for the times when that isn't enough: a hike, an outage that's dragging on, two villages that need to keep in touch.
Compatible devices.
The Lattice driver works with USB-C LoRa dongles that expose a standard USB-CDC ACM serial endpoint and either an AT command-set or a documented serial protocol. We don't make hardware. This is a list of third-party devices that work, or that we've good reason to think will work, with the built-in driver.
Where this stands. The driver is built into the app. The list below comes from research, and hardware validation is still going. Some of the cheap USB dongles have been flaky in bring-up, so we're working through them one at a time. Meshtastic-tethered devices already work today via the Bluetooth path described further down. If you're shopping ahead, look at the chipset and the region band rather than the brand. Those are what decide whether a device can plausibly work.
USB-C dongles (Android, iPad)
Reyax RYLR998 / RYLR896 modules
Reyax's RYLR998 (SX1262, current generation) and RYLR896 (SX1276, older but plentiful) are the standard reference modules. They get resold on Amazon and AliExpress as £20–40 USB-C sticks under all sorts of brand names, but underneath they all expose the same Reyax AT command-set, which the Lattice driver targets directly. Check the band before buying. Reyax sells 868 MHz and 915 MHz variants under near-identical part numbers.
SeeedStudio LoRa-E5 mini (USB-C)
STM32WLE5JC chip with USB-C, about £25. AT command firmware is available, the docs are good, and SeeedStudio is a reputable vendor. Region: sold in 868 MHz, 915 MHz and 470 MHz variants, so pick the one matching your country.
Heltec WiFi LoRa 32 (V3)
ESP32-S3 + SX1262 dev board with USB-C and a small OLED. Around £20. It's a development board rather than a finished consumer product, so you'll flash its firmware once and after that it behaves like a serial dongle. It's popular in the Meshtastic community, which means there are good aftermarket cases and antennas for it.
LILYGO T-Echo / T-Beam Supreme
Self-contained handheld LoRa devices with their own screen, GPS and battery. You can use them as USB-C dongles tethered to a phone, or standalone with their own keyboard if you're an advanced user. £40–80. The T-Echo is the smaller of the two; the T-Beam Supreme is more substantial. Both ship in regional band variants.
RAK Wireless WisBlock RAK4631
Modular nRF52840 + SX1262 board, about £30. Battery-included design, popular with Meshtastic and Reticulum users. USB-C, well-supported firmware, comes in regional variants. Not the cheapest option, but the build quality is consistently better than the no-name Amazon sticks.
Adafruit Feather RFM95W (US-only practically)
SX1276 + SAMD51 + USB-C, about $30. Reliable manufacturer, good docs. It's sold mostly in the 900 MHz / US915 band, so it's most useful in North America.
Bluetooth-tethered LoRa devices (first-class on every platform)
You don't have to plug a LoRa dongle into the phone's USB port. Most of the popular consumer LoRa devices already pair over Bluetooth. They run their own firmware (commonly Meshtastic), expose a BLE GATT API, and Lattice talks to them the same way the Meshtastic app does. Plug in once to charge and configure, then leave the device in your bag or on a windowsill and let it pair over BLE.
This is now the preferred setup for everyday use. Battery cost is lower, because the LoRa radio runs on the device's own battery rather than your phone's. And it works everywhere, iPhone included: BLE accessories don't need MFi, so there's no Apple gate to clear.
LILYGO T-Echo (BLE)
Self-contained handheld with a battery, e-ink display, GPS and a BLE radio. It ships with Meshtastic firmware out of the box, and Lattice rides on top via the documented BLE protocol. Tether once and it pairs back automatically after that. £40–60.
RAK Wireless WisMesh / RAK4631
nRF52840 + SX1262 with a built-in battery and a BLE radio. Solid build, reliable firmware. Pair once over BLE and Lattice and Meshtastic share the device.
Heltec WiFi LoRa 32 (V3) with BLE
ESP32-S3 + SX1262 with USB-C and BLE. Around £20. Stock Meshtastic firmware exposes the BLE protocol Lattice speaks.
USB-only dongles (still supported, just not preferred)
Ronoth LoStik
USB stick with a Microchip RN2483/RN2903 module. A fair few Meshtastic and Reticulum users run them. USB-only, so it works on iPad's USB-C and Android USB host. Cheap and reliable, but it draws on the phone's battery the whole time it's attached.
Meshtastic interop: every existing Meshtastic node becomes a free relay for Lattice.
Meshtastic is the LoRa-mesh project that, more than any other, built the consumer-grade LoRa hardware ecosystem we're standing on. Their volunteer community has spent years deploying nodes, writing firmware and mapping coverage. Meshtastic interop is built into the app today on both Android and iPhone, so that every node anyone has ever deployed becomes a potential relay for Lattice traffic at zero cost to anyone. A real Lattice handshake has already crossed a physical LoRa hop between two Meshtastic boards. The multi-hop and bidirectional-relay parts, and the wider coordination, are still being built.
What this gives a Lattice user
- Cross-town reach without your own infrastructure. A community-deployed Meshtastic node anywhere along the path between two Lattice users will relay opaque Lattice ciphertext, even if neither user owns LoRa hardware themselves.
- Drop-in for existing Meshtastic owners. Already own a T-Echo, Heltec or RAK with stock Meshtastic firmware? It works as a Lattice transport with no reflash. Lattice speaks the BLE protocol that's already on the device.
- Disaster response coverage. Meshtastic camps deploy fast after hurricanes, earthquakes and infrastructure outages. Lattice rides on that infrastructure for end-to-end-encrypted aid coordination, while the Meshtastic side carries on doing what it already does (community broadcast, public coordination).
- Festival, protest, and backcountry coverage. Meshtastic is already deployed at festival camps, by hut associations in national parks, by community organisers. Lattice users get all of that as bonus mesh.
It's meant to go both ways. A Lattice phone with a LoRa dongle attached relays Meshtastic-native traffic in return, putting capacity back into the volunteer network. That bidirectional bridging is still being built. The design is documented openly in RFC-0018 (in the source repo, published with v1.0), with explicit ethical guardrails: coordinate with the project before shipping, reach for local radios first, and don't overload the volunteer infrastructure.
Credit: Meshtastic is the work of Kevin Hester, Sacha Weinberg, and a community of hundreds of contributors going back to 2019. Lattice's LoRa story works at all because they did the hard ecosystem work first. meshtastic.org.
One messenger, every radio.
LoRa, Meshtastic, Reticulum, LoRaWAN, ultrasonic, satellite: each of these networks is incompatible with every other one at the protocol layer. Different framing, different routing, different communities behind them. We don't try to unify them. We ride on top of them.
All that mess stays down at the radio layer. From where you sit there's only ever one Lattice, and every message rides through whichever combination of radios happens to work at that moment. You never see the choice being made.
That principle is documented in RFC-0020 (in the source repo, published with v1.0). It's the same trick IP pulled, becoming the layer that ran on top of every link layer instead of trying to merge them. We're not building yet another mesh protocol. We're building the messenger that uses all of them.
The journey of one message.
You're at a remote campsite. There's a power cut and no cell coverage. You send a message to your sister, who's at home in another town on a plain iPhone with no LoRa dongle. Same Lattice on both ends, and nothing for you to decide. This is the path it takes:
You ──BT──▶ Friend's phone (LoRa dongle)
│
└──LoRa──▶ Campsite Meshtastic node (volunteer-deployed)
│
└──Meshtastic relay──▶ Reticulum node, next town
│
└──Reticulum──▶ Sister's local Lattice user
│
└──BT──▶ Sister's iPhone
Six hops, four different radio protocols, two community-deployed networks, and one ciphertext blob the whole way through. Every relay between you and your sister only ever sees encrypted bytes. The message lands in front of her on a plain iPhone, even though none of the radios in the middle is something either of you owns or has ever thought about.
So every protocol Lattice can speak makes the network a bit bigger. Every Lattice user with extra hardware makes it bigger for everyone else, and every community-deployed node along the way makes the whole thing more reliable. From your end it's one app, one address book, one chat. The radios do all the work, out of sight.
Other community networks we plan to ride on.
The full list is tracked in RFC-0019 (in the source repo, published with v1.0).
Reticulum (RNS) — the principled-cryptographer LoRa mesh
A decentralised mesh stack built around strong cryptography and keeping control of your own keys. It sits at a different layer to Lattice (RNS is a transport, Lattice is a messenger), but the philosophy lines up well. The plan is parallel framing alongside Meshtastic, behind the same "use community LoRa networks" toggle. reticulum.network.
The Things Network / Helium LoRaWAN — global emergency-beacon coverage
Around 20,000 community-run TTN gateways and hundreds of thousands of Helium gateways already cover meaningful chunks of populated areas. The duty-cycle limits make them useless for chat, but they're well suited to an "I'm safe / queued message available" emergency beacon. The plan is an opt-in emergency-beacon mode, post-M16. thethingsnetwork.org.
Ultrasonic audio (ggwave-style) — last-resort no-radio fallback
Phone speaker to microphone, a few hundred bps over near-ultrasonic audio. It works when Bluetooth and Wi-Fi are jammed, switched off or just not there, and it needs no pairing. The range is room-scale but real. The plan is to ship it as a fallback transport in M17.
Iridium SBD — anywhere on Earth, paid per message
The any-point-on-the-globe tier. Iridium satellite short-burst-data via devices like the Garmin inReach Mini or RockBLOCK. About £15/month and roughly 10p per message. This one's for search-and-rescue, expeditions and disaster zones, not daily chat. The plan is to spec the integration interface now and leave a first-party driver until after v2.0.
Battery cost.
A LoRa dongle sitting in idle-receive mode draws around 50 mA from the phone over USB. On a typical 4000 mAh phone that works out at roughly 15–20% of battery a day on top of Lattice's normal background cost. The actual transmits barely register: about 30 ms each, a handful of times a day for someone using it to chat.
So treat the dongle as an on-demand accessory. Plug it in for a hike, or when an outage starts, or when you're heading somewhere with no cell, and unplug it the rest of the time. A home-base phone that lives on a charger never feels the drain, which is where always-on LoRa makes the most sense.
Buying checklist.
- Region band first. EU868 in Europe, US915 in North America, AS923 / IN865 / AU915 elsewhere. The wrong band makes the dongle both illegal and useless.
- USB-C connector. Steer clear of micro-USB devices unless you keep a USB-C OTG adapter handy.
- Standard chipset. SX1262 (newer) or SX1276/SX1278 (older but everywhere). The driver doesn't target niche or proprietary chips, so avoid them.
- Antenna included. Some bare modules ship without an antenna and won't transmit usefully. Check the listing.
- Avoid LoRaWAN-only devices. Anything sold as a "LoRaWAN gateway" or "TTN node" expects a network server in the loop. Lattice uses raw LoRa, not LoRaWAN, so the device needs to support raw mode. Most do, via AT commands.
Platform support summary.
| Platform | Path | Status |
|---|---|---|
| Android (USB-C) | USB host mode, Lattice talks AT to the dongle | Driver built in; hardware bring-up ongoing |
| iPad with USB-C | Same driver as Android via USB host | Same driver; bring-up ongoing |
| iPhone | Bluetooth-tethered Meshtastic device (no raw USB-serial allowed) | Works today via the Meshtastic Bluetooth path |
For the curious.
- Density and routing — how Lattice's mesh handles bridges between transports.
- What Lattice doesn't do — including the ranges LoRa can't cross.
- Meshtastic — the LoRa-mesh project that pioneered most of the consumer-grade LoRa hardware ecosystem we're building on. Different protocol, different tradeoffs, similar physics.
- RFC-0017 — the full technical design for LoRa integration (cross-transport bridging worked example, region-band table, power profile) ships with the source repository at v1.0.