Getting started
Spangap runs on Linux and Mac. Windows with WSL is untested. All the host needs is Docker, git and Python 3 — everything else lives inside the build container and the workspace directory you create.
This page builds something real: Reticulous, the Reticulum mesh firmware developed alongside Spangap. If you just want to see it run, flash a ready-made image first.
Install the launcher
curl -fsSL https://spangap.org/install.sh | sh
This downloads the spangap launcher, a single file, checks that Docker, git
and Python are there, and puts it on your PATH, asking where if it isn’t
sure. Pass --bin-dir DIR to choose the directory outright, or -y to accept
the defaults without prompting.
Or do it by hand:
curl -o ~/bin/spangap https://raw.githubusercontent.com/spangap/spangap/refs/heads/main/spangap
chmod +x ~/bin/spangap
Everything else (the build container, the Python tools for flashing, the
source checkouts) is fetched the first time you run spangap init and
spangap build. The launcher keeps itself up to date afterwards.
If your shell can’t find spangap right after installing, open a new terminal
window.
Create a workspace and watch the device
Say you are in your home directory on a Mac, you want the workspace directory to
be called tdeck, and your LilyGo T-Deck Plus is on /dev/cu.usbmodem1101.
spangap init tdeck && \
cd tdeck && \
spangap monitor /dev/cu.usbmodem1101
Leave it running: it shows the device log, and later you can type commands into it.
Build and flash
Now open another terminal window and do:
cd tdeck && \
spangap build reticulous/reticulous --with spangap/hw-lilygo-tdeck && \
spangap flash
This downloads the sources, builds, and hands the image to the monitor window,
which flashes it. The device then reboots with a phone-style UI on the LCD and
a WiFi access point named reticulous_…. Connect to that and open
https://reticulous.local.
Put it on your WiFi
In the monitor window, type net add <ssid> <password> (quote the password if
it has spaces).
You can, and should, set a password for the web interface using your browser at
https://reticulous.local, or by typing passwd in the serial monitor. Setting
a password also allows you to log in to the device command line interface with
ssh admin@reticulous.local.
Other hardware
To do the same — minus the LCD UI — on a Heltec V4 LoRa board, replace --with
spangap/hw-lilygo-tdeck with --with spangap/hw-heltecv4. The other board
straddles are listed on the
Reticulous site.
On any other ESP32-S3 with PSRAM, replace --with ... with --flash-size <n>,
<n> being the megabytes of flash the board has. That build has no LoRa, but
does Reticulum over WiFi. Use spangap probe [<serial port>] to find out
whether your ESP32 has PSRAM and how much flash it has.
Next
To build the bare platform instead of Reticulous, use spangap/spangap-demo
in place of reticulous/reticulous. To write a straddle of your own, start
from the build system’s
README,
which says what a straddle is made of and how the build puts them together.