Project overview
A Reticulous firmware is assembled from straddles, Spangap’s modules: each is a firmware component plus, where it has one, a browser app. The Spangap straddles provide the runtime, networking, web UI and LCD shell; the Reticulous straddles add the mesh stack and its apps.
Board support
One of these goes after --with when you build. They live in the Spangap
GitHub organisation.
spangap/hw-lilygo-tdeck— LilyGO T-Deck Plus: LoRa (SX1262), 320×240 LCD, QWERTY keyboard, trackball, GNSS and microSD.spangap/hw-heltecv4-r2— Heltec V4 LoRa board, 2 MB PSRAM version (OLED status display).spangap/hw-heltecv4-r8— Heltec V4 LoRa board, 8 MB PSRAM version (OLED status display).spangap/hw-meshnology-w12— Meshnology W12: LR2021 dual-band LoRa behind a 30 dBm front end, 0.96” OLED, GNSS header.spangap/hw-wismesh-tap-v2— RAK WisMesh TAP V2: handheld LoRa (SX1262) with a 2.8” capacitive touch screen, GNSS and microSD.spangap/hw-lilygo-tbeam-supreme— LilyGo T-Beam S3 Supreme: LoRa (SX1262), GNSS, battery-backed clock, 1.3” OLED, 18650 holder.spangap/hw-waveshare-28b— Waveshare ESP32-S3-Touch-LCD-2.8B: a 2.8” 480×640 RGB touch panel with an IMU, a battery-backed RTC and microSD. No radio beyond the SoC’s own WiFi/BLE.spangap/hw-nibble-zero— Retia Nibble Zero: ESP32-S3-Zero + LoRa (SX1262), Flipper Zero add-on (headless).spangap/hw-xiao-esp32s3-sx1262— Seeed XIAO ESP32S3 + Wio-SX1262: thumb-sized LoRa (SX1262) kit (headless).spangap/hw-lilygo-t3s3-sx1262— LilyGo T3-S3 (LoRa32): SX1262 + microSD (headless).spangap/hw-lilygo-t3s3-lr1121— LilyGo T3-S3 (LoRa32): dual-band LR1121- microSD (headless).
The Reticulous straddles
reticulous— the top-level straddle you build. It has no firmware code of its own: it ships the browser app, the data image and the LCD icons, and pulls in everything below plus the Spangap platform. You build it together with a board straddle.rns— the Reticulum stack: identities, destinations, the path table, transport, links, resources and channels, all in onernsdtask. It has no radio or IP of its own: the interface straddles below plug into it, and apps talk to it through a C API.iface-tcp— Reticulum over plain TCP/IP (outbound peers plus an inbound server), HDLC-framed to interop with desktop Reticulum.iface-lora— Reticulum over LoRa radios via RadioLib (SX126x / SX127x / SX128x / LR11x0 / LR2021), up to four on one SPI bus.iface-espnow— Reticulum over Espressif ESP-NOW using the long-range PHY, one RNS packet per frame.iface-auto— zero-config AutoInterface over the local WiFi LAN, wire-compatible with upstream Reticulum’sAutoInterface.lxmf— the LXMF messaging mailbox: sends and receives signed messages, holds up to four identities, pays and enforces proof-of-work stamps, and interoperates wire-for-wire with Sideband, NomadNet and MeshChat.nomad— a Nomad Network “text web” client for browsing Micron pages and files hosted onnomadnetwork.nodedestinations over Reticulum Links.rnsh— a remote shell over Reticulum, server and client: SSH, but over the mesh, into the device command line.maps— an offline map viewer on the LCD, drawing pre-rendered tiles from the SD card around the GPS position.
The Spangap platform
Underneath it all: spangap, the build system; spangap-core, the
runtime (boot, settings store, inter-task messaging, filesystem, command line,
authentication, cron, logging, power management, OTA); spangap-net, WiFi
and IP with the optional remote-access services (certificates, dynamic DNS,
port mapping, WireGuard, SSH); spangap-web, the web server and the
browser shell that folds every straddle’s UI into one web app; and
spangap-lcd, the phone-style UI that Reticulous draws its screens on.
The Spangap overview describes each of
them.