Manage connections and interactions with Test & Measurement devices.
Project description
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.1::inst0::INSTR",
"ASRL4::INSTR"
]
Basic Script
from tm_devices import DeviceManager
with DeviceManager() as device_manager:
scope = device_manager.add_scope("192.168.0.1")
scope.query("*IDN?")
print(scope)
Supported Devices & Software Solutions
[!TIP] Visit the Glossary to see definitions for all symbols and abbreviations.
Device Support Levels
| Type | Series/Model | Command Type |
Basic Control |
Python API Validation Status |
|---|---|---|---|---|
| AFGs | AFG3000 | PI | ✅ | |
| AFG31xxx | PI | ✅ | ||
| AWGs | AWG5000 | PI | ✅ | |
| AWG5200 | PI | ✅ | ||
| AWG7000 | PI | ✅ | ✅ | |
| AWG70000 | PI | ✅ | ✅ | |
| Scopes | 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 | ✅ | ✅ | |
| 7 Series DPO ⭐ NEW ⭐ | 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 | 2200 | PI | ✅ | |
| 2220 | PI | ✅ | ||
| 2230 | PI | ✅ | ||
| 2231 | PI | ✅ | ||
| 2280S | PI | ✅ | ||
| 2281S | PI | ✅ | ||
| SMUs | 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 | TMT4 | API | ✅ | |
| DMMs | DMM6500 | TSP | ✅ | |
| DMM7510 | TSP | ✅ | ||
| DMM7512 | TSP | ✅ | ||
| DAQs | DAQ6510 | TSP | ✅ | |
| SSs | 3706A | TSP | ✅ | |
| MFs | MP5000 Series ⭐ NEW ⭐ | TSP | ✅ | 🚧 |
Mainframe Module Support Levels
| Module | Applicable Mainframes |
Command Type |
Basic Control |
Python API Validation Status |
|---|---|---|---|---|
| MPSU50-2ST | MP5000 Series | TSP | ✅ | 🚧 |
| MSMU60-2 | MP5000 Series | TSP | ✅ | 🚧 |
Software Solution Support Levels
| Software Solution |
Command Type |
Basic Control |
Python API Validation Status |
|---|---|---|---|
| DPOJET | PI | ✅ | ✅ |
| SourceXpress | 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://tm-devices.readthedocs.io/stable/
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.
- tmdevicessupport@tektronix.com - For technical support and questions.
- opensource@tektronix.com - For open-source policy and license questions.
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.
Security
The signatures of the files uploaded to PyPI and each
GitHub Release can be verified using
the GitHub CLI attestation verify command.
The artifact attestations can also be directly downloaded from the
GitHub repo attestations page if desired.
gh attestation verify --owner tektronix <file>
Credits
tm_devices was created with
cookiecutter
and the py-pkgs-cookiecutter
template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tm_devices-3.5.0.tar.gz.
File metadata
- Download URL: tm_devices-3.5.0.tar.gz
- Upload date:
- Size: 7.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
117963bb28c025ad72bb2e830eb5064f70d63bfb3c3d89d7e042bb46830b4fa1
|
|
| MD5 |
83418993aed01c574305d851b0672204
|
|
| BLAKE2b-256 |
27aa3a6875f181579acf6d4e8110d705538efdc99faefcfe156a065a26b3fc37
|
File details
Details for the file tm_devices-3.5.0-py3-none-any.whl.
File metadata
- Download URL: tm_devices-3.5.0-py3-none-any.whl
- Upload date:
- Size: 8.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92d4cf9c3d2c287b1db1a0dcf432080d2151440d18386fb9c64eae78f2c14051
|
|
| MD5 |
c89e514039934f0e302e7a3247701ea5
|
|
| BLAKE2b-256 |
ad4f193feba6983758b09eecf83d004ae0791e8cf8309a93982195eb1eed9e1c
|