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).
53 lines
2.0 KiB
Bash
Executable File
53 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Onefinity firmware deploy script.
|
|
#
|
|
# ./deploy.sh local — build & static-serve the UI on macOS
|
|
# (chrome only; no controller, shows
|
|
# DISCONNECTED overlay)
|
|
# ./deploy.sh hardware — fast iteration: rsync build/http/
|
|
# contents to the running Pi at
|
|
# onefinity.local, then restart bbctrl
|
|
# ./deploy.sh prod — full firmware update via the Pi's
|
|
# /api/firmware/update endpoint
|
|
# (equivalent to `make update`)
|
|
#
|
|
# Notes:
|
|
# * On macOS we cannot run the Python `bbctrl` controller directly
|
|
# because it imports the ARM-only camotics gplan.so. For full UI
|
|
# testing with live data, deploy to the Pi (hardware or prod).
|
|
# * `prod` requires a clean working tree.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
CMD="${1:-}"
|
|
|
|
case "$CMD" in
|
|
local) exec "$SCRIPT_DIR/scripts/deploy/local.sh" "$@" ;;
|
|
hardware) exec "$SCRIPT_DIR/scripts/deploy/hardware.sh" "$@" ;;
|
|
prod) exec "$SCRIPT_DIR/scripts/deploy/prod.sh" "$@" ;;
|
|
*)
|
|
cat <<USAGE
|
|
usage: $0 {local | hardware | prod}
|
|
|
|
local Build the UI and static-serve build/http/ in a tmux session
|
|
on macOS. Useful for iterating on the V09 chrome and routing.
|
|
URL: http://localhost:8770/
|
|
tmux: tmux attach -t onefin-local
|
|
|
|
hardware Fast iteration on the actual controller: rsync the freshly
|
|
built build/http/ tree onto onefinity.local, then restart
|
|
the bbctrl service. Requires SSH access as bbmc@onefinity.local.
|
|
Defaults: HOST=onefinity.local PASSWORD=onefinity
|
|
|
|
prod Build a full firmware package (.tar.bz2) and PUT it through
|
|
/api/firmware/update on the Pi. Equivalent to:
|
|
make update HOST=onefinity.local PASSWORD=onefinity
|
|
Requires a clean working tree.
|
|
USAGE
|
|
exit 1
|
|
;;
|
|
esac
|