UX
- The V09 redesign already exposed the W axis in the Control jog grid
(row 4 when w.enabled) and as a row in the DRO table. The Settings
shell now also surfaces a dedicated 'W Axis' rail entry that smooth-
scrolls to the W Axis (auxcnc) section of the main settings page.
The rail item is marked active only while the user is on Display &
Units AND the W Axis link was the most recent click.
- The W Axis section in src/svelte-components/src/components/Settings
View.svelte gets an id="w-axis" anchor so the scroll lands cleanly.
Tested live against onefinity.local. Aux status reports
{enabled: true, present: true, pos_mm: 43.96, homed: false}; the W
axis row appears in the DRO with the right purple styling, and the
jog row 4 shows W- / Home W / W+ / Probe.
Deploy scripts
- deploy.sh dispatches to scripts/deploy/{local,hardware,prod}.sh
with shorthand wrappers (deploy-local.sh / deploy-hardware.sh /
deploy-prod.sh).
- local: builds the UI bundle and serves build/http/ via
python3 -m http.server 8770 in a tmux session 'onefin-local'.
Useful for visual iteration on macOS — chrome only, no controller.
- hardware: rsyncs the freshly built build/http/ tree onto the Pi at
onefinity.local and restarts bbctrl. Stages to /tmp on the Pi and
uses sudo to install into the running egg's bbctrl/http directory,
so iteration time is ~5 seconds.
- prod: requires a clean working tree, then runs 'make pkg' followed
by 'make update HOST=onefinity.local PASSWORD=onefinity'.
Defaults can be overridden with environment variables (HOST, PASSWORD,
REMOTE_USER for the hardware path).
43 lines
1.2 KiB
Bash
Executable File
43 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# --- Production firmware update (Pi at onefinity.local) ---
|
|
#
|
|
# Builds a full firmware package (.tar.bz2) and PUTs it through the Pi's
|
|
# /api/firmware/update endpoint. This is the canonical OTA flow and goes
|
|
# through the bbctrl Tornado server's update handler.
|
|
#
|
|
# Defaults:
|
|
# HOST=onefinity.local
|
|
# PASSWORD=onefinity
|
|
#
|
|
# Override:
|
|
# HOST=10.1.10.55 PASSWORD=secret ./deploy.sh prod
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
HOST="${HOST:-onefinity.local}"
|
|
PASSWORD="${PASSWORD:-onefinity}"
|
|
|
|
# Require a clean working tree.
|
|
echo "🔍 Checking git state..."
|
|
if ! git diff --quiet || ! git diff --cached --quiet \
|
|
|| [[ -n "$(git ls-files --others --exclude-standard)" ]]; then
|
|
echo "❌ Refusing to deploy: working tree has uncommitted changes."
|
|
git status --short
|
|
exit 1
|
|
fi
|
|
echo "✅ Working tree is clean."
|
|
|
|
echo "🛠 Building firmware package..."
|
|
make pkg
|
|
|
|
echo "🚚 Uploading to http://${HOST}/api/firmware/update..."
|
|
make update HOST="$HOST" PASSWORD="$PASSWORD"
|
|
|
|
echo ""
|
|
echo "✅ Firmware update PUT to ${HOST}."
|
|
echo " The Pi will reboot itself after applying the update."
|
|
echo " Once it comes back, open: http://${HOST}/"
|