VE6SLP / Projects

Download commands. Keep your existing setup.

Add a named Lua file to Aspen or Willow without reflashing. Start with a greeting, keep a private note, sample nearby repeater signal or schedule repeater monitoring.

Library 0.1.1 · Downloads and checksums · Source and contribution guide

Greeting

A small first command to check installation and adapt for your own bot. Send !hello mesh; expect Hello mesh. !help hello shows its arguments.

For: Aspen and Willow with native Lua. Access: public command, subject to your existing DM and channel policies. It writes no data and makes no network requests.

Download greeting ZIP

Private notes

Send !note-save lunch at noon in a private DM, then !note-read. Each authenticated caller has a separate note. This starter shows transactional storage and data migration; the bundled !remember commands remain available.

For: Aspen and Willow with native Lua transactions. Access: private DMs. Notes survive restart and code removal. Version-1 note data remains readable after upgrading or rolling back the example.

Download private notes ZIP

Repeater SNR and RSSI

Send !snr, !snr d1 or !rssi d1. Prefixes ignore letter case. Replies show average/P95 SNR and average RSSI from received repeater hops. The dashboard and metrics use the same report.

For: Willow 0.0.6 or newer, or Aspen 0.1.12 or newer. Read packet api and confirm report=1 and capability 8.

The ZIP includes the compiled Wasm sampler and Lua commands. It needs no compiler on your installation computer. The sampler uses packet slot 0 and one 64 KiB memory; inspect and export an occupied slot before replacing it. It samples received RF without sending extra packets.

Programs and settings survive restart. Signal samples survive modem reconnects but start empty after a node or worker restart. Your metrics receiver retains exported history.

Download repeater signal ZIP

Install the sampler as well as the commands

Run from the Aspen source checkout with the downloaded files at an absolute path. These commands assume packet slot 0 is available. Set a private password file and use your trusted management network.

python3 tools/admin.py --web http://RADIO_IP \
  --password-file /private/node-password \
  packet install 0 /absolute/download/repeater-snr.wasm
python3 tools/admin.py --web http://RADIO_IP \
  --password-file /private/node-password packet budget 0 1 100000 20000 9
python3 tools/admin.py --web http://RADIO_IP \
  --password-file /private/node-password packet enable 0 on
python3 tools/admin.py --web http://RADIO_IP \
  --password-file /private/node-password \
  source install snr /absolute/download/snr.lua

For Willow, replace the web/password options in each command with --willow-socket /absolute/state/admin.sock. The ZIP's README and Willow packet guide cover readback and removal. Existing channel rules still decide who may use the commands.

Repeater monitoring

Schedule native status requests for saved repeater targets, including battery voltage when the remote hardware provides it. This is a background Lua program; it adds no public command. Use the existing bot repeaters administration controls to add, pause or remove targets.

For: Aspen with the native repeater API. Configure targets and each repeater's read-only ACL, enable the monitor and grant scheduled events. Preserve other event bits when adding bit 16.

Polls use RF airtime and obey the native interval, route-discovery cooldown and shared radio admission. Installation preserves the saved event grants and monitor enable setting. If both already permit scheduled monitoring, the program can begin polling as soon as it becomes active. Targets and last-good data remain under the existing native monitor's storage rules.

Download repeater monitor ZIP

Configure targets, grants, telemetry and Grafana

Install one file, then try its command

  1. Download and extract the selected ZIP. Read its README and check the release checksum. Each bundle includes its source files, permissions, requirements, licence and hashes.
  2. Use the current Aspen admin tool from your source checkout. List the installed named sources first; export a source before replacing the same name.
  3. Install the named Lua source using the commands below. Additive installation retains bundled commands and unrelated sources; conflicting exports reject the candidate.
  4. Read source status, then send the documented command in a DM. Signal monitoring also needs its packet sampler; repeater monitoring needs its native targets and grants.

Aspen

python3 tools/admin.py --web http://RADIO_IP \
  --password-file /private/node-password source list
python3 tools/admin.py --web http://RADIO_IP \
  --password-file /private/node-password \
  source install greeting /absolute/download/hello.lua

Willow

python3 tools/admin.py \
  --willow-socket /absolute/state/admin.sock source list
python3 tools/admin.py \
  --willow-socket /absolute/state/admin.sock \
  source install greeting /absolute/download/hello.lua

The ZIP contains a directory named after the download; use the full extracted file path. Source names are greeting, notes, snr and monitor. Substitute that name and its Lua file when installing another entry.

The Lua source set shares its size and name limits. Existing owner controls continue to govern channel, storage, network and event permissions; grant only the permissions an entry needs.

Update or remove

Update with source install NAME FILE. Export first with source export NAME /private/saved.lua. Remove just that Lua entry with source remove NAME using the same connection options. Removal stops that entry's commands and background handlers. Its scoped stored data remains on the node, including saved notes; native monitor targets and last-good data remain under the monitor controls. Packets already transmitted are unaffected.

For signal monitoring, packet enable 0 off stops sampling; packet remove 0 removes its Wasm source. Removing only snr leaves the sampler running. Restoring an exported Lua file changes the code while keeping its stored data.

Write and test your own command · Install over LoRa through a separate gateway · Build and contribute library entries