Skip to content

Remote programming interface

hartytp edited this page Sep 6, 2019 · 41 revisions

Overview

Booster provides a SCPI-like remote programming interface over Ethernet using a TCP server on port 5000.

  • All commands must be terminated with a new line (\n) character
  • SCPI responses are terminated with \r\n characters
  • Booster responds to all commands. Commands containing a ? query Booster for information, an error string is returned in case of a programming error, such as a malformed command. Successful command without any return value should return OK string.
  • Capital letters denote a part of the command that must be specified, lower case letters are optional. Commands are case insensitive. For example INTERLOCK:POWER 0,-5, int:pow 0,-5 and INT:POW 0,-5 are all equivalent

*IDN?

Returns device identification string, which consist of:
RFPA <version string>, built <fw build date>,id <id>, hv rev <hardware revision>

Version string:
main fw version - 1.4. major software version
id - device identification number (4 bytes from CPU UUID)
build number - fw build date in julian format (date +'%y%j')
commit hash - fw build hash from repo

Build date:
fw build date in human readable format

Hardware revision:
HW revision number read from hardware (REV pins)

CHANnel:ENABle

Procedure used to enable selected channel or all channels present in the device.

Usage:

chan:enab 3 - enables selected channel
chan:enab all - enables all channels

Errors:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"

CHANnel:DISABle

Procedure used to disable selected channel or all channels present in the device.

Usage:

chan:disab 3 - disables selected channel
chan:disab all - disables all channels

Errors:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"

CHANnel:ENABle?

Procedure used to return enable status of selected channel. If single channel is selected, the return value will be 0/1. When all channels are selected, the results will be or-ed together in form of bitmasked value.

Usage:

chan:enab? 3 - return state of selected channel
chan:enab? all - return state of all channels

CHANnel:DETect?

Diagnostic command, returning whether channels are detected in device chassis. If a single channel is selected, returns 1 if the channel was detected, otherwise returns 0. When returning status for all channels, results are or-ed together in form of bitmasked value.

Usage:

chan:det? 3 - return detected state of selected channel
chan:det? all - return detected state of all channels

CHANnel:DIAGnostics?

Returns diagnostic information and measurements about selected channel. Returned array contains selected values (index) = (value):

  • 0 = channel detected
  • 1 = channel enabled
  • 2 = output interlock
  • 3 = input interlock
  • 4 = ADC voltage ch 1 (FWD power)
  • 5 = ADC voltage ch 2 (RFL power)
  • 6 = 29V current reading
  • 7 = 6V current reading
  • 8 = 5VMP readout
  • 9 = channel temperature
  • 10 = Forward power readout (in dBm)
  • 11 = Reflected power readout (in dBm)

Usage:

chan:diag? 3 - return diagnostic info for channel 3

MEASure:CURRent?

Returns the measured bias current for a given channel in amps.

Usage:

meas:curr? 3 - return current for channel 3
meas:curr? all - return an array with enabled channels currents

MEASure:TEMPerature?

Returns the temperature measurement for a given channel.

Usage:

meas:temp? 3 - return temperature for channel 3
meas:temp? all - return an array with detected channels temperature

MEASure:OUTput?

Returns the measured output (forward) power for a given channel

Usage:

meas:out? 3 - return output power for channel 3
meas:out? all - return an array with enabled channels output power

MEASure:INput?

Returns the measured input power for a given channel

Usage:

meas:in? 3 - return input power for channel 3
meas:in? all - return an array with enabled channels input power

MEASure:REVerse?

Returns the measured reverse power for a given channel

Usage:

meas:rev? 3 - return reverse power for channel 3
meas:rev? all - return an array with enabled channels reverse power

MEASure:FAN?

Returns the fan speed in scale (0 - 100%)

Usage:

meas:fan? - return fan speed

INTerlock:POWer

Procedure to set output forward power interlock threshold in dBm. The threshold value must lie between 0dBm and 38dBm otherwise an error is returned and the threshold is not adjusted. All updates to the interlock threshold are saved to non-volatile memory and retained across reboots of the device.

Usage:

int:pow 3,33.0 - sets forward power interlock to 33 dBm

Errors:

If value exceed range (0 - 38 dBm), error is returned
[scpi] **ERROR: -200, "Execution error"

INTerlock:POWer?

Procedure to return output (forward) power interlock setpoint value in dBm.

Usage:

int:pow? 3 - return interlock setpoint value for channel 3

Errors:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"

INTerlock:CLEar

Resets the interlock for either a given channel or all channels. Any channels that are enabled resume normal operation once the interlock has been cleared.

Usage:

int:cle 3 - reset channel 3 interlock
int:cle all - reset interlocks for all enabled channels

Error:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"

INTerlock:STATus?

Returns the interlock status (either input, output, reverse interlock or error status with logical OR) for either a single channel or for all channels (or-ed together). Response is 1 if any interlock has tripped, otherwise 0.

Usage:

int:stat? 3 - return interlock status for channel 3
int:stat? all - return interlock status for all enabled channels

Error:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"

INTerlock:FORward?

Returns the output interlock status for either a single channel or for all channels (or-ed together). Response is 1 if output interlock has tripped, otherwise 0.

Usage:

int:for? 3 - return output interlock status for channel 3
int:for? all - return output interlock status for all enabled channels

Error:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"

INTerlock:REVerse?

Returns the reverse power interlock status for either a single channel or for all channels (or-ed together). Response is 1 if output interlock has tripped, otherwise 0.

Usage:

int:rev? 3 - return output interlock status for channel 3
int:rev? all - return output interlock status for all enabled channels

Error:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"

INTerlock:ERRor?

In case of more serious error situation than interlock (like out-of-bounds temperature readings etc.) channel will be disabled, the red light will pop in the front LED panel.

This command returns the error status for either a single channel or for all channels (or-ed together). Response is 1 if any error had occurred otherwise 0.

Usage:

int:err? 3 - return error status for channel 3
int:err? all - return error status for all enabled channels

Error:

If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"