I was pressed to find a solution for a test automation need that needed to be simple and inexpensive. This led me to research for an inexpensive GPIB controller I could interface via USB and would allow me to control test equipment with. I planned to control the test equipment with my own software, meaning the USB-to-GPIB controller did not have to interface with existing NI or Agilent GUIs. Preferably, I needed something that had its own easy-to-use API.
For anyone who knows or has used GPIB, this is not something widely popular unless you are into electronic test equipment. The market is not really mainstream and is dominated by a few major players that usually charge accordingly. I found popular items from National Instruments, Agilent, Prologix, etc. Most which offer great tools on their own, but the charge a good dime for it. The cheapest one was $150, which for me was still a bit to much to experiment with. I found out I could also roll my own with an Arduino or AVR. A bit more searching led me to a group by the name of LQ Electronics. They had a couple of options, probably AVR-based, with some driver tool included (I believe this is similar to the Prologix approach). They happened to be available on Amazon, for about $45. This gets you the “UGPlus USB to GPIB Controller” that can drive at least 5 devices; which I think is an excellent value.
The controller arrived in within a few days of ordering. It includes a very simple (crude) GUI which is ok to quickly check out the operation of the device and test it out (I would not recommend that GUI for much more than that). I was able to build a custom program using the std library (dll) included and the instructions and examples provided. Within a few hours, I was communicating with an old Fluke DMM.
For the old Fluke DMM (which is partially compliant with IEEE488) I found the FIND instruction didn’t work all that great with really old equipment. The WRITE function worked very well. And the READ function worked about half the time. But if I followed the READ by a WRITE it seemed to always work. After using the controller with newer equipment (fully supportive of IEEE488.2) it turns out the FIND / READ command limitations were more of a function of the device I was controlling rather than a function of the controller itself.
I have tried this controller with an old Fluke DMM, an Agilent 443x Signal Generators, an Aeroflex NAV2000 signal generator, Agilent power supplies, and Sorensen power supplies. It has worked great with the newer equipment (Agilent, NAV2000, Sorensen); READ, WRITE, and QUERY functions have worked without issues. It works ok with the Fluke DMM, which I had to work around with timing on the READ instructions. I now believe the difference with the Fluke DMM is that while the newer equipment is fully compliant to the IEEE488.2 interface, the Fluke DMM is only partially compliant with the IEEE488 interface. After the initial configuration and troubleshooting I had it driving three pieces of equipment without any issues, and later 5 pieces of equipment (again with no issues). I highly recommend this controller for its value and the ease of programming.
A word of caution follows. To use the device with your own custom program you still need to install the provided program as it installs drivers and DLLs that you will need. I contacted customer service to ask about this and they promptly responded that doing this was required in any PC you plan to use the controller. Not a bad thing, just something to keep in mind.