You want a crisp, flashed image of the part, and the depth camera on the station has no shutter command, no exposure pin and, on the compact modules, no sync connector at all. That is the normal state of the class: the shutter was never yours to open and close. What you control is the exposure window, and the flash must land inside it. This guide gives you the timing arithmetic — window, pulse width, delay and jitter — the shutter type that makes flash clean, a three-test verification, and the decision for each case: flash the module's RGB sensor, or pair the module with a triggered global-shutter camera and keep depth and flash separate.
Can you trigger the shutter on a depth camera?
No. A compact depth module has no shutter command: its sensors scan continuously and the driver assembles frames from the stream, so the exposure time is the only capture window you control. Your flash must land inside that window, not on a shutter edge that does not exist.
Depth modules come in three families, and the timing problem differs in each. Structured-light modules project a known pattern — usually infrared speckle — onto the part and compute depth from how the pattern deforms across a stereo pair. ToF modules measure how long light takes to make its round trip. Laser profilers sweep a single line across the surface at high rate. All three integrate light for a set exposure, and none of them hands you a shutter-open edge to synchronize with. The 3D sensors category splits the same way: laser profilers, stereo and structured light, ToF, and the logistics volume cameras built on them.
Some modules add a hardware sync connector for exactly this purpose. The smallest USB modules often leave it out to save cost and pins, and no software setting brings it back. Where a connector exists, use it, and follow the module's integration notes for the exposure-related signal. Where it does not, do not go hunting inside the housing or the cable: the pins are simply not there, and you would trade a timing question for a repair job.
A module that projects its own pattern pairs naturally with this problem, because you can leave the depth path untouched and plan the flash around it:
- Type
- Stereo / structured light
What does the exposure time actually control?
Exposure sets how long light integrates: the whole frame at once on a global-shutter sensor, row by row on a rolling one. At 100 mm/s a 1 ms exposure smears the image 100 µm, about 29 pixels on a 3.45 µm sensor; 34.5 µs holds it to one pixel.
On a global-shutter sensor every pixel starts and stops integrating together, so exposure behaves like the shutter you thought you were getting. On a rolling-shutter sensor the rows expose in sequence across the scan, so the exposure figure describes each row, not the frame. The stereo pair inside a structured-light module is normally global shutter, because both views must see the same projected pattern; the RGB sensor is the one that often rolls.
At the numbers above, 1 ms at 100 mm/s smears the image 0.1 mm: 100 µm ÷ 3.45 µm ≈ 29 pixels. Cut the window to 34.5 µs and the smear falls to one pixel.
Watch automatic exposure here. It stretches the window to brighten a dark scene, and your flash delay then drifts outside it. Cap the maximum auto exposure or switch the automatic modes off: the auto-exposure cap how-to and the auto-mode drift fix cover both moves.
How do you time an external flash without a sync pin?
Fire the flash from the same controller that requests the frame, with the pulse inside the exposure window: a 60 µs exposure and a 30 µs flash means a 15 µs delay after exposure start. Where the module has no sync connector, this shared-trigger timing is the practical method.
Keep all three times in the same unit; microseconds in, microseconds out. Centering buys tolerance: with a 60 µs window and a 30 µs pulse, the flash can drift 15 µs to either side before it clips an edge. Where the timing comes from decides how much drift you actually have. A hardware trigger input starts the exposure within single-digit to low-tens of microseconds of the pulse edge, and that latency is constant for a given camera model — measure it once with a scope and subtract it from the delay. A software capture request carries the host's scheduling jitter, hundreds of microseconds under load and occasionally milliseconds, so software timing needs a window at least ten times wider than the pulse.
The trigger-side arithmetic is the same one behind hardware-trigger frame rates. Pulse the controller faster than the camera can rearm and frames drop or double-expose; that is the overtrigger failure. And if the first frame after a trigger comes out dark while later ones are fine, that is exposure settling or light timing — the first-frame-dark diagnosis separates the two.
The window also has to fit the frame period. At 30 fps there are 33.3 ms between frame starts, so a 60 µs exposure is no constraint; at 1,000 fps the period is 1 ms and the window starts to matter.
Why does flash only work cleanly with a global shutter?
A rolling-shutter sensor reads rows in sequence, so a 30 µs flash during an 8 ms scan lights about 0.4 % of the rows — 11 of 3,000 — and leaves the rest dark. A global-shutter sensor exposes every pixel at once, so the whole frame catches the pulse.
Around 8 ms is a fair planning number for the scan of a USB3 rolling-shutter sensor; measure your part once and use its figure. A 30 µs pulse covers 30 µs ÷ 8 ms = 0.375 % of the scan, about 11 rows of 3,000, so the flashed frame comes out as one bright band with the rest ambient-lit. Lengthening the flash to cover all 8 ms freezes nothing: at 100 mm/s the smear is 0.8 mm, about 232 pixels. The fix is the shutter type, not the delay.
Two more interactions matter on a depth module. The internal projector keeps running through your flash, so its speckle overlays the flashed image and its light competes with yours; where the module's software exposes a projector switch, turn it off for flashed captures. And adding your own second camera to a stereo rig deserves the same discipline — one pulse, both sensors — as in stereo camera trigger synchronization.
How short a pulse freezes the motion?
Size the pulse to one pixel of travel, t = p / v: at 100 mm/s with 3.45 µm pixels the limit is 34.5 µs, a 30 µs pulse smears 3 µm — 0.87 pixels — and a 60 µs exposure adds 1.7 pixels of ambient smear.
| Quantity | Value | Where it comes from |
|---|---|---|
| One-pixel ceiling | 34.5 µs | 0.00345 mm ÷ 100 mm/s |
| Flash pulse | 30 µs | chosen below the ceiling |
| Exposure window | 60 µs | twice the pulse, for jitter margin |
| Delay after exposure start | 15 µs | (60 − 30) ÷ 2 |
| Flash smear | 3 µm ≈ 0.87 px | 100 mm/s × 30 µs |
| Ambient smear | 6 µm ≈ 1.7 px | 100 mm/s × 60 µs |
| Flash share of signal | ≈ 83 % | (10 × 30) ÷ ((10 × 30) + (1 × 60)) |
Three stops of aperture are yours to spend. Moving f/2.8 to f/8 costs (8 ÷ 2.8)² ≈ 8× the light, and you repay it in pulse width or LED current, never in exposure time. Machine-vision LED strobe pulses typically run tens to hundreds of microseconds; the floor of that range belongs to the light's driver, not the camera. The continuous-light version of this trade is the exposure-time-versus-shutter-speed guide; with a flash, the pulse takes over the freezing duty and the window only has to contain it.
How do you verify the flash and exposure are in step?
Three checks prove the timing: shoot in a dark cell with flash only — a bright, sharp frame means the pulse landed inside the window; delay the flash past exposure end — the frame goes black; scope trigger and flash lines to see the pulse sit inside the exposure.
In the dark-cell test, dim the cell or cover the station and capture. A dark frame means the pulse missed the window entirely, and the black-frame strobe fix ranks the timing faults behind that symptom. In the delay test, push the flash delay past the exposure end — the frame must go black — then pull it back in and watch it brighten; the edge you find is the true exposure edge. In the scope test, put one channel on the trigger and one on the LED drive: the pulse must sit inside the exposure edges with margin on both sides.
Then measure the jitter instead of trusting it. Sweep the delay in 10 µs steps across the window and record mean brightness per step: the flat top of that curve is your usable window. Fire 100 captures at the chosen delay and check the brightness spread; a few percent is healthy, and the spread you measured is the margin you can defend.
What hardware fires the flash?
Use a light controller with a strobe input: it switches the light at full current for the set pulse width. The LS-CTL-0070 is a 4-channel, 200 W digital control box with a strobe function and RS232, so camera trigger and flash come off one timing chain.
The chain runs trigger source, controller strobe input, light. The trigger source can be a photoelectric sensor on the part, a PLC output, or a camera I/O line that goes active during exposure. Camera I/O pins are logic level: the light's current flows through the controller, never through the pin. Keep the flash leads short and away from the light's power wiring, and respect the light's duty-cycle rating — peak current is legitimate at the rated duty, and continuous high-current pulsing overheats the board.
For a four-light station on one timing chain, a controller in this class does the job:
- Output
- Constant voltage 24 V
- Channels
- 4 channels
- Control
- Digital
- Feature
- Strobe
The light controllers category holds the strobe-capable units, and the light controller finder filters by channels, control type and strobe feature.
When do you add a second camera instead of flashing the depth module?
When you need full depth quality and a crisp flashed appearance image at once: keep the module's depth exposure near its default, and take the flashed picture from a triggered global-shutter area camera mounted beside it. Depth measures geometry; the flash camera carries the inspection.
Shortening the module's exposure to catch a flash trades depth quality for appearance: pattern photons thin out, depth noise grows, and dark or shiny surfaces start dropping out of the cloud. The depth-unit and precision settings guide shows what the depth-side settings actually move. So keep the depth exposure at its commissioned value and mount the companion camera beside the module, framing the same field, with camera and flash triggered by one controller pulse.
The area scan camera finder filters shutter type directly, and the camera configurator walks sensor, mount and interface from the part size; the area scan cameras category holds the global-shutter parts. For a flashed appearance image, a global-shutter GigE part is the standard choice: the MV-CU020-90GC is a 2.5 MP GigE camera with a global shutter. For smaller defects, move up to the MV-CH120-11UC, a 12 MP global-shutter USB3 camera in the high-speed variant.
- Sensor format
- 1/1.7"
- Lens mount
- C-mount
- Sensor format
- 1.1"
- Lens mount
- C-mount
A ToF module closes the argument: it times the light itself, so your flash lands in the measurement as pure noise. MV-DT01WMU-class modules should never see the strobe; give them geometry duty and flash a companion.
Which set-up do you ship?
Ship the pair-and-trigger layout by default: depth module for geometry at its normal exposure, a triggered global-shutter camera for the flashed image, both fired by one strobe controller. Flash the depth module's own RGB sensor only when the module exposes sync I/O and a global-shutter RGB sensor.
- Module with a sync connector and a global-shutter RGB sensor: wire its sync signal to the controller, subtract the measured offset, flash it directly.
- Compact module, no sync pins, rolling-shutter RGB: pair-and-trigger — depth stays at its commissioned exposure, a global-shutter companion camera takes the flash on the same pulse. This is the default.
- ToF module: never flash the ToF sensor; companion camera, same layout.
- Static part, software-timed capture: workable, but size the window to at least ten times the pulse width.
When you size the geometry, the 3D camera working distance and positioning guide sets the mounting numbers, and the controller configurator pairs the strobe controller to the light you picked. The 3D topic page collects the depth-side guides, and the contact page reaches the applications team when the flash budget or the timing chain needs a second opinion.
Questions
Can I fire the flash straight from a camera I/O pin?
No — camera I/O pins are logic-level signals with a few tens of milliamps behind them at most. Use the pin as a trigger into a light controller, whose strobe output carries the light's current. Some cameras do offer a dedicated strobe output rated for LED loads; if the camera has one, it is listed in its I/O connector specification, and it still only suits lights within that current rating.
Why does flash sync work in the lab and fail on the production floor?
Automatic exposure is the usual cause: ambient light changes stretch the window, your fixed delay drifts outside it, and brightness changes that have nothing to do with the flash creep into the image. Lock exposure and gain manually, size the window from your own arithmetic, and if brightness must float, float the pulse width with it through closed-loop light control.
How short can an LED strobe pulse actually be?
Practical LED machine-vision strobes run from about 10 µs to a few hundred microseconds. The floor comes from the light's driver and the controller's minimum pulse width: below it the LEDs never reach full current and output collapses. Xenon flash tubes switch faster — a few to tens of microseconds — but their afterglow tail smears fast motion, which is why LED strobes dominate on moving lines.
Does a short exposure hurt the depth data itself?
Yes, on structured-light and stereo modules: depth comes from the projected pattern, and a short exposure integrates fewer pattern photons, so depth noise grows and dark, shiny or distant surfaces drop out of the cloud. ToF modules behave the same way. Keep the depth exposure near the value that produced a clean point cloud at commissioning, and take the flashed image from a separate camera.
Can I get microsecond sync from a module with no sync pins at all?
No. With only a USB capture request, your timing error is the host's scheduling jitter — hundreds of microseconds is normal, occasionally milliseconds — so the flash must fit a window at least ten times wider than the pulse. True microsecond repeatability needs a hardware trigger line: pick a camera with a trigger input and fire camera and flash from one controller pulse.



