Skip to main content

Commands and Sequences

LA4 accepts lighting instructions as a sequence of CSV rows written to ~/la4_sequence.csv on the node. Each row is a command: the register name followed by its parameters, comma-separated.

Load and execute a sequence using the boardio program in the device with the following commands:

  • boardiocli uSeq — loads the sequence file into the firmware
  • boardiocli runSeq — starts execution

All commands return BOARDIO_READY on success or BOARDIO_ERROR on failure which are sent over your listener as message events.

Command reference

MODEL_LIGHT

Controls the constant model light (continuous, non-flash illumination).

ParameterValuesMinMax
Power levelPercent %0 (OFF)100

Example — turn on the model light at 50% power:

MODEL_LIGHT,50

ALL_4_NIKON

Shoots one picture with all four LED lights. Use with Nikon and Sony cameras.

ParameterValuesMinMax
Power levelPercent %0100

Example — fire all four LEDs at 80% power:

ALL_4_NIKON,80

ALL_4_CANON

Shoots one picture with all four LED lights. Use with Canon cameras and when using other camera manufacturers (e.g. Fujifilm, Panasonic).

ParameterValuesMinMax
Power levelPercent %0 (OFF)100
Shutter speedMilliseconds0 (OFF)109

Example — fire all four LEDs at 80% power with a 105 ms on-duration:

ALL_4_CANON,80,105

OLAT_4_NIKON

Shoots four pictures, one per LED, firing each in sequence. Use with Nikon and Sony cameras.

ParameterValuesMinMax
Power levelPercent %0100
Drive Mode0 = Single Frame, 1 = Continuous (use with all continuous modes: High+, High, Mid, etc.)--

Example — shoot one-light-at-a-time at 75% power in continuous mode:

OLAT_4_NIKON,75,1

OLAT_4_CANON

Shoots four pictures, one per LED, firing each in sequence. Use with Canon cameras and when using other camera manufacturers (e.g. Fujifilm, Panasonic).

ParameterValuesMinMax
Power levelPercent %0 (OFF)100
Drive Mode0 = Single Frame, 1 = Continuous (use with all continuous modes: High+, High, Mid, etc.)--
Shutter speedMilliseconds0 (OFF)109

Example — shoot one-light-at-a-time at 75% power in continuous mode with a 105 ms on-duration:

OLAT_4_CANON,75,1,105

N_LIGHTS_NIKON

Shoots one picture with a chosen subset of the four LEDs. Use with Nikon and Sony cameras.

ParameterValuesMinMax
Power levelPercent %0100
LED10 = OFF, 1 = ON--
LED20 = OFF, 1 = ON--
LED30 = OFF, 1 = ON--
LED40 = OFF, 1 = ON--

Example — fire LEDs 1 and 3 at 60% power (LEDs 2 and 4 OFF):

N_LIGHTS_NIKON,60,1,0,1,0

N_LIGHTS_CANON

Shoots one picture with a chosen subset of the four LEDs. Use with Canon cameras and when using other camera manufacturers (e.g. Fujifilm, Panasonic).

ParameterValuesMinMax
Power levelPercent %0100
LED10 = OFF, 1 = ON--
LED20 = OFF, 1 = ON--
LED30 = OFF, 1 = ON--
LED40 = OFF, 1 = ON--
Shutter speedMilliseconds0 (OFF)109

Example — fire LEDs 1 and 3 at 60% power with a 105 ms on-duration:

N_LIGHTS_CANON,60,1,0,1,0,105

SHOOT_BLANK

Performs a single DSLR shot with no lights. The duration controls how long the shoot pin is physically pressed.

Different cameras require different durations to reliably actuate the shutter:

  • Normal range: 20–50 ms
  • Fast-shooting cameras: 5–10 ms
  • Slow-shooting cameras: 50–200 ms

If the duration is too short the camera will not trigger. If it is too long the camera may fire two shots instead of one.

ParameterMinMax
Duration01000

Example — trigger a single shot with the shoot pin held for 30 ms (normal-range camera):

SHOOT_BLANK,30

LED_FAN

Controls the LED cooling fans.

ParameterValues
Enable0 = OFF, 1 = ON

Example — turn the fans on:

LED_FAN,1

DIGITAL_POLARIZER

Enables or disables the digital polarizer.

ParameterValues
Enable0 = OFF, 1 = ON

Example — enable the polarizer:

DIGITAL_POLARIZER,1

Sony Cameras

Sony cameras use the same firmware commands as Nikon. Use ALL_4_NIKON, OLAT_4_NIKON, and N_LIGHTS_NIKON for Sony.

Example sequence CSV file

MODEL_LIGHT,30
LED_FAN,1
ALL_4_CANON,80,105

This sequence does three things in order:

  1. MODEL_LIGHT,30 — turns on the constant model light at 30% power, providing continuous illumination for framing.
  2. LED_FAN,1 — turns on the cooling fans before the flash LEDs fire.
  3. ALL_4_CANON,80,105 — fires all four LEDs simultaneously at 80% power with a 105 ms on-duration, triggering one shot on a Canon camera.

Sending a sequence to LA⁴. Example cross-polarization

The sequence file is written and executed by sending a cmd request to the pycom networking software running on the device. You need to compose a shell command to write the CSV content to ~/la4_sequence.csv, then call boardiocli uSeq to load it and boardiocli runSeq to run it.

The example below captures two shots with a Nikon camera: one without the digital polarizer and one with it. This is a common cross-polarization technique — the first shot captures both diffuse and specular light, the second suppresses specular reflections, leaving only diffuse.

{
"type_": "cmd",
"command": "echo \"DIGITAL_POLARIZER,0\\nALL_4_NIKON,10\\nDIGITAL_POLARIZER,1\\nALL_4_NIKON,1\" > /home/rigsters/la4_sequence.csv && boardiocli uSeq && boardiocli runSeq",
"id": "31548ca2",
"name": "My PC App",
"ip": "192.168.0.100",
"port": 5000,
"version": "0.1.0",
"coordinator": true
}

The sequence file this writes to the node:

DIGITAL_POLARIZER,0
ALL_4_NIKON,10
DIGITAL_POLARIZER,1
ALL_4_NIKON,1
  1. DIGITAL_POLARIZER,0 — disables the polarizer so the first shot captures both diffuse and specular light.
  2. ALL_4_NIKON,10 — fires all four LEDs at 10% power and triggers one shot.
  3. DIGITAL_POLARIZER,1 — enables the polarizer to suppress specular reflections.
  4. ALL_4_NIKON,1 — fires all four LEDs at minimum power and triggers a second shot, now capturing only diffuse light.