Skip to main content

Control module for Bentham Instruments Ltd SCPI devices

Project description

bendev

A crossplatform Python package for communicating with the USB/SCPI-enabled Bentham Instruments hardware devices such as the TLS120Xe. The package uses hidapi to send and receive text based commands and replies using the USB HID protocol.

Compatibility

This software has been tested on Mac OS X, Ubuntu, and Windows, with python 3.8 onwards. It is compatible Bentham Instruments devices with an SCPI over USB HID packet interface.

Installation

pip install bendev

Usage

bendev devices can be instantiated in context managers:

>>> import bendev
>>> with bendev.Device() as dev:
...     print(dev.query("*IDN?"))
"Bentham Instruments Ltd.","MSH150_RD_Direct","99999/9","1.2.53"

or normally:

>>> import bendev
>>> my_tls = bendev.Device()
>>> my_tls.write("SYSTEM:REMOTE")
>>> my_tls.query("MONO:GOTO? 555")
"1"

Devices can be opened by serial number, product string or manufacturer string:

>>> import bendev
>>> device_a = bendev.Device(serial_number="99999/9")
>>> device_b = bendev.Device(product_string="TLS120Xe")
>>> device_c = bendev.Device(manufacturer_string="Bentham")

For product_string and manufacturer_string, it is sufficient if the given substring is present in the device descriptor. The serial_number has to be exact. manufacturer_string defaults to "Bentham".

The package can also tell you what devices are connected:

>>> import bendev
>>> devs=bendev.list_connected_devices(verbose=True)
Connected Devices:
Device 18: Bentham Instruments, TLS120Xe, ...

Known issues

On ubuntu the python hidapi module has been noted to fail to read device strings for an unknown reason; until this is resolved the devices may be opened as raw hid devices, bypassing the hidapi module:

>>> import bendev
>>> my_device = bendev.Device(hidraw = "/dev/hidraw2")
>>> my_device.query("*IDN?")
'"Bentham Instruments Ltd.","TLS120Xe","12345/6","0.5.3"'

Version history

  • v0.0.1 - v0.0.3: test releases
  • v0.0.4: first release
  • v0.1.0: added ability to use raw hid devices
  • v0.1.1: fix formatting issue
  • v0.2.0: add reconnect command
  • v0.3.0: add python 3.11 compatibility
  • v0.3.1: fix inverted vendor ID filter in list_connected_devices

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bendev-0.3.6.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bendev-0.3.6-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file bendev-0.3.6.tar.gz.

File metadata

  • Download URL: bendev-0.3.6.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for bendev-0.3.6.tar.gz
Algorithm Hash digest
SHA256 52ab54cf587d78aea62643921f9d20adb09861ecb621382b1ac985fe5e2d070d
MD5 5141d18b08940cee6f62b2e1c940067a
BLAKE2b-256 f63f6190266050b4038abf77cd11c39f51e03a7f3deb7af67ce2e5b4d6f3129b

See more details on using hashes here.

File details

Details for the file bendev-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: bendev-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for bendev-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2ad61e1c07df919b64e473ac2ccc0c6ddc154293b3a5daa50e325c70211e7606
MD5 08f63000ee9244d5278a9d00e8126dab
BLAKE2b-256 d5e0e8fccde5e1a38707958de85b1880bcfdc701b20b67d4d73a5ee0e2eea8ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page