- Install the software requirements: Installation
- Create a sensor register description SXL file for the sensor you want to configure: Sensor Register Description File Format (SXL)
- Connect the sensor to the proFRAME grabber card.
- Start a SXIVE SoftISP instance as the backend for sensor communication: Use SXIVE SoftISP for Sensor Communication
- Start the Sensor Configuration Tool.
- Use the Target → Open Target… menu in SXIVE SCT to connect to the running SoftISP instance via the socket interface.
- Use the File → Open… menu in SXIVE SCT to load a register description SXL file.
- Select a register or a group of registers and press
F1to read the register values from the sensor. - Select a register and press
F2to modify its value. Note that only registers marked as writable in the register description file can be modified.
The SXIVE Sensor Configuration Tool (SXIVE SCT) is written in Python and relies on the Solectrix SXIVE SoftISP as a backend for sensor communication. SXIVE SCT can connect remotely to a machine running a SXIVE SoftISP instance acting as a sensor server. Requirements are therefore split between the sensor server and SXIVE SCT itself.
Sensor Server
- A Solectrix proFRAME PCIe frame grabber card with an adapter card matching the serializer of the camera head for which you want to configure the sensor.
- A Solectrix SXIVE SoftISP installation on the system where the proFRAME card is installed. Note that SXIVE SoftISP is currently available for Linux only.
SXIVE SCT
- Python 3.10 or later. See Installation for details.
- A sensor register description (.sxl) file for the sensor you want to configure. The SXL file is created from the register map provided by the sensor or camera head manufacturer.
SXIVE SCT is a Python application. Follow the steps below to install it.
-
Download the SXIVE SCT software package from the repository.
-
Install Python 3.10 or later.
- Linux: Most Linux distributions ship with a pre-installed Python interpreter.
- Windows: Download an installer from python.org.
-
Install the required Python packages using
pip:- Linux:
pip3 install -r requirements.txt - Windows:
pip install -r requirements.txt
- Linux:
-
Refer to the SXIVE SoftISP manual for instructions on installing the software and the proFRAME driver.
A detailed description of the SXL format is available here.
SXIVE SCT uses the Solectrix SXIVE SoftISP and the proFRAME grabber card as the backend for sensor communication. SXIVE SoftISP exposes a socket interface through which SXIVE SCT issues I²C read and write commands to the sensor. Because the interface is socket-based, SXIVE SCT can run on a different machine than SXIVE SoftISP via a network connection.
Either of the following SXIVE SoftISP tools can be used to establish communication with the sensor:
SXIVE SoftISP Tool
The SXIVE SoftISP tool automatically starts a sensor server. Use this tool if you want to record or process the sensor image stream while reading or modifying the sensor configuration:
SoftISP -c $CONFIG proframe3 $OUTPUT --channel $CHANNEL [-d]
-c $CONFIG: Path to the SXIVE SoftISP configuration JSON file for the sensor you want to configure.proframe3: The typical input driver name from the SXIVE SoftISP config file for the proFRAME input driver. The proFRAME input driver is required for sensor communication.$OUTPUT: The output driver name from the SXIVE SoftISP config file, e.g.guito display the output image on screen.--channel $CHANNEL: The proFRAME channel number to which the sensor is connected. Refer to the SXIVE SoftISP documentation for proFRAME channel numbering.-d: Optional. Pass this flag if the sensor is already initialized. Omitting it will run the sensor initialization defined in the config file.
Start SXIVE SoftISP with the -v option to have it log the listening port to the console, e.g. SocketServer listening on port 1234.
SensorServer Tool
If image stream recording or processing is not required, use the SXIVE SensorServer tool. It accepts the same arguments as SXIVE SoftISP, except that no output driver is specified:
SensorServer -c $CONFIG proframe3 --channel $CHANNEL [-d] --server_port $SOCKET_PORT
--server_port $SOCKET_PORT: Overrides the default TCP port (1234) for the socket interface server.
For further information on SXIVE SoftISP or SensorServer usage, refer to the SXIVE SoftISP manual.
This section describes how to use SXIVE SCT after the sensor has been initialized, a sensor server backend is running, and a register description SXL file has been created.
Connect to the Sensor Server
- Select Target → Open Target… in SXIVE SCT.
- Enter the IP address or hostname of the machine running the sensor server. Use
localhostif it is running on the same machine as SXIVE SCT. - Enter the port number of the sensor server. See Use SXIVE SoftISP for Sensor Communication for how to determine the port number.
- The sensor device address can be specified in the SXL file, but it can also be overridden here. Leave the Device field blank or enter the I²C address explicitly.
- If the connection fails, verify that the sensor server is running and that the port number is correct. If SXIVE SCT is running on a different machine, ensure that a network path exists between both machines and that no firewall or other network device is blocking TCP connections on the configured port.
Load an SXL File
- Select File → Open… in SXIVE SCT.
- Browse to the folder containing the SXL file for the sensor you want to configure and select it.
Browse Definitions
After loading an SXL file, the complete sensor register description is displayed as a tree view in the center of SXIVE SCT. Registers are typically grouped into functional sub-blocks. Expand a block by clicking the + symbol in the tree view. The lowest hierarchy level is the signal, which represents a logical data unit of a specific type such as an integer value or a flag. Refer to Sensor Register Description File Format (SXL) for a detailed description of the SXL syntax and structure.
The register address is shown in the Info column, merged with the device address. See I²C Addresses in SXIVE SCT for details on the address format.
Read Signal Values
Select a register or signal in the tree view and press F1 to read its current value from the sensor. The value is shown in the Data column and interpreted according to the type definition in the SXL file.
Selecting a sub-block and pressing F1 reads all registers within that block in a single operation.
Modify Signal Values
Select a signal in the tree view and press F2 to modify its value. Single-bit signals toggle their state immediately. For multi-bit signals, a dialog opens allowing you to enter or select the new value. For enum signals, the value cycles to the next defined enum entry. Double-clicking a signal is equivalent to pressing F2.
Note that only signals whose parent register is marked as writable in the SXL file can be modified.
Signal Monitor
The Signal Monitor is a dock panel that allows you to build a persistent list of signals for repeated observation. Drag any signal from the register tree and drop it onto the Signal Monitor panel to add it to the list. Each entry can be individually enabled or disabled using the checkbox in the first column.
- Poll Once: Reads all enabled signals in the list once.
- Cycle: Reads all enabled signals repeatedly at the interval configured in the Interval field.
- Enable: Globally enables or disables the Signal Monitor. When disabled, polling is suspended and all entries are grayed out.
The Signal Monitor list and its settings (enabled state and polling interval) are saved per SXL file and automatically restored the next time that file is loaded.
Filter
The filter field above the tree view restricts the displayed items to those whose name matches the entered expression. The filter applies to one of three target types, selectable from the drop-down:
- Signal: Matches signal names.
- Register: Matches register names.
- Tag: Matches tag annotations defined in the SXL file.
The filter expression supports wildcards: * matches any sequence of characters and ? matches a single character. Matching is case-insensitive.
Hint: The example parsers for selected Sony sensors define Category tags, which Sony uses for functional grouping of signals. Filtering by a tag such as Category:42 reduces the tree to only the signals belonging to that group. Tags can be assigned for any grouping purpose during SXL file generation.
I²C Addresses in Context of SXIVE SCT
Device and register I²C addresses are combined into a single 32-bit value. The most significant byte holds the 8-bit device address; the remaining bytes hold the 8-bit or 16-bit register address of the device.
For example, 0x36001234 denotes device address 0x36 and register address 0x1234.
SXL files are typically generated once from the register-map document provided by the sensor manufacturer. The parsers/ folder contains ready-to-use conversion scripts for selected sensors, as well as a detailed guide on:
- How the SXL intermediate format fits into the workflow
- How to run the existing parsers (Excel and IP-XACT XML inputs)
- How to use the
sxlPython library to write a new parser
See the Parsers README for full documentation.


