Hi folks,
I wanted to share a project I've been working on, which is designed to solve the problem of how difficult it is to get USB GPIB adapters working under Linux (and how it's effectively impossible on macOS).
I've ported the GPL'd kernel drivers from linux-gpib to usermode Rust and exposed them via network protocols (HiSLIP and VXI-11). This basically eliminates the "build a new kernel" / "keep your out-of-tree kernel drivers updated" step from what it takes to get this all working, and hopefully makes it easy for folks, myself included, to build new automations and other exciting stuff with the benches full of gear we've got lying around.
Going from a fresh Raspberry Pi OS to having a working VXI-11 server you can hit from pyvisa-py is a single, copy-pasteable step, and takes about 30 seconds. Same for macOS. It also includes a nice little CLI for sending/receiving SCPI commands locally.
You can check it out, including simple instructions for installing the software and connecting from pyvisa-py, here:
https://github.com/berg/ugpibdIt supports the HP/Agilent/Keysight 82357A and 82357B, NI's GPIB-USB-HS and GPIB-USB-HS+. Clones should work fine; I assume at least half of my zoo of adapters are clones.
I have tested it against lots of different gear from HP/A/K, SRS, Advantest, and Wavecrest, including lots of weird stuff like multiple devices on the same bus, external triggers, SRQ, events, etc. It also works fine with NI, R&S, and Keysight VISA libraries over VXI-11.
I welcome bug reports or feature requests as issues on the github repo. Happy to answer any questions here, too.
(And, yes, the software's been built with AI tools, as is most software these days. It'd be really difficult to port the drivers, in particular, without doing so! But I've tried to pay a lot of attention to making it robust, by building a pretty extensive test suite and harness, setting up build infrastructure and packaging so it's easy to install, testing it with real hardware against actual gear, etc.)