OpenHWTestFixture
A KiCad-native, parametric hardware + software system that automatically generates production-ready bed-of-nails test fixtures from PCB design data.
The problem
Today's bed-of-nails fixture workflow is a manual, time-consuming process: interpreting PCB test points by hand, custom CAD per board revision, one-off CNC tooling, hand-wired pogo pin boards, and ad hoc test scripts.
- High engineering time per fixture — days to weeks
- No reuse between products or revisions
- No standard pogo pin or alignment ecosystem
- Tight coupling between mechanical, electrical, and test logic
- Hard to version control or regenerate fixtures
- Expensive iteration loop for early production builds
The opportunity
There is a missing layer between KiCad PCB design and manufacturing test fixture — a layer that behaves like "Prusa Slicer for electronics test fixtures" or "OpenSCAD for pogo-pin bed systems." This enables rapid fixture generation from PCB files, standardized reusable primitives, automated test point mapping, and turnkey production test stations for low and medium volume hardware.
Product vision
A unified system that converts a PCB into:
Mechanical fixture CAD
- 3D printable alignment frame
- CNC plate designs (top + bottom)
- Pogo pin hole layout
- Compression mechanism geometry
- Optional vacuum or lever press system
Electrical test interface
- Pogo pin to net mapping
- Harness wiring diagram
- Connector breakout board (optional PCB)
- Continuity validation plan
Test software scaffold
- OpenHTF test plan auto-generated
- Pin map abstraction layer
- Instrument drivers template
- Calibration hooks
Manufacturing package
- BOM (pogo pins, springs, hardware)
- Assembly instructions
- Stack-up tolerances
- Revision tracking tied to PCB git commit
System architecture
┌──────────────────────┐
│ KiCad PCB Project │
└─────────┬────────────┘
│
(netlist + test points + 3D PCB)
│
▼
┌────────────────────────────────────┐
│ Fixture Generation Engine │
│ (Python + parametric core) │
└────────────────────────────────────┘
│ │ │
▼ ▼ ▼
Mechanical Electrical Test Software
CAD Mapping Scaffold
(OpenSCAD/ (net→pin (OpenHTF /
FreeCAD) assignment) pytest layer)
│ │ │
└──────┬──────┴──────┬──────┘
▼ ▼
Manufacturing Package Output
(CNC files / STL / BOM / wiring / docs)
Core modules
KiCad integration layer
Reads PCB netlist, footprint coordinates, test point markers, board outline and keepouts, and optional 3D step model. Outputs a structured JSON intermediate representation of the board geometry and test points.
Fixture layout engine
The core innovation. Solves pogo pin placement optimization with mechanical clearance enforcement, minimum spacing rules, pin height and spring force assignment, and alignment pin geometry generation. Uses constraint solving and KD-tree spatial validation.
Mechanical CAD generator
Generates top and bottom plates, guide rails, alignment pins, compression mechanism interface, and modular frame. Export to STEP, STL, and DXF (CNC-ready). Built on OpenSCAD or FreeCAD Python API.
Electrical routing and harness generator
Maps pogo pins to netlist, assigns connector pinouts, generates wiring harness diagrams and a labeled wiring spreadsheet. Optional breakout PCB generation in KiCad.
Test software layer (OpenHTF-based)
Auto-generates a test plan scaffold with per-net measurement hooks, instrument abstraction layer, and logging. Each fixture revision is tied to a specific PCB git commit hash and BOM revision.
Hardware ecosystem
To succeed, the system defines a standardization layer:
Standard pogo modules
- Spring force classes (low / med / high)
- Standardized diameter footprints (0.5 / 0.7 / 1.0 mm)
- Keyed mounting geometry
Alignment system
- Universal 2–4 pin alignment standard
- Chamfered guide pins
- Repeatable board insertion tolerance system
Fixture frame standard
- Aluminum extrusion base
- Modular plate sizes
- Screw / cam / lever compression standard
Differentiation
This is not just a CAD tool, a test framework, or a fixture guide. It is a compiler from PCB to manufacturing test hardware — closing the gap between design and production test.
Why now
This is viable because of the mature KiCad ecosystem, cheap CNC and 3D printing, open test frameworks like OpenHTF, widespread Python hardware tooling, and the increasing volume of low and medium volume hardware production — wearables, IoT, and robotics.
MVP scope
- KiCad netlist to pogo pin placement
- OpenSCAD fixture generation (top plate only)
- CSV harness output
- Basic OpenHTF test skeleton
Excluded initially: force modeling, vacuum fixtures, fully automated connector PCB generation.
Strategic upside
If successful, this becomes CI/CD for hardware manufacturing test — a standard layer in hardware production pipelines and an ecosystem play spanning KiCad plugins and hardware marketplace.
Get involved
Interested in contributing or using OpenHWTestFixture? We'd love to hear from you.
Contact us