LAN Instrument Control: VXI-11 vs HiSLIP
Understand the difference between VXI-11 and HiSLIP protocols, and when to use each for TCP/IP instrument control.
Contents
LAN vs USB vs GPIB
Modern test instruments typically offer three connectivity options: USB, LAN (Ethernet), and GPIB. LAN has become the preferred choice for most new installations because it:
- Supports long cable runs (up to 100 m with Cat5e/Cat6)
- Allows remote access from anywhere on the network
- Enables multiple simultaneous connections from different computers
- Requires no special hardware beyond a standard network switch
- Transfers data faster than GPIB (typically 10–100× faster with HiSLIP)
The challenge is that LAN instruments communicate using one of two application-layer protocols — VXI-11 or HiSLIP — and choosing the wrong one can result in slow transfers or connection failures.
VXI-11: The Classic Protocol
VXI-11 was standardized in 1995 and is built on Sun RPC (Remote Procedure Call) over TCP/IP. It was designed to emulate GPIB behavior over Ethernet, making it easy to migrate existing GPIB-based code to LAN.
How it works:
- The instrument runs an RPC port mapper on port 111
- The VISA library queries the port mapper to find the VXI-11 server port (usually dynamically assigned)
- Two separate TCP connections are established: one for commands (core channel) and one for asynchronous interrupts (abort channel)
- Each write/read transaction involves multiple round trips to set up the RPC call
This round-trip overhead is VXI-11's main weakness. Each command incurs several network round trips beyond the actual data transfer, making it noticeably slower for high-throughput applications.
VISA resource string format:
TCPIP0::192.168.1.100::inst0::INSTR
The inst0 field is the logical name defined by VXI-11. Most instruments use inst0; some Rohde & Schwarz instruments use hislip0 or inst0 depending on firmware version.
HiSLIP: The Modern Standard
HiSLIP (High-Speed LAN Instrument Protocol) was introduced in 2010 by the IVI Foundation as a direct replacement for VXI-11. It uses plain TCP (no RPC layer) on a fixed port (4880) and was designed specifically for high-speed instrument control.
Key improvements over VXI-11:
- Fewer round trips — a single TCP write delivers the command directly, no RPC setup needed
- Overlapped mode — the host can send the next command while still reading the previous response, enabling pipelining
- Encrypted connections — HiSLIP 2.0 adds TLS support for secure communication
- IPv6 support — VXI-11 is IPv4 only; HiSLIP works with both
- Fixed port 4880 — no port mapper required, firewall rules are simpler
VISA resource string format:
TCPIP0::192.168.1.100::hislip0::INSTR
The hislip0 identifier tells the VISA library to use the HiSLIP protocol. Some instruments number additional HiSLIP interfaces as hislip1, hislip2, etc.
Side-by-Side Comparison
| Feature | VXI-11 | HiSLIP |
|---|---|---|
| Standard year | 1995 | 2010 |
| Transport | TCP/IP + Sun RPC | Plain TCP |
| Port | Dynamic (via port mapper 111) | Fixed: 4880 |
| Throughput | Moderate (RPC overhead) | High (direct TCP) |
| Command latency | Higher (multiple round trips) | Lower (single trip) |
| Pipelining | No | Yes (overlapped mode) |
| Firewall rules | Complex (dynamic ports) | Simple (port 4880 only) |
| IPv6 support | No | Yes |
| Encryption (TLS) | No | HiSLIP 2.0+ |
| Instrument support | Universal (all LAN instruments) | Modern instruments (post-2010) |
| pyvisa-py support | Yes | Yes |
Which Protocol to Use
Quick Decision Guide
Find Your Instrument's IP Address
There are three ways to find a LAN instrument's IP address:
1. Front panel menu
On most instruments: System → Connectivity → LAN or Utility → I/O → LAN. The IP address, subnet mask, and gateway are displayed. Note the address and whether DHCP or static IP is used.
2. Instrument web interface
Most LXI-compliant instruments host a web page at their IP address. If you can see the IP on the front panel, open http://<ip-address> in a browser. The page will show full network details and often allows you to send SCPI commands directly.
3. LXI Discovery (mDNS/Bonjour)
LXI instruments broadcast their presence on the local network using mDNS. Use the following Python snippet to discover them without knowing the IP in advance:
import pyvisa
rm = pyvisa.ResourceManager()
# list_resources with a TCPIP filter finds LAN instruments
resources = rm.list_resources('TCPIP?*::INSTR')
print(resources)
Connect with PyVISA
Once you have the IP address, connecting is straightforward. The only difference between VXI-11 and HiSLIP is the resource string:
import pyvisa
rm = pyvisa.ResourceManager()
# VXI-11 connection
inst_vxi = rm.open_resource('TCPIP0::192.168.1.100::inst0::INSTR')
# HiSLIP connection
inst_hi = rm.open_resource('TCPIP0::192.168.1.100::hislip0::INSTR')
# Both support the same PyVISA interface
print(inst_hi.query('*IDN?'))
Set a timeout appropriate for your application. LAN latency on a local network is typically under 1 ms, but slow instruments (e.g., during a long sweep) may need several seconds to respond:
inst.timeout = 10000 # 10 seconds — adjust for slow measurements
Throughput benchmark example
To see the speed difference in practice, use a spectrum analyzer or oscilloscope that returns large binary trace data:
import pyvisa
import time
rm = pyvisa.ResourceManager()
for proto, addr in [('VXI-11', 'TCPIP0::192.168.1.100::inst0::INSTR'),
('HiSLIP', 'TCPIP0::192.168.1.100::hislip0::INSTR')]:
inst = rm.open_resource(addr)
inst.timeout = 10000
t0 = time.perf_counter()
for _ in range(20):
inst.query('*IDN?')
elapsed = time.perf_counter() - t0
print(f"{proto}: 20 queries in {elapsed:.3f}s ({elapsed/20*1000:.1f} ms each)")
inst.close()
Typical results on a 1 Gbps LAN: VXI-11 ~15–25 ms per query, HiSLIP ~2–5 ms per query.
Raw Socket Connection
Some instruments expose a plain TCP socket (no VXI-11 or HiSLIP layer) on a fixed port, typically 5025 or 5555. This is the simplest possible interface — you send ASCII SCPI text and read back the response.
Check your instrument's manual for the socket port number. The VISA resource string uses the SOCKET suffix:
import pyvisa
rm = pyvisa.ResourceManager()
# Raw socket — port 5025 is common for Keysight and Rigol instruments
inst = rm.open_resource('TCPIP0::192.168.1.100::5025::SOCKET')
# IMPORTANT: raw sockets do not auto-append a terminator
inst.write_termination = '\n'
inst.read_termination = '\n'
print(inst.query('*IDN?'))
write_termination and read_termination manually. \n (newline) is the standard SCPI terminator.
Common raw socket ports by manufacturer:
- Keysight: port 5025
- Rigol: port 5555
- Rohde & Schwarz: port 5025
- Tektronix: port 4000 (varies by model)
Troubleshooting
Connection refused (VisaIOError: VI_ERROR_CONN_LOST)
The instrument is not accepting connections on the requested port. Verify:
- LAN is enabled on the instrument (check front panel LAN settings)
- The correct protocol is used — try
inst0(VXI-11) ifhislip0fails - Port 4880 (HiSLIP) or port 111 (VXI-11 portmapper) is not blocked by a firewall
# Quick connectivity test from terminal
ping 192.168.1.100
# Check if HiSLIP port is open (Linux/macOS)
nc -zv 192.168.1.100 4880
# Windows equivalent
Test-NetConnection -ComputerName 192.168.1.100 -Port 4880
Timeout on first query after connection
Some instruments take 1–2 seconds to fully initialize a new LAN session. Increase the timeout for the first command, then restore it:
inst = rm.open_resource('TCPIP0::192.168.1.100::hislip0::INSTR')
inst.timeout = 5000 # generous timeout for initial handshake
idn = inst.query('*IDN?')
inst.timeout = 2000 # restore normal timeout
print(idn)
Instrument found by ping but not by list_resources()
pyvisa-py's LAN discovery relies on mDNS, which may not work across VLANs or subnets. Skip discovery and open the resource directly using the known IP address:
inst = rm.open_resource('TCPIP0::192.168.1.100::inst0::INSTR')
Slow transfers with VXI-11 on high-latency networks
VXI-11 performance degrades significantly over WAN links or VPNs due to RPC round trips. Switch to HiSLIP if possible, or use a raw socket connection which has less protocol overhead.
Multiple simultaneous connections fail
VXI-11 typically limits connections to one client at a time. HiSLIP supports multiple simultaneous connections. If you need concurrent access from multiple scripts or computers, use HiSLIP.
Next Steps
With LAN connectivity working, explore multi-instrument automation: