Read Data From an Old Agilent 54621A Oscilloscope via RS232 Port

Forgo the floppy! How to interface the scope with a PC using Python.

CabeAtwell
over 4 years ago Sensors

The old Agilent 54621A oscilloscope was a 60MHz, two-channel platform with a 200 MSa/s and 4Mb deep memory mapped to 32 levels of intensity, with 25 million vectors/second. It also featured a floppy drive that could be used to copy o-scope data over to a PC for analysis. Computer systems engineer Hammond (kiwih) recently acquired one of those Agilent 54621A models and noticed it had an RS232 port on the back of it, and he then wondered what sort of data could be sent and received via said port.

Analyze waveform data on a PC by interfacing with the RS232 port and executing a custom Python script.

This began a quest Hammond undertook to find out how to interface the o-scope with a Windows 10 PC or one that could run on Wine (Ubuntu) using that RS232 port. He began with the user guide for the platform that mentions using the now-defunct BenchLinkXL 54600 software, and quickly found it’s not compatible with the operating systems, as mentioned earlier. After a little more digging online, he discovered the Agilent InfiniiVision 5000 Series Oscilloscopes Programmer’s Guide, which also proved fruitless. Still, it provided a clue that led him to MIT, who just so happened to have a copy of the programming guide he needed.

Hammond used the Matplotlib application to import waveform data via the RS232 port to his PC.

The command set listed in the manual is surprisingly similar to SCPI (Standard Commands for Programmable Instruments), which is layered on top of the GPIB interface protocol. Hammond used that as a base for creating a custom script using Python3, which allowed him to read waveforms and display them on the Matplotlib app.

Hammond has uploaded a detailed step-by-step walkthrough on how he made the script on his blog and uploaded the code itself to his GitHub page for anyone who would like to replicate his endeavor.

Latest Articles