Case Studies

NI Data Acquisition Library and Calibration Utility in Python

Posted in Consumer Goods, PC Application Development, Test & Measurement Automation


DMC’s client had a series of automated test sequences written in Python and was in the process of adding another test step that required precision power measurements using a National Instruments PXI DAQ module. While the client had internal Python development capability, they needed our expertise and familiarity with NI’s DAQ hardware and the Python interface to that hardware.


The client requested two deliverables from DMC. They wanted a Python package that wraps NI’s DAQmx hardware drivers and provides an easy interface that they could use to integrate these measurements in their automated test sequences. Additionally, they wanted to have an easy-to-use calibration GUI for their operators, to ensure that precise power measurements could be made reliably.

DMC’s approach was to develop a Python package that wrapped NI’s nidaqmx package and provided a more convenient interface to the rest of their automations. The nidaqmx package contained the official DAQmx bindings but familiarity with DAQmx is required to use it easily.

DMC first trained the client to use NI-MAX to configure DAQmx tasks, which are convenient abstractions that can help set up, use, test, and debug data acquisition hardware. DMC worked with the client to formulate an appropriate test methodology, and we then assisted in the configuration of the DAQmx task to provide the required measurements.

Next, we developed a Python package that gets used as the back-end of both the calibration and data acquisition features. This package was written to provide a convenient API for acquiring calibration data and for applying that data to live measurements.

Finally, DMC developed a simple graphical application for operators to conduct regular calibrations. For this, we used QtQuick, a graphical framework provided by the Qt library. Qt provides Python bindings via the PySide6 package, allowing QtQuick to integrate well with Python, and making it easy to produce professional, customizable, highly-dynamic user interfaces. All of the system's software and hardware components can be visualized as follows:

Software Stack

Our approach and the technologies we employed had several benefits to our client. The NI hardware provided high-quality, high-precision measurements of the values of interest. The NI-MAX utility and the DAQmx drivers improved the debugging experience and allowed DMC to use simulated devices to keep costs low by eliminating travel and/or shipping costs.

Furthermore, Python enabled the client to easily integrate these measurements into their existing (Python-based) automations. NI’s nidaqmx package provided a convenient Python interface for DAQmx so the hardware could be integrated quickly and easily. QtQuick as a graphical framework allowed DMC to quickly create a simple, portable GUI application in Python.

Overall, we met the client's goals and provided their deliverables using our expertise with NI’s DAQ hardware, the Python interface to that hardware, and a simple but powerful GUI framework.

Read more about DMC's Python Development Services, and contact us today for your next project!

Customer Benefits

  • Better data acquisition
  • More accurate product characterization
  • Rapid, low-cost development
  • Improved test time and reduced operator intervention
  • Flexible, modular software that can be extended and reused