-
Notifications
You must be signed in to change notification settings - Fork 3
Remote programming interface
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 - Commands without a
?
are responded to withOK
- In case of errors, the response is an error string
- Setter commands are blocking, and only return a response after the action has completed
- Commands containing a
- 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
andINT:POW 0,-5
are all equivalent
Errors are as self-explanatory as possible, below are listed custom error messages that were added on top of the standard SCPI errors.
-
[scpi] **ERROR: -97, "Wrong channel selected (0-7)"
- Integer value for channel number is out of bounds
-
[scpi] **ERROR: -99, "Channel not detected"
- Selected channel is empty (no module in chassis)
- I2C bus error condition (red led on front panel)
-
[scpi] **ERROR: -98, "Interlock value invalid (0-38 dBm)"
- Interlock value is out of valid range
0 - 38 dBm
allowed
- Interlock value is out of valid range
-
[scpi] **ERROR: -108, "Parameter not allowed"
- Excessive amount of command parameters were provided
*IDN?
CHANnel:ENABle
CHANnel:DISABle
CHANnel:ENABle?
CHANnel:DETect?
CHANnel:DIAGnostics?
MEASure:CURRent?
MEASure:TEMPerature?
MEASure:OUTput?
MEASure:INput?
MEASure:REVerse?
MEASure:FAN?
INTerlock:POWer
INTerlock:POWer?
INTerlock:CLEar
INTerlock:STATus?
INTerlock:FORward?
INTerlock:REVerse?
INTerlock:ERRor?
Returns device identification string, which consist of:
RFPA <fw version> <fw git hash>, built <fw build date>, id <device id>, hw rev <hardware revision>
fw version:
Main firmware version e.g. 1.4
fw git hash:
Hash of the most recent commit in the firmware repository at the time of building.
fw build date:
Time of the build e.g. Sep 5 2019 14:57:58
device id:
Device identification number (4 bytes from CPU UUID)
hardware revision:
HW revision number read from the PCB REV pins e.g. 1.4
Procedure used to enable selected channel or all channels present in the device.
chan:enab 3
- enables selected channel
chan:enab all
- enables all channels
Procedure used to disable selected channel or all channels present in the device.
chan:disab 3
- disables selected channel
chan:disab all
- disables all channels
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.
chan:enab? 3
- return state of selected channel
chan:enab? all
- return state of all channels
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.
chan:det? 3
- return detected state of selected channel
chan:det? all
- return detected state of all channels
Returns diagnostic information and measurements about selected channel. Returned array contains:
Index | Value |
---|---|
0 | channel detected |
1 | channel enabled |
2 | output interlock |
3 | unused |
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) |
12 | Input power readout (in dBm) |
13 | Fan speed (in %) |
14 | Error status |
15 - 20 | 6 byte channel HWID |
21 | I2C bus error count |
NB the fan speed is global to for the chassis, all other readings are for the selected channel only.
chan:diag? 3
- return diagnostic info for channel 3
Returns the measured bias current for a given channel in Amps.
meas:curr? 3
- return current for channel 3
meas:curr? all
- return an array with enabled channels currents
Returns the temperature measurement for a given channel.
meas:temp? 3
- return temperature for channel 3
meas:temp? all
- return an array with detected channels temperature
Returns the measured output (forward) power for a given channel in dBm.
meas:out? 3
- return output power for channel 3
meas:out? all
- return an array with enabled channels output power
Returns the measured input power for a given channel in dBm
meas:in? 3
- return input power for channel 3
meas:in? all
- return an array with enabled channels input power
Returns the measured reverse power for a given channel in dBm
meas:rev? 3
- return reverse power for channel 3
meas:rev? all
- return an array with enabled channels reverse power
Returns the fan speed in scale (0 - 100%)
meas:fan?
- return fan speed
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.
int:pow 3,33.0
- sets forward power interlock to 33 dBm
If value exceed range (0 - 38 dBm), error is returned
[scpi] **ERROR: -200, "Execution error"
Procedure to return output (forward) power interlock setpoint value in dBm.
int:pow? 3
- return interlock setpoint value for channel 3
If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"
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.
int:cle 3
- reset channel 3 interlock
int:cle all
- reset interlocks for all enabled channels
If selected channel is not detected / empty, interface will return an error:
[scpi] **ERROR: -200, "Execution error"
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.
int:stat? 3
- return interlock status for channel 3
int:stat? all
- return interlock status for all enabled channels
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.
int:for? 3
- return output interlock status for channel 3
int:for? all
- return output interlock status for all enabled channels
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.
int:rev? 3
- return output interlock status for channel 3
int:rev? all
- return output interlock status for all enabled channels
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.
int:err? 3
- return error status for channel 3
int:err? all
- return error status for all enabled channels