Skip to the content
PCBKitNew board
2 layers50 × 142.5 mmTriggerbox, the printed circuit board in 3D

camera triggering for synchronized multi-camera setups

Size
50 × 142.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
38
Pads
95
Tracks, vias
202, 6
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
6 Sep 2013
Updated
4 Oct 2026

Overview

Triggerbox is an open-source printed circuit board by strawlab, from the strawlab/triggerbox repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 50 × 142.5 mm with 19 parts on 38 nets, routed with 202 tracks and 6 vias.

It is built around the SN74HC125D and MCP4822-E/P. Its parts include 9 connectors, 3 ICs, 1 resistor and 1 diode. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

triggerbox - camera triggering for synchronized multi-camera setups

Principle of operation

Cameras trigger inputs are connected to pin D9 on an Arduino. (Optionally, a buffer amplifier can be used. See below for why this may be a good idea.) This is used to generate a digital pulse which triggers image acquisition on cameras. Furthermore, a host PC communicates with the Arduino to build a live model of the clocks on both systems and allows very precise (sub-millisecond) determination of the timing of trigger pulses from the Arduino. This allows precise timing information to be taken from the resulting acquired image frames.

Required hardware:

The minimal required hardware is this:

  • Arduino Nano A000005 (later models WILL NOT WORK).

If using the minimal hardware, you will need to connect pin D9 to the trigger inputs of your camera directly.

Optional buffer amplified and circuit board:

For additional robustness for multi-camera setups, particularly those that have an opto-coupled trigger input which accordingly draws substantially more current, you will want a buffer amplifier to trigger more cameras. In the hardware_v1 and hardware_v2 directories are the PCB layouts, schematics, and enclosure of the triggerbox.

  • Hardware_v1: BNC outputs for triggering only
  • Hardware_v2: 4-pin terminal block ouputs for triggering and powering the cameras via external powersource.

Firmware Build and Install

This firmware can be compiled and installed with the Arduino IDE or at the command line.

Option 1: Compiling and Uploading using the Arduino IDE

The file triggerbox.ino can be opened directly in the Arduino IDE. Set your board to Arduino Nano ("Tools"->"Board"->"Arduino Nano"). Set your port ("Tools"->"Port") correctly, which depends on your specific computer setup. Then click the "Upload" button.

Option 2: Command-line Compiling and Uploading using Arduino CLI

To build this firmware for an Arduino Nano on Ubuntu linux, do the following steps.

Install the required software:

Intall Arduino CLI, then:

text
arduino-cli core update-index
arduino-cli core install arduino:avr

Compile the firmware

text
arduino-cli compile --fqbn arduino:avr:nano

Upload the firmware

text
# Note the port `/dev/ttyUSB0` may be different on your computer. In Windows,
# it will be something like `COM4`.
arduino-cli upload --port /dev/ttyUSB0 --fqbn arduino:avr:nano

Testing with host PC

Run the standalone demo program on your host PC.

  • Prerequisite 1: install rust.
  • Prerequisite 2 (linux only): make sure you are in the dialout group (or whichever group owns the device file - /dev/ttyUSB0 in the example below): sudo adduser `whoami` dialout.

The demo can be run like this:

text
cd braid-triggerbox-rs
# You may need to change the device path from `/dev/ttyUSB0` in this example.
# On Windows, this will be something like `COM4` instead of `/dev/ttyUSB0`.
cargo run -- --device /dev/ttyUSB0 --fps 100

If successful, the output will look like:

text
Requested 100 fps, using 100 fps
Connecting to trigger device ..
got new time model: None
.. connected.
got new time model: Some(ClockModel { gain: 0.009991053259000182, offset: 1642089273.653188, residuals: 0.00008373855939680652, n_measurements: 5 })
got new time model: Some(ClockModel { gain: 0.009990740683861077, offset: 1642089273.65347, residuals: 0.00008408054048913982, n_measurements: 6 })
got new time model: Some(ClockModel { gain: 0.009990941849537194, offset: 1642089273.6532729, residuals: 0.00008470585419217969, n_measurements: 7 })
got new time model: Some(ClockModel { gain: 0.0099910874851048, offset: 1642089273.6531227, residuals: 0.00008554253827242064, n_measurements: 8 })
got new time model: Some(ClockModel { gain: 0.009991202969104052, offset: 1642089273.652988, residuals: 0.0000863512614728279, n_measurements: 9 })
got new time model: Some(ClockModel { gain: 0.009991223458200693, offset: 1642089273.652963, residuals: 0.00008639545796995662, n_measurements: 10 })
got new time model: Some(ClockModel { gain: 0.009991292201448232, offset: 1642089273.6528616, residuals: 0.00008692377247143668, n_measurements: 11 })
got new time model: Some(ClockModel { gain: 0.009991496510338038, offset: 1642089273.6525416, residuals: 0.00009343214287582668, n_measurements: 12 })

License

Apache 2.0 or MIT at your choice. See LICENSE-APACHE and LICENSE-MIT.

Parts

19
QtyValueFootprintReferences
111pin1PIN 1
121pin1PIN 2
1220Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR1
131pin1PIN 3
141pin1PIN 4
1ARDUINO_NANOModule:Arduino_NanoU2
1Analog_InTerminalBlock:TerminalBlock_bornier-4_P5.08mmJ8
1Analog_OutTerminalBlock:TerminalBlock_bornier-4_P5.08mmJ7
1CamPWConnector_BarrelJack:BarrelJack_HorizontalJ9
1LEDLED_SMD:LED_0603_1608MetricD1
1LOGOStraw_lab:stawlab_logo1G***
1MCP4822Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1SN74HC125Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU1
1Trigger1TerminalBlock:TerminalBlock_bornier-4_P5.08mmJ1
1Trigger2TerminalBlock:TerminalBlock_bornier-4_P5.08mmJ2
1Trigger3TerminalBlock:TerminalBlock_bornier-4_P5.08mmJ3
1Trigger4TerminalBlock:TerminalBlock_bornier-4_P5.08mmJ4
1Trigger5TerminalBlock:TerminalBlock_bornier-4_P5.08mmJ5
1Trigger6TerminalBlock:TerminalBlock_bornier-4_P5.08mmJ6

Questions

How big is the Triggerbox PCB?

It measures 50 × 142.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Triggerbox use?

19 parts, built around the SN74HC125D and MCP4822-E/P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Triggerbox KiCad files?

From the strawlab/triggerbox repository on GitHub, at the commit this page was made from: the board is hardware_v2/circuit_board/triggerbox.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Triggerbox design in my own project?

Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers270 × 130 mmCluster, the printed circuit board in 3D

    Cluster

    GheorgheAlexandru/Speedometru

    69 parts
  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 2 layers111.3 × 106.4 mmSuper Sixteen v1, the printed circuit board in 3D

    Super Sixteen v1

    matthewcieplak/super-sixteen

    Code and schematics for the Super Sixteen Eurorack sequencer

    141 parts171
  • 2 layers52.5 × 44.3 mmPmod2, the printed circuit board in 3D

    Pmod2

    noopwafel/iceglitch

    cheap and terrible voltage glitcher hardware/software

    44 parts46
  • 2 layers83.8 × 72.4 mmVoice board, the printed circuit board in 3D

    Voice board

    Windfisch/analog-synth

    A low-cost semimodular analog synthesizer

    131 parts31GPL-3.0
  • 2 layers120 × 102.5 mmApeks, the printed circuit board in 3D

    Apeks

    MiguelDeTrool/Apeks

    12-bit through-hole adaptation of Mutable Instruments Peaks

    74 parts19MIT
  • 2 layers78.7 × 81 mmBraids through hole V1.1 BRAIN, the printed circuit board in 3D

    Braids through hole V1.1 BRAIN

    sebastianbeyer/KOSMO_braids

    This is a KOSMO (Look Mum No Computer) version of the Mutable instruments braids, based on the through-hole version done by sound-force.nl.

    68 parts15
  • 2 layers220.9 × 128.5 mmArduino TarbleMing, the printed circuit board in 3D

    Arduino TarbleMing

    MiguelDeTrool/tarbleming

    Arduino Nano based random looping sequencer Eurorack module

    118 parts14