System designHow-to

GPIO trigger routing on a serializer board: one input, six cameras

How GPIO trigger routing on a serializer board fires up to six remote cameras from one 3.3-5 V pulse, with pin maps, strobe return and rate limits.

LumaSpec Vision10 min read Share on LinkedIn

On this page 10 sections
  1. 01The decision in one paragraph
  2. 02Why the trigger can ride the coax
  3. 03The signals on the board
  4. 04Route one input to every trigger pin
  5. 05Bring a strobe back to a light
  6. 06Pick cameras the pulse can actually use
  7. 07Worked example: trigger-rate ceiling on a mixed six-camera rig
  8. 08When the usual answer is wrong
  9. 09Checklist before the rig ships
  10. 10Questions

An IP67-housed camera on a serializer link usually exposes no trigger connector, yet the sensor inside it still has a trigger pin. The way in runs through the hub board: the same coax that carries video back also carries GPIO forward, and a pin-mapping table on the board decides which board signal reaches which camera pin. This guide shows how to map one 3.3-5 V input onto the trigger pins of all six cameras, return a strobe to a light controller, and prove both directions before the rig ships.

The decision in one paragraph

Map one board input, BOARD_GPIN1, to the trigger GPIO of every channel on the hub board, and a single pulse fires all cameras together. On one six-channel board the working set of pairs looks like this — target pin first, source signal second, one line per camera:

DESER1_GPIO1  BOARD_GPIN1
DESER1_GPIO3  BOARD_GPIN1
DESER2_GPIO1  BOARD_GPIN1
DESER3_GPIO1  BOARD_GPIN1
DESER4_GPIO1  BOARD_GPIN1
DESER4_GPIO3  BOARD_GPIN1

Six lines, six sensors, one pulse. The gate is sensor trigger support: the routing lands on the sensor's trigger pin only when that sensor implements triggering, so confirm hardware trigger support in each camera model before the rig is planned around it. A sensor without trigger support ignores the line no matter how the map is written — that camera stays on software capture while the rest sync in hardware. If no pulse source exists yet, a frame grabber can generate the camera trigger pulse train.

Why the trigger can ride the coax

Each camera carries a serializer; the hub board holds the deserializer chips — four of them on the six-channel example board — and every camera connects over one coax or shielded pair. A serializer in this class runs a 4.16 Gbps forward channel for video and a 50 Mbps bidirectional control channel on the same cable, with power riding the same conductor in power-over-coax builds. GPIO forwarding uses that control channel: a level change at a board input reappears at the camera end with no software in the path.

That is the whole trick behind triggering a sealed camera, and the same technique underlies FPD-Link III and GMSL multi-camera systems. It is also why the trigger question here is a pin-mapping question, not a wiring one — the signal path already exists; you choose which pins it joins. Getting the host side of these boards running is its own task, covered in FPD-Link III camera bring-up when no board guide exists.

The signals on the board

Signal Direction at the hub What it connects to
BOARD_GPIN1 Input Your 3.3-5 V pulse source
BOARD_GPOUT1, BOARD_GPOUT2 Output Logic levels, set by hand or driven by a camera
DESER1_GPIO1 … DESER4_GPIO3 Per channel The GPIO pins each serializer forwards to its camera
BOARD_LED Output Toggle target that proves the tool reaches the board

The names come from the six-channel example board; the mapping tool of your board prints its own set, and the principle is identical. Inputs listen and outputs drive: GPIN is where your pulse arrives, GPOUT is where signals leave. An output can also be forced by hand — setting GPOUT1 to logic 1 and GPOUT2 to logic 0 is two arguments to the same tool — which is handy on the bench when a strobe input needs a steady level.

Route one input to every trigger pin

  1. Print the map. Run the board's pin-mapping tool with no arguments; it lists the current routing, which is your baseline and your rollback point.
  2. Prove control of the board. Toggle BOARD_LED on, then off. If the LED obeys, the tool talks to the board; if it does not, fix the driver before touching pin routing.
  3. Write the pairs. Enter the six target-source pairs above so every channel's trigger GPIO follows BOARD_GPIN1.
  4. Wire the pulse. Drive GPIN1 from a 3.3-5 V logic source and tie the source's ground to the board's ground. Open-collector or floating sources need a pull-up — GPIO input pull-up configuration and pin loading covers the resistor values and the input current.
  5. Arm the cameras. On every camera, leave free-run and select the hardware line as trigger source, with the same activation edge and the same fixed exposure on all six. The free-run default you must defeat is covered in hardware trigger configuration per camera.
  6. Count frames. Feed a slow pulse near 1 Hz and watch the counters: one frame per pulse on each of the six streams, none between pulses. When one stream drifts, multi-camera exposure synchronization with a shared trigger isolates whether the camera or the pulse is at fault.

Bring a strobe back to a light

The return direction is what makes synchronized lighting possible. A sensor with strobe support raises a signal during its exposure; route it deserializer-to-board so it appears on a board output. The example pair drives BOARD_GPOUT1 from DESER1_GPIO0, the strobe pin of the first camera. Wire that GPOUT into the strobe input of a light controller and let the controller switch the LED load:

Light controllersDigital control box, 4 ch, 200 W, RS232 (LS-CTL-0070)LS-CTL-0070
Output
Constant voltage 24 V
Channels
4 channels
Control
Digital
Feature
Strobe
$549.00View partBuild a system with it

The LS-CTL-0070 is a digital control box with four channels, 200 W and a strobe feature, set over RS232. The GPOUT is a logic signal; the controller's 24 V constant-voltage outputs are what power the light. Sequencing several lights per frame is the same idea on a larger scale — multi-channel light controller sequencing for photometric stereo walks it.

Pick cameras the pulse can actually use

Hardware triggering starts the readouts together; only a global-shutter sensor also exposes the whole frame at once, so choose global shutter whenever the six images must represent the same instant. The area scan cameras finder filters on shutter type, and high-speed global-shutter models like the MV-CH120-11UC — a 12 MP USB3 camera on the IMX304 sensor — sit at that end of the list.

Area scan camerasHikrobot MV-CH120-11UC 12 MP Area Scan Camera, USB3, IMX304, High-speed version, ColorMV-CH120-11UC
Sensor format
1.1"
Lens mount
C-mount
Interface
USB3
Resolution
12 MP
$2,339.00 · quotedView and quoteBuild a system with it

On the host side, the hub board hands over six synchronized streams through one interface. A direct-link build aggregates cameras the conventional way instead, with a multi-port card such as the MV-GS1104F-DF, a 4-port XoF frame grabber with an SFP+ slot. Either way, frame grabbers are chosen by port count and interface first.

Frame grabbersHikrobot MV-GS1104F-DF XoF frame grabber, 4 ports, SFP+ slot, 40G total bandwidth supported, DataForwarding functionMV-GS1104F-DF
Interface
XoFLink
Ports
4 ports
$2,059.00View partBuild a system with it

Worked example: trigger-rate ceiling on a mixed six-camera rig

Inputs: six channels share one GPIN. Five cameras are LS-CMR-0166 models, 12 MP at 30 fps; the sixth is an LS-CMR-0053, the same IMX226 sensor on GigE at 9 fps.

Area scan cameras12 MP USB3 area scan camera, IMX226, 1/1.7" rolling shutter, 30 fps, 4000 × 3000 resolution (LS-CMR-0166)LS-CMR-0166
Sensor format
1/1.7"
Interface
USB3
Resolution
12 MP
Shutter
Rolling
$560.00View partBuild a system with it

Rule: the trigger period must exceed the frame period of the slowest camera, plus a 20% margin for readout jitter and processing spread.

T_trigger = (1 + margin) × (1 / f_slowest) f_max = 1 / T_trigger

Arithmetic with the 9 fps camera in the rig: frame period = 1 / 9 fps = 0.111 s = 111 ms. With margin: 111 ms × 1.2 = 133 ms. Ceiling: f_max = 1 / 0.133 s = 7.5 Hz, so run at 7 Hz. Host load at that rate: 6 cameras × 7 frames/s = 42 frames/s.

Decision: hold the pulse generator at 7 Hz or slower while the 9 fps camera is in the rig. Swapping it for a sixth 30 fps model moves the frame period to 1 / 30 s = 33 ms, the margined period to 33 ms × 1.2 = 40 ms, and the ceiling to 1 / 0.040 s = 25 Hz — about 3.5x more synchronized sets per second for one camera change. The serializer links forward edges far faster than any sensor reads out; the slowest sensor, not the board, owns the ceiling.

When the usual answer is wrong

  • The sensor has no trigger support. The map reaches the pin and nothing listens. That camera belongs on a software-timed station, or replace it.
  • You trigger the host instead of the cameras. A pulse into a grabber timestamps frames; it does not start exposure inside sealed cameras. Synchronization has to land on the sensor's trigger pin.
  • You read GPOUT as an input. Outputs drive, inputs listen, and the pair names are not interchangeable.
  • Two boards share one pulse source. Each hub board maps its own GPIN, so a two-board rig needs the pulse fanned out to both inputs — fanning out one TTL pulse safely shows the buffering that keeps the edges clean.

If a camera ignores pulses after all of this, the cause is almost always the camera-side line setting rather than the board map: hardware trigger source not detected walks the line configuration. For two-camera rigs specifically, stereo camera trigger synchronization with a shared pulse covers the paired case.

Checklist before the rig ships

  • Hardware trigger support confirmed for all six camera models.
  • LED toggle obeys the tool; the original pin map was printed before any change.
  • Six target-source pairs written; every stream delivers exactly one frame per 1 Hz pulse.
  • Pulse source at 3.3-5 V, grounds tied, idle level defined when the source is disconnected.
  • Trigger rate at or below the ceiling from the worked example.
  • Strobe pair mapped; the light flashes inside the exposure window.
  • The pin map is re-applied by the machine's start-up script, so a reboot cannot ship an unmapped rig.

Next step: size the sensors in the camera finder, add the light controller for the strobe, or start the vision system configurator. For a board whose pin names differ from the ones here, contact the applications team with the map your tool prints.

Questions

Can one GPIN fire all six cameras at the same time?

Yes. Map the same board input to the trigger GPIO of every channel — six pairs like DESER1_GPIO1 and BOARD_GPIN1 — and one 3.3-5 V pulse reaches all six sensors over their own coax links. All channels run identical forwarding silicon, so the cameras start within a tight channel-to-channel spread, far closer than any software-triggered sequence. The only gate is sensor trigger support.

How do I trigger an IP67 camera that has no trigger connector?

Through the link. The serializer at the camera forwards GPIO over the same coax that carries video, so the sensor's trigger pin is reachable from the hub board even when the housing exposes no connector. Route a board GPIN to that pin per channel, then treat the camera like any hardware-triggered camera in software: fixed exposure, hardware trigger source, one frame per pulse.

What signal level is safe on the GPIN pins?

A 3.3-5 V logic pulse, referenced to the board's ground. Never connect a 24 V strobe or controller output straight to a GPIN; that is what the GPOUT-to-controller direction is for. If your pulse source is open-collector, enable its pull-up and confirm the idle level before wiring, so a floating line cannot fire phantom frames.

How do I prove the routing works before the cameras are mounted?

Run the board's pin-mapping tool with no arguments; it prints the current map. Toggle the board LED on and off to prove the tool talks to the board. Then map one channel, feed GPIN1 a slow 1 Hz pulse, and watch that camera's stream deliver exactly one frame per pulse on a counter. Repeat per channel until all six behave.

Can I flash a light in step with exposure?

Yes, in the return direction: map the sensor's strobe signal to a board GPOUT — the example pair routes DESER1_GPIO0 to BOARD_GPOUT1 — and wire that output to the strobe input of a light controller. The controller, not the GPOUT, drives the LED current. This needs a sensor with a strobe output; without one, time the light from your software instead.

What limits how fast I can pulse the shared trigger?

The slowest camera in the rig. Each sensor needs its full frame period between triggers, so the ceiling is one over the slowest frame rate plus margin: a mixed rig containing a 9 fps camera tops out near 7 Hz even when the other five run at 30 fps. Replace the slow camera or slow the pulse — the board itself is not the limit.