
Most "hardware test" lists stop at oscilloscopes and logic analyzers. In practice, validating silicon on a real platform runs through twelve distinct stages, and broken tooling at any one of them slows bring-up. The good news: open-source software covers most of that pipeline today.
I built awesome-dvt-automation to map that landscape. This post is the companion guide: a stage-by-stage walkthrough of the tools that can complement or replace proprietary test executives in a post-silicon lab.
Key Takeaways
- Post-silicon validation is a 12-stage pipeline, not a single "test script"
- Open-source tools exist for lab infra, instruments, protocols, SerDes, power, triage, and hardware CI
- The gap is integration knowledge: how labgrid, OpenTAP, PyMeasure, and pytest connect
- The repo discovers new tools monthly via automated PRs
Why another awesome list?
Pre-silicon verification has awesome-open-hardware-verification. PCB design has awesome-pcb-workflow. Post-silicon platform validation did not have a single curated map.
Validation engineers still stitch together lab workflows from vendor app notes, internal wikis, and one-off scripts. That works until you onboard a new hire or try to run regression on every firmware build.
awesome-dvt-automation covers 81 tools across:
Planning → Lab infra → Instruments → Bring-up → Protocols → SerDes → Power → Thermal → Execution → Triage → CI/CD → Agents
Each entry includes a one-line description, stack integration note, and license.
Stage 1: Lab infrastructure and board farms
Before you measure anything, you need deterministic control of power, reset, serial, and remote access across benches.
labgrid is the anchor: a Python library with coordinator/exporter architecture and a pytest plugin. It abstracts the hardware control layer so tests do not hard-code "which USB relay is on which host."
Pair it with usbrelay for inexpensive power cycling and LAVA if you need distributed scheduling across a larger lab.
Stage 2: Instrument control
PyVISA plus pyvisa-py talk to LXI/GPIB/USB-TMC instruments without a Windows-only driver stack. PyMeasure adds higher-level procedures for supplies, DMMs, and scopes.
The pattern: OpenTAP or pytest owns sequencing; PyMeasure owns SCPI. Log raw transcripts alongside parsed measurements for triage later.
Stage 3: Execution and sequencing
OpenTAP is the open test executive with a plugin model for instruments and result listeners. pytest is the lingua franca for lab engineers who already think in fixtures and markers.
Use @pytest.mark.hardware for tests that require physical DUTs; run -m "not hardware" on cloud CI and full suites on self-hosted runners in the lab VLAN.
Stage 4: Results, triage, and hardware CI
Validation without observability is just data hoarding. Grafana + InfluxDB for time-series lab metrics. Allure or JUnit XML for pass/fail history across firmware builds.
GitHub Actions self-hosted runners on the lab network are the closest equivalent to software CI for hardware: gate merges on instrument captures and boot tests, not just lint.
The integration cheatsheet
OpenTAP sequencer → PyMeasure / SCPI instruments
pytest runner → labgrid fixtures
ocp-diag-core → JSON health checks → dashboards
GitHub Actions → self-hosted runner on lab VLAN
Full cheatsheet and quick-start guides live in the repo docs.
Monthly discovery
On the 1st of each month, a GitHub Action searches for new qualifying tools, rotates Featured This Month, and opens a PR. Eval harness, link checks, Mergify, and Cursor Bugbot gate what merges.
Watch the repo if you want the stream without polling GitHub search yourself.
How to contribute
- Star awesome-dvt-automation
- Find your stage in the workflow map
- Open a PR with one tool row (format in CONTRIBUTING.md)
- Point us at SerDes, OCP, or pytest+labgrid patterns we missed
Sources
- awesome-dvt-automation — curated tool map (CC0)
- labgrid documentation — board farm and pytest integration
- OpenTAP — open test sequencer
- awesome-open-hardware-verification — pre-silicon companion list
- awesome-pcb-workflow — PCB pipeline companion list