Public Access
Settings: its rows in five groups
Settings had grown to 21 rows in one list. It opens on five groups (This device, Display, GNSS and radio, Network, System); Enter opens one, Back returns to the groups, and Back from the groups leaves Settings. SettingsMenu holds the groups and which one is open (host-tested: every setting is in exactly one group). The guide, the how-tos, the README, the scripts' messages and the firmware's own name the new paths, such as "Settings > System > Firmware". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0162FokPdvY2KsS4NBfwyWPk
This commit is contained in:
+1
-1
@@ -2,7 +2,7 @@
|
||||
# Flash the firmware over USB, then open the serial monitor.
|
||||
# Usage: scripts/flash.sh [--debug] [port] USB (default: the first Espressif device found)
|
||||
# scripts/flash.sh --ota [host] Wi-Fi: build, sign and push a Firmware Update
|
||||
# (host: the device's IP from Settings > Firmware, or $RORO_OTA_HOST)
|
||||
# (host: the device's IP from Settings > System > Firmware, or $RORO_OTA_HOST)
|
||||
# --debug (USB only): once flashed, switches the Debug Console on and gives it the token in
|
||||
# ~/.config/roro9stack/debug-token, over the serial port (ADR 0010, Q192), so scripts/rdbg.py works
|
||||
# at once. The settings survive later updates: it is needed once for a device, not at each flash.
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"""Pushes a signed Update File to a Cardputer over Wi-Fi (TCP 3232) and reports the result.
|
||||
|
||||
Usage: scripts/ota_push.py <file.ota> <host>
|
||||
<host> is the device's IP (shown in Settings > Firmware).
|
||||
<host> is the device's IP (shown in Settings > System > Firmware).
|
||||
"""
|
||||
import socket
|
||||
import sys
|
||||
|
||||
+7
-7
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
"""The Debug Console, over Wi-Fi (TCP 2323, see ADR 0010). Switch it on first: Settings > Debug Console.
|
||||
"""The Debug Console, over Wi-Fi (TCP 2323, see ADR 0010). Switch it on first: Settings > System > Debug Console.
|
||||
|
||||
Usage: scripts/rdbg.py [-H host] [-t token] [-b] [command ...]
|
||||
no command interactive: type commands, see every console line live; Ctrl-D or `quit` leaves
|
||||
command runs it and prints what follows, until the console has been quiet for a moment
|
||||
-H host the device's IP (Settings > Debug Console), default $RORO_OTA_HOST
|
||||
-t token the device's token (also --token), as Settings > Debug Console shows it: dashes and
|
||||
-H host the device's IP (Settings > System > Debug Console), default $RORO_OTA_HOST
|
||||
-t token the device's token (also --token), as Settings > System > Debug Console shows it: dashes and
|
||||
case don't matter. Otherwise $RORO_DEBUG_TOKEN, otherwise ~/.config/roro9stack/debug-token
|
||||
-b also print the backlog the device sends on connecting (boot messages and so on)
|
||||
|
||||
@@ -55,7 +55,7 @@ def find_token(given):
|
||||
token = tidy_token(token or "")
|
||||
if not token:
|
||||
sys.exit("No token: pass -t <token>, set RORO_DEBUG_TOKEN, or put it in " + TOKEN_FILE +
|
||||
"\n(the device shows it in Settings > Debug Console)")
|
||||
"\n(the device shows it in Settings > System > Debug Console)")
|
||||
return token
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ def log_in(sock, token):
|
||||
"""Answers the device's challenge; returns the banner line, or exits saying what went wrong."""
|
||||
first = read_until(sock, b"\n", 10)
|
||||
if first is None:
|
||||
sys.exit("device: nothing came back. Is the console switched on (Settings > Debug Console)?")
|
||||
sys.exit("device: nothing came back. Is the console switched on (Settings > System > Debug Console)?")
|
||||
line = first.decode(errors="replace").strip()
|
||||
if line.startswith("locked"):
|
||||
sys.exit("device: closed for a minute after too many wrong tokens")
|
||||
@@ -75,7 +75,7 @@ def log_in(sock, token):
|
||||
if banner is None:
|
||||
sys.exit("device: no answer")
|
||||
if banner.startswith(b"denied"):
|
||||
sys.exit("device: wrong token (Settings > Debug Console shows the right one)")
|
||||
sys.exit("device: wrong token (Settings > System > Debug Console shows the right one)")
|
||||
return banner
|
||||
|
||||
|
||||
@@ -326,7 +326,7 @@ def main():
|
||||
try:
|
||||
sock = socket.create_connection((host, PORT), timeout=10)
|
||||
except OSError as e:
|
||||
sys.exit(f"device: can't connect to {host}:{PORT} ({e}). Is the console switched on (Settings > Debug Console)?")
|
||||
sys.exit(f"device: can't connect to {host}:{PORT} ({e}). Is the console switched on (Settings > System > Debug Console)?")
|
||||
with sock:
|
||||
banner = log_in(sock, token)
|
||||
show = sys.stdout if backlog or not args else None
|
||||
|
||||
@@ -47,7 +47,7 @@ PREVIOUS="$(git -C "$SRC" describe --tags --abbrev=0 "$VERSION^" 2>/dev/null ||
|
||||
echo
|
||||
echo "## Files"
|
||||
echo
|
||||
echo "- \`$NAME.ota\`: the signed Update File. Copy it to \`/updates\` on the SD card and install it from Settings > Firmware or the Storage App, or push it over Wi-Fi with \`scripts/ota_push.py\`."
|
||||
echo "- \`$NAME.ota\`: the signed Update File. Copy it to \`/updates\` on the SD card and install it from Settings > System > Firmware or the Storage App, or push it over Wi-Fi with \`scripts/ota_push.py\`."
|
||||
echo "- \`$NAME-factory.bin\`: the whole flash image, for a first install over USB at offset 0."
|
||||
echo "- \`$NAME.elf.gz\`: the symbols, to decode a crash report from this build."
|
||||
echo "- \`SHA256SUMS\`: checksums of the three."
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"""Copies a file to the Cardputer's SD card over the USB serial console (the `sd put` command).
|
||||
|
||||
Usage: scripts/sd_put.sh <file> [card path]
|
||||
The card path defaults to /updates/<file name>, where Settings > Firmware finds Update Files.
|
||||
The card path defaults to /updates/<file name>, where Settings > System > Firmware finds Update Files.
|
||||
The device acknowledges each chunk once it's on the card, checks the SHA-256 of the whole file,
|
||||
and only then renames <card path>.part to <card path>.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user