You have an analog camera with a genlock or asynchronous-reset input, a frame grabber with a trigger input, and a pulse source — in the classic case a power supply driving a laser — and the image has to land on the same pulse every time. The answer is to trigger both ends: the camera input places the exposure at the pulse edge, and the grabber input latches the frame that contains it. Below are the wiring, the exposure arithmetic for RS-170 and CCIR cameras, the acquisition settings that remove the need for timing code, and the checks that prove the sync before you trust a single image.
The decision: trigger the camera, latch the frame
Feed the same pulse edge to both inputs. The camera's asynchronous-reset input is the only place where an exposure can be positioned in time; the grabber's trigger input only chooses when digitization starts. Trigger the grabber alone and the camera keeps free-running, so the laser flash arrives at a random point in the exposure and you collect dim, half-exposed frames. Trigger the camera alone and the image is still stable — the grabber's sync separator locks its line and field timing to the camera's video — but nothing tells your code which frame carries the pulse.
So: pulse to the camera, and either the same pulse (delayed by one frame) or the camera's frame-valid output to the grabber. Use the frame-valid output when the camera has one, because it removes the delay arithmetic. Use the delayed common pulse when it does not.
What each input actually does
- Asynchronous reset: the edge restarts the camera's timing generator. Exposure begins a fixed delay later — the reset-to-scan delay, published in the camera's timing table and typically well under 1 ms — and lasts for the programmed number of lines.
- Genlock, in the strict sense: locks the camera's field oscillator to a continuous external composite sync. Use it when you have a steady reference signal; for one pulse per laser shot, use asynchronous reset.
- Grabber trigger: arms the digitizer so the next frame after the edge lands in its own buffer and raises one completion event. Interlaced analog video means one trigger yields one frame of two fields, not two frames.
- Sync separator: the grabber front end extracts line and field sync from the camera's video. That is why a free-running grabber shows a stable picture — and why stable grabbing is not the same as synchronized grabbing.
Wire the pulse to both inputs
- Check levels before connecting anything. Most reset and trigger inputs accept TTL, 0 to 5 V, with a minimum pulse width around a microsecond; a strict genlock input may expect 1 V peak-to-peak composite sync, in which case use the TTL reset input or a level shifter.
- Split the pulse at the source with a BNC tee: one branch to the camera, one to the grabber. Keep both cables short.
- Ground on one path only. Tie the pulse source ground to the grabber ground at the trigger connector; if the supply dumps a large current spike when it fires, use an opto-isolated trigger input or an isolated line repeater so the spike never reaches the PC.
- Break the trigger out on a shielded cable instead of modifying a connector. The frame grabber I/O cable is a DB9 female to open leads, 7 m, ready to solder pulse, ground and shield.
- Type
- Frame grabber I/O cables
- Length
- 6-8 m
- Set the same edge polarity at both ends (rising for a positive TTL pulse) and confirm with a scope that both inputs see the same edge at the same instant.
- Only then unblock the beam path.
Bracket the laser pulse with the exposure
The shutter cannot match a laser pulse: a Q-switched pulse is a few nanoseconds wide, while the fastest analog exposure is several line times. It does not need to match. Open the shutter early, keep the enclosure dark, and let the pulse be the only light — the exposure just has to bracket the pulse with margin for the pulse source's own jitter.
For RS-170 (EIA) video the line time is 63.5 µs and a frame is 33.37 ms (525 lines at 29.97 fps). For CCIR the line time is 64 µs and a frame is 40 ms (625 lines at 25 fps). Exposures are programmed in whole lines, so the resolution of your exposure setting is one line time.
Worked example, RS-170:
- Pulse source fires at 10 Hz: period = 1 / 10 = 100 ms.
- Laser pulse width 8 ns, supply trigger jitter ±50 µs. Exposure must be at least 8 ns + 50 µs ≈ 51 µs — but lamp-timing drift during warm-up eats that margin, so choose 2 ms.
- Lines: 2000 µs / 63.5 µs = 31.5 → round up to 32 lines = 32 × 63.5 µs = 2.03 ms.
- Rate check: 2.03 ms exposure + 33.37 ms readout = 35.4 ms, so the chain sustains 1 / 35.4 ms = 28 pulses per second. At 10 Hz you hold 64 ms of slack per shot.
- Grabber delay: the first complete frame leaves the camera about one frame time after the reset, so trigger the grabber on the same pulse with a 40 ms delay (45 ms on CCIR), or on the camera's frame-valid output with no delay.
On CCIR the same 2 ms target is 2000 / 64 = 31.25 → 31 lines = 1.98 ms, and the chain sustains 1 / (1.98 + 40) ms ≈ 24 Hz.
The gap between the trigger call and the actual start of exposure is a fixed number, published in the camera's timing table — treat it as part of the chain, the way trigger call versus exposure time lays out for digital cameras.
Let the hardware time the loop
You do not need code that outruns the trigger pulse, and you could not write any: the frame takes 33.37 ms to leave an RS-170 camera, while a polled loop jitters by milliseconds. Let the grabber's hardware do the timing.
- Configure the grabber for hardware-triggered acquisition, one buffer per trigger, with a queue of three buffers.
- In the loop, wait on the frame-complete event, process the buffer, and return it before the next pulse. At 10 Hz you have 100 ms per frame, and a 640 × 480 mono frame is 640 × 480 = 307,200 bytes ≈ 0.3 MB, so 10 frames per second is about 3 MB per second — trivial for the bus, with the queue absorbing any hiccup under 200 ms.
- If processing genuinely exceeds the pulse period, let whole frames drop at the hardware boundary. You lose frames, never synchronization: each saved frame still belongs to exactly one pulse.
That is the whole answer to the timing-code question — the queue depth is the only timing decision, and three covers a 200 ms hiccup at 10 Hz. The pattern and the rearming mistakes that go with it are the same as in hardware trigger frame rate limits with external pulses and analog frame grabber integration with vision software; a trigger that arrives before the driver has rearmed shows up as sequenced exposure overtrigger errors.
Prove the sync
- Scope both trigger inputs during live pulsing: same edge, same level, no ringing.
- Put a scatter card in the beam path at the lowest pulse energy and confirm the spot sits in the same few-pixel region of every saved frame. Reset-to-scan uncertainty is on the order of a line time, so expect a few pixels of vertical wander, never half a frame.
- Count over 100 pulses: pulses fired must equal frames saved. A mismatch means the grabber is dropping or double-grabbing — check edge polarity and buffer rearm.
- Slow the source to 1 Hz and confirm exactly one frame per pulse before speeding back up.
- Inspect saved frames for tearing or a horizontal split. That points to field-versus-frame triggering or a cabling fault, covered in analog video scanline distortion checks and an analog image split by a black line.
When the pulse must fire at a fixed offset from a part position rather than at a fixed rate, trigger delay timing for offset sensors is the reference.
When triggering both ends is not enough
- No asynchronous reset on the camera: a genlock-only camera cannot place its exposure. Free-run it at minimum exposure inside a light-tight enclosure, trigger only the grabber, and let the laser be the sole illumination. The phase within the frame is random but the image is usable — until any ambient light leaks in.
- Pulse rate above the camera's limit: above roughly 28 Hz at the numbers above (RS-170 tops out near 30 full frames per second, 60 fields), pulses land between frames and are lost. Accept the loss or change camera.
- Pulses in bursts: a burst faster than the readout overwrites buffers. Gate the source or set the queue depth to the burst length.
Replacing the analog chain
The dual-trigger design is the right fix while the analog camera is the right camera. Replace it when you need pulse rates above about 30 Hz, per-frame hardware timestamps, or repeatability to the pixel instead of to the line. A global-shutter digital camera takes the same pulse on its hardware trigger line and returns one complete frame per edge — no interlace, no sync separator, no delay arithmetic.
The MV-CU020-90GC is a 2.5 MP GigE area scan camera with a global shutter, so one pulse edge produces one clean frame.
- Sensor format
- 1/1.7"
- Lens mount
- C-mount
- Interface
- GigE
- Resolution
- Up to 3 MP
For higher rates or several cameras on one pulse, frame grabber image acquisition over Camera Link and CoaXPress covers the cabled interfaces that carry their own trigger and timestamp lines. The step-by-step migration from a retired analog board is in replacing an obsolete analog frame grabber with a USB3 Vision camera. If your pulse source is a PLC output rather than a laboratory pulser, PLC external trigger wiring for industrial cameras covers the levels, isolation and display-side details.
The configurator matches a camera, lens, light, light controller and cables to each other, step by step, and lists only parts that fit what you already picked.
Checklist before first light
- Pulse level and edge polarity confirmed at both inputs with a scope.
- One ground path, or an isolated trigger line, between pulse source and PC.
- Exposure set in whole lines: 32 lines ≈ 2.03 ms on RS-170, 31 lines ≈ 1.98 ms on CCIR.
- Pulse rate below 1 / (exposure + readout): 28 Hz at the numbers above.
- Grabber in hardware-triggered mode, three buffers queued, loop waits on events.
- Grabber triggered by frame-valid, or by the pulse with a 40 ms delay.
- Frames saved equals pulses fired over 100 shots; spot within a few pixels every frame.
- Beam blocked and wavelength-rated eyewear on for every open path.
When the numbers say the analog chain has reached its limit, start with the camera finder or the system configurator. If the pulse source's timing sheet raises a question the arithmetic here does not answer, bring it to us through the contact page.
Questions
If I can drive only one trigger input, which one?
Drive the camera. The reset input is the only one that positions the exposure on the pulse; once the camera resets, the grabber's sync separator follows its video, so a stable grab still happens. You lose the one-buffer-per-pulse bookkeeping, which you can rebuild by counting frames in software. Triggering only the grabber never works: the free-running camera puts the flash at a random phase in the exposure.
Can software timing replace the hardware trigger?
No. A polled software loop jitters by milliseconds, while the exposure bracket for a pulsed laser is tens of microseconds — the loop cannot place the shutter, and it does not need to. The grabber's hardware trigger latches the frame, and software only dequeues and processes. The one timing decision in code is the buffer queue depth: three buffers covers a 200 ms processing hiccup at a 10 Hz pulse rate, and anything longer drops whole frames without losing sync.
How does the camera catch a laser pulse only nanoseconds wide?
It never shutters that fast, and it does not need to. The exposure opens early and stays open, and the laser is the only light in a dark enclosure, so the pulse records itself at full intensity — an 8 ns flash inside a 2.03 ms exposure works fine. What the exposure must cover is the pulse source's jitter (±50 µs in the worked example) plus the camera's reset uncertainty, not the optical pulse width.
Why are my saved frames half-bright or split by a horizontal line?
Three usual causes, in order: the grabber triggers on a field instead of a frame, so you store half the interlaced pair; the exposure crosses a reset and the second field starts mid-integration; or the camera is free-running and the flash lands near a field boundary. Check the grabber's field-versus-frame trigger setting first, then the exposure length against the pulse period, then confirm the camera really receives the pulse.
Can one pulse output drive both the camera and the grabber?
Yes. Split it with a BNC tee at the source and run one short branch to each input, so both see the same TTL edge; the nanoseconds of difference between two cables are nothing against a microsecond-scale exposure. Reference the source's ground to the grabber at one point, or use an isolated trigger input, because a supply that dumps amps when it fires can otherwise lift the trigger ground and inject false edges.

