Skip to content
Test Station Setup

Test Fixture Design and Management

Learn how to track test fixture health, calibration, and lifecycle using TofuPilot's station monitoring and measurement trending.

JJulien Buteau
intermediate10 min readMarch 14, 2026

Test Fixture Design and Management with TofuPilot

The test fixture is the most underappreciated part of hardware test infrastructure. A worn pogo pin or a loose cable causes more false failures than bad product. TofuPilot helps you monitor fixture health through measurement trends and station-specific analytics.

What Makes a Test Fixture

A test fixture connects the DUT (device under test) to the test instruments. It typically includes:

ComponentPurposeFailure mode
Pogo pins / spring probesElectrical contact to DUTWear, contamination, broken springs
Alignment hardwarePosition DUT consistentlyWear, loosening over time
Cable harnessConnect fixture to instrumentsBroken wires, loose connectors
Pneumatic actuatorClamp DUT against probesSeal failure, pressure loss
Guide pinsAlign PCB to probe positionsWear, bending

Monitoring Fixture Health Through Test Data

You don't need dedicated fixture tests. Your production test data already contains fixture health signals.

Contact Resistance as a Health Indicator

If your test includes a continuity or resistance measurement, track it per station.

fixture_health.py
from tofupilot import TofuPilotClient

client = TofuPilotClient()

# This measurement doubles as a DUT test AND a fixture health indicator
client.create_run(
    procedure_id="BOARD-FUNCTIONAL",
    unit_under_test={"serial_number": serial},
    run_passed=True,
    steps=[{
        "name": "Contact Verification",
        "step_type": "measurement",
        "status": True,
        "measurements": [
            {"name": "probe_contact_mohm", "value": 35, "unit": "mohm", "limit_high": 100},
        ],
    }],
)

Track probe_contact_mohm per station over time:

WeekStation 1Station 2Station 3
125 mohm28 mohm30 mohm
428 mohm30 mohm45 mohm
830 mohm32 mohm72 mohm
1232 mohm35 mohm95 mohm

Station 3's contact resistance is climbing fast. Service the pogo pins before it hits the 100 mohm limit and starts causing false failures.

Measurement Variance as a Health Indicator

Even when measurements pass, increasing variance signals fixture problems.

A voltage measurement that bounces between 3.29V and 3.33V has more variance than one that reads 3.31V consistently. High variance on a specific station means something is intermittent: a loose wire, a dirty probe, or a worn alignment pin.

Cycle Time as a Health Indicator

If a test normally takes 42 seconds and starts taking 55 seconds on one station, something changed:

  • Pneumatic actuator slowing down (low air pressure, seal wear)
  • Instrument communication timeout (loose cable, aging connector)
  • Retry loops from intermittent contacts

Fixture Lifecycle Tracking

Maintenance Schedule Based on Data

Replace calendar-based maintenance with data-driven maintenance.

ApproachScheduleBasis
Calendar-basedEvery 3 monthsTime elapsed
Count-basedEvery 50,000 cyclesInsertion count
Condition-basedWhen data shows degradationMeasurement trends

Condition-based maintenance costs less and catches problems earlier. TofuPilot's measurement trends tell you which fixtures need attention now and which are fine.

Tracking Pogo Pin Life

Pogo pins have a rated cycle life (typically 100,000-1,000,000 cycles). Track cycles per fixture.

fixture_tracking.py
# Track fixture cycle count alongside DUT test
client.create_run(
    procedure_id="BOARD-FUNCTIONAL",
    unit_under_test={"serial_number": serial},
    run_passed=True,
    steps=[{
        "name": "Contact Verification",
        "step_type": "measurement",
        "status": True,
        "measurements": [
            {"name": "probe_contact_mohm", "value": contact_r, "unit": "mohm", "limit_high": 100},
            {"name": "fixture_cycle_count", "value": get_fixture_count(), "unit": "cycles"},
        ],
    }],
)

When contact resistance starts rising, check the cycle count. If you're at 80% of rated life, schedule replacement during the next planned downtime.

Fixture Design Best Practices

PracticeWhy
Use keyed connectorsPrevent incorrect cable connections
Include a "golden board" test pointVerify fixture health independently from DUT
Minimize cable lengthReduces noise, improves measurement accuracy
Use separate ground pinsDon't rely on one ground contact for the whole fixture
Design for probe replacementMake pogo pins individually replaceable
Add alignment featuresEnsure consistent DUT positioning
Include interlock sensorsDetect when DUT is properly seated

Golden Board Verification

A "golden board" is a known-good reference board. Run it through the fixture periodically to verify the fixture is working correctly.

golden_board_check.py
# Weekly golden board verification
GOLDEN_SERIAL = "GOLDEN-001"
EXPECTED_VCC = 3.310  # Known value from initial characterization

vcc = measure_voltage()
drift = abs(vcc - EXPECTED_VCC)

client.create_run(
    procedure_id="FIXTURE-GOLDEN-BOARD-CHECK",
    unit_under_test={"serial_number": GOLDEN_SERIAL},
    run_passed=drift < 0.010,  # Less than 10mV drift
    steps=[{
        "name": "Golden Board Verification",
        "step_type": "measurement",
        "status": drift < 0.010,
        "measurements": [
            {"name": "vcc_3v3", "value": vcc, "unit": "V", "limit_low": 3.300, "limit_high": 3.320},
            {"name": "drift_from_reference_mv", "value": drift * 1000, "unit": "mV", "limit_high": 10},
        ],
    }],
)

If the golden board measurement drifts, the fixture or instrument has changed, not the board.

Common Fixture Failures and Detection

FailureDetection in TofuPilotFix
Worn pogo pinsRising contact resistance trendReplace affected pins
Loose cableIntermittent measurement failures (random, no pattern)Reseat or replace cable
Alignment wearIncreasing measurement variance across all channelsReplace guide pins
ContaminationGradual measurement shift, contact resistance increaseClean probes and PCB contacts
Pneumatic leakLonger cycle times, intermittent contactsReplace seals

Multi-Fixture Management

For production lines with multiple fixtures for the same test:

  1. Give each fixture a unique identifier
  2. Track which fixture ran each test (station ID in TofuPilot)
  3. Compare performance across fixtures
  4. Rotate golden board checks across all fixtures

If Fixture A has 98% yield and Fixture B has 94% yield on the same product, Fixture B needs attention. TofuPilot's station comparison view shows this at a glance.

More Guides

Put this guide into practice