Projects, Technology

I needed a way to get data from a Keithley 617 Programmable Electrometer to a computer. The instruction manual for it is copyright 1984, so it obviously doesn’t simply use USB or  another modern serial protocol. The only data output is an IEEE-488 port (some call it GPIB).

DISCLAIMER: This tutorial is provided AS-IS. I am not responsible if you destroy your electrometer. I am not an expert with the IEEE-488 protocol and do not guarantee that my implementation is 100% correct. This tutorial assumes that you know what you’re doing and does not go into the details. That being said, this worked fine for me (after I realized that I originally misidentified a pin) and would be surprised if it didn’t work for you.

The front of the 617
The front of the 617
The IEEE-488 port
The IEEE-488 port

Reading the manual revealed that it is possible to put the device in a simplified communication mode called talk only mode. I used mode 41 because the data output is simpler.

talk-only

After that, I stripped open an IEEE-488 cable, identified the wires with a multimeter, and soldered them up to an Arduino. The pinout can be found on Wikipedia. This was long and tedious. Note that about half the wires are ground and I just twisted those together and connected them to an Arduino ground pin. You can use any of the input pins on the Arduino, including the analog pins (although I didn’t use pin 13 because the debug light makes communications wonky sometimes).

A beautiful soldering job
A beautiful soldering job

The Arduino code I wrote is available on Pastebin. Simply update the defines at the top of the program with the Arduino pins you actually used. I also wrote a python script which can be used on the computer for reading data into a file, but you can also just use any serial monitor of your choice at 9600 baud.

The completed setup
The completed setup