4. cpi

This is the Compound Pi client application which provides a command line interface through which you can query and interact with any Pi’s running the Compound Pi daemon on your configured subnet. Use the help command within the application for information on the available commands.

The application can be configured via command line switches, a configuration file (defaults to /etc/cpi.ini, /usr/local/etc/cpi.ini, or ~/.cpid.ini), or through the interactive command line itself.

4.1. Synopsis

cpi [-h] [--version] [-c CONFIG] [-q] [-v] [-l FILE] [-P] [-o PATH]
    [-n NETWORK] [-p PORT] [-b ADDRESS:PORT] [-t SECS]
    [--capture-delay SECS] [--capture-count NUM] [--video-port]

4.2. Description

-h, --help

show this help message and exit


show program’s version number and exit

-c CONFIG, --config CONFIG

specify a configuration file to load

-q, --quiet

produce less console output

-v, --verbose

produce more console output

-l FILE, --log-file FILE

log messages to the specified file

-P, --pdb

run under PDB (debug mode)

-o PATH, --output PATH

specifies the directory that downloaded images will be written to (default: /tmp)

-n NETWORK, --network NETWORK

specifies the network that the servers belong to (default:

-p PORT, --port PORT

specifies the port that the servers will be listening on (default: 5647)


specifies the address and port that the client listens on for downloads (default:

-t SECS, --timeout SECS

specifies the timeout (in seconds) for network transactions (default: 5)

--capture-delay SECS

specifies the delay (in seconds) used to synchronize captures. This must be less than the network timeout (default: 0)

--capture-count NUM

specifies the number of consecutive pictures to capture when requested (default: 1)


if specified, use the camera’s video port for rapid capture

4.3. Usage

The first command in a Compound Pi session is usually find to locate the servers on the specified subnet. If you know the number of servers available, specify it as an argument to the find command which will cause the command to return quicker in the case that all servers are found, or to warn you if less than the expected number are located.

The status command can be used to check that all servers have an equivalent camera configuration, and that time sync is reasonable.

The capture command is used to cause all located servers to capture an image. After capturing, use the download command to transfer all captured images to the client.

Finally, the help command can be used to query the available commands, and to obtain help on an individual command.