Hardware Drivers: The Key to NI’s Software-Connectedness


NI knows that engineers and scientists require flexible, efficient, high-quality test systems—so we offer interoperable, open, software-connected systems to help you accelerate your time to first test. This is made possible, in part, through our driver software. Let’s discuss interoperability and the benefits of using NI drivers—their flexibility, how they can drive efficiency, and why NI drivers can assist you in taking high-quality measurements.


Communicating with Drivers

Drivers are software programs that act as a communication layer between a computer application and external device. For example, keyboard driver software provides a communication protocol that a PC uses to process and display text entered from a keyboard. In test and measurement, a device such as a thermocouple input module or source measurement unit uses driver software to transfer data to application and development software. Additionally, drivers help configure advanced test properties, such as triggers and buffer sizes. Drivers are crucial to the overall test system, as they connect the hardware to the computer.

Figure 1. Driver software interacts between test and measurement devices and applications.

Creating Flexible and Adaptable Test Systems

NI products operate with various language APIs and OSs so that you can adapt your system to meet your needs. The majority of our drivers work with all of today’s common programming test and measurement languages, including LabVIEW, Python, C/C++, and C#/Visual Basic (VB), as shown below.

Figure 2. Many NI drivers are supported in text-based programing languages, in addition to LabVIEW (◊ indicates discontinued support or third-party APIs).

Whether you prefer text-based or graphical programming, NI offers several options for communicating with test and measurement hardware. Using prebuilt NI example code, you can achieve similar functionality with the same driver. The demonstration programs and videos below illustrate how to begin programming in a new language with NI pre-built example code, conduct finite acquisitions with thermocouples, and conduct continuous acquisitions with accelerometers, in Python and C#.


Video 1. How to acquire data from thermocouples and accelerometers using Python and DAQmx (click here to download the code - Vibration Continuous Acquisition with Triggering in Python with NI-DAQmx - NI Community).


Video 2. How to acquire data from thermocouples and accelerometers using C# and DAQmx (click here to download the code - Vibration Continuous Acquisition with Triggering in C# .NET with NI-DAQmx - NI Community).

In addition to choosing the language in which you program, with NI drivers, you can utilize the OS that best fits your needs. All NI drivers support Windows, and a variety of NI test and measurement hardware works with Linux desktop. You can install NI driver software packages, such as NI-DAQmx, NI-VISA, NI-488.2, and NI-Sync, in Linux desktop environments, and there’s more Linux desktop support to come. In embedded systems applications, you can utilize the NI Linux Real-Time OS, a new Linux distribution with industrial-grade, real-time capabilities. It offers deterministic, real-time performance with the usability of a desktop OS.

Leveraging Efficiency in Your Workflow

To increase development efficiency, each NI driver offers a broad portfolio of example programs, supports a wide range of measurement devices, utilizes a common programming flow, and provides multiple layers of device configuration.

Utilize Example Programs

Often, as a test engineer, you do not have time to learn a new set of tools for each test system you build. Moreover, you need to use your current knowledge without slowing down productivity with additional training. NI drivers come with a large breadth of example programs created and vetted by NI’s research and development team so that you can begin with prebuilt code and modify it to fit your needs. In each driver set, you will find example code that aligns with various testing needs, whether you’re utilizing NI-SCOPE to create voltage histograms or using NI-DCPower to conduct a hardware-timed two-channel sweep. All example programs come with detailed documentation to explain how to implement them, and, when applicable, include prebuilt user interfaces. By beginning the programming process with relevant example programs, you decrease time spent learning new driver operation.

Figure 3. NI-SCOPE Voltage Histogram User Interfaces with LabVIEW (Left) and C# (Right)

Integrate Multiple Devices

Integrating new devices into a test architecture can be a major effort, often taking more time than the programming, measurement, or test itself. Integrating different hardware devices can require learning how to call each device’s driver from development environments. NI’s driver portfolio removes this risk by supporting multiple measurement devices with a single driver. In some systems, such as those using NI DAQ hardware, you can program the entire system using one driver. For instance, use NI-DAQmx to integrate more than 200 NI data acquisition devices on a variety of major buses and form factors. In other systems, NI drivers cater to specific measurement types, such as the NI-FGEN driver that supports NI waveform generator products. This level of device support means that you can reuse code—if you transition to using hardware with higher sample rates or resolutions, for example, you only need to modify a portion of the code to adapt to new capabilities, as the new hardware is supported by the same driver. Seamlessly integrating multiple measurement devices within a single driver achieves efficiency with multiple instruments and reduces the amount of time spent learning new driver commands.

Employ a Consistent Programming Flow

Additionally, with the NI driver portfolio, you easily can transition between different sensor types and measurement devices because the drivers use a consistent programming approach. Application flow typically starts with opening a connection to the hardware and then configuring hardware settings, reading and writing measured data to and from the hardware, and finally, closing the connection to the hardware. Because most drivers follow this framework, learning how to program an instrument with a new driver is relatively easy, saving development time.

Figure 4. Programming NI hardware follows a common framework.

Figure 5. NI-SCOPE Programming Flow

Figure 6. NI-DAQmx Programming Flow

Access High- and Low-Level Device Configuration

NI understands that test engineers often do not prefer or have time to configure every low-level feature within an instrument, so NI drivers offer high-level, easy-to-understand operations. You can utilize the majority of hardware functionality quickly, without having to be exposed to low-level hardware configuration. However, when you need to fine-tune tests, you still can access the low levels in NI drivers. For example, when programming a new automated test design, you can choose to exclusively configure high-level, standard settings, such as sample rate and input voltage limits, using the add channel function. Or you can further configure the design by programming the input and output buffers using the respective functions. With NI drivers, you choose what needs to be configured outside of the typical constraints. Also, you are not required to learn the specifics of how data is communicated back and forth between the hardware and computational devices, and even though you might use several different protocols in the same application, you only need to learn one approach.

Resting Confidently in Your Test System’s Quality

Reliable software is a necessity for modern test architectures, as many of them require consistent support for a long period of time. For example, aerospace and defense applications often need support for 10 years or more. That is why CACI, a services provider to the Department of Defense (DoD) community, chose to utilize NI hardware and software to develop a tester that would last as long as the weapon systems it was built to support. 

To consistently maintain test systems, test engineers need software that continually receives superior developer support. NI has deeply invested in driver development—dating back to our origins with GPIB measurement devices. Our research and development team strives to build quality into our products from the very beginning in the design phase and throughout the entire product development life cycle. NI believes that this “quality first” mindset helps reduce overall development and manufacturing costs and provides reliability in its end products—in 2020, NI invested $280 million in research and development.

NI drivers undergo a continuous release process, with rigorous testing prior to each release. Because of this, our older hardware retains its relevancy. At times, older hardware may even gain new functionality due to driver updates. For example, after initial release, NI PXI Source Measure Units gained the ability to merge channels in parallel or series with the release of the “merge channels” function in NI-DCPower. 

Of the more than 12,000 third-party hardware drivers in our Instrument Driver Network (IDNet), approximately 7,500 are certified by NI. This means that the third-party drivers meet NI quality and usability standards and are supported by NI applications engineers. Because of our rich test and measurement history and deep support for driver development, you can be confident in NI software-connected hardware and the driver software that supports it.

Figure 7. IDNet Search Results for Agilent Drivers

Taking the Next Step

Let’s work together to build your next test system: