Skip to content

benchpod sensor: user-defined sensors, the sensor library, gw2 blob - #51

Merged
wardviaene merged 7 commits into
mainfrom
sensor-definitions
Nov 13, 2026
Merged

wardviaene merged 7 commits into
mainfrom
sensor-definitions

Conversation

@wardviaene

Copy link
Copy Markdown
Member
  • benchpod sensor library|export|validate|start|set|stimulus|fault|stop|status over the pod's new sensor commands; library 0.1.0 embedded, override with latest or a version, shared cache with the SDK.
  • gw2 (the sensor emulation gateware image, OTA and signing target 7) in install-blobs and flash-self; used tonight to flash the bench pod.
  • go test ./..., go vet green.

Draft until the firmware release (embeddedci-com/benchpod-firmware#137). Library 0.1.0 will get one more refresh (17 entries) before it is marked ready.

🤖 Generated with Claude Code

wardviaene and others added 6 commits November 12, 2026 13:52
…library

benchpod sensor library/export/validate/start/set/stimulus load|start|stop/
fault/stop/status drive the pod's draft sensor_* commands. Definitions
come from a file, stdin or the sensor library by name; YAML is read with
the YAML 1.2 rules into key-ordered objects (constants and functions may
use earlier ones) and matches tools/yaml2json.py on every library file.
Uploads are chunked so each command fits a cloud command. The library
0.1.0 is embedded; --version, BENCHPOD_SENSOR_LIBRARY or sensor_library
in config.json pick another (latest resolved from GitHub), downloaded
once into the user cache shared with the Python SDK, with offline
fallback. Firmware without the sensors capability gets a clear error.
Pin-conflict hints name `benchpod sensor stop <instance>`; the GPS
hint is gone.

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

install-blobs and flash-self install blob-gw2.bin when the manifest and the pod list it; the
signature check knows target gw2 = 7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Instance names are at most 16 characters (a longer definition name needs --instance),
wiring names in --pin resolve here (the pod takes LA channels), the SPI target has no
drdy pin, chunks are at most 768 raw bytes, sensor status reads every page and prints
faults with their time left (bus transfers is always null and left out), sensor stop
prints the names the pod stopped. benchpod sensor image shows or switches the FPGA image,
and the emulation image refusals and sensor pin conflicts (now with the pin function) name
the CLI's commands. The embedded library's docs follow benchpod-sensors main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refreshed the go:embed copy from benchpod-sensors main (38cfbda): 10
sensors (bme280, bmp280, mpu6050, sht4x, lis3dh, lis3dh_fifo, gps_nmea,
mhz19b, ntc_10k_divider, pressure_4_20ma), 3 stimuli, library.json,
README and docs/format.md. Golden JSON regenerated with the library's
tools/yaml2json.py for every entry; stimuli are checked with
CheckStimulus, and the library listing test no longer depends on
column width.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refreshed the go:embed copy from benchpod-sensors main (ca14683): tmp117 and ina219 (word
registers, i2c.register_bytes: 2) and sht3x and scd4x (the 16-bit command map) join the ten
sensors and 3 stimuli, with library.json, README and docs/format.md. Golden JSON regenerated with
the library's tools/yaml2json.py. A test checks the header check accepts register_bytes and the
command map.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wardviaene
wardviaene marked this pull request as ready for review November 13, 2026 15:17
…one (firmware 3.10.2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wardviaene
wardviaene merged commit 3d89594 into main Nov 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