M5Stack makes three Cardputers and only the Zero runs Linux; the PicoCalc takes several cores and only the Luckfox Lyra runs MeshTerm. So the bare names were ambiguous, and every reference to the two devices now carries the variant: the --platform values and MESHTERM_PLATFORM, the Platform constants (PICOCALC_LYRA, CARDPUTER_ZERO), their lane decks and every screen's picocalc_lyra_lane / cardputer_zero_lane, the font inventories, the lane chips' theme styles, the scripts/ folders, the two chrome test files, and the docs and CLAUDE.md that name them. There is no alias: --platform picocalc is refused with the three real choices listed, rather than falling back to the desktop layout. The PicoCalc is auto-detected from its device tree, so it needs nothing. What names hardware or a user's data keeps its name: the PicoCalc keyboard's input-device name, its battery's sysfs supply, and the serial profile the Lyra setup script writes. .gitignore follows the firmware's folder, and the changelog keeps the words each release used. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2.3 KiB
scripts/
Repo-side tools. None of these ship in the wheel.
| Script | What it is for |
|---|---|
basemap-doctor.py |
Why a user's map has no basemap — certificates, DNS, proxy, or colour depth |
picocalc-lyra/ |
Calculinux device setup: console font, palette, Wi-Fi; xiao-radio/ is the XIAO radio kit (firmware build, flashing, UART setup) |
uconsole/ |
The uConsole's always-on SPI bridge service (MeshTerm can also drive that radio directly, with no script at all — see docs/devices/uconsole.md) |
cardputer-zero/ |
The Cardputer Zero's console host: fetch-terminus.py installs the 12-pixel Terminus fonts it draws in (OFL, so never shipped with MeshTerm) |
basemap-doctor.py
The map is the only networked part of MeshTerm, and every fetch failure on that path is
logged at DEBUG while log_level defaults to WARNING — so a reader whose tiles never
arrive sees a blank ground and no explanation. This prints the explanation and the fix.
Send a user this, to run on the machine with the problem:
curl -fsSL https://raw.githubusercontent.com/jpmartineau/MeshTerm/main/scripts/basemap-doctor.py -o /tmp/basemap-doctor.py
python3 /tmp/basemap-doctor.py
Any python3 will do: if that one has no MeshTerm, the script reads the interpreter out
of the installed meshterm command's shebang and hands itself over, so the answer always
comes from the app's own Python — a Mac routinely has three and only that one has the
trust store that matters. Save it to a file as above rather than piping into python3 -:
with no file on disk there is nothing to hand over.
Have them paste the whole output back. It names the interpreter, the certificate store,
the tile source, the cached-tile count, COLORTERM, and then one verdict:
- curl reached it, Python did not — the Python's certificate store is empty. A
python.org install on macOS ships that way until
Install Certificates.commandis run. - neither reached it — the network path: a firewall, a proxy, a DNS filter, or an outage. Nothing to fix in MeshTerm.
- both reached it — tiles are fine and the complaint is colour: an unset
COLORTERMmeans 256 colours, where the basemap's greens and blues collide. Terminal.app cannot do 24-bit colour at all.
Exit status is 0 when tiles arrive and 1 when they do not, so it can be scripted.