Skip to content

tektronix/tm_devices

Testing Code testing status Docs testing status Coverage status
Code Quality CodeQL status CodeFactor grade pre-commit status
Package PyPI: Package status PyPI: Latest release version PyPI: Supported Python versions PyPI: Downloads License: Apache 2.0 Package build status PyPI upload status
Documentation GitHub Pages status
Code Style Test style: pytest Code style: ruff Docstring style: google
Linting pre-commit enabled Docstring formatter: docformatter Type Checker: pyright Linter: pylint Linter: Ruff

tm_devices: Test & Measurement Device Management

tm_devices is a device management package which allows for better control and usage of Test & Measurement devices in python scripts. This is accomplished by using the PyVISA package to manage connections and communication with devices. tm_devices gives users access to a much higher level abstraction of device control by providing access to device drivers with a complete Python API.

Dependencies

tm_devices can be used without any external (non-python) dependencies on any operating system thanks to the PyVISA-py VISA backend. However, in order to use any VISA functionality that PyVISA-py does not implement, a third-party VISA backend such as TekVISA (>=4.2.0) or NI-VISA can be installed. tm_devices will use an available VISA backend if one is found and will fall back to using PyVISA-py if no other VISA backends are installed.

Installation

pip install tm_devices

Basic Usage

Print Available VISA Devices

$ list-visa-resources
[
  "TCPIP0::192.168.0.100::inst0::INSTR",
  "ASRL4::INSTR"
]

Basic Script

from tm_devices import DeviceManager

with DeviceManager() as device_manager:
    scope = device_manager.add_scope("192.168.0.100")
    scope.query("*IDN?")
    print(scope)

Supported Devices & Software Solutions

Legend

Symbol/Term Definition
🚧 Work in progress
βœ… Implemented
❌ Not Supported

See the glossary for information on abbreviations.

Device Support Levels
| Type | Series/Model | Command | Type | Basic | Control | Python API | Validation | Status
AFGs <AFG> AFG3000 PI βœ…
AFG31xxx PI βœ…
AWGs <AWG> AWG5000 PI βœ…
AWG5200 PI βœ…
AWG7000 PI βœ…
AWG70000 PI βœ…
Scopes <Scope> 2 Series MSO PI βœ… βœ…
3 Series MDO PI βœ…
4 Series MSO PI βœ… βœ…
4 Series B MSO PI βœ… βœ…
5 Series MSO PI βœ… βœ…
5 Series B MSO PI βœ… βœ…
5 Series MSO (LP) PI βœ… βœ…
6 Series MSO PI βœ… βœ…
6 Series B MSO PI βœ… βœ…
6 Series LPD PI βœ… βœ…
MSO2000/B PI βœ…
DPO2000/B PI βœ…
MDO3000 PI βœ… βœ…
MDO4000/B/C PI βœ… βœ…
MSO4000/B PI βœ… βœ…
DPO4000/B PI βœ… βœ…
MSO5000/B PI βœ… βœ…
DPO5000/B PI βœ… βœ…
DPO7000/C PI βœ… βœ…
DPO70000/C/D/DX/SX PI βœ… βœ…
DSA70000/C/D PI βœ… βœ…
MSO70000/C/DX PI βœ… βœ…
TSOVu PI βœ…
TekScope PI βœ…
PSUs <PSU> 2200 PI βœ…
2220 PI βœ…
2230 PI βœ…
2231 PI βœ…
2280S PI βœ…
2281S PI βœ…
SMUs <SMU> 24xx Standard PI βœ…
24xx Interactive TSP βœ… βœ…
26xxB TSP βœ… 🚧
2636B TSP βœ… βœ…
Model 2601B-PULSE TSP βœ…
Model 2606B TSP βœ… 🚧
2651A TSP βœ… βœ…
2657A TSP βœ…
6430 (electrometer) PI βœ…
6514 (electrometer) PI βœ…
6517B (electrometer) PI βœ…
MTs <MT> TMT4 API βœ…
DMMs <DMM> DMM6500 TSP βœ…
DMM7510 TSP βœ…
DMM7512 TSP βœ…
DAQs <DAQ> DAQ6510 TSP βœ…
SSs <SS> 3706A TSP βœ…
Software Solution Support Levels
| Software | Solution | Command | Type | Basic | Control | Python API | Validation | Status
DPOJET PI βœ… βœ…

Supported Connections

  • REST API
  • VISA (TekVISA, NI-VISA and PyVISA-py)
    • TCPIP
    • ASRL / Serial / RS-232 / RS-485
    • SOCKET
    • USBTMC (no PyVISA-py support)
    • GPIB (no PyVISA-py support)

Documentation

See the full documentation at https://tektronix.github.io/tm_devices/

Maintainers

Before reaching out to any maintainers directly, please first check if your issue or question is already covered by any open issues. If the issue or question you have is not already covered, please file a new issue or start a discussion and the maintainers will review and respond there.

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

tm_devices was created by Tektronix. It is licensed under the terms of the Apache License 2.0.

Credits

tm_devices was created with cookiecutter and the py-pkgs-cookiecutter template.