Our client is a battery management solution provider that helps customers ensure longer and healthier runtime of devices powered by lithium-ion batteries. Their solution allows diagnosing, forecasting, and preventing battery malfunctions with the help of proprietary early warning diagnostic algorithms and data analytics. Our client’s cutting-edge technology is used by enterprises that manufacture consumer electronics, aviation, e-mobility markets, and more.
The client wanted to expand their market reach by offering the services provided by their battery management solution to embedded platforms.
N-iX experts have conducted a comprehensive analysis of the existing solution, identified challenges, and outlined ways of solving them.
N-iX has helped the client improve the performance and accuracy of their battery management solution and made it compatible with embedded platforms that are equipped with microcontrollers. This, in turn, has helped the company expand their market reach and attract new customers.
Success story in detail
Our client has built an algorithm that monitors each individual cell within a lithium-ion battery. The solution determines which cells do not perform at full capacity or pose the risk of catching on fire, and notifies that a cell is dangerous. It can monitor various types of batteries on multiple devices, such as cars, smartphones, electronic cigarettes, etc.
The solution can either be integrated and operate as part of the Battery Management System (BMS) or perform independently on Docker or the cloud. Customers can retrieve data from the BMS for a specific time period, save it into a file, and incorporate it into the algorithm. Then the algorithm analyzes the data and determines which cells work well and which do not.
The client wanted to expand their market reach by making their solution compatible with embedded platforms. However, since it was not optimized for use on embedded platforms with microcontrollers, the client needed to analyze and prepare the solution for implementation on such systems.
N-iX experts have analyzed the calculations of the solution’s algorithm, found vulnerabilities, and identified the reasons for incompatibility with embedded platforms. We have documented all algorithm challenges, determined whether they were fixable, and specified the time and effort required for fixing them.
N-iX rewrote the client’s battery management algorithm from scratch to prepare it for use with microcontrollers. First, our experts optimized the algorithm calculations using Python as the most efficient language for the task. We then compared the newly-optimized algorithm to the original one and found that the optimization caused the solution that used the algorithm to require the least possible amount of memory and resources. The number of required calculations was also reduced, leading to faster and error-free performance.
The next step was to rewrite the already optimized algorithm calculations from Python to C to make it compatible with the microcontrollers of the embedded systems. Our engineers wrote the code using C with no patterns, frameworks, or libraries, since the code had to be set up on different microcontrollers, which posed an additional technical challenge. We have also transferred floating-point operations into fixed-point to ensure smooth optimization. This entire process was completed in a short span of time, allowing the customer to reach meet their business requirements.
By optimizing the algorithm calculations in both Python and C, we have implemented a separate Basic Algorithm solution that calculates basic battery capacity values (for example, state of risk, etc.). Basic Algorithm was released to production and integrated for a large automotive customer, and our team has provided support for the solution.
Additionally, we have implemented a desktop application for running the algorithm. We have worked on making it portable (to enable launching and running on different platforms) and transferring it to Docker (to be able to run it in the cloud). This, in turn, would expand the solution’s customer reach.
Finally, the N-iX team has helped integrate hardware by customizing the algorithm based on the specific microcontrollers and compilators of their customers.
After a comprehensive analysis of the client’s solution, N-iX rewrote the battery management algorithm to make it compatible with embedded systems that use microcontrollers. Also, our engineers have implemented a desktop application that can launch the algorithm, and have prepared the algorithm for migration to the cloud. As a result of our cooperation, the client has benefited in several ways:
- Extended their market reach by making the existing solution compatible with embedded systems equipped with microcontrollers;
- Increased customer satisfaction by improving the user experience with faster and error-free battery management.