After Decades, Linux Finally Gains Stable GPIB Support

Recently, [Greg Kroah-Hartman] proclaimed the joyous news on the Linux Kernel Mailing List that stable General Purpose Interface Bus (GPIB) support has finally been merged into the 6.19 Linux kernel.

The GPIB is a short-range 8-bit, multi-master interface bus that was standardized as IEEE 488. It first saw use on HP laboratory equipment in the 1970s, but was soon after also used by microcomputers like the Commodore PET, Commodore 64 and others. Although not high-speed with just 8 MB/s, nor with galvanic isolation requirements, it’s an uncomplicated bus design that can be implemented without much of a blip on the BOM costs.

The IEEE 488 standard consists of multiple elements, with 488.1 defining the physical interface and 488.2 the electrical protocol. Over the decades a communication protocol was also developed, in the form of SCPI and its standardized way of communicating with a wide range of devices using a simple human-readable protocol.

Although the physical side of IEEE 488 has changed over the years, with Ethernet becoming a major alternative to the short GPIB cables and large connectors, the electrical protocol and SCPI alike are still very much relevant today. This latest addition to the Linux kernel should make it much easier to use both old and new equipment equipped with this bus.

40 thoughts on “After Decades, Linux Finally Gains Stable GPIB Support

  1. My childhood Commodore 64 had a IEEE 488 interface, which allowed connecting a Commodore 4040 dual 5 1/4″ floppy drive. It’s long gone, I have no way of testing this :)

    Just searching now, it seems like IEEE 488 – USB adapters are now used to connect devices to PCs.

    1. The PET line was interesting, some later models could even run MS-DOS.
      Makes me wonder whether or not it was planned to make IEEE 488 accessible as an AUX device.

    2. It’s interesting that Commodore could implement IEEE 488 cheaply enough to include on their low cost computers, but an IEEE 488 interface for anything else is expensive.

      1. I suspect it’s expensive because it’s a fairly niche thing and the people who buy the shiny new test gear which might need it (a diminishing market I guess as most things these days use Ethernet or USB) don’t bat an eyelid at adding a few hundred to the bill when they might be spending a few tens or even hundred thousand.

        However, it’s really not that complex an interface or even particularly expnesive to implement, there’s even projects which use Arduino boards to create a GPIB interface.

        1. Very expensive because of the cable and connector in pre-Chinese manufacturing days. Very expensive and a complicated protocol that used a lot of the bandwidth.

        2. It was an ‘exotic’ interface used on lab equipment, so anybody selling GPIB interface cards would sell very few, to high end demanding customers, so it’d need to be expensive to make up for the very low volume sales.

      2. Hi, I guess it’s in parts because of using software impementation on computers such as the C64.
        I mean, the RS-232 interface was being implemented in the kernal, too, mostly.:
        On hardware side it used TTL signals and had no dedicated hardware to assist hand-shaking, buffering etc.

        On x86 PC, Unix workstations, oscilloscopes and other platforms the IEEE 488 interfaces probably had used dedicated hardware transceiver chips.
        For example, there were ISA cards for IEEE 488 using STMicroelectronics EF68B21P chip, for example.

    3. Wow, I just checked a Chinese site and IEEE 488 – USB adapters go for prices that are over 100 euros.
      WTF
      I guess those retro hardware fanatics are considered an easy mark then?

      If they are 100+ in china I hate to know the prices in western shops that resell them.

      1. These niche converters are worth something, after all. :)
        Let’s think of Firewire-Thunderbolt converters, SCSI-Firewire converters or ADB-USB converters..

      2. Today I’m spending most of my work-day in front of a large million-dollar machine filled with DMMs, Scopes, Signal generators and such for automated testing. All of them are controlled from a PC via a IEEE-488 bus.

        This should give an idea as to why you can get a pretty penny for an adapter.

      3. Many slightly outdated and very expensive scientific instruments use them (like my Waters Alliance HPLC system). OEM interfaces are much more expensive and inconvenient, and these adapters a lifesaver.

  2. This article (and others like it elsewhere) make it sound like obsolete technology. While GPIB isn’t used for computer periphery any more (and hasn’t for nearly 40 years), it is still found on current test&measurement gear. Keysight’s top-of-the-line DMM, the 3458A, still can be controlled remotely only via the GPIB, even in its redesigned version of 2019.

    More importantly however, test&measurement gear has typically a much longer useful lifespan than micro computers. There’s still a lot of gear out there benefiting from this software.

    1. I thought I made it clear in the article that IEEE 488 by itself isn’t obsolete, but I had made the assumption that the original connector was vanishing. Clearly I was wrong on that count, so thank you for that correction :)

    2. The EMI testing facility I used when I was working has all their gear hooked to IEEE-488 bus. Receiver, turntable, antenna, signal source, it’s all controlled over 488. It takes the operator out of the drudgery and puts them wehre they should be, dealing with the client and interpreting the results.

    3. Back in 2011, one of my first projects as an underground physics student was using a NI gpib pci board and interfacing with it using python to automate grabbing data. Now I’m sitting here flashing back going, “I wish I had a raspberry pi back then”.

    4. It’s almost never standard equipment (like usb or enet) and only exists for people that require it in some old setup

      I used it for years and the only advantage I ever saw from it was daisy chain and the fact I could have some old gear from the 80’s or 90′ in the mix

    1. That is not possible because GPIP did not provide power for this thirsty ESP. And if you provide an external powersupply, perhaps with USB connector, it is easier to use a cheap USB2GPIP adapter.
      The days are gone when you had to pay 500-900Euro for an adapter.

      https://github.com/xyphro/UsbGpib

      I am using a few of them and they are working well with Linux.

  3. “it’s an uncomplicated bus design that can be implemented without much of a blip on the BOM costs” is a funny way to say very complicated protocol that uses much of the bandwidth in handshaking and with cables and connectors that were prohibitively expensive unless you could afford HP instrumentation and equipment from other very high end equipment like lock-in amplifiers. Even then the cabling was a good portion of a budget.

    The very strange choice for the Commodore floppy drives produced the world’s slowest disk drives and 20 minutes to compile “Hello World”. I only worked on one project to get something working on one of those and I’m pretty sure it caused brain damage.

    1. To be fair, Commodore decided to not use the full IEEE 488 design, but a single-bit version probably for cost savings. Together with a bunch of other issues and also butchering the design of the C128 which almost had a fast bus, Commodore really isn’t the company you should look for good IEEE 488 implementations.

      1. I had an internship in 1979 with a company making 1-18GHz receivers and signal generators. They bought a bunch of Commodore PETS to control all the rf test equipment. Saved tons of money over the HP calculator style gpib controllers. The PETS had full gpib support and worked with the Tek and HP instruments fine, as far as I can remember.

      2. “To be fair, Commodore decided to not use the full IEEE 488 design, but a single-bit version probably for cost savings.”

        The Commodore PET used standard 8-bit IEEE 488, but the connectors were expensive.

        With the Commodore 64 they used a serial version of IEEE 488, which allowed them to use much cheaper DIN connectors.

  4. One application of 488 that is commonly overlooked is that it is the protocol for most PTZ security camera control signals. Even cheap consumer security DVRs use 488. They usually dont use the GPIB connector though, just the pair of co trol wires.

    1. I think you are conflating two very different protocols.

      Im guessing the DVR hardware you referred to uses RS485, a multidrop serial protocl. That is not the same as HPIB/GPIB/IEEE488. The latter is a parallel protocol that isnt going to function on two wires.

    1. Because they bought a brand new US$15K+ 8.5 digit multimeter that has been the gold standard for over 30 years and need to integrate it into a system, or any manner of test equipment that still works great and predates USB and ethernet.

      Why spend 10’s or 100’s of thousands of dollars on the latest model test equipment just for USB when you can spend just hundreds and add in a GPIB-USB adapter for not much more?

      Or why would you replace an entire existing test system just because it uses ‘old’ GPIB?

  5. And yet, as rumour has it (although I will be all-too-happy to be corrected), linux is dropping support for Firewire from the kernel.

    Interesting choice.

  6. Strange, the Keysight IO libraries for GPIB have been available for Linux for quite a while, or am I missing something?

Leave a Reply to Antron ArgaivCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.