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 firmwareboardiocli 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).
| Parameter | Values | Min | Max |
|---|---|---|---|
| Power level | Percent % | 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.
| Parameter | Values | Min | Max |
|---|---|---|---|
| Power level | Percent % | 0 | 100 |
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).
| Parameter | Values | Min | Max |
|---|---|---|---|
| Power level | Percent % | 0 (OFF) | 100 |
| Shutter speed | Milliseconds | 0 (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.
| Parameter | Values | Min | Max |
|---|---|---|---|
| Power level | Percent % | 0 | 100 |
| Drive Mode | 0 = 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).
| Parameter | Values | Min | Max |
|---|---|---|---|
| Power level | Percent % | 0 (OFF) | 100 |
| Drive Mode | 0 = Single Frame, 1 = Continuous (use with all continuous modes: High+, High, Mid, etc.) | - | - |
| Shutter speed | Milliseconds | 0 (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.
| Parameter | Values | Min | Max |
|---|---|---|---|
| Power level | Percent % | 0 | 100 |
| LED1 | 0 = OFF, 1 = ON | - | - |
| LED2 | 0 = OFF, 1 = ON | - | - |
| LED3 | 0 = OFF, 1 = ON | - | - |
| LED4 | 0 = 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).
| Parameter | Values | Min | Max |
|---|---|---|---|
| Power level | Percent % | 0 | 100 |
| LED1 | 0 = OFF, 1 = ON | - | - |
| LED2 | 0 = OFF, 1 = ON | - | - |
| LED3 | 0 = OFF, 1 = ON | - | - |
| LED4 | 0 = OFF, 1 = ON | - | - |
| Shutter speed | Milliseconds | 0 (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.
| Parameter | Min | Max |
|---|---|---|
| Duration | 0 | 1000 |
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.
| Parameter | Values |
|---|---|
| Enable | 0 = OFF, 1 = ON |
Example — turn the fans on:
LED_FAN,1
DIGITAL_POLARIZER
Enables or disables the digital polarizer.
| Parameter | Values |
|---|---|
| Enable | 0 = 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:
MODEL_LIGHT,30— turns on the constant model light at 30% power, providing continuous illumination for framing.LED_FAN,1— turns on the cooling fans before the flash LEDs fire.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
DIGITAL_POLARIZER,0— disables the polarizer so the first shot captures both diffuse and specular light.ALL_4_NIKON,10— fires all four LEDs at 10% power and triggers one shot.DIGITAL_POLARIZER,1— enables the polarizer to suppress specular reflections.ALL_4_NIKON,1— fires all four LEDs at minimum power and triggers a second shot, now capturing only diffuse light.