Skip to content

The LoRa network that speaks IRC.

Any IRC client. A LoRa radio network. Nothing in between to install. Off-grid channels across town — or across countries when routers federate over the internet.

/server 10.97.83.1 6667
/nick alice
/join #pizza

That’s the whole client setup. The USB-network firmware build hands your laptop a network interface over the cable; irssi does the rest.

No app to install

Point any IRC client — irssi, WeeChat, HexChat, anything from the last thirty years — at a LoRa Relay Chat (LRC) node and you’re on the network. Serial console and telnet TUI included for the truly minimalist. The client problem was solved decades ago; LRC doesn’t ask you to solve it again by trusting a new app.

Cellular, not flood

Flood meshes send every message to every node in earshot, and collapse under their own chatter as they grow. LRC routers sequence traffic and clients register — like phones to cell towers — so a busy channel costs one transmission per access network. Routers federate over TCP when the internet is there and keep working over RF when it isn’t.

Asymmetric multi-speed radio

A hilltop router can often reach you on a fast preset while you can only reach back on a slow one — forward and return are physically different links. LRC measures the asymmetry and picks the return lane that maximizes delivery probability per unit of airtime. No other LoRa mesh stack treats the two directions as the different problems they are. (Decision policy host-tested and on the wire; over-the-air actuation is on the bench roadmap.)

Loss is expected — and healed

Every channel is sequence-numbered per router. A missed message isn’t gone, it’s a gap, and gaps backfill automatically: scrollback on join, catch-up after a reboot, reconciliation after a netsplit — one recovery mechanism for all three. The network is a write-ahead log, not a best-effort shout.

Signed, public, and honest about it

LRC doesn’t encrypt chat — it signs it. Messages carry verifiable Ed25519-rooted identity, escalating from cheap 8-byte tags to periodic full signatures. Public chat with provable origin, like ham radio with cryptographic callsigns. Need confidentiality? Use Meshtastic or MeshCore — different charter, and we say so plainly.

Safe and legal by default

Firmware ships receive-only: it never transmits until an operator runs tx on — and even then refuses until a regulatory region is explicitly set. Duty-cycle, dwell-time and power limits are enforced by an airtime ledger in code, not a README disclaimer. A freshly flashed board cannot transmit under an unspecified regulatory regime, period.

Engineering you can audit

A wire format frozen byte-for-byte by golden tests. Hundreds of host tests, a network-scenario laboratory, and a chaos harness — run on every commit, no radio required. Docs that move in the same commit as behavior. The deep dive names every wart, because you’d find them anyway.

Early but real — pre-1.0, and this table is the truth, not a stats band:

Piece Status
Protocol, identity, routing, radio, storage docs complete drafts, normative, versioned
Portable core engine (codec, crypto, recovery, IRC server, TUI) builds for macOS/Linux/ESP32/nRF52; hundreds of host tests green in CI
lrcd Linux/macOS daemon federated chat over TCP, telnet TUI, Prometheus metrics, live event feed
XIAO ESP32S3 + Wio-SX1262 firmware flashed and verified on hardware, incl. over-the-air registration + chat between two radios
Heltec WiFi LoRa 32 V3 flashed and verified on hardware
RAK4631 (nRF52840) compiles; untested on hardware — labeled honestly everywhere
Signed releases + web flasher release pipeline built; awaiting first public tagged release
Phone app none, ever — that’s the point