Windows Setup

1. Download the NI-VISA Driver

Registration is needed before download: NI registration page. Then download the NI Package Manager.

2. Install the NI-VISA Driver

Fast Startup

The installer will ask you to disable Windows Fast Startup.

Screenshot of TofuPilot application with custom url

On a development laptop, Fast Startup will likely not affect your setup. Fast Startup may prevent some interfaces from fully resetting, causing VISA to detect stale devices. On production machines, disabling Fast Startup is a good idea.

What to Install

After installing the NI Package Manager, it will ask what package you want.

For debugging, select:

  • NI-VISA Configuration Support → For viewing/configuring instruments.
  • NI-VISA Interactive Control → For testing VISA communication manually.

For production environments, uncheck everything and just click next.

The VISA runtime is installed regardless of your selection. You will need to reboot after setup.

Screenshot of Win NI VISA application with custom url

3. Installing PyVISA

PyVISA supports Python 3.6+. On Windows, Python is available via the Microsoft Store or can be installed from the official Python website.

Set Up a Virtual Environment (Optional, Recommended)

Get the virtualenv package from the command line:

pip install virtualenv

Then navigate to your project folder and create the virtual environment:

python -m venv .venv

You will have to change the Windows script execution policy to be able to activate the virtual environment.

The safest way to do it would be:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

However, it is not the most practical, you must run this command for each new terminal session.

Then enter the virtual environment:

.venvScriptsactivate

Installing PyVISA

Now you can install PyVISA:

pip install pyvisa

If you are using a networked instrument, you will need:

pip install psutil zeroconf

Now, open a Python interpreter:

python

Then try:

import pyvisa

rm = pyvisa.ResourceManager()
print(rm.list_resources())

You should get output like this:

('ASRL3::INSTR', 'ASRL4::INSTR', 'USB0::VID::PID::SN::INSTR')

In this case, the instrument is using USB.

Troubleshooting

Runtime DLL

If your device does not appear, try specifying your VISA runtime DLL:

rm = pyvisa.ResourceManager("C:/Windows/System32/visa32.dll")

VISA Version Incompatibility and Conflicts

Manufacturer-specific VISA versions can cause conflicts. The recommendation is to uninstall the manufacturer's version and install the NI version alone.

Termination Characters

Some instruments require termination characters. Please refer to the dedicated section on the Interfaces page.

Was this page helpful?