Photometric stereo asks one question several times over: which way is this patch of surface tilted? Answering it takes three or four images of a stationary part, each lit from a different direction, all through the same lens and pixel grid. Sequencing on a multi-channel light controller turns that into a standard camera job: the controller stores the step order, fires one output channel per exposure, and a trigger line keeps frames and light steps locked together.
This guide explains what the controller does and how shading images become a surface normal at every pixel. It runs the timing arithmetic before you promise a cycle time, covers the wiring and intensity checks that keep the solver fed, and closes with a worked four-channel example with the arithmetic shown.
What channel sequencing does
Inside a sequenced controller sits a stored program: an ordered list of steps, each step assigning an intensity from 0% to 100% to every channel. Step 1 lights channel 1 and blanks the rest, step 2 lights channel 2, and so on. The camera captures exactly one frame per step, so a four-step program returns four images — four illumination directions, one lens, one pixel grid, no moving optics.
Two wiring patterns cover nearly every station. Four discrete lights — two bars, a coaxial source, a low-angle grazing pair, whatever the part needs — each take one channel. Or one multi-zone ring feeds its four quadrants to four channels, the arrangement described in photometric stereo ring lighting for surface inspection. The camera-side job is identical either way: acquire N frames per trigger — one frame per channel — which is exactly what multi image capture per trigger: get an image set from one shot sets up.
The controller earns its slot by replacing a bench of relays and timers with one stored program, and by repeating the same channel order on every cycle — the property the solver depends on.
How four shading images become a normal at every pixel
For a matte surface, the pixel value in image k is the surface reflectance ρ times the cosine of the angle between the pixel's normal n and that light's direction l_k:
Three lights whose directions are not coplanar give three equations per pixel with three unknowns — the normal's two tilt angles and ρ — so the software solves a small linear system at every pixel and normalizes the result into a normal map. A fourth image buys redundancy: pixels that sit in shadow for one direction, or carry a specular peak, get masked instead of poisoning the solve, and noise averages down across the set.
The solve assumes each light acts from a single direction. Check how far that direction walks across your part: a light 250 mm from the part centre with a 25 mm part radius swings its incidence angle by arctan(25/250) ≈ ±5.7° from centre to edge. Keep that spread under about 10° and the far-field maths hold; beyond it, move the lights out or use software that models the near-field geometry explicitly.
The timing arithmetic: set time, duty cycle and ambient
Three numbers decide whether sequencing fits your station.
Set time. With the exposure held inside the camera's frame period, the set takes one frame period per channel:
A camera running 30 fps spends 33.3 ms per frame, so four channels hold the part still for 4 × 33.3 = 133 ms. Exposure plus readout must fit inside each frame period; if not, the set stretches and the motion budget tightens with it.
Duty cycle. Each channel is lit for one exposure in N. Four 10 ms exposures inside a 133 ms set put every channel at 10 ÷ 133 ≈ 7.5% duty, which leaves generous headroom to overdrive short pulses. Size any overdriven pulse against the controller's strobe rating with the method in LED strobe duty cycle: matching lights and controllers, and budget the few microseconds a strobe needs to reach full output after its trigger — LED strobe rise time: why microseconds of light delay blur your image shows why a small fixed delay between trigger edge and exposure start keeps the four images matched.
Ambient. A 200 µs strobe integrates 10 ms ÷ 0.2 ms = 50× less ambient light than a 10 ms exposure, which is why strobed sequencing holds contrast under bright factory lighting.
A controller whose feature list includes strobe fires these pulses from the same stored program, with no external flash box:
- Output
- Constant voltage 24 V
- Channels
- 4 channels
- Control
- Digital
- Feature
- Strobe
Worked example: four directions, one indexed part
Set-up: four bar lights at four azimuths around a machined housing, the part clamped in a fixture, camera at 30 fps, optics imaging a 50 mm field of view onto 1,000 pixels.
- Image scale: 50 mm ÷ 1,000 px = 0.05 mm per pixel.
- Set time: 4 × 33.3 ms = 133 ms of stationary part.
- Motion budget: allow one pixel of drift across the whole set, 0.05 mm. Any motion faster than 0.05 mm ÷ 0.133 s ≈ 0.38 mm/s violates it. Production conveyors run far faster than 0.38 mm/s, so the part must be indexed and clamped — that single number is the decision.
- Exposure: 10 ms continuous per step places the brightest pixels near 220 of 255 with no clipping; each channel runs 10 ms of every 133 ms, the 7.5% duty above.
- Strobed variant: 200 µs pulses with raised intensity cut per-image blur to 0.38 mm/s × 0.2 ms ≈ 0.00008 mm — irrelevant once the part is clamped — and cut ambient by 50×. The set time stays 133 ms because the frame period, not the exposure, paces the capture.
- Brightness match: a light at 45° incidence delivers cos 45° ≈ 0.71 of the head-on flux on a flat face, so raise that channel about 1.41× (1 ÷ 0.71) or let the solver normalize and accept slightly noisier normals.
Wiring and the per-channel power budget
Count channels first: one per direction, plus one spare if a bright-field fill or a second wavelength might join later. Then work two budgets: each light's rated draw against its channel, and the four-channel total against the controller's power figure. Light controller to light cable adapters: connectors and current walks the connector and current checks, and lighting accessories hold the extension cables — the LS-LAC-0048 comes in 1, 3 and 5 m lengths with a 4-pin connector for lights mounted away from the controller.
Output type matters because photometric stereo compares images pixel by pixel: intensity that wanders between the four exposures reads as a shading change that is not geometry. Constant-current channels hold LED output steady against supply and temperature wander; confirm the hold across a shift with the procedure in machine vision lighting stability: test before deployment.
- Output
- Constant current
- Channels
- 4 channels
- Control
- Digital
- Feature
- Constant current
Arithmetic on that rating: 120 W ÷ 4 channels = 30 W per channel at even loading, enough for four lights in the 10-20 W class with margin. A 24 V light drawing 0.5 A consumes 24 V × 0.5 A = 12 W, so four such lights load 48 W of the 120 W — comfortable.
If a PLC or SCADA program advances the channels instead of the controller's internal sequencer, every channel needs one consistent address across the whole program; the mismatch class described for multi-channel trigger channel IDs in Rapid SCADA is the usual snag, and it costs an afternoon to avoid.
Camera side: one exposure per channel
Give the set one pacer. Either the camera's frame trigger input paces the controller's sequence, or the controller's per-step output paces the camera — one device leads, the other follows, never both. The same shared-trigger discipline as multi camera exposure synchronization with a shared trigger applies, just with one camera and one sequence.
Shutter type decides how forgiving the wiring is. With a rolling shutter sensor, every channel must be dark during readout and lit only inside the full-frame exposure, or the rows captured mid-scan show a banding gradient the solver reads as false tilt. A global shutter sensor integrates all rows at once and removes that constraint:
- Sensor format
- 1/1.7"
- Lens mount
- C-mount
- Interface
- GigE
- Resolution
- Up to 3 MP
The colour sensor suits stations that also judge colour. Where the shading solve is the only job, a mono global-shutter model in the same families is the usual pick — the area scan camera finder filters by shutter type and colour.
Intensity set-up the solver can use
Equalize the four images before the solver sees them. Aim every channel so the images' mean grey levels agree within about 5 grey levels, and keep the brightest pixel at or under roughly 230 of 255: a clipped highlight is a saturated pixel whose directional contribution is wrong, and the solver turns it into a steep tilt that is not there. Compare the channels on a flat diffuse reference target — machine vision reference target for comparing illumination is built for exactly that comparison. If a channel cannot reach its neighbours' grey level even at 100%, the light is too small or too far for its direction: fix the geometry before touching the numbers.
Where sequencing is the wrong tool
Continuous motion. A part that never stops breaks the stationary budget — 133 ms in the worked example — and no pulse shortening fixes the drift between frames. Four-angle line lights paired with a line scan camera take photometric stereo onto moving webs instead, as set out in line scan photometric stereo: four-angle line lights for moving webs. For discrete parts that stop only briefly, moving part photometric stereo: synchronize image capture splits the set across the motion windows.
Wavelengths instead of directions. Swap the four white channels for four colours and the same sequenced capture becomes a multispectral set; multi wavelength light: sequence colours to get more from one camera works that variant through.
Gloss and wet films. A polished or wet part breaks the matte shading model — highlights saturate and read as steep normals. Diffuse or domed illumination with a gloss-aware solver is a different design conversation; plan for it before ordering lights.
Checklist before you order
- Directions: 3 for a bare matte solve, 4 when parts self-shadow or glint.
- Channels: one per direction plus one spare.
- Power: sum the lights' rated draw — four 12 W lights need 48 W — and keep the total under the controller rating.
- Strobe: needed under ambient light or for motion; confirm the strobe feature is on the controller you pick.
- Shutter: global shutter preferred; rolling shutter only with lighting confined to the exposure window.
- Cables: measure controller-to-light runs and have the extension or adapter in hand.
- Software: confirm it accepts your image count and knows the light directions, from a calibration capture or from CAD.
Size the chain in one pass from the light controllers page or step straight into the configurator at the controller stage. More lighting technique lives on the lighting topic page. If the numbers do not close on your part, contact us with the field of view and cycle target — they settle quickly.
Questions
Do I need four lights, or will three directions work?
Three non-coplanar directions solve the Lambertian shading equations exactly, so three lights give a valid normal map. The fourth earns its slot when parts self-shadow or glint: the extra image lets software mask the bad pixels instead of discarding them, and it averages noise down across the set. Keep the directions spread — roughly 45° to 60° from the camera axis is a common choice — rather than clustering every light on one side.
Can a rolling shutter camera be used with sequenced lighting?
Yes, provided each channel lights only inside the full-frame exposure window and stays dark through readout. The failure shows as horizontal banding whose spacing matches the readout, not the light. Test it by strobing one channel at a still part: a stripe pattern that stays fixed means light is leaking into readout rows. A global shutter sensor integrates all rows at once and removes the constraint, which is why it is the safer default.
How closely should the four images match in brightness?
Within a few grey levels. Set each channel so the images' mean grey levels agree to about ±5 and the brightest pixels sit near 220-230 of 255. Large offsets push the solver to attribute the difference to reflectance rather than geometry, and any clipped highlight is read as a steep surface tilt that is not there. Measure on a flat diffuse reference, not on the part.
What cycle time should I plan for a four-image station?
Four frame periods plus handling. At 30 frames per second the capture alone is about 133 ms; add fixture indexing, settle time and the software solve, which typically adds tens to hundreds of milliseconds depending on pixel count. A practical planning figure for a small indexed station is 0.5-1 s per part including handling — measure your own fixture before quoting the number to production.


