The switch matrix firmware implements a simple SCPI interface to allow remote devices to control the device operation. It supports communication over both Serial and Ethernet.

A overview of the available SCPI commands can be seen here: SCPI commands

Here follows a more detailed documentation of the available commands.

A note on SCPI

Most commands can either perform a set operation, changing the state of the device, or a query operation, querying the state of the device. Query operations always end in a question mark (?). For example, SWitch1:PULSe 10 changes the pulse length applied to Switch 1 to 10 ms, while SWitch1:PULSe? queries the currently set pulse length of Switch 1.

A command starting with an asterisk (*) is a common command as defined by the SCPI standard. They always consist of three letters.

Furthermore, The SCPI standard specifies that a command can be abbreviated to only the capitalized part of the command name. This means that e.g. SWitch1:INVert? can equivalently be abbreviated to SW1:INV?.

Configuration commands

These commands are primarily used to change the Ethernet settings of the device, and to query the corresponding settings.

  • *IDN?: Returns the ID of this device
  • IP <ip>: Sets the IP-address of the device
  • IP?: Queries the IP-address of the device
  • DNS <ip>: Sets the DNS address of the device
  • DNS?: Queries the DNS address of the device
  • GATEWAY <ip>: Sets the Gateway IP-address of the device
  • GATEWAY?: Queries the Gateway IP-address of the device
  • SUBNET <ip>: Sets the subnet mask of the device
  • SUBNET?: Queries the subnet mask of the device

Control commands

These commands control the operation of the switch matrix. Individual switches are addressed through subcommands of the SWitch# command, where # is an integer. How many switches are available is depends on the chosen firmware configuration, set when flashing the microcontroller firmware during assembly.

  • *RST: Resets all switches to have no connected ports
  • SWitch#:PORT 0-6: Connects the common pole of the switch to port 1-6. Set to 0 to open all ports.
  • SWitch#:PORT?: Queries currently connected port.
  • SWitch#:PULSe <ms>: Sets the length of the control pulse being sent to the switch to the given length (in milliseconds).
  • SWitch#:PULSe?: Queries the current pulse length.
  • SWitch#:INVert 0|1: If set to 1, inverts the control pulse current direction.
  • SWitch#:INVert?: Queries whether the current direction is inverted.
  • SWitch#:*RST: Resets the switch regardless of state, leaving no ports connected.