System designTroubleshooting

Hardware sync gives worse calibration than software: fix the trigger

Why hardware sync gives worse calibration on a stereo pair than software mode, how to scope trigger lines and the timing budget that decides when skew matters.

LumaSpec Vision11 min read Share on LinkedIn

On this page 9 sections
  1. 01What the link error is telling you
  2. 02Five likely causes, in order of probability
  3. 03Timing budget for a target drifting 10 mm/s at 0.05 mm/pixel
  4. 04Prove it in an afternoon: the fixed-target A/B test
  5. 05Read the pulse where the camera receives it
  6. 06Wiring and power that keep the pulse clean
  7. 07When the usual answer is wrong
  8. 08Checklist before you re-calibrate
  9. 09Questions

You wire the master camera's flash output to the slave's trigger input expecting tighter captures than any host can schedule — and the calibration gets worse. The case worked below: a stereo pair that reaches 0.23 mm link error in software-triggered mode and jumps to 0.79 mm the moment the hardware sync line is connected, repeatably, across a 5 m interconnect with both cameras on one power supply. Hardware triggering, done right, is deterministic, so a regression this size is not a flaw in the concept and almost never cable length. It is a pulse that is not doing its job at the second camera. Below are the fault ranking, the scope checks, the fixed-target test that isolates the cause in an afternoon, and the timing budget that tells you when trigger skew can matter at all.

Link error is the calibration solver's residual: how far the matched image points sit from where the estimated rigid transform between the two cameras says they should be. It sums every disagreement between the left and right views — optics, target quality, and the timing of the two exposures.

A jump from 0.23 mm to 0.79 mm on the same rig is a factor of 3.4. A digital pulse adds no lens distortion, so the only thing that changed is the instant each camera sampled the scene. Two disciplines follow. First, compare like for like: same pattern count, same pose spread, and the suite's ignore-moving-patterns filter, where it has one, set the same way in both runs — or the comparison itself is biased. Second, hardware mode has already removed host jitter from the equation, so the extra disagreement has to come from the trigger path itself: configuration, edge quality, coupling, or a flash that fires outside the pattern window. Whether the pair is two area scan cameras or a factory-rigged 3D sensor, the trigger path behaves the same.

Five likely causes, in order of probability

1. Trigger configuration mismatch. Wrong edge polarity (rising versus falling), trigger mode not enabled, or the slave still set to self-timing while pulses arrive. The camera then samples at an instant unrelated to the master's exposure. Test: read the trigger settings in each camera's GenICam feature tree and confirm which edge fires the capture. Fix: set the documented edge and mode on both cameras; the GenICam line settings walkthrough shows which settings to check line by line.

2. Doubled or ringing pulses. A long, unterminated or poorly shielded line reflects part of the edge back; ringing re-crosses the input threshold and the slave captures twice per pulse, or at a shifted instant. Test: scope at the slave's input and count transitions per pulse. Fix: shielded cable, the termination the camera documentation calls for, and separation from motor and AC wiring — the same ground physics that corrupts images is covered in USB camera signal integrity: diagnosing OTG port image errors.

3. Coupled noise from the shared supply. Both cameras on one supply share one ground reference, so switching ripple and projector charge pulses ride it into the trigger input as false edges. Test: power the slave from a second supply and repeat a fixed-target capture run, counting frames that arrive with no commanded capture. Fix: one supply per camera where the manual specifies it. For faults that hit several devices at once, see multi-camera image corruption: isolate shared hardware faults.

4. Flash or pattern state mismatch. On structured-light pairs, the slave's exposure must land inside the pattern's settled window. If pulse timing drifts, the two cameras describe different pattern states and the solver receives conflicting correspondences. Test: capture a fixed target in hardware mode and check both cameras produce identical, stable captures frame after frame. Fix: drive both trigger inputs and the projector strobe from one pulse source; the camera trigger cable selection for a signal generator guide covers the wiring side.

5. The pulse not arriving at all. A loose locking nut, a broken conductor in a flexed cable, or the wrong pin on an open-ended connector — the slave free-runs and the hardware-triggered run is really two software captures. Test: run the master at a known pulse rate and confirm the slave's frame rate follows it. Fix: re-terminate, seat and lock the connectors, and check continuity pin by pin.

Propagation delay down the wire is the last suspect, and the budget in the next section shows why.

Timing budget for a target drifting 10 mm/s at 0.05 mm/pixel

Inputs, with their basis:

  • Target drift velocity v = 10 mm/s — a bench still settling, a bracket flexing, or a light operator disturbance; measure your own if the mount is suspect.
  • Image scale s = 0.05 mm/pixel — a left camera reading 2448 pixels across a 122 mm calibration board: 122 ÷ 2448 = 0.05 mm/pixel.
  • Allowed disagreement 0.1 pixel — well-conditioned checkerboard targets detect to roughly 0.1 pixel repeatability; beyond that, corner positions themselves inject error.

Rule in words: the two exposures must fall close enough in time that the target moves less than the detection floor between them. Skew converts to displacement, so the allowable skew follows:

d = v × Δt Δt_allow = 0.1 × s ÷ v

Arithmetic: Δt_allow = 0.1 pixel × 0.05 mm/pixel ÷ 10 mm/s = 0.005 mm ÷ 10 mm/s = 0.0005 s = 500 µs. Cable delay: pulses travel shielded cable at about 5 ns per metre, so the 5 m run adds 5 × 5 ns = 25 ns. Margin: 500 µs ÷ 25 ns = 20,000.

Sensitivity: the budget scales inversely with speed. At 30 mm/s of vibration it tightens to 167 µs; with the target bolted rigid, any practical pulse timing passes. The same arithmetic explains software mode's danger with a moving scene: a 10 ms gap between host-issued captures lets the scene travel 10 mm/s × 10 ms = 100 mm, which is why calibration suites ship a filter that discards captures taken while the pattern moved.

Decision: 25 ns of real delay against a 500 µs budget means propagation delay is 20,000 times inside the limit, and timing cannot explain a 3.4× link-error regression. Treat the fault as configuration or signal quality — polarity, doubled edges, supply coupling, flash timing. Only measured skew beyond about 500 µs, for this target speed and scale, makes wire length and routing the fix.

Prove it in an afternoon: the fixed-target A/B test

  1. Bolt the calibration target to a rigid fixture and prove it still: capture 20 software-triggered frames of one pose and confirm detected corners repeat within about 0.1 pixel.
  2. Run a normal software-triggered calibration; record the link error (0.23 mm in the worked case) and the pattern count.
  3. Switch to hardware mode without touching optics, target or pose routine, and collect the same number of patterns.
  4. Compare. Hardware mode should match or beat software mode; on a verified-static target, a higher number convicts the trigger path.
  5. While capturing, watch the slave: a frame rate that does not follow the pulse rate, or captures arriving between pulses, means false or missed triggering.
  6. Change one thing at a time — supply split first (a two-minute test), then termination, then edge polarity — repeating the fixed-target run after each change until hardware mode matches the software baseline.

The test separates a jittering trigger from a target that moved between exposures, which is the whole diagnosis. For clean wiring of a pair to one pulse, see stereo camera trigger synchronization with a shared pulse; for the sync concept itself, hardware sync two USB cameras: trigger both cameras together walks a two-camera pulse chain from the first pulse.

Read the pulse where the camera receives it

  • Scope at the slave's connector: the far end shows the reflections and ground bounce the source end hides.
  • Amplitude clears the camera's documented trigger threshold with margin — a logic pulse sagging into the ambiguous region triggers late or not at all.
  • One transition per pulse: any ring that re-crosses the threshold is a second capture waiting to happen.
  • Pulse width above the camera's documented minimum, or the input ignores or double-counts the edge.
  • Edge polarity, trigger mode and any glitch filter set to match the pulse quality.

Without a scope, most cameras and frame grabbers expose per-capture trigger stamps or a line-status read: doubled captures per pulse show as double frame rate, missed pulses as gaps.

Wiring and power that keep the pulse clean

Trigger and its return travel together, twisted or on adjacent conductors, with the shield grounded at one end so noise has a single path to ground. Keep the trigger line out of looms carrying motor drives, contactors or AC; cross where unavoidable at right angles.

For the trigger itself, an I/O cable landing on open leads pairs the pulse with its return at the terminal block:

CablesCamera Power and I/O Cable, M8 8-pin connector, Male to Open end (8-core), 7 m, drag-chain use (LS-CBL-0300)LS-CBL-0300
Type
Power and I/O cables
Length
6-8 m
$79.00View partBuild a system with it

For a master-to-slave run near the 5 m mark, a 12-pin I/O and power cable carries pulse and supply in one flex-rated loom:

Cables5 m 12-Pin IO I/O and power cable (LS-CBL-0211)LS-CBL-0211$56.00View partBuild a system with it

Keep the data link just as solid: calibration streams every pattern image, and a momentary drop mid-set costs the run. Locked connectors matter more than length — a 3 m GigE cable with screw locks and a drag-chain jacket survives a bench that moves:

Cables3 m GigE camera cable, high-flex (drag chain), screw locks (LS-CBL-0199)LS-CBL-0199$54.00View partBuild a system with it

Shortlist trigger-rated wiring in the cables range or the accessories finder, filtering by length, connector and flex rating.

When the usual answer is wrong

  • Both modes calibrate badly: the trigger was never the problem. Check target quality (a print glued to a rigid plate beats a taped sheet), lens seat and focus drift, and pose diversity — the solver needs tilted views, not a flat sweep.
  • Hardware mode calibrates fine but live depth jitters on moving parts: calibration succeeded; the runtime problem is exposure time against part speed, ambient light or matching settings.
  • Only projector-synced captures degrade while plain stereo captures are clean: pattern strobe and camera triggers do not share one clock. Route all three from a single source.
  • Reaching for a shorter trigger cable first: the budget above shows a 20,000-fold margin on 5 m. A shorter cable cannot fix a polarity or coupling fault.

Checklist before you re-calibrate

  • Pulse verified at the slave's input: one clean transition per pulse, amplitude above the documented threshold. Scoping at the source end hides reflections.
  • Edge polarity and trigger mode match the camera documentation on both cameras.
  • Target proven static: corners repeat within about 0.1 pixel across 20 fixed captures.
  • Same pattern count and pose spread in both modes before comparing link errors.
  • Slave powered from its own supply, or the shared supply proven innocent by split-and-repeat.
  • Trigger line separated from power looms, shield grounded at one end.
  • Skew budget computed for your target speed and image scale, so you know which fault class to hunt.

If the A/B test still shows hardware mode behind after the supply split, a scoped pulse and the configuration check, send the two frame rates and pulse measurements through the contact page and we will help you read them. The extras configurator assembles the trigger loom against your pulse source and camera pair, and the systems topic page collects the rest of the fault-isolation guides.

Questions

Does a 5 m trigger cable delay the pulse enough to hurt stereo calibration?

No. Digital pulses travel shielded cable at about 5 ns per metre, so a 5 m run delays the slave's exposure by roughly 25 ns. A calibration target drifting at 10 mm/s tolerates about 500 µs of skew before the two views disagree by more than 0.1 pixel, so the delay sits about 20,000 times inside the budget. Treat cable length as a signal-integrity question — shielding, termination, separation from power — not a timing one.

Should each camera in a stereo pair have its own power supply?

Follow the camera manual: many stereo and 3D camera guides specify one supply per camera, and it is the safe default. A shared supply couples switching ripple into the common ground, where it can appear as false trigger edges. During calibration, with the projector idling, it usually does no harm — so prove it either way with the fixed-target test: split the supply, repeat 30 captures and compare link errors before rewiring anything.

Why does my camera capture twice for every trigger pulse?

Because the receiver sees two threshold crossings for one pulse. The usual cause is a reflected or ringing edge on a long, unterminated or poorly shielded line; the second cause is a configuration that fires on both edges. Scope the pulse at the camera's input, fit the termination the documentation calls for, and confirm a single clean transition per pulse at the documented level.

Can I trigger both cameras and the projector from one signal generator?

Yes, and for structured-light pairs it is the better topology: one generator drives both trigger inputs and the pattern strobe, so exposures and pattern share a single clock and no camera acts as master. Match the generator's output level and pulse width to each camera's documented trigger input, and use equally shielded wiring on every channel so neither input becomes the noisy one.

What link error should a healthy stereo calibration reach?

Expect residuals on the order your image scale and target quality allow: on a bench rig with a rigid, well-printed target, a few tenths of a millimetre is routine — the 0.23 mm baseline in this case is typical. Judge hardware mode against your own software-mode baseline on the same rig: hardware should match or beat it, and a same-rig jump of 3x or more points at the trigger path, not the concept.