SYSTem - General system properties and settings
The system settings allow adjustment of the general behaviour of Spektralwerk Core.
:ACTion - Controllable actions
The SYSTem:ACTion path contains actions which can be performed.
:REBoot - Spektralwerk Core reboot
command only
The Spektralwerk Core device can be rebooted using SYSTem:ACTion:REBoot node. Stored configurations and vales (reference and scaling vectors, user settings, etc.) will be preserved upon rebooting. Changes of the status LED (see CONTrol:INDicator:STATus) will be reset.
Parent path: SYSTem:ACTion
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:REBoot |
- | <NONE>: reboots the Spektralwerk Core |
Example:
> MEASure:SPECtrum:AVERage:NUMBer 123
> CONTrol:INDicator:STATus off
> SYSTem:ACTion:REBoot
# restarts the Spektralwerk Core
> MEASure:SPECtrum:AVERage:NUMBer?
123
> CONTrol:INDicator:STATus?
# the state of the status LED is not preserved upon rebooting
auto
:COMMunicate:NETWork - Network adjustment
The network settings can be changed to fit the network environment.
:CONFig:IPV4 - IPv4 configuration
query and command
SYSTem:NETWork:CONFig:IPV4 can be used for configuring the IPv4-related network settings.
The first parameter determines the selected configuration method (disabled / static / dhcp). The static method requires one or two additional parameters: the device address and an optional gateway address. The other methods do not require additional parameters.
Parent path: SYSTem:COMMunicate:NETWork:CONFig
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:IPv4 |
returns the current IPv4 address of the Spektralwerk Core | <METHOD[,IP_ADDRESS[,GATEWAY]]>: configure IPv4 network |
Example response:
> SYSTem:COMMunicate:NETWork:CONFig:IPV4 dhcp
> SYSTem:COMMunicate:NETWork:CONFig:IPV4?
dhcp
> SYSTem:COMMunicate:NETWork:CONFig:IPV4 static,"192.168.0.34/24"
> SYSTem:COMMunicate:NETWork:CONFig:IPV4?
static,"192.168.0.34/24"
> SYSTem:COMMunicate:NETWork:CONFig:IPV4 static,"192.168.0.34/24","192.168.0.134"
> SYSTem:COMMunicate:NETWork:CONFig:IPV4?
static,"192.168.0.34/24","192.168.0.134"
:HOSTname - Device host name
query and command
The device's network host name can be set using SYSTem:COMMunicate:NETWork:HOSTname. The default host name of the spectrometer is spektralwerk-<SERIAL_NUMBER_OF_THE_DEVICE> and is also stated on its name plate.
Parent path: SYSTem:COMMunicate:NETWork
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:HOSTname |
returns the current host name of the device | <STRING>: changes the host name of the device |
Example
> SYSTem:COMMunicate:NETWork:HOSTname?
"spektralwerk-01001234"
> SYSTem:COMMunicate:NETWork:HOSTname "very_cool_device"
> SYSTem:COMMunicate:NETWork:HOSTname?
"very_cool_device"
:MAC - Media access control
query only
Provides information about the device's media access control address (MAC address). The MAC address can not be changed.
Parent path: SYSTem:COMMunicate:NETWork
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:MAC |
returns the device's MAC address | - |
Example:
> SYSTem:COMMunicate:NETWork:MAC?
AA:BB:CC:DD:EE:FF
:ERRor - Error handling
query only
The :ERRor branch offers access to occurring errors in the SCPI interface. *CLS command can be used to clear previously occurred errors. Querying SYSTem:ERRor[:NEXT]? without an error will return 0,"No error". An overflow of the error queue will return -350,"Queue overflow".
Parent path: SYSTem
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:ERRor[:NEXT] |
returns the last occurred error and removes the error from the error queue | - |
:ALL |
returns all errors and removes them from the error queue | - |
:COUNt |
returns the number of errors | - |
Example:
> SYSTem:ERRor?
0,"No error"
> UNKN:OWN:CMD?
# no response due to unknown command
> SYSTem:ERRor?
-113,"Undefined header"
> UNKN:OWN:CMD?
# no response due to unknown command
> SYSTem:ERRor:NEXT?
-113,"Undefined header"
> UNKN:OWN:CMD?
# no response due to unknown command
> UNKN:OWN:CMD?
# no response due to unknown command
> UNKN:OWN:CMD?
# no response due to unknown command
> SYSTem:ERRor:COUNt?
3
> SYSTem:ERRor:ALL?
-113,"Undefined header",-113,"Undefined header",-113,"Undefined header"
# the error queue is cleared after calling `SYSTem:ERRor:ALL?`
> SYSTem:ERRor?
0,"No error"
> SYSTem:ERRor:COUNt?
0
:FIRMware - Firmware handling
The firmware of the Spektralwerk Core can be updated or reset to a stable version. Both can be handled using the SYSTem:FIRMware path and its subcommands.
:UPLoad - New firmware upload
command and query
The firmware can be uploaded chunk-wise using the SYSTem:FIRMware:UPLoad command. Block position, block size and base64 encoded block are passed with the command. In addition, the SYSTem:FIRMware:UPLoad:STATus query returns the current status (current block position and "SHA-1" hash of the transmitted data) of the upload. The SYSTem:FIRMware:UPLoad:VERSion query provides information about the firmware version being uploaded.
Parent path: SYSTem:FIRMware:UPLoad
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:BLOCk |
- | <INTEGER,INTEGER,STRING> |
:STATus |
returns the status of the firmware upload | - |
:VERSion |
returns the firmware version which is being uploaded | - |
Example:
> SYSTem:FIRMware:UPLoad:BLOCk 0,1024,<BASE64_ENCODED_BLOCK>
> SYSTem:FIRMware:UPLoad:BLOCk 1024,1024,<BASE64_ENCODED_BLOCK>
> SYSTem:FIRMware:UPLoad:BLOCk 2048,1024,<BASE64_ENCODED_BLOCK>
# ...
> SYSTem:FIRMware:UPLoad:STATus?
3072,<SHA1_SUM>
> SYSTem:FIRMware:UPLoad:VERSion?
1.0.1
:RECovery - Recovery firmware handling
command and query
SYSTem:FIRMware:RECovery can be used to restore the previous firmware version (SYSTem:FIRMware:RECovery:ROLLback) or to set the current firmware version to the default fallback firmware version (SYSTem:FIRMware:RECovery:UPGRade). The current recovery firmware version is available from SYSTem:FIRMware:RECovery:VERSion? query.
Parent path: SYSTem:FIRMware:RECovery
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:ROLLback |
- | <NONE>: restores the current recovery firmware version |
:UPGRade |
- | <NONE>: upgrades the recovery firmware to the current firmware version |
:VERSion |
returns the stored client information | - |
Example:
> SYSTem:FIRMware:VERSion?
1.0.1
> SYSTem:FIRMware:RECovery:VERSion?
1.0.0
> SYSTem:FIRMware:RECovery:ROLLback
> SYSTem:FIRMware:VERSion?
1.0.0
# ... Upload of a new firmware version
> SYSTem:FIRMware:VERSion?
1.0.1
> SYSTem:FIRMware:RECovery:VERSion?
1.0.0
> SYSTem:FIRMware:RECovery:UPGRade
> SYSTem:FIRMware:RECovery:VERSion?
1.0.1
:VERSion - Firmware version
query only
The current firmware version is available using the SYSTem:FIRMware:VERSion? query. The response is identical to the firmware version block provided by querying the Spektralwerk Core identity *IDN?.
Parent path: SYSTem:FIRMware
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:VERSion |
returns the current firmware version | - |
Example:
> SYSTem:FIRMware:VERSion?
1.2.3
:SETTings:CLIent - User client storage
query and command
SYSTem:SETTings:CLIent provides access to 3rd-party client storage on the spectrometer. A client might store additional yaml formatted meta data on the device. The client configuration data is limited to 2048 bytes.
Each client implementation accessing the client storage is expected to choose a unique name (e.g. "My-Fancy-Client") and store its information in a top-level dictionary of this name. All other existing settings shall be preserved without modifications. But it may be necessary for a client to remove the data dictionaries of other clients in order to reduce the required storage size.
Parent path: SYSTem:SETTings
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:CLIent |
returns the base64 encoded stored client information | <STRING>: - store the base64 encoded client settings string |
Example:
// Some json sample data
{
"My-Fancy-Client": {
"LastUsageTimestamp": 2025-09-24 22:31:17+02:00,
"LastClientIP": 172.16.134.23,
"SetupName": "liquid solution magic",
"SetupNotes": "The photonic flibber-glass enters through the quantum snorkel, ricocheting off the bifurcated lens cradles into the hyper-spectral zindle array.",
"ClientVersion": 1.3.12,
},
"some-lazy-client": {
"i_was_here": true,
"request_counts": [4, 8, 2],
}
}
// This will be transformed to a base64 encoded string:
// ewogICJNeS1GYW5jeS1DbGllbnQiO....CwgOCwgMl0sCiAgfQp9
Here, the Client "My-Fance-Client" is expected to modify only the data within the dictionary of this name. This is supposed to avoid interference between clients, while allowing a wide range of customizations.
> SYSTem:SETTings:CLIent?
> SYSTem:SETTings:CLIENT "ewogICJNeS1GYW5jeS1DbGllbnQiO....CwgOCwgMl0sCiAgfQp9"
> SYSTem:SETTings:CLIent?
"ewogICJNeS1GYW5jeS1DbGllbnQiO....CwgOCwgMl0sCiAgfQp9"
:SCPI:COMMands:VERSion - SCPI command revision
query only
The SCPI interface in Spektralwerk Core evolves continuously. A version number is used to indicate the extent of changes. The version number's structure follows the "Semantic Versioning" scheme.
Client implementations may use this version number to warn the user in case of mismatched expectations.
Parent path: SYSTem
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:SCPI:COMMands:VERSion |
returns the current revision of the SCPI interface | - |
Example:
> SYSTem:SCPI:COMMands:VERSion?
1.0.0
:VERSion - SCPI version
query only
SYSTem:VERSion? provides information about the SCPI standard used for this interface.
Parent path: SYSTem
| SCPI String | Query ? |
Command [<INPUT VALUE>] |
|---|---|---|
:VERSion |
returns the SCPI standard of this interface | - |
Example:
> SYSTem:VERSion?
scpi-1999