SweepMe!'s port manager relies on the pyvisa module .
- Install the latest version of ni-visa runtime 
- Install the driver of your GPIB interface card or USB adapter which you get from the manufacturer
Besides using GPIB via a visa runtime and an appropriate controller, there are alternative controllers that can be connected via COM port or ethernet and that translate the commands on the controller.
Beginning with SweepMe! 1.5.5, we support the GPIB-USB controllers from Prologix . Commands are sent via COM port to the controller. To configure it, go to menu 'File' -> 'Options' -> 'Ports' and select "Add port". Type in the COM port at which the Prologix controller appears. Check the device manager to find the correct port, e.g "COM7". This port will be added permanently for all users. Thus, make sure that the COM port does not change by giving it a fixed port number. You can remove a port using "Remove port". Once you added a COM port, you can find new GPIB resources in the port manager or when you press 'Find ports' button of a module that loads a device class that support GPIB. The new resources looks like "GPIB::20::Prologix@COM7" if you added COM7 as a Prologix controller port. You can add multiple COM ports if you have multiple Prologix adapters.
Prologix GPIB-ETHERNET adapters are not yet supported but it can be done on request.
There is no need to modify device classes as long as they use the port manager and "GPIB" is added as port type. The port manager will automatically redirect all commands over the Prologix GPIB controller.
During our tests, we saw that the Prologix GPIB adapters work smoothly. It might be that the communication speed is a bit lower, especially if multiple instruments are connected as additional commands need to be sent to change the GPIB address. Furthermore, if a large amount of data is transferred, it might be that the buffer of the FTDI USB driver is filled which has a size of about 4KB. The maximum read timeout seems to be 3s and if an instruments responds after a longer time, e.g. because it is averaging, one might need to use other program commands that immediately respond, e.g. "is_average_complete" before the final result is called.