PiSCSI DOCUMENTATION
man 1

piscsi-ctrlboard

operate PiSCSI with the PiSCSI Control Board

PISCSI-CTRLBOARD(1) General Commands Manual PISCSI-CTRLBOARD(1)

piscsi-ctrlboardoperate PiSCSI with the PiSCSI Control Board

piscsi-ctrlboard [-diagnostic] [-display true|false] [-host HOST] [-password TOKEN] [-port PORT] [-rotation 0|180] [-v]

piscsi-ctrlboard is the client for the PiSCSI Control Board. It receives rotary-encoder and button events through a PCA9554 I2C expander, renders a menu on a 128-by-64 SSD1306 display, and sends commands to a PiSCSI daemon. The menu supports SCSI-ID management, image attach and eject operations, profiles, and system actions.

By default, the Control Board uses /dev/i2c-1, PCA9554 address 0x3f, SSD1306 address 0x3c, and BCM GPIO line 9 for the PCA9554 interrupt. It connects to the local PiSCSI daemon on port 6868.

DURATION
Button debounce interval. The default is 200ms.
DURATION
Inactivity timeout before an auxiliary-button choice runs. The default is 3s.
DIRECTORY
PiSCSI profile directory. The default is /var/lib/piscsi/config.
Log Control Board input snapshots, decoded events, dropped events, and latency statistics.
true|false
Render the Control Board menu on the SSD1306 display. When false, the PCA9554 and GPIO interrupt are still required. The default is true.
ADDRESS
SSD1306 I2C address. The default is 0x3c.
SIZE
Maximum number of hardware events waiting to be processed. The default is 64.
DEVICE
Linux GPIO character device. The default is /dev/gpiochip0.
HOST
PiSCSI daemon hostname. The default is “localhost”.
DEVICE
Linux I2C device used by the Control Board. The default is /dev/i2c-1.
DIRECTORY
Image directory used while loading profiles. The default is /var/lib/piscsi/images.
LINE
BCM GPIO line connected to the PCA9554 interrupt. The default is 9.
ADDRESS
PCA9554 I2C address. The default is 0x3f.
TOKEN
PiSCSI daemon authentication token.
PORT
PiSCSI daemon port. The default is 6868.
DURATION
Interval used to refresh the PiSCSI root menu. The default is 10s.
0|180
Menu display rotation in degrees. The default is 0.
DURATION
Interval between moves of the IP screensaver line. The default is 30s.
DURATION
Idle timeout before the IP screensaver starts. Specify 0 to disable it. The default is 10m.
DURATION
Duration for which the shutdown splash is displayed. Specify 0 to disable the delay. The default is 700ms.
DURATION
Duration for which the startup splash is displayed. Specify 0 to disable the delay. The default is 2s.
Animate submenu navigation with horizontal push transitions.
Print PiSCSI version and copyright information, then exit.

Duration options accept Go duration strings, for example 200ms, 3s, and 10m.

Run the client with an inverted display:

piscsi-ctrlboard -rotation=180

Use a remote PiSCSI daemon and enable input diagnostics:

piscsi-ctrlboard -host=piscsi.local -port=6868 -diagnostic

Enable I2C and ensure the process can access both the selected I2C device and GPIO character device. Use i2cdetect(8) to verify the usual 0x3c display and 0x3f PCA9554 addresses.

piscsi-ctrlboard handles SIGINT and SIGTERM and stops its input, display, and daemon work cleanly.

piscsi(1), piscsi-oled(1), i2cdetect(8)

Full documentation is available at: <https://www.piscsi.com>

August 23, 2026 PiSCSI