- 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>
30 lines
748 B
TOML
30 lines
748 B
TOML
[project]
|
|
name = "mppt-testbench"
|
|
version = "0.1.0"
|
|
description = "MPPT tracker testbench: IT6500D (solar sim) + Prodigit 3366G (load) + HIOKI 3193-10 (power analyzer)"
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"matplotlib>=3.10.8",
|
|
"pyvisa>=1.16.2",
|
|
"pyvisa-py>=0.8.1",
|
|
"pyserial>=3.5",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["testbench"]
|
|
|
|
[tool.hatch.build.targets.wheel.force-include]
|
|
"IT6500D/it6500" = "it6500"
|
|
"PRODIGIT-3366G/prodigit3366g" = "prodigit3366g"
|
|
"HIOKI-3193-10/hioki3193" = "hioki3193"
|
|
|
|
[project.scripts]
|
|
bench = "testbench.cli:main"
|
|
bench-gui = "testbench.gui:main"
|
|
bench-plot = "testbench.plot_eff:main"
|