Repository navigation
DAC waveforms default to the 3.3 V output, not 5 V - #39
Merged
Merged
Conversation
wardviaene
force-pushed
the
dac-default-3v3
branch
from
October 15, 2026 17:36
fd9a6dc to
3912a70
Compare
generate and replay (SDK, MCP tools, OpenHTF helpers) used dac_path="5v" when the caller left the output out, so one call could put 5 V on a 3.3 V DUT pin. They now default to 3v3 (DEFAULT_DAC_PATH). With route=False nothing is switched and the path only scales the volts, so the default follows the output this connection last routed (cal1 = 5v, cal2 = 12v), else 5v as before, which keeps the cal1 loopbacks correct. replay_waveform and Waveforms.preview fall back to 3v3; dac_replay_phase now uses the waveform's own path. MCP generate reports the output used, and the instructions tell agents to pick the output the pin tolerates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MCP generate's offset description, the generate() and OpenHTF docstrings, results.py, the READMEs and the loopback example. Internal names (decode.centre_of, test names) are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wardviaene
force-pushed
the
dac-default-3v3
branch
from
October 15, 2026 19:52
cbc664a to
579e12f
Compare
wardviaene
added a commit
that referenced
this pull request
Oct 16, 2026
…low 3% (#43) * embeddedci 2.14.0, embeddedci-openhtf 2.4.0; host-clock rate tests allow 3% - embeddedci 2.14.0: Capabilities.scope False on the digital board (#42), DAC waveforms default to the 3.3 V output (#39). - embeddedci-openhtf 2.4.0: its signal phases default to dac_path 3v3 (#39). - e2e: the LA/ADC host-clock rate tests allow 3% instead of 0.5%. Over Wi-Fi the fit scattered to 0.983x/1.009x on a pod whose clock is fine; a wrong rate is off by 5-25%. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Patch versions: embeddedci 2.13.1, embeddedci-openhtf 2.3.1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
generateandreplay(SDK, MCP, OpenHTF) defaulted todac_path="5v", so one call that left the output out could drive 5 V into a 3.3 V pin. The web app got the same fix in embeddedci-server d2eca47.What
generate/replay:dac_path=Nonemeans3v3(DEFAULT_DAC_PATH) when the call routes the output.route=Falsenothing is switched and the path only scales the volts, so the default is the output this connection last routed (analog_path("cal1")= 5v,cal2= 12v,dac_output, a routed waveform), else5vas before. Existing cal1 loopback calls keep their scaling.replay_waveformandWaveforms.previewfall back to3v3; OpenHTFdac_replay_phasenow uses the waveform's own path.generatereports the output it used.3v3explicitly when routing and leavesdac_pathout withroute=false(tested against 2.12.0 from PyPI).generateform (firmware 3.9.1+, merged in generate(): calibrated 16-bit form on firmware 3.9.1+ #38) records the output the pod routed, too.test_route_false_keeps_a_loopback_and_route_true_reroutesand the OpenHTFanalog_loopbackexample's second phase.Tests
Host only, no hardware: embeddedci 680 passed, embeddedci-mcp 160, embeddedci-openhtf 74, scripts 12. New
tests/test_dac_path_default.py.Not HW-run. Before a release, run the analog e2e (
make e2e) on the bench pod with the lock.🤖 Generated with Claude Code