Corso Systems

View Original

Thermastor Firmware Management With Ignition

Thermastor is a company based in Madison, WI. They manufacture dehumidification equipment for residential and industrial use. Thermastor has a number of product lines under their brand with customizable SKUs across many different models. Each unit is hand-assembled and tested before it is shipped out the door. Part of the assembly process is to load (flash) custom firmware software on the circuit boards in each machine to control how the machine operates.

To manage the process of flashing firmware to the dozens of SKUs they produce, Thermastor had been relying on a dated VB.NET application. It was utilizing detailed digital work order instructions to show operators the exact steps for flashing firmware, and then printing the appropriate labels for each circuit board.

The goal of this project was to migrate the application to Ignition for a much more user-friendly way of managing all of the firmware as Thermastor grows their product offerings.

Firmware Management Solution

Implementation Summary

We started this project with a Visual Studio project file for the existing VB.NET application. It was relatively easy to understand how it operated. Essentially, it hooked into an API for the MPLAB X software and loaded specific files through that interface before flashing the boards. Some boards required serial connections, and some required Bluetooth to verify functionality once the firmware was loaded.

The program was built to handle the last decade of SKUs. So, any time a new SKU needed to be added to the system or a firmware revision was released, the application itself had to be rebuilt to handle the new product codes and firmware. Since Thermastor’s produce roadmap will include a lot of growth over the coming years, they needed a new solution. The new additions required loading in all of the digital work order instruction text, images, and workflow for each part, as well as custom code for generating QR codes printed on the labels for each board.

We approached the project by replicating the functionality from the VB.NET application in Ignition. Ignition can easily store the information for each SKU, including digital work order instruction text and images, the overall workflow for each SKU, the current firmware version and files, and any other pertinent information. We also generated QR codes in Ignition for the labels which are printed for each board as the firmware was flashed.

Utilizing Ignition’s serial capabilities, we were able to integrate into the existing MPLAB X workflow using the same firmware files. We simply loaded the API calls into Ignition and called them from an Ignition client. We also integrated with the Bluetooth test device to validate that the boards were flashed correctly when they had Bluetooth enabled.

Finally, we integrated the Zebra printers to print labels exactly like the ones from the old application.

For new functionality, we also set up database-backed serialized tracking for each board along with the name of the operator, a timestamp, and all relevant information about the firmware version and file loaded on to each board for track and traceability. We also set up a configuration screen to manage adding new boards, updating digital work order instructions, adjusting firmware revisions for existing boards, and pulling production reports for user-selected time periods.

Results

The end result of this project was a greatly improved program using Ignition. Yet again, we proved Ignition can be much more than just a SCADA system. It can integrate with a wide variety of software packages for very complex tasks—such as flashing firmware to microcontrollers.

Overall, this project saved Thermastor tens of thousands of dollars in ongoing maintenance work when adding new boards and managing firmware updates for their existing product lines.