Quick take: GPIBee over a raw TCP socket

A PuTTY raw TCP session against GPIBee, sending ++addr 4 and *IDN? and receiving the HP 34401A identification string, next to the GPIBee web interface
A plain PuTTY session on TCP port 1234 — ++addr picks the instrument, then it is just SCPI.

This one started as a question under one of our YouTube videos, and the answer was short enough that recording it seemed faster than typing it. So: a spontaneous video, and this equally spontaneous write-up.

The question

Plenty of modern instruments expose a plain TCP socket — commonly port 5025 — where you open a connection, write *IDN?, and read a line back. No VISA, no drivers, no libraries. It's a nice way to talk to an instrument from a language or an environment that has nothing but a socket API. Can GPIBEE be used the same way?

Yes. GPIBEE's ++protocol listens on TCP port 1234, and it's the same command set as the USB UART ++protocol mode. Anything that can open a socket can drive it — PuTTY in raw mode, netcat, a five-line Python script, a PLC.

The one difference: addressing

An instrument with a socket interface is the instrument, so the connection alone identifies it. GPIBEE is a gateway: behind that one IP address sits an entire GPIB bus with up to 15 instruments. So you have to say who you mean, and that's what ++addr is for:

++addr 4      # talk to the instrument at GPIB primary address 4
++auto 1      # read back automatically after each write
*IDN?
HEWLETT-PACKARD,34401A,0,5-1-1
MEAS:VOLT:DC?
+2.81160000E-05

++addr accepts primary addresses 0–31 (31 is reserved for GPIBEE's own SCPI interface), and it can select secondary addresses — sub-addresses — as well, for instruments that use them. Switch addresses whenever you like: the same connection can move between instruments on the bus.

++auto 1 reads back using EOI termination, which is what most instruments assert at the end of a response — so this example needs nothing further. If an instrument doesn't, there are separate ++protocol commands for choosing the read and write termination behaviour; the firmware manual lists the complete command set.

When to use it — and when not to

GPIBEE is built around standard protocols first: VXI-11 and USBTMC give you VISA auto-discovery, locking, service requests, and drop-in compatibility with software you already have. That's the path we'd point you to for anything real.

The ++protocol is for the other cases: scripting from somewhere VISA doesn't reach, an embedded controller, a quick poke from a terminal to see whether an instrument is even alive. It costs nothing to have, and sometimes it's exactly the right tool.

Not on Ethernet?The same ++protocol is available over USB as a virtual serial port. Switch GPIBEE to its UART ++protocol mode and everything above works identically — same commands, same addressing, just a COM port instead of a socket.

The video

← All news