Quickstart
Two ways in. The laptop path needs no hardware at all and takes about two minutes; the radio path needs a supported board (see Hardware).
Path A — no hardware: run lrcd on your machine
Section titled “Path A — no hardware: run lrcd on your machine”lrcd is the native Linux/macOS daemon: a full LoRa Relay Chat router that speaks
TCP federation instead of (or alongside) a radio. Build it and point your
IRC client at it:
git clone https://github.com/REPLACE_ME_OWNER/lrc && cd lrccmake -S . -B build && cmake --build build -j./build/lrc_tests # the whole host suite, green./build/lrcd --name node1 --rtr 1 # IRC on :6667, TUI on :2323Then, in any IRC client:
/server 127.0.0.1 6667/nick alice/join #pizzaNo client? telnet 127.0.0.1 2323 gets you the daemon’s own ircII-style
TUI — the same engine, served over telnet.
Two daemons federate with --peer host:port; a channel joined on both is
one channel, sequence-merged. That’s the backbone the radio side attaches to.
Path B — radio hardware
Section titled “Path B — radio hardware”-
Get a board. The reference target is the Seeed XIAO ESP32S3 + Wio-SX1262 combo; the Heltec WiFi LoRa 32 V3 is also verified on hardware. Details and honest caveats: Hardware.
-
Flash it. Use the web flasher (Chrome/Edge), or from a source checkout:
Terminal window cd firmwarepio run -e xiao_wio_sx1262 -t uploadpio device monitor # 'help' lists console commandsFirst flash on a XIAO-class board? Read the BOOT-button note first — the ESP32-S3’s native USB makes the very first flash slightly special.
-
Connect your client. The firmware serves the IRC gateway over its WiFi AP (stock client →
192.168.4.1:6667) or, on the USB-network build, straight over the USB cable (10.97.83.1:6667after DHCP). -
Stay receive-only, or opt into TX. The firmware boots receive-only, always — it will not transmit until an operator runs
tx onat the console, andtx onitself refuses until a regulatory region is explicitly set (region <name>). A freshly flashed board can never transmit under an unspecified regulatory regime, and never without a human confirming an antenna is attached. This is a safety property, not a limitation — see Radio and Hardware.
First success
Section titled “First success”You know it worked when /join returns a names list and scrollback
replays — channel history is sequence-backfilled on join, which is itself a
demo of the recovery machinery. From there, the
user guide covers everything you can do from
inside the client, including talking to the *lrc service user.