pyvisa-ar488
PyVISA backend for AR488 and Prologix GPIB-USB/TCP adapters.
Lets you use standard pyvisa and pymeasure code to talk to IEEE-488 (GPIB) instruments through inexpensive AR488 or Prologix-compatible adapters.
Quick Start
pip install pyvisa-ar488
import pyvisa
# Serial adapter (e.g. Arduino Nano / ESP32 with AR488 firmware)
rm = pyvisa.ResourceManager("@ar488")
print(rm.list_resources()) # scans bus: ('GPIB0::5::INSTR', 'GPIB0::22::INSTR', ...)
instr = rm.open_resource("GPIB0::22::INSTR")
print(instr.query("*IDN?")) # 'KEITHLEY INSTRUMENTS INC.,MODEL 2400,...'
print(instr.query("MEAS:VOLT:DC?")) # '-1.234567E-03'
Transports
Serial (default)
The adapter is auto-detected on /dev/ttyUSB0 at 115200 baud. Override via
environment or constructor:
from pyvisa_ar488 import AR488VisaLibrary
lib = AR488VisaLibrary.from_serial(port="/dev/ttyACM0", baudrate=115200)
rm = pyvisa.ResourceManager(lib)
TCP (WiFi-connected ESP32)
lib = AR488VisaLibrary.from_tcp(host="192.168.1.100", port=23)
rm = pyvisa.ResourceManager(lib)
Bridge mode (mcgpib integration)
When used inside mcgpib, the backend shares the existing async connection instead of opening a new one:
lib = AR488VisaLibrary.from_bridge(bridge_connection, event_loop)
rm = pyvisa.ResourceManager(lib)
CLI
Scan a bus from the command line:
# Serial
pyvisa-ar488 --port /dev/ttyUSB0
# TCP
pyvisa-ar488 --host 192.168.1.100 --tcp-port 23
How it works
pyvisa discovers backends by looking for pyvisa_<name> packages.
pyvisa-ar488 registers as the @ar488 backend. When you open a resource,
the backend translates pyvisa's read/write/poll calls into AR488 ++ command
sequences:
| pyvisa call | AR488 commands |
|---|---|
rm.list_resources() |
++findlstn |
instr.write("*RST") |
++addr 22 then *RST |
instr.read() |
++read eoi |
instr.query("*IDN?") |
++addr 22, *IDN?, ++read eoi |
instr.read_stb() |
++spoll 22 |
instr.assert_trigger() |
++trg |
rm.send_ifc() |
++ifc |
The init sequence configures the adapter for machine-parseable output:
++verbose 0, ++prompt 0, ++auto 0, ++mode 1, ++eoi 1, ++eos 0.
Compatible adapters
- AR488 (Arduino / ESP32)
- Prologix GPIB-USB
- Any adapter using the Prologix
++command protocol
Requirements
- Python 3.11+
- pyvisa >= 1.13
- pyserial >= 3.5
License
MIT
Metadata
Release files for pyvisa-ar488 2026.2.25
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyvisa_ar488-2026.2.25.tar.gz | 13.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyvisa_ar488-2026.2.25-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.3 kB
Release files / pyvisa_ar488-2026.2.25.tar.gz
| Download URL | pyvisa_ar488-2026.2.25.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b4173b2a2450377ecac0aa61c361825f943ee2123d516f44cae751eeed2404c
|
|
BLAKE2b-256 checksum How to use checksums |
abb2e9a8a6d34ed4cd8b0af7c56bfb7a1c664d7a5d56cc0377f3e9bb2904f1d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pyvisa_ar488-2026.2.25-py3-none-any.whl
| Download URL | pyvisa_ar488-2026.2.25-py3-none-any.whl |
|---|---|
| Size | 15.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f73bed4985192e0b3c3abdea0f6ea3e9c20446bf1d4ef5759951d0f3533308bd
|
|
BLAKE2b-256 checksum How to use checksums |
8e7648011e80831254e0575e0fafce64c5c29c4b49144dd21f7ec3f22a5740ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for pyvisa-ar488 2026.2.25
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.