How to Choose the Right Driver Software for Your Measurement System

Overview

Driver software is usually overlooked when selecting a data acquisition (DAQ) device. It handles the communication layer between hardware devices and application software. While hardware specifications are very important, poor driver software can greatly impact the development time and performance of your entire system. This white paper examines the questions you need to keep in mind when evaluating a DAQ device’s driver software.

5 Questions to Ask Yourself When Choosing the Right Driver Software

  1. Is the driver compatible with my operating system?
  2. How well does the driver integrate with my application software?
  3. What documentation comes with the driver?
  4. Does the driver include any setup or diagnostic utilities?
  5. Is the driver scalable to other devices?

1. Is the driver compatible with my operating system?

You can choose from many operating systems, such as Windows, Mac OS, and Linux, that offer different advantages for different tasks and operations. Each of these operating systems may also have different versions, distributions, or designs for specific processors. For example, releases of Windows range from Windows XP to Windows Vista to Windows 7, which feature different versions for 32-bit and 64-bit processors. Since Linux is open source, you can choose from hundreds of varieties. Each type, release, and version of an operating system functions differently and may or may not be cross-compatible.

As a result, DAQ drivers generally do not support every single variety of an operating system. Most DAQ drivers work with Windows operating system releases since they are the most common. However, if you use an alternative operating system, you should always remember to confirm if the driver supports it before choosing a DAQ device.

2. How well does the driver integrate with my application software?

There are varying degrees of driver integration with application software. At the core of every driver is a library (often a DLL). This library manages the communication to the DAQ hardware. Normally, the library is provided with documentation and distributed with wrappers for various programming languages. These wrappers are thin layers of code that translate the library’s functions into a compatible interface for a particular programming language. In some cases, a wrapper may not be provided for your preferred language, or even at all, so you must manually write your own wrapper to interface with your application software.

The best integration is when the provided driver natively integrates with your application software. In this case, the driver is rewritten for the native language. This provides better performance and a more seamless experience since functions and documentation are directly built into the application software.

3. What documentation comes with the driver?

Drivers feature many forms of documentation including user manuals, functions references, release notes, known issues, and example code. Having to navigate through poor documentation that is muddled and incomplete can be a huge waste of time. When a driver’s programming interface is poorly documented, you can spend an unnecessary and frustrating amount of time running trial and error tests on its functionality. Although trial and error can be a great way to learn the functions and syntax, you need to be able to refer back to the manual when necessary. Therefore, having well-organized, thorough documentation is extremely valuable.

The best driver software documentation is complete, easy to navigate, and simple to follow. Ideally, it offers example code specific to your preferred programming languages and provides detailed and useful error messages. By evaluating the driver software’s documentation ahead of time, you can save yourself potential headaches in the future.

4. Does the driver include any setup or diagnostic utilities?

In addition to documentation, setup and diagnostic utilities can help you get your application up and running quickly and diagnose problems. With test panels, you can test hardware functionality at the most basic level before designing the end application. You can generate and measure raw signals and troubleshoot the DAQ hardware independently of other software and programming factors that could insert an extra level of uncertainty. Calibration utilities walk you through the steps to self-calibrate your device to ensure it measures accurately. Sensor scaling wizards help you easily map raw voltage values to engineering units without having to program the math yourself. Some drivers even include complete configuration wizards that encapsulate all of these utilities, walk you through setting up your measurement task, and help you take your first measurement in your application software. Overall, setup and diagnostic utilities are very useful when getting started with your DAQ device or diagnosing problems. Not all DAQ drivers include these utilities, so you should carefully consider this when selecting a DAQ device.

5. Is the driver scalable to other devices?

You may have difficulty determining which changes and expansions your current DAQ system may need in the future. You may need to upgrade the device to higher-performance specifications or incorporate additional measurements. Some DAQ drivers are designed for a single device, and others are designed to work with a wide range of devices.

Drivers that are designed for a single device are typically more lightweight than drivers that work with a wide range of devices. While these drivers may get the job done initially, adding a new device or replacing an existing one may require a significant amount of programming work to integrate the corresponding new driver. The driver’s programming interface may be structured differently and may require significant changes to your code.

On the other hand, drivers that support a wide range of devices are more easily scaled to additional functionality and new devices. The programming interface is consistent among all devices, so adding a new device is essentially a drop-in replacement and requires little to no changes to your code. These drivers may also support other features that make synchronizing and combining measurements from multiple devices easier.

Other Resources