It is great to use inexpensive, but still powerful older lab equipment. The TDS754A in my lab is better than any oscilloscope (o-scope) I have used at work and I purchased it for less than $600. One of the drawbacks of older equipment is the connectivity options. This model on the front panel, for example, has the venerable floppy drive to ease the use of screen capture and data transfer. But who has or wants to use a floppy drive today? If you have seen any of my blog entries with o-scope shots, you will definitely notice they were taken with the ubiquitous cell phone camera. And since they all have lots of shadows and poor lighting I was looking for a way to improve.
Fortunately, like other high end lab equipment in the same era, this scope has the sturdy and robust GPIB bus connection. Now that I’m working at home due to Covid-19, I had an excuse to get my poor o-scope shots updated. In this blog, I will show how I recently purchased and used the Prologix GPIB-ETHERNET (GPIB-LAN) Controller to perform color or black and white screen captures of the TDS754A scope. I could not find a simple script on the internet to capture images for this controller, so I took a Sunday and wrote a python script myself. This same procedure should work for all the color and black and white Tektronix scopes made during the same time period (i.e. TDS 500 series, TDS 600 series, and TDS 700 series). The script is on Github and I will would love to hear about any pull requests you have to add more features and expand the scripts usability. Please enjoy and let me know your comments below.
Setting up the TDS O-Scope and Prologix Controller
After plugging in the Prologix controller into the o-scope, ensure that the GPIB port on the o-scope is powered up. To do this, go to the from utility menu, select the GPIB Port and set the Talk/Listen Address to 1 as follows:
Run the Prologic GPIB Configurator and be sure to setup the controller to read GPIB address 1, the same address as set on the o-scope. Also copy the settings to match the following image
Python Library Requirements
The following libraries are needed to run the script. Ensure you have pip3 installed to add these libraries to your system.
pip3 install pyvisa pip3 install pyvisa-py pip3 install tqdm
Pyvisa is a nice open-source framework for controlling instruments in python. TQDM is a great library for showing the progress bar in a command-line program. Additionally, on my distribution, these modules were installed in my local user name /bin directory and were not automatically on my $PATH name. I had to add this /bin directory to my $PATH variable in order to allow the python script to locate them automatically.
Find the IP Address
Prologic.biz has a linux based command line utility python script, nfcli.py, that can automatically search and find the controller on your network. It is a python 2.7 based script and can be executed as follows:
On my distribution, python 2.7 was not automatically installed, so I installed it simply by running the following command
sudo apt-get install python
You are now ready to start capturing images. To capture a bmp color image, simply run the command as follows:
To capture a tiff image, run the script as follows:
python3 TdsCapture.py TIFF
The images will be saved in the diretory with the following format and with a sequencial number scheme
where X is the sequential images number starting with 1 and Y is either bmp or tiff depending if it is color or black and white.
Do you have similar scripts?
I hope you enjoyed this quick and dirty python script to facilitate great scope shots for your next projects. Let me know if you have any suggested improvements or git pull requests. Do you have a similar script? I would love to hear or know about the tools you use in your lab. Take care. It looks like the surf may be good next week.
- Pyvisa: Open-source framework for controlling instruments in python
- TQDM: Showing the progress bar in a command-line program
- linuxize.com: Instruction for changing your $PATH Variable
- Prologix.biz: The home page of the GPIB-Ethernet Controller