Drivers from other Libraries

Some drivers from other Python libraries require extra treatment for compatibility with HEROS. BOSS supports auto wrapping of these drivers to make them compatible for some libraries.

Note

To use the external Libraries, you do not need to install the herosdevices library. They can be directly started with BOSS.

Warning

As we do not have any influence of the code in the external libraries, no warranty can be given for their functionality. We can not guarantee that they will be open source, available or up to date for all time. Please refer to the documentation of the external libraries for further information and report bugs in the drivers to the corresponding developers.

Devices which are available from other libraries that are supported by BOSS are also listed in our hardware list and marked accordingly.

Tip

BOSS also provides mechanisms to adjust and configure the device classes through JSON, for easier use with observables and data acquisition. You can also learn more about this in this tutorial.

QCoDeS

QCoDeS is a Python-based data acquisition framework developed by Microsoft. Besides a comprehensive suite of tools for controlling instruments and managing experimental data, it also provides a rich set of drivers for various instruments. QCoDeS instrument driver classes can be directly used with HEROS through BOSS, enabling seamless integration with the HEROS ecosystem.

Using QCoDeS with HEROS

QCoDeS is built around the concept of Parameters, which are similar in principle to HEROS’s herosdevices.core.DeviceCommandQuantity class. These Parameters represent controllable aspects of instruments and can be read from or written to.

The available parameters for a QCoDeS device are documented in the corresponding QCoDeS class documentation. When initializing a QCoDeS device in HEROS, you specify the parameters you want to use through the parameters list argument. All other arguments are passed directly to the constructor of the underlying QCoDeS device.

Parameters of QCoDeS submodules are specified by a dot notation. For example to specify the source parameter of the trigger submodule, add the parameter trigger.source to the parameters list.

Example Configuration

Below is an example JSON configuration for a Keysight 34410A QCoDeS device which exposes the parameters volt and source of the trigger submodule:

{
  "_id": "my_qcodes_device",
  "classname": "qcodes.instrument_drivers.Keysight.Keysight34410A",
  "arguments": {
    "address": "TCPIP::172.16.111.169::INSTR",
    "parameters": [
      "volt",
      "trigger.source"
    ]
  }
}

PyLabLib

PyLabLib is a Python-based instrument control and automation framework. PyLabLib instrument driver classes can be directly used with HEROS through BOSS, enabling seamless integration with the HEROS ecosystem.

Using PyLabLib with HEROS

PyLabLib uses similar paradigms in their device drivers like us or use set and get methods to manipulate the device, which makes their drivers work well with HEROS without needing extensive wrapper classes. This means, that you can use the drivers like in their documentation without adjustment.

Example Configuration

Below is an example JSON configuration for a Thorlabs Kinesis Cube:

{
  "_id": "kinesis-cube",
  "classname": "pylablib.devices.Thorlabs.kinesis.KinesisPiezoMotor",
  "arguments": {
    "conn": "/dev/ttyUSB0"
  }
}