Case Studies

Software Toolkit for the Unico EV Battery Cycler

Posted in Aerospace and Defense, Automotive, Battery Pack Test Systems, Energy and Utilities, Green Technology, LabVIEW, Test & Measurement Automation


DMC developed a LabVIEW driver for Unico’s high-power battery cyclers, enabling a faster out-of-the-box startup experience for their end users, and providing seamless integration into larger automated test systems leveraging the NI toolchain.

Fig 1: Unico Battery Cycler for EV Battery Packs

Fig 1: Unico Battery Cycler for EV Battery Packs

Fig 2: Lifecycle API Calls with Unico Drivers

Fig 2: Lifecycle API Calls with Unico Drivers

Fig 3:  BPT Test System

Fig 3: BPT Test System


About the Opportunity

Unico builds leading-edge variable speed drives and controls systems for companies on the cutting edge of new technology. They are among the leading automation companies in this space with proven experience spanning over 5 decades. More recently, Unico has taken this expertise into the automotive industry, where they continue to expand their drive systems for testing vehicle powertrain designs today and the EV propulsion systems of tomorrow.

One of their central offerings in the automative space is their EV battery cyclers (Figure 1), which clients of theirs use to perform high voltage electric vehicle testing procedures on battery packs and modules. These cyclers provide clients the ability to perform battery packs test cases (i.e. charging, discharging, periods of high current draw and recharge, etc.), whilst also exposing a myriad of serial interfaces for control of the system.

Despite these features, some of Unico's clients simply lack the technical expertise to design and build control systems that could easily integrate with their cycler and allow them to readily use it out-of-the-box. In such cases, clients would rely on unplanned Unico support hours or external system integrators to use their cycler, inevitably driving test system costs upwards.

To combat these startup issues, Unico reached out to DMC to create a suite of user-friendly device drivers in LabVIEW that would ship with their battery cyclers.

End User Benefits

The creation of this driver set would empower purchasers of the Unico cycler to easily create control systems within the NI software framework to control/monitor their devices with minimal development or setup. This would not only ensure that Unico's existing customers would save time and money with these drivers at their disposal, but could also potentially drive new business for Unico, as the driver set provides the flexibility of incorporation into a wide array of technical applications, while simultaneously lowering the technical experience needed for a customer to use their cycler right out of the box.

Why DMC?

Unico chose DMC for this project based on several factors. DMC is one of only a few NI partners designated as a National Instruments “Center of Excellence,” demonstrating extensive experience in NI hardware and software solutions, including complex vision, end-of-line, and automated testing applications. Importantly, DMC has been in the battery testing industry for over 2 decades and has an in-depth understanding of end user requirements.

As NI’s Primary Battery Test System (BTS) integration Partner, DMC has been collaborating with the NI team to expand DMC and NI’s battery test software platforms to collaboratively ensure NI-based solutions reach as many customers as possible in the fast-moving and fast-growing EV market. For Unico, this presents an exciting opportunity to become seamlessly integrated into the NI software suite, allowing automotive manufacturers or battery test laboratories using NI software to feel as confident as possible when opting to purchase Unico cyclers.

The Solution

DMC created a functional set of object-oriented API methods in LabVIEW, encapsulating the various commands a user might want to make when interface with their cycler. Alongside these, DMC also created lifecycle APIs, controlling the construction, initialization, termination, and disposal of the Unico cycler class object. A brief description of these APIs is provided below:

Technical Details

Given this is an object-oriented driver set, it is important to note that the only method in which a child class implementation needs to be used is the Construct method. This is due to the fact that it creates the appropriate class object once constructed, which gets passed throughout the calling program, allowing the APIs called later down the line to dynamically dispatch down to their appropriate child implementations. The specific child implementations of the Unico cycler class object represent the various serial protocols through which communication between a PC and the Unico cycler may be occurring. At the moment, the only implementation is through Modbus TCP, but the driver set has been created in a way that would make it easy to create a new child class implementation to account for a different communication protocol.

Another important thing to note is the safety features of this driver set. While, inherently, this software will not be responsible for the majority of the safety logic implemented within the Unico cycler firmware and hardware, there are features in place to ensure that errant usage of the driver set does not compromise the safety of those using it. For example, our Initialize method ensures that we read and store the rated voltage/current limits of the cycler in use, allowing our drivers to generate errors if users attempt to configure software voltage/current operational limits outside of the hardware rated limits.

One input into our Construct method is Min Threshold V, which defines the minimum allowable voltage difference between the measured voltage of the DUT and the internal cycler voltage before internal contactor of the cycler can be closed. Of course, a natural firmware limit to this value is enforced through the Unico firmware, but a user can configure this minimum threshold voltage to be even lower, thus further preventing arcs and large inrushes of current onto the system, minimizing potential damage to and early degradation of the battery cycler and DUT.

Our Initialize method also kickstarts an asynchronous loop upon establishing a successful connection with the Unico cycler, which is responsible for routinely polling, writing commands to, and maintaining a bidirectional watchdog/heartbeat with the battery cycler. The loop rate of this asynchronous process (Asynchronous Loop Time) is completely configurable, as it is also an input to the Construct method. Once the cycler driver class is initialized, a user can also customize the Watchdog Loop Time, which is the amount of time needed without the battery cycler receiving a modulated watchdog/heartbeat bit to display a timeout fault, using the Command Watchdog Loop Time API. We ensure this value must be commanded to be at least 4x the Asynchronous Loop Time, as the rate at which our driver is sending heartbeat messages to the cycler is automatically set to 2x this value, ensuring that we do not falsely trigger timeout errors.

For more in-depth information on the functionality of all APIs and their associated parameters, a user manual with all necessary information has been written and can be provided upon request from Unico or DMC.

End Result

With the creation of this driver set, Unico now has a tool that enables the full suite of their battery cycler’s capabilities to be seamlessly integrated into the workflow of battery labs and manufacturing lines across the country, especially those already utilizing DMC solutions.

One significant and relevant example of a DMC solution where this would apply would be our Battery Production Tester (Figure 3). DMC uses the same foundational Battery Test Platform modules to configure both validation (lab) and production (End-of-Line) test stations for our clients, meaning that Unico battery cyclers are now a logical option for customer consideration during the hardware scoping phase of DMC projects.

Learn more about DMC's Battery Pack and BMS Test Systems

Customer Benefits

  • Faster out-of-the-box startup experience for Unico's customers.
  • Seamless integration into automated test systems leveraging the NI toolchain.
  • User-friendly device drivers minimize their customer's test development and setup time.
  • Overall reduction of Unico engineering support hours required for new customer startup.
  • Lower overall cost of the battery test system.


  • NI LabVIEW
  • Object Oriented Software Development
  • Modbus
  • EthernetIP