Skip to content

Bridge Management Tools

These five tools manage the lifecycle of AR488 bridge connections. A bridge must be connected before any bus or instrument operations can be performed on it.


List all configured GPIB bridges and their connection status. Returns each bridge’s name, transport type, connection state, and firmware version (if connected).

Parameters

This tool takes no parameters.

Example

result = await client.call_tool("list_bridges", {})

Returns

Bridges:
bench-a: serial (/dev/ttyUSB0) [connected] — AR488 GPIB controller 0.51.29
bench-b: tcp (192.168.1.50:23) [disconnected]

Get detailed status of a specific bridge, including firmware version, current GPIB address, read timeout, and full transport details.

Parameters

NameTypeRequiredDescription
bridge_namestringYesName of the bridge to query

Example

result = await client.call_tool("bridge_status", {
"bridge_name": "bench-a"
})

Returns

{
"name": "bench-a",
"transport_type": "serial",
"connection_state": "connected",
"firmware_version": "AR488 GPIB controller 0.51.29",
"current_address": 22,
"read_timeout_ms": 3000,
"serial_port": "/dev/ttyUSB0",
"baudrate": 115200
}

Connect to a bridge and initialize it for GPIB controller operation. Establishes communication, runs the initialization sequence, and optionally scans the bus for instruments.

Parameters

NameTypeRequiredDescription
bridge_namestringYesName of the bridge to connect

Example

result = await client.call_tool("connect_bridge", {
"bridge_name": "bench-a"
})

Returns

Connected to bench-a: AR488 GPIB controller 0.51.29
Discovered 2 instrument(s):
Address 5: Agilent Technologies E3631A
Address 22: KEITHLEY INSTRUMENTS INC. MODEL 2000

Disconnect from a bridge. Closes the serial or TCP connection. Instruments on the bus return to local control.

Parameters

NameTypeRequiredDescription
bridge_namestringYesName of the bridge to disconnect

Example

result = await client.call_tool("disconnect_bridge", {
"bridge_name": "bench-a"
})

Returns

Disconnected from bench-a

Change bridge configuration at runtime. All parameters are optional; only the provided values are changed. Changes take effect immediately but are not persisted to NVS unless you send ++savecfg via raw_command.

Parameters

NameTypeRequiredDescription
bridge_namestringYesName of the bridge to configure
read_timeout_msintegerNoGPIB read timeout in milliseconds (1—32000)
auto_modeintegerNoAuto-read mode: 0=off, 1=prologix, 2=on-query, 3=continuous
eosintegerNoEnd-of-send character: 0=CRLF, 1=CR, 2=LF, 3=None
eoibooleanNoWhether to assert EOI on the last byte sent

Example

result = await client.call_tool("configure_bridge", {
"bridge_name": "bench-a",
"read_timeout_ms": 5000,
"eoi": True
})

Returns

Configured bench-a: read_timeout_ms=5000, eoi=True