System designGuide

Synchronized camera bank switching for multi-view capture

Design synchronized camera bank switching for twelve connected cameras: size six-view bandwidth, control exposure timing, and verify switching latency.

LumaSpec Vision11 min read Share on LinkedIn

On this page 10 sections
  1. 01Choose trigger-gated banks rather than cable switching
  2. 02Establish resolution and shutter requirements first
  3. 03Calculate active payload and connected-camera overhead separately
  4. 04Synchronize exposure edges, not software calls
  5. 05Implement switching as a bounded state machine
  6. 06Verify timestamps and complete-set membership
  7. 07Prove host capacity with the production workload
  8. 08Check the architecture before ordering
  9. 09Turn the requirements into a parts shortlist
  10. 10Questions

A twelve-camera station can keep every camera connected while capturing only six views at a time. The difficult part is not choosing which images to display. It is controlling which cameras expose, identifying complete image sets, and bounding the delay between banks. For a horizontal panorama that alternates with top-and-bottom inspection, separate exposure timing, image transport, and host processing before selecting hardware. This approach lets you test whether one host is sufficient without confusing connection count with acquisition capacity.

Choose trigger-gated banks rather than cable switching

Define two logical banks with fixed membership:

  • Panorama bank: six cameras covering the horizontal scene, with overlap suitable for calibration and stitching.
  • Inspection bank: three upper cameras and three lower cameras capturing the inspection event.

Prefer keeping devices open and ready while admitting exposure triggers only to the selected bank. This avoids making device discovery and connection setup part of every transition. However, confirm that each camera supports the required triggered acquisition behavior through its documented interface.

A camera can be connected without exposing, exposing without immediately transmitting, or transmitting previously captured images. Your controller must distinguish these states.

Operating strategy What remains active Main consequence Appropriate use
Both banks stream; software selects images All camera streams Full transport and acquisition load remains Fast selection when host capacity supports every stream
Devices remain open; triggers select the bank Connections and acquisition resources, but only selected exposures Lower image payload, with switching logic required Preferred starting point for alternating capture
Stop and reopen devices at each change Only the selected acquisition sessions Setup and shutdown latency enters every transition Infrequent changes with a generous interruption budget

Do not use physical cable switching as the default design. Also, dropping unwanted frames after acquisition does not recover the bandwidth already consumed transporting them.

The distinction between exposure timing and image arrival is developed in multi-camera exposure synchronization with a shared trigger. Bank selection adds a second requirement: the trigger must reach the correct cameras without creating incomplete sets.

Establish resolution and shutter requirements first

A target of 25 complete image sets per second gives a 40 ms period between sets. That is a system requirement, not proof that a particular camera can deliver the required image size, exposure, and trigger response.

For the inspection views, derive the sampling requirement before increasing resolution indiscriminately. Suppose an illustrative view covers 240 mm horizontally, and a 0.5 mm feature needs four pixels across its width:

Required horizontal pixels = field width × pixels per feature / feature width Required horizontal pixels = 240 mm × 4 / 0.5 mm = 1920 pixels

This is a sampling estimate, not a guarantee of detection. Lens contrast, focus, lighting, and feature orientation still matter. Use the area scan cameras category and camera finder to shortlist formats after defining the image requirement.

Camera resolution for the smallest feature
Units
Pixels needed
–
Sensor size
– MP
Smallest sensor that fits
–
Pixel on the part
– mm
Pixels across the feature, that sensor
–

Pixels needed = field / feature × pixels per feature on each axis (field incl. margin). The lens must resolve the pixels too: Nyquist = 1000 / (2 × pixel µm) lp/mm.

Find cameras with enough pixels Open the full calculator

For moving scenes, global shutter is usually the simpler starting point for simultaneous multi-view geometry. A rolling shutter can introduce different exposure times across image rows even when frame starts are aligned. The exposure time and shutter speed guide explains the separate motion-blur constraint.

The MV-CU020-90GC is a global-shutter GigE camera candidate.

Area scan camerasHikrobot MV-CU020-90GC 2.5 MP Area Scan Camera, GigE, GMAX4002, ColorMV-CU020-90GC
Sensor format
1/1.7"
Lens mount
C-mount
Interface
GigE
Resolution
Up to 3 MP
$309.00View partBuild a system with it

The LS-BCM-0003 is a global-shutter USB3 board-level camera candidate.

Board-level cameras3.1 MP USB3 board-level camera, IMX252, 1/1.8" global shutter, 120 fps (LS-BCM-0003)LS-BCM-0003
Sensor format
1/1.8"
Lens mount
C-mount
Interface
USB3
Resolution
5 MP
$690.00View partBuild a system with it

Neither listing alone establishes the required trigger input behavior, exposure timestamp reference, or readiness reporting. Obtain those details before treating either candidate as suitable for synchronized banks. If compact integration is necessary, the board-level cameras category introduces another mechanical format, not an automatic synchronization solution.

Calculate active payload and connected-camera overhead separately

Image payload depends on cameras actually transmitting, not merely cameras connected. Start with the transmitted pixel format rather than the sensor's nominal bit depth.

Payload rate = active cameras × width × height × frames per second × bytes per pixel Frame period = 1 / frames per second

Consider hypothetical images measuring 1920 × 1200 pixels, transmitted as monochrome data using one byte per pixel:

  • One image: 1920 × 1200 × 1 = 2,304,000 bytes.
  • One camera at 25 frames/s: 2,304,000 × 25 = 57,600,000 bytes/s.
  • Six active cameras: 57,600,000 × 6 = 345,600,000 bytes/s.
  • Twelve active cameras: 57,600,000 × 12 = 691,200,000 bytes/s.

Using decimal units, these totals are 345.6 MB/s and 691.2 MB/s. Multiplying by eight gives approximately 2.76 Gbit/s and 5.53 Gbit/s of image payload, before transport overhead.

If the host receives three bytes per pixel instead, the six-camera payload becomes 345.6 × 3 = 1036.8 MB/s. Host-side color conversion can create a similar increase in memory traffic even when the camera transmits a smaller raw format.

A preliminary 20% allowance would raise the six-camera monochrome budget to 345.6 × 1.2 = 414.72 MB/s. That allowance is only a planning example. Protocol overhead, packet scheduling, shared interfaces, and burst behavior need measurement.

Connected but idle cameras can still reserve buffers. At eight full-image buffers per camera, the illustrative allocation is:

Buffer memory = 12 × 8 × 2,304,000 bytes Buffer memory = 221,184,000 bytes, approximately 221 MB

Additional copies, stitching surfaces, and encoding buffers increase this total. If the full frame is unnecessary, cropping at the camera before transport can reduce payload; cropping only after reception cannot.

Synchronize exposure edges, not software calls

Starting acquisition loops together does not establish simultaneous exposure. Operating-system scheduling, driver queues, and command transport can separate nominally simultaneous software requests.

Use a documented hardware timing arrangement that distributes a common exposure event to the selected bank. Depending on the devices, this may involve dedicated trigger inputs, a supported timing interface, or scheduled acquisition referenced to synchronized clocks. Verify support rather than assuming it follows from the camera connection standard.

Check input voltage, polarity, pulse width, delay, and electrical loading against the manufacturer's documentation. A trigger source must be designed for the combined input load. Do not connect multiple inputs directly unless the documented electrical limits permit it.

Bank selection must not truncate a pulse or create an extra edge. Change the selection during a defined trigger-free interval, and resume only after the selected cameras are ready. If a programmable timing device performs this function, define its startup and fault behavior explicitly.

Timing tolerance should come from scene motion:

Object displacement from timing skew = object speed × exposure-start skew

At 1000 mm/s, a 100 µs skew produces 1000 × 0.0001 = 0.1 mm of displacement. With 240 mm represented by 1920 pixels, sampling is 240 / 1920 = 0.125 mm/pixel. The timing error therefore corresponds to 0.1 / 0.125 = 0.8 pixel of object displacement.

This estimate excludes perspective and stitching errors, but provides a useful timing target. The multi-camera RGB exposure timing verification guide explains why matching frame rates or host arrival times is insufficient.

Implement switching as a bounded state machine

Treat a bank change as a transaction, not a set of unrelated start and stop commands. Assign every requested capture set a bank identity and a generation identifier that changes at each transition.

  1. Accept a switch request at a defined boundary. Record whether the current set must finish or may be discarded.
  2. Inhibit new exposure events. Prevent additional old-bank captures while the transition is in progress.
  3. Resolve outstanding images. Finish the current set, or discard it according to the application policy. Account for images already in transport.
  4. Select and verify the new bank. Confirm acquisition readiness using documented status mechanisms where available.
  5. Advance the generation identifier. Associate subsequent capture requests with the new bank and generation.
  6. Resume timing and validate the first set. Release images downstream only when membership and timing checks pass.

Keep software queue clearing separate from exposure control. Emptying a host queue does not cancel an exposure or a transfer already underway. Likewise, a successful acquisition-start call may not mean the camera is ready for the next trigger.

For a sequential implementation, a useful accounting model is:

Switch latency = quiesce time + new-bank readiness time + trigger-phase wait + first complete-set delivery time

For illustration, suppose measurements give 8 ms to quiesce, 3 ms to verify readiness, and 16 ms from the first new trigger to a delivered set. Waiting for the next event on a 40 ms schedule adds between approximately 0 and 40 ms. The estimated transition is therefore 8 + 3 + 16 + (0 to 40) = 27 to 67 ms.

These are example measurements, not device specifications. Define whether your requirement concerns the first new exposure or the first usable processed set; those endpoints differ.

Some stages may overlap, but do not subtract overlap until measurement confirms it. Avoid closing devices simply to clear old frames. If stopping acquisition dominates the transition, use the diagnostic approach in multi-camera shutdown latency.

Verify timestamps and complete-set membership

Record camera identity, bank, generation, capture identifier, camera timestamp, host arrival time, and image validity for every frame. Not every device supplies every field, so define what your acquisition layer can establish reliably.

A frame counter identifies ordering within its documented scope. It does not automatically align independent cameras, especially after a restart or counter reset. Camera timestamps also need a common clock domain, or a measured mapping between clock domains, before subtraction is meaningful.

Confirm what each timestamp represents: trigger reception, exposure start, exposure end, or another documented event. Host arrival time measures delivery behavior; it should not be substituted for exposure time.

Where supported, compare exposure-active outputs with the trigger using suitable timing equipment. A controlled flashing target visible in all views can provide an image-based cross-check, but its pulse width limits the precision of that test.

For each accepted set, verify:

  • Exactly the expected camera identities are present.
  • Every frame belongs to the intended bank and generation.
  • Exposure timing satisfies the allowable skew.
  • No frame is duplicated or incomplete.
  • Delivery age remains within the application deadline.

Include missing-frame, delayed-frame, and device-restart cases. A six-image set assembled by arrival order alone can silently combine different exposure events.

Prove host capacity with the production workload

A port count is not a throughput guarantee. Camera interfaces may share upstream resources, while stitching, conversion, compression, and display compete for memory bandwidth and processing time.

Build a staged acceptance test:

  1. Run one camera at the intended image size, pixel format, exposure, and trigger rate.
  2. Run the complete panorama bank with stitching and delivery enabled.
  3. Run the inspection bank with its actual processing and recording workload.
  4. Alternate banks at the shortest required interval, including old-transfer backlog during transitions.
  5. Repeat with the longest permitted exposure, worst processing scene, and production logging enabled.

If both banks may transmit concurrently during a transition, test that overlap explicitly. If the architecture prohibits overlap, verify that the prohibition works under delayed transfers and fault recovery.

Log delivered set rate, missing frames, queue depth, memory use, processing time, and end-to-end age. Queue depth that grows throughout a run indicates a sustained capacity problem, even if a short demonstration appears smooth.

Use bounded queues. For a live panorama, discarding an old complete set may be preferable to increasing display age. For an inspection event, a missing view may require a failed acquisition status or a controlled retry. Define those policies separately.

Vision controllers are candidates when their camera connectivity and processing resources fit the measured workload. The MV-VC5525-256G70-NN includes PoE camera ports, but that fact alone does not establish application capacity.

Vision controllersHikrobot MV-VC5525-256G70-NN VC5000 Vision Controller, 12th-I5, 32GB+256G SSD, Supported PCIEMV-VC5525-256G70-NN
LAN ports
5+ LAN ports
USB 3 ports
3-4 USB 3 ports
PoE
PoE camera ports
Light outputs
8 built-in channels
$4,479.00 · quotedView and quoteBuild a system with it

Measure the complete acquisition pipeline rather than extrapolating from processor class or connector count. If processing stalls appear only under load, the camera acquisition stall diagnostic guide helps separate transport faults from recovery behavior.

Check the architecture before ordering

Use this checklist to turn the concept into an acceptance specification:

  • Image requirements: define resolution, overlap, exposure, pixel format, and acceptable blur for each view.
  • Timing requirement: specify allowable exposure skew and whether inspection must interrupt the panorama immediately.
  • Camera behavior: confirm external timing support, readiness reporting, timestamp meaning, and handling of triggers received while busy.
  • Transport budget: include active payload, transition overlap, shared upstream paths, and packet or transfer overhead.
  • Host budget: include all connected-device buffers, image copies, stitching, encoding, and recording.
  • Switch deadline: specify both first-exposure and first-usable-set limits where relevant.
  • Fault policy: define incomplete-set rejection, retries, camera loss, and recovery without mixing generations.
  • Verification: agree on the test workload and pass criteria before committing to the full system.

Trigger-gated switching is the wrong answer when the panorama must remain uninterrupted during inspection. That requirement calls for concurrent capture, so size transport and processing for both banks.

It may also be unsuitable when camera startup or readiness is unpredictable and no documented armed state is available. Continuous acquisition can simplify switching, but only if the host supports the resulting load.

If one host fails the capacity test, distribute acquisition across hosts or move processing closer to each bank. Preserve a common timing reference and capture identity across that boundary. Adding another host does not, by itself, synchronize exposure.

Turn the requirements into a parts shortlist

Start the camera configuration workflow with the measured resolution, timing, and transport requirements. Keep the bank map and acceptance checklist alongside the shortlist. For a review of trigger compatibility, host sizing, or switching deadlines, send the image format, set rate, timing tolerance, and processing workload through application support. Those details determine whether a single-host design is credible.

Questions

Can twelve cameras remain connected while only six capture images?

Yes, when the cameras and acquisition software support remaining connected without continuously generating image payload. Confirm how triggered acquisition, readiness, and buffering behave. Idle connections may still reserve memory and other resources, so test the complete connected configuration rather than assuming it behaves like a smaller system.

Does selecting six streams in software halve camera bandwidth?

Not normally. Discarding frames after reception reduces downstream work but does not remove their transport cost. To reduce incoming payload, prevent unwanted acquisition or transmission through a documented camera mode. Check for older images still moving through the transport when a bank change occurs.

How fast can a synchronized camera bank switch?

There is no universal transition time. The deadline depends on outstanding exposures, queued transfers, camera readiness, trigger scheduling, and processing. Specify whether you mean the first exposure from the new bank or its first complete usable set, then measure both during the busiest operating condition.

Are camera timestamps enough to prove simultaneous exposure?

Only if their clock relationship and timestamp definitions are known. Independent camera clocks can show similar values without representing the same physical instant. Verify the documented timestamp event, establish a shared time reference or mapping, and cross-check exposure timing with a suitable physical measurement.

When should the camera banks use separate hosts?

Use measured capacity and isolation requirements to decide. Separate hosts can help when transport, memory traffic, or processing exceeds one host's sustainable capacity. They also add coordination work: both acquisition paths still need consistent capture identifiers, a suitable timing reference, and a defined policy for incomplete sets.