Skip to content

generate(): calibrated 16-bit form on firmware 3.9.1+ - #38

Merged
wardviaene merged 1 commit into
mainfrom
gen16
Oct 15, 2026
Merged

wardviaene merged 1 commit into
mainfrom
gen16

Conversation

@wardviaene

Copy link
Copy Markdown
Member

Pairs with embeddedci-com/benchpod-firmware#52 (firmware 3.9.1).

  • generate() sends volts (or microamps on current_out) when the pod has generate16 (status caps / cap.generate_bits 16); the pod calibrates and plays it at 16 bits (~50 µV/step on 3v3 instead of 13 mV; 0.25 µA instead of 63 µA on 4-20 mA). route=False sends "route": false.
  • Peaks past the path and amplitudes under one 16-bit step raise ValueError. Older firmware keeps the 8-bit levels.
  • Capabilities.generate16 (README, changelog, API snapshot).
  • MCP generate: result has bits; description updated.
  • e2e invalid-argument case uses amplitude 0 (0.1 mV is valid at 16 bits).

Tests: unit 669 + MCP 160 + OpenHTF 74 green; HW on benchpod-baea06 with the 3.9.1 dev build: SDK e2e 116/0, MCP 10/0, OpenHTF 2/0.

Release order: SDK first, then MCP (pin embeddedci>= the new SDK).

🤖 Generated with Claude Code

Firmware 3.9.1 (caps generate16 / cap.generate_bits 16) takes generate in
volts on a DAC path, or microamps on the 4-20 mA output, calibrates it and
plays it at the DAC's full 16 bits. generate() now sends the values when
the pod has it (and lets the pod route, or "route": false), instead of
8-bit levels: about 50 uV a step on 3v3 instead of 13 mV, 0.25 uA instead
of 63 uA. Peaks past the path raise ValueError. Older firmware keeps the
levels.

- Capabilities.generate16 (status caps, cap.generate_bits)
- MCP generate: result reports bits (16 or 8); description updated
- e2e: the invalid-argument case uses amplitude 0 (0.1 mV is valid at 16
  bits)
- HW: SDK e2e 116/0, MCP 10/0, OpenHTF 2/0 on baea06 with the 3.9.1 dev
  build (benchpod-firmware#52)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wardviaene
wardviaene merged commit 8982c1b into main Oct 15, 2026
20 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