Clean Logix is a family owned and operated company based in Grand Rapids, Michigan. It was created to serve the growing need of high end automation equipment in the food and beverage sanitation market.
Clean Logix manufactures smart sanitation systems for the food processing industry.
Their Allocation Logix system dispenses hazardous cleaning chemicals in precise amounts, while tracking and controlling how much is used, when, where and by whom. While in the field, the machine can be remotely programmed with new chemical formulations from a web application. That application also collects and displays information about machine usage and remaining chemical stock.
The Allocation Logix software had reached a level of complexity such that Clean Logix was having difficulty adding new features while maintaining the existing code. The company was in talks with a major new client and they decided they needed to shed their technical debt and overhaul their system.
We incorporated new hardware controllers, reduced overall code complexity, and added many new features to the system, allowing it to handle a whole host of practical new hardware, expanding Clean Logix’s potential client base.
The Allocation Logix system used several technologies that were new to Mutually Human: Qt for the user interface, Datamapper as an ORM, the CAN bus communication interface to the custom hardware, and MODBUS for interfacing with industrial control software.
We’re always excited by projects that allow us to apply our process and experience to new technologies — whether they’re new to the world, or just new to us.
Accuracy in Variable Conditions
Every installation of the Allocation Logix system will dispense slightly differently due to all the variables involved — different pumps, different lengths of delivery tubing, and even day to day changes in temperature and air pressure can affect the flow rate.
In spite of this, the machine must dispense accurately. Inaccurate dispenses could damage the equipment being cleaned (valued in the hundreds of thousands of dollars), or even the people doing the cleaning. This meant ensuring the software could learn on the fly from each new dispense, and reacting to changes in chemical viscosity, hose configuration, and human error.
Breadth of Project Scope
The project involved understanding embedded code, system-level and user-level software running on a single unix machine, cloud-based web back-end software, and front-end browser-based applications. This is an extremely broad stretch of technologies; our diverse and multi-disciplinary team at Mutually Human is well suited to projects with complex and wide-ranging challenges.
Since we were touching every aspect of the system’s code, we started by cataloguing the machine’s capabilities, and carefully duplicating and improving upon each of them using the new hardware.
We greatly increased the modularity of the code by breaking it into small, manageable parts. This makes it easier for developers to understand the intention and function of each part, and also increased our ability to ensure code quality through automated testing.
Using machine learning techniques, we built the unit’s dispensing algorithm to adapt to all kinds of changes without attempting to maintain a fixed list of influencing factors. This is especially important since the system had a significant hardware component, and would be installed in many different locations with varying environmental factors. Listing and understanding all the factors that could affect the system at every location would be impossible. Our abstract mathematical model was able to encompass those factors without explicitly enumerating them.
The machine’s dispensing accuracy improved 20×. At the end of our work, it was capable of dispensing chemicals in volumes of many liters, to an accuracy of a few milliliters. This allowed Clean Logix to sell the system to entirely new markets that were not possible before.
We added a number of new features while significantly reducing the total amount of code. The codebase, though not completely restored, was more extensible and maintainable at the end of our work. This reduction in technical debt should pay back dividends as the system grows into the future.