Lattice Lattice

Lattice + LoRa: messaging across kilometres.

Bluetooth and Wi-Fi cover the room, the building, the festival pocket. A USB-C LoRa dongle turns Lattice into a long-range radio that reaches across a town, a national park, or a stretch of coastline — with no cell network at all.

2–10 km in suburbs 10–40 km line-of-sight No cell network needed USB-C plug-and-play

Status: LoRa support ships in M16, post-v1.0. The messenger goes out first; the long-range upgrade follows. The protocol layer is already wired for it (TransportKind::Lora) so the day the driver lands, every existing Lattice install picks it up.


What LoRa is.

LoRa ("Long Range") is a low-power radio standard from Semtech, used by hobbyists, agriculture, asset trackers, and increasingly by 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 ~30 seconds of airtime at SF7 — slow, but real, and free, and reaches places nothing else does.

It is regulated. Each region has its own band, power limit, and duty-cycle rules. The dongle's firmware enforces them; Lattice double-checks the region matches the country you set in the app and refuses to transmit if there's a mismatch.

RegionBandMax EIRPDuty cycle
EU (UK, France, Germany, Spain, Italy …)EU868 (863–870 MHz)14 dBm1% / hour
US, Canada, MexicoUS915 (902–928 MHz)30 dBmUnlimited (LBT)
Australia, New ZealandAU91530 dBmUnlimited
Most of Asia (Japan, Singapore, Thailand …)AS923 (920–925 MHz)16 dBm1% / hour
IndiaIN865 (865–867 MHz)30 dBm1% / hour

Get the right region. An EU868 dongle will not work legally or reliably in the US, and vice versa. Sellers list the band on the spec sheet — 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 encrypted: ChaCha20-Poly1305, post-quantum hybrid handshake, sealed-sender padding. The dongle is just another bearer — the protocol doesn't care.

Bridges happen automatically.

A device with both Bluetooth and LoRa active becomes a bridge: it forwards local packets out over LoRa, and incoming long-range traffic into the local mesh. There's nothing to configure. A "home base" phone with a LoRa dongle plugged in becomes a household gateway to the long-range network.

The phone still works without it.

Lattice runs fine without LoRa — the local mesh covers most everyday cases. The dongle is for the moments where local mesh isn't enough: a hike, an outage that's lasting, two villages that need to keep in touch.


Compatible devices.

The Lattice driver targets any USB-C LoRa dongle that exposes a standard USB-CDC ACM serial endpoint and either an AT command-set or a documented serial protocol. We don't manufacture hardware — we list third-party devices that work, or that we have good reason to believe will work, with the planned lattice-transport-lora driver.

Honesty note. Until M16 ships the driver, none of these have been tested end-to-end with Lattice. The list below is what we've researched and intend to support on day one. If you're shopping ahead, focus on the chipset and region band rather than the brand — those determine 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. Resold on Amazon and AliExpress as £20–40 USB-C sticks under various brand names; 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.

reyax.com/products/RYLR998 · reyax.com/products/RYLR896

SeeedStudio LoRa-E5 mini (USB-C)

STM32WLE5JC chip with USB-C, ~£25. AT command firmware available; well-documented; SeeedStudio is a reputable vendor. Region: sold in 868 MHz, 915 MHz, and 470 MHz variants — pick the one matching your country.

seeedstudio.com/LoRa-E5-mini

Heltec WiFi LoRa 32 (V3)

ESP32-S3 + SX1262 dev board with USB-C and a small OLED. Around £20. Strictly speaking a development board rather than a finished consumer product — you'll need to flash its firmware once, then it behaves like a serial dongle. Popular in the Meshtastic community, which means good aftermarket cases and antennas exist.

heltec.org/project/wifi-lora-32-v3

LILYGO T-Echo / T-Beam Supreme

Self-contained handheld LoRa devices with their own screen, GPS, and battery. Usable as USB-C dongles when tethered to a phone, or standalone with their own keyboard for advanced users. ~£40–80. The T-Echo is the smaller form factor; the T-Beam Supreme is more substantial. Both ship in regional band variants.

RAK Wireless WisBlock RAK4631

Modular nRF52840 + SX1262 board, ~£30. Battery-included design popular with Meshtastic and Reticulum users. USB-C, well-supported firmware, regional variants. Not the cheapest option but the build quality is consistently better than the no-name Amazon sticks.

store.rakwireless.com/products/rak4631-lpwan-node

Adafruit Feather RFM95W (US-only practically)

SX1276 + SAMD51 + USB-C, ~$30. Reliable manufacturer, good docs. Sold primarily in the 900 MHz / US915 band so most useful in North America.

adafruit.com/product/3178

Bluetooth-tethered LoRa devices (first-class on every platform)

You don't have to plug a LoRa dongle into your phone's USB port — most of the popular consumer LoRa devices already pair to the phone 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 / configure, then leave the device in your bag or on a windowsill and let it pair over BLE.

This is now Lattice's preferred setup for everyday use — battery cost is lower (the LoRa radio runs on the device's own battery, not your phone's), and it works on every platform including iPhone (no MFi requirement, since BLE accessories don't need it).

LILYGO T-Echo (BLE)

Self-contained handheld with battery, e-ink display, GPS, and a BLE radio. Ships with Meshtastic firmware out of the box; Lattice rides on top via the documented BLE protocol. Tether once, it pairs back automatically thereafter. ~£40–60.

lilygo.cc/products/t-echo

RAK Wireless WisMesh / RAK4631

nRF52840 + SX1262 with a built-in battery and a BLE radio. Solid build quality, reliable firmware. Pair once over BLE; Lattice and Meshtastic share the device.

store.rakwireless.com/products/rak4631-lpwan-node

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.

heltec.org/project/wifi-lora-32-v3

USB-only dongles (still supported, just not preferred)

Ronoth LoStik

USB stick with a Microchip RN2483/RN2903 module. Used by various Meshtastic and Reticulum users. USB-only — works on iPad's USB-C and Android USB host. Cheap, reliable, but consumes phone battery while attached.

ronoth.com/products/lostik


Meshtastic interop — every existing Meshtastic node becomes a free relay for Lattice.

Meshtastic is the LoRa-mesh project that, more than any other, shipped the consumer-grade LoRa hardware ecosystem we're building on. Their volunteer community has spent years deploying nodes, writing firmware, and mapping coverage. Lattice's plan is to interoperate with Meshtastic — not compete with it — so that every node anyone has ever deployed becomes a potential relay for Lattice traffic at zero cost to anyone.

What this gives a Lattice user

The relationship is bidirectional: a Lattice phone with a LoRa dongle attached relays Meshtastic-native traffic in return, contributing capacity back to the volunteer network. The plan is documented openly in RFC-0018 with explicit ethical guardrails — coordinate with the project before shipping, default to local radios first, never 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. The reason Lattice's LoRa story works at all is because they did the hard ecosystem work first. meshtastic.org.


One messenger, every radio.

Each of these networks — LoRa, Meshtastic, Reticulum, LoRaWAN, ultrasonic, satellite — is incompatible with every other one at the protocol layer. Different framing, different routing, different communities. We don't try to unify them; we ride on top of them.

The noise stays at the radio layer. From your perspective there's only ever one Lattice. Every message rides through whichever combination of radios actually works at that moment, and you never see the choice.

That principle is documented in RFC-0020 — same idea as IP 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 — concretely.

You're at a remote campsite with a power cut and no cell coverage. You send a message to your sister, who's at home in another town, on her plain iPhone with no LoRa dongle. Here's what happens — same Lattice on both ends, no choices for you to make:

  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, one ciphertext blob the entire way through. Every relay between you and your sister sees encrypted bytes. Your message ends up in front of her, on a plain iPhone, despite none of the intermediate radios being something either of you owns or thinks about.

That is the point. Every protocol Lattice can speak makes the network bigger; every Lattice user with extra hardware makes it bigger for everyone else; every community-deployed node anywhere along the path makes the whole thing more reliable. From your end it is one app, one address book, one chat. The radios are doing all of the work in the background.

Other community networks we plan to ride on.

The full list is tracked in RFC-0019.

Reticulum (RNS) — the principled-cryptographer LoRa mesh

A decentralised mesh stack built around strong cryptography and sovereignty over your own keys. Different layer to Lattice (RNS is a transport, Lattice is a messenger), highly compatible philosophy. Plan: parallel framing alongside Meshtastic, behind the same "use community LoRa networks" toggle. reticulum.network.

The Things Network / Helium LoRaWAN — global emergency-beacon coverage

~20,000 community-run TTN gateways and hundreds of thousands of Helium gateways already cover meaningful chunks of populated areas. Useless for chat (severe duty-cycle limits), perfect for the "I'm safe / queued message available" emergency beacon. Plan: opt-in emergency-beacon mode post-M16. thethingsnetwork.org.

Ultrasonic audio (ggwave-style) — last-resort no-radio fallback

Phone speaker → microphone, a few hundred bps over near-ultrasonic audio. Works when Bluetooth and Wi-Fi are jammed, disabled, or simply unavailable; doesn't require pairing. Range is room-scale but real. Plan: shipped as a fallback transport in M17.

Iridium SBD — anywhere on Earth, paid per message

The "literally any point on the globe" tier — Iridium satellite short-burst-data via devices like the Garmin inReach Mini or RockBLOCK. ~£15/month subscription, ~10p per message. For SAR / expedition / disaster-zone use, not daily chat. Plan: spec the integration interface, defer first-party driver to post-v2.0.


Battery cost — be honest about it.

A LoRa dongle in idle-receive mode draws around 50 mA from the phone via USB. On a typical 4000 mAh phone, that's ~15–20% of battery per day on top of normal Lattice background cost. Active transmits are negligible (~30 ms each, a few times a day for a chat user).

We strongly recommend treating the dongle as an on-demand accessory: plug it in when you go on a hike, when an outage starts, when you're heading somewhere with no cell. Unplug it when you don't need it. A dedicated home-base phone left plugged in to a charger doesn't pay the cost — that's where always-on LoRa makes the most sense.


Buying checklist.


Platform support summary.

PlatformPathStatus
Android (USB-C)USB host mode, Lattice talks AT to the dongleTargeted for M16 launch
iPad with USB-CSame as Android via ExternalAccessory frameworkTargeted for M16 launch
iPhoneBluetooth-bridged dongle (no raw USB-serial allowed)Provisional — we'll recommend a specific device after testing

For the curious.