Skip to content

usb phase 2: la voltage, flash and blob installs over the USB network - #28

Merged
wardviaene merged 12 commits into
usb-netfrom
usb-net-phase2
Oct 13, 2026
Merged

wardviaene merged 12 commits into
usb-netfrom
usb-net-phase2

Conversation

@wardviaene

Copy link
Copy Markdown
Member

Stacked on #27. This is phase 2 of USB networking: the CLI stops depending on the console commands that the firmware will drop, before any firmware drops them.

With a USB connection, the commands that work both ways use the pod's USB network adapter when it is up and fall back to the console otherwise (older firmware, Wi-Fi configured, adapter not up):

  • la voltage: over the USB network.
  • flash (SWD): the DAP probe runs over TCP.
  • Wiring profile lookup: works over the USB network.
  • install-blobs, plus the blob steps of set-wifi and flash-self: use blob_status + ota_* with a target (new blobTarget: network or console).

Policies, the cloud CA/proxy, Wi-Fi and identity stay on the console (physical presence).

Tests

  • go test ./... passes.
  • HW on baea06 (macOS):
    • la voltage --connection usb answers over 10.237.8.85.
    • install-blobs --only gw1 --force goes through the USB network: 102 KB in 2.3 s, pod signature check ok.
  • flash over the USB network is not HW-run here. It is the same code path as the LAN; only the address resolution is new.

Open

  • Firmware console trim: waits on the user's answers about the console commands that have no JSON equivalent.
  • flash-self with Wi-Fi configured: if the firmware drops console upload-*, a pod with Wi-Fi configured (USB networking off) needs another path for its post-flash blob install.

🤖 Generated with Claude Code

… network

Phase 2 of USB networking, ahead of trimming the firmware console: with a
USB connection, the commands that work both ways use the pod's USB network
adapter when it is up and the console otherwise. la voltage, flash (the
DAP probe over TCP), the wiring profile lookup, and install-blobs (also the
blob steps of set-wifi and flash-self), which now sends blobs with
blob_status + ota_* through the USB network. Policies, the cloud CA/proxy,
Wi-Fi and identity stay on the console.

HW (macOS, baea06): la voltage --connection usb answers over 10.237.8.85;
install-blobs --only gw1 --force through the USB network: 102 KB in 2.3 s,
pod signature check ok.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wardviaene and others added 4 commits October 12, 2026 21:21
With the USB network unusable (Wi-Fi configured, adapter not up) the
console fallback met a firmware that moved la-voltage and power to the
JSON API, and la voltage said to update the firmware. Say what happened
and why the USB network did not work instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…SB network

A console that answers unknown command to la-voltage is either too old to
have it or 3.9.0+ (which moved it to the JSON API); only the latter
reports a USB network. Also gofmt flash.go.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wardviaene and others added 7 commits October 12, 2026 21:45
… generations

Firmware 3.9.0 (benchpod-firmware#48) answers la-voltage, power and the
other commands it moved to the JSON API with a moved-to-the-network-API
line instead of unknown command. The console client reports it as
ErrMovedToNetwork, which la voltage and flash turn into the reason the USB
network was not usable. Tests: la-voltage and power against an older and a
3.9.0 console, the la voltage message for each, and install-blobs staying
on the console for firmware before 3.9.0 and for a pod with Wi-Fi set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…re-find)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wardviaene

Copy link
Copy Markdown
Member Author

Folded into #27 (one PR per repo, so it all releases at once): usb-net now contains this branch. Continuing in #27.

@wardviaene
wardviaene merged commit 93c8971 into usb-net Oct 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant