Fictrac bridge - #123
Conversation
Add the host/UI side of reflashing a G6 panel's firmware through the arena controller, plus the wire-protocol support and tests. arena_console.html: - Firmware row: Upload .bin -> /firmware/panel.bin, Info (footer readback), 1-based panel-number input, Flash panel, Verify panel. Timeouts could probably be shortened…
Add a local bridge so an external FicTrac feed can drive the arena's host-stepped display (mode 3) through the browser, with no firmware changes. - fictrac-bridge/: a pixi (Python) workspace. bridge.py reads FicTrac records (UDP datagrams or TCP), maps each to a frame index via a single editable policy fn, and broadcasts it over a WebSocket with coalescing (latest index wins, no backlog). It also appends browser log events to a file — the reverse channel, since the browser can't write files itself. - fictrac_sim.py emits FicTrac-format (25-field) random-walk data for hardware-free testing; matches FicTrac's UDP-sender / TCP-server roles. - arena_console.html: new "Closed-loop bridge" panel — a WS client + coalesced sender that reuses the ArenaSession broker and the SET_FRAME_POSITION (0x70) path, gated on a mode-3 pattern; reverse-logs each applied frame. - pixi.toml/pixi.lock: new workspace (python + websockets; bridge/sim tasks). See fictrac-bridge/README.md.
|
@floesche — the ISP set is all merged 🎉 reiserlab/LED-Display_G6_Firmware_Panel#11 (panel) + reiserlab/LED-Display_G6_Firmware_Arena#15 (arena) + #121 (console UI) + reiserlab/Modular-LED-Display#61 (docs) are in One follow-up on this PR: since #121 was squash-merged, and The conflicts will be only in the three files #121 and #123 both touched:
Resolution is "keep |
The main->fictrac-bridge merge kept both copies of the panel-firmware upload/info/flash block, so const fwFileInput was declared twice in the main inline script -> SyntaxError, breaking the whole console script (Connect, command dispatch, FicTrac). Removed the duplicate copy; verified with node --check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@floesche heads-up — I pushed a small fix straight to this branch ( The bridge itself is great — I ran it headless ( |
|
You should also be able to provide a previously recorded fictrac path as an argument for Sim Feel free to merge when you think it's ready |
The bridge
This PR contains the ISP programming (#121), so either merge that first or review both at once here.