- stm32_link.py: port to the live 114-byte broadcast protocol (magic
0xAA55AA55, odd parity 8-O-1, 100 Hz publish, repetition-validated,
no CRC); 39 params incl. adc4_trig_phase/iin_zero_sum, CLEAR_FLAGS,
30-bit flag table; commands stay CRC-16 framed; Telemetry aliases
BroadcastData, efficiency uses iout_slow and eff_net subtracts P_sys
- gui_workers.py: STM32Worker reader thread with counter dedup, rate/
loss counters, 20 s graph history, full-rate telemetry CSV writer
- gui.py: right-side telemetry panel (link state, power + EFF net,
heatsink/board temps, Vfly group, control, HRTIM, status-flag
checkboxes, fault registers), Vfly + selectable corr/phase-ofs
graphs, 20 s rolling window on all plots, dual CSV logging (merged
stm_* columns + <stem>_telem.csv), logging on by default into
logs/data_<timestamp>.csv, Plot Eff button
- sweep guards: PSU 20 A input-current gate (conservative estimate +
measured backstop + I-limit clamp), thermal pause at 57/77 C holding
the load at 1 A until cooled 5 C below threshold, CC range pinned to
R2 for the whole run with empirical range-max readback rejection
- plot_eff.py + bench-plot entry point: efficiency vs Vin vs current
maps from any logged CSV (sweep / data log / telem autodetect), file
dialog when launched without args
- bench.py: HIOKI FAST response speed, 5 s settle defaults; cli.py
stm32-read prints the full broadcast; README + .gitignore updates
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Combines three instrument drivers (as git submodules) into a single
testbench for MPPT tracker efficiency testing. Features:
- Voltage sweep and load current sweep with CSV export
- Auto-range aware meter polling (waits for HIOKI to settle)
- Supply keepalive during long meter waits to prevent USB-TMC timeouts
- Live monitoring with real-time 4-panel matplotlib graphs
- Safe shutdown (load first, then supply)
- Post-sweep returns to 75V idle with supply ON
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>