The Raspberry Pi GPIB Shield


Connecting {GPIB, IEEE-488, HP-IP, IEC-625}-capable lab equipment to your PC nowadays is mostly
a choice between several USB-to-GPIB adapters. If your platform of choice is linux, especially the Raspberry Pi,
then you may run into trouble getting some of the proprietary adapters up and running.

The Raspberry Pi GPIB Shield is an inexpensive, easily built adapter to connect and control
your GPIB-capable device using the open source linux-gpib software.

RasPi GPIB Shield Overview

Circuit description

As the gpib-protocol uses a simple parallel bus with open collector outputs for control signals,
the gpio-port of any Raspberry Pi is able to generate a gpib transmission. The simplest form of the adapter deploys
series resistors (RP1..4) and pull-ups, but is limited to a single device. Using driver ics (SN75160/161) a classical
measurement device bus can be formed.

Link to schematic

GPIO driver for linux-gpib

The driver consists of a linux kernel module which has to be patched into linux-gpib as there is currently
no upstream support. The module initializes the raspberrys gpios and provides the functions needed by linux-gpib.
The driver is still in development as the legacy GPIO interface is marked deprecated, a completely rewritten driver
utilizing the gpiod_* interface will be released in fall 2019.


After calling 'gpib_config' the config file '/etc/gpib.conf' is parsed, the appropriate drivers (as identified by
'board_type') loaded and devices created (e.g. '/dev/gpib0'). The user then has full access over pyvisa, the python gpib bindings or
simple terminal communication via 'ibterm'.

For a more thorough introduction you can take a look into my bachelors thesis in german

Link to thesis.

or on the drivers github page.

RasPi GPIB Board

The RasPi GPIB Board has two variants:

RasPi GPIB Shield V0.4 Photo.jpg

For PCBs, kits or preassembled adapters, please contact us at elektronomikon@gmail.com

Currently the following options are on offer:

Note: A Raspberry Pi 2..4 or zero is needed as the layout of the gpio port on the Raspberry Pi 1 differs.