DEVELOPMENT

TECH

How to Develop a Battery Management Software Development (BMS): Our Approaches

Published: September 6, 2024

27 min read

Anastasiia Fenyuk

Anastasiia Fenyuk

Rockstar Copywriter @ Stormotion

Ostap Shtypuk

Ostap Shtypuk

QA Engineer @ Stormotion

Sergei Shemshur

Sergei Shemshur

React Native Developer @ Stormotion

In modern society, where technological advancement is on the rise, BMS is crucial in electric vehicles and renewable power storage.

In this article, we will focus on providing an understanding of the BMS software development market and its trends, discussing the advantages and challenges in the process of creating BMS software. Our experienced staff will share insights into the nuances of the development process, and we will also share our personal experience in BMS app development.

Let's get started!

📊 Battery Management System Market Overview

With the ever-increasing growth in technology, BMS play a key role across various industries, right from portable electronic gadgets to EVs.

There is a rising market requirement for effective and reliable BMS systems, arising from the use of electric automobiles and renewable energy storage systems (RESSs). Allied Market Research states that the BMS market size around the globe was $7.5 billion in 2022 and is expected to reach $41 billion by 2032 with a Compound Annual Growth Rate (CAGR) of 19.1% between 2023 and 2032. The main possible reason for this steady market growth is the increasing sales of electric vehicles.

As such, there is also a growing need for EV charging app development to enhance the interaction between BMS and EV charging stations, ensuring an efficient and safe charging process.

With lithium-ion, lithium iron phosphate (LiFePO4), and nickel-based batteries (for example nickel-manganese-cobalt (NMC)), the performance and dependability of BMS have received major improvements. Present-day BMS solutions are enhanced with complex algorithms and qualities of real-time tracking of state-of-charge (SOC) of individual cells, state-of-health (SOH), and state-of-energy (SOE). They help better manage the battery to deliver the best of its performance and increase the battery’s lifetime.

An example of BMS platform

Also, electronics like smartphones, laptops, and wearable devices use BMS for better performance of batteries and the safety of consumers.

(image by Extej UI UX Design Agency)

BMS has universal applicability in almost all types of industries. BMS is used in automotive applications managing thermal runaway and balancing the state-of-charge across multiple cells. In renewable energy systems, BMS is widely used for large-scale energy storage as well as for providing reliable power along with stability.

🔋 What is a Battery Management System (BMS)?

A Battery Management System (BMS) can be defined as an advanced electronic system that is utilized to ensure that rechargeable battery packs perform optimally, are safe, and have long life spans. In this technological era, BMSs are integral to many applications such as electric vehicles, portable electronic devices, and large energy storage stations.

First and foremost, it is important to note that a BMS has core functions that allow for the achievement of its main objectives.

Function

Description

Monitoring and Control

In its simplest form, a BMS constantly supervises the principal indicators of a battery, including voltage, current, temperature, and SOC.

State Estimation

Apart from simple monitoring, a BMS predicts different conditions of the battery:

  • State-of-Charge (SOC): Expresses the percent of the battery’s actual charge in relation to its full capacity.
  • State-of-Health (SOH): Determines the general state and the amount of the battery’s life that can still be used.
  • State-of-Energy (SOE): Measures the battery energy capacity value of the current battery.
  • State-of-Power (SOP): Represents the maximum current that can be taken out of the battery at a given instance.

Protection Mechanisms

A BMS regulates conditions that are lethal for the battery, such as overcharging, over-discharging, overcurrent, and high/low temperatures. These protection mechanisms are crucial, as a thermal runaway condition or battery fires pose a real threat.

Battery Cell Balancing

To make them all perform in unison and for a longer time, a BMS performs cell balancing. This process balances the current between individual cells in the battery pack because, if it is unbalanced, the battery pack will fail early or have reduced capacity.

Thermal Management

This paper establishes that thermal management is critical in energy storage devices, hence the need to optimize the process. A BMS uses different cooling and heating mechanisms to ensure that the battery works within a desirable range of temperatures to increase its effectiveness and longevity.

Data Communication

Sophisticated BMSs incorporate communication ports through which the BMS can send/receive data to/from other devices or systems.

🛠️ Ready-made or Custom Solutions: When it is Suitable

There are two options to create battery management software: buying solutions off the shelf and building it from scratch. The decision as to which option is applicable greatly depends on the project’s requirements, size, and uniqueness of the project’s characteristics.

Ready-made Solutions

Off-the-shelf BMS can be defined as BMS systems that are ready and easily integrated into your battery-powered gadget. These solutions are particularly suitable when:

  • Standard Requirements.

For conventional applications where the specifications are easily defined and are usually standard, ready-made solutions are beneficial since they are cheaper than developing one. For example, smartphones or simple industrial applications often use such solutions.

  • Time Constraints.

When one needs to launch a fast solution to the market, packaged solutions are the best tools to use. They come with pre-tested elements and software, which greatly cuts down the development and testing time.

  • Limited Customization Needs.

When creating a project that does not require development, using ready-made solutions can be sufficient, as they meet modern standards in terms of both flexibility and functionality. For instance, there are available BMS modules for standard functionalities, such as voltage control and primary cell equalization.

An example of BMS app with physical parameters

Ready-made solutions in BMS development leverage artificial intelligence to detect anomalous behavior, ensuring system reliability and efficiency.

(image by PAHRI)

We also offer to build a companion app for your IoT BLE device, allowing users to interact seamlessly with their BMS systems through a mobile application.

Custom BMS Software Development

Custom BMS, designed with an in-depth understanding of the unique and often complex conditions of a specific project, is typically developed to address these specific needs. As a rule, these projects require the expertise to develop battery management software tailored to their unique requirements. This approach is ideal when:

  • Unique Requirements.

Projects that fall under custom BMS are those with unique needs or additional facilities like high-order state estimations, special thermal control, or connection with other high-end systems. For example, batteries in EVs or other large-scale stationary storage solutions require tailored solutions to address diversified battery control operations.

  • Scalability and Flexibility.

Solutions created for specific projects are much more flexible and can be easily adjusted according to the current situation. When your application may require changes in the future, integration with other applications or systems, or the need for more capacity, custom development covers these issues.

  • Performance Optimization.

For applications that demand more performance, efficiency, and longer battery duration, a specific BMS can be optimized with the chemistry, usage cycle, and conditions of the battery. This is particularly relevant to industries like aerospace, medical equipment, automobiles, and many others where battery regulation is highly sensitive to the functionality and safety of the devices.

  • Long-term Investment.

Custom solutions, which of course take more time and effort as well as cost more initially, are efficient in operational and usage levels since operational problems do not occur, performance enhances, and battery duration increases.

Our team provides IoT software development services, which ensure seamless integration with custom BMS solutions for optimized performance.

In this case, one must decide whether to engage a pre-made BMS or develop a new one battery management system software that will fit the project needs. While the former can be bought off the shelf, is easy to implement, and inexpensive for normal use, the latter must be developed for difficult, particular, massive, and programmatic uses.

💡 Advantages of Developing Software for BMS

Before we proceed to discuss how to create BMS software, let’s talk about the benefits.

Software development for battery management systems is one of the critical components of today’s technologies and serves as the key to progress in energy storage and effectiveness among multiple sectors. Here’s why investing in BMS software development is a strategic move:

Longer Battery Life and Efficiency

An essential advantage when you create battery management software is the significant expansion of battery lifespan. Thus, BMS software is aimed at constant control and adjustment of SOC, SOH, and temperature to provide efficient charging and discharging cycles. This meticulous management helps in avoiding the disadvantages of overcharging and deep discharging on the battery’s lifespan.

Improved Safety Measures

Energy storage systems are critical in many applications such as electric vehicles and medical devices; hence, the issue of safety must always be uppermost. Intelligent battery management system software is also used to protect batteries by detecting voltage, currents, and temperatures in the batteries in real-time. Modern BMS software can be programmed to detect and separate a bad battery cell or a module to avoid dangerous scenarios and protect the user.

An example of battery management system software

In BMS development, leveraging model-based design ensures optimal performance and reliability by accurately simulating physical parameters and processes.

(image by Tomasz Sztachański)

Cost Savings Through the Use of Predictive Maintenance

Battery management system software helps to perform predictive maintenance by offering information on the health state and trends of the battery. Consequently, with the help of this data, potential problems can be seen and solved before they result in expensive failures. This approach to maintenance is much more proactive regarding the cost of maintenance, the time required for maintenance, and the efficiency of the system.

Scalability and Flexibility

BMS control software programming is supposed to be elastic to work with various kinds of batteries and their connections. This versatility is important for industries that incorporate different battery technologies including lithium-ion battery packs, nickel-metal hydride, and lead-acid. The possibility to combine cars with different battery types or sizes into one system is beneficial for BMS app development processes and shortens the time-to-market of new products.

Efficient Data Analytics and Reporting Services

Software development for battery management systems also includes a data acquisition and analysis system where information on the battery’s performance and usage can be viewed and analyzed. The battery data proves useful for manufacturers to correct the battery design and enhance efficiency. Regarding end-users, providing specific information on the battery’s condition and the result of its activity allows for making proper decisions concerning battery utilization, care, and, if necessary, replacement.

Therefore, BMS control software programming is an investment that has many advantages: prolonging battery life, the increase of safety, the improvement of vehicle efficiency, and the decrease of costs. Thus, further BMS app development allows industries to have higher efficiency, reliability, and sustainability of energy storage systems.

Our team specializes in developing IoT applications that integrate seamlessly with BMS solutions, ensuring longer battery life and improved safety for devices ranging from EVs to wearable tech. Contact us and we will discuss all the specifics of your project and maintain your app even after release!

⚙️ Challenges in Battery Management Software Development

Development of a battery management system involves issues that can be tackled from electronic engineering, software engineering, and data analysis. Solving these issues is essential for providing proper safety, performance, and reliability of battery systems and applications, including portable devices, electric vehicles, and power storage systems.

Complex System Requirements

Battery systems are inherently complicated as there are many interacting sub-systems that need to be tightly controlled. The BMS may have to perform multiple tasks such as cell voltage and temperature sensing, SOC measurement, equalization of cells, and guarding against overcharge and deep discharge. The main issue is to design a set of software components that can provide these functionalities in parallel, with temporal coupling while maintaining the software’s real-time performance and dependability.

Real-Time Data Processing

A BMS must be able to process data from multiple sensors in real-time and analyze the received data in real-time as well. This involves the conversion of voltage, current, and temperature data into information and an immediate response to guard the battery. The software should be able to eliminate as much noise as possible, process data that comes from different types of sensors, and bring data to the application in the right format and at the right time.

An example of Internet of Things (IoT) app with BMS

Optimize BMS architecture for precise charging current management.

(image by Levi Wilson)

Accurate State Estimation

The process of SOC, SOH, and SOE determination of a battery is difficult and needs advanced mathematical models and algorithms. The greatest challenge in managing these states is to build up mathematically precise models that could forecast such states with reasonable certainty throughout the lifespan of the battery. In the same way, these models have to be verified and calibrated, usually through a range of tests and by using actual data.

An example of how you can display a charging profile (with power input and output)

Challenges in BMS development often include ensuring robust embedded software development that can reliably function within diverse environmental conditions.

(image by Monty Hayton)

Security and Reliability

As battery systems get more connected because of uses like electric vehicles and smart grids, it becomes important that BMS software is secure and reliable. The software has to be safeguarded against cyber terrorism and other unfair intrusions. One of the main difficulties of the system is to perform reliable security mechanisms, including encryption and security boots, and guarantee the possibility to continue execution in case of failures without losing or corrupting stored data.

In conclusion, BMS control software programming is a multifaceted challenge that requires a combination of expertise in electronics, software engineering, and data science. By addressing these challenges through careful design, rigorous testing, and continuous improvement, we can create robust and reliable BMS solutions that enhance the performance, safety, and longevity of battery systems.

🧬 Key Components of BMS Software

It is important to identify the main constituents that are considered the basic foundation of the software to manage batteries proficiently, safely, and dependably. Here, we delve into the essential components that every robust BMS software should include:

Control Unit Software

The control unit is the central processing unit of the BMS, as it regulates the flow of the BMS’s components and their mutual orchestration. Control algorithms, communication between systems, and regulation of all management focused on batteries and battery systems are all under the supervision of this system. The software here is usually in charge of monitoring, analysis, and control of various processes within the battery to achieve the best performance within permissible and safe ultimate limits.

Measurement Unit Software

This involves the measurement of battery parameters such as voltage, current, and temperature. The measurement unit communicates with all the sensors to acquire live information. It is used for accurate calculations of the state-of-charge (SOC), state-of-health (SOH), and other essential characteristics of batteries. Most measurement software has filtering algorithms that can filter out noise and help achieve better results.

An example of BMS app

Measurement Unit Software, often include integration with GitHub for version control, a GUI for user-friendly interaction, hardware implementation and robust handling of high voltage.

(image by AixDesigner)

State Estimation Algorithms

State estimation could be considered an innate functionality of intelligent battery management system software products. It includes methods that estimate the remaining capacity, health status, state of energy, and state of power. These algorithms use data from the measurement unit and complex models to come up with the right estimates. Techniques like Coulomb counting, Kalman filter, and Equivalent circuit model are being used to increase the accuracy of these estimations.

Communication Interfaces

Well-designed and functioning battery management system software usually contains communication interfaces through which the BMS can communicate with other systems or devices. These include internet protocols like CAN bus, Modbus, and others involved in the transmission of data to control units of other vehicles, energy management systems, or user interfaces. Adopting effective communication enhances the capability of the BMS to supply external systems with real-time information and likewise receive commands from the same.

It is necessary to note that the creation of battery management software signifies the combination of several components that are essential for the precise and safe management of battery systems. Promoting these components creates a significant opportunity to build highly advanced and effective BMS solutions that contribute to batteries’ performance, durability, and safety.

🛠️ BMS Features and Functionalities

This section explores the essential features and functionalities of battery management system software, including how to create a BMS software, highlighting how they contribute to optimal battery performance and user experience.

Basic

The fundamental features of a Battery Management System provide the groundwork for effective battery operation and maintenance. Here we will delve into key capabilities of intelligent battery management system software which together ensure that battery systems operate efficiently and safely throughout their lifecycle.

State of Charge (SoC) Estimation

Even though SoC estimation is a key capability of any BMS, its sophisticated approach makes it a rather complex problem. This feature enables the system to track the charge level that is currently available in the battery, which is usually in percentage format, ranging from 0% to 100% charged. When SoC is estimated to be at high levels, overcharging can be prevented, and on the other hand, when the SoC is estimated to be low, over-discharging can also be prevented, enhancing battery life.

State of Health (SoH) Monitoring

SoH monitoring checks the system conditions in parallel to the battery condition; the health report determines its capacity to store and supply energy as a new battery. Components found under SoH include capacity, internal resistance, and the number of charge-discharge cycles. SoH can be used to anticipate the remaining lifespan of a battery, which in turn provides the right schedule for maintenance and replacement, hence making the battery reliable and safe.

Battery Balancing

Battery balancing means making certain that all the cells within the battery pack either have the same charge level and voltage or have been equalized to the pack’s level. Therefore, balancing can be accomplished either by passive means, which entails using resistors to shed excess energy, or through active means, which involve moving energy between cells. Optimal battery balancing provides an increase in the portion of the battery pack that can be utilized and its performance.

Balancing can be accomplished either by passive means

(video by Denis Budnik)

Advance

Now, let's explore advanced features for BMS control software programming:

Predictive Maintenance

In a predictive maintenance solution, the status of the battery option is run through complex algebraic models and neural networks to determine likely failures that could occur. This follows the battery parameters being observed and the battery’s history being reviewed to establish the right time for the maintenance to be done. This helps reduce abrupt shutdowns and enhance the battery configuration of energy storage systems.

Remote Diagnostics

Remote diagnostics build the prospects of evaluating battery's state of health and capacity without physically being near the battery. Electric vehicles or grid energy storage systems are the most evident of all current applications for this feature. The real-time collection and analysis of data become feasible with such a system, which can aid the identification and correction of issues without construction and, in the end, contribute to a low cost of maintenance for the company.

Customizable Alerts and Notifications

Distinct adjustable notification characteristics are vital to reaching the required state of BMS performance. This feature assists the BMS in notifying the users of some faults or events of significance in the system, such as over-temperature, over-voltage, or SOC getting close to the lower limit. Users can set levels and receive updates through this means of communication (for example, e-mail notifications, SMS, dashboard notifications) so that the case does not reach the failure level, thus undermining the much-needed security of the system.

🌍 Global Approaches

Industry Standards and Best Practices

When it comes to creating Battery Management System (BMS) software, it is crucial to enforce common practices and guidelines. A reliable BMS must satisfy pre-defined safety, energy, and effectiveness layout factors that are set out in specific standards, including ISO 26262 for automotive applications or IEC 61508 for functional safety.

The first of the identified best practices is related to thermal management systems, which, in turn, is related to the above-discussed system architectures. Efficient thermal control is used to maintain a working temperature limit of the battery to avoid overheating and possible failure. This includes both fresh and mixed air and combines passive and active cooling methods.

The other important practice is known as capacity management. This relates to regulating and managing the state of charge (SoC) of each cell within the battery pack.

Standard precautions are also part of BMS creation. This entails safeguards against overcharging, over-discharging, and short-circuiting. Some of the latest BMS designs are even capable of constantly monitoring and responding instantly to such conditions in a way that will result in the battery’s isolation in case of experiencing them, thus avoiding occurrences of the above disastrous situations.

Continuous Improvement and Updates

Battery technology is constantly changing, thus, the BMS software must be constantly improved and updated. This iterative process involves several strategies:

  1. Simulation and Modeling: Prior to making changes, engineers employ applications such as MATLAB and GNU Octave to model the battery and how it will perform under different situations. These models assist in fine-tuning the algorithms and increasing the reliability of the estimations of SoC, SoH, SoE, and SoP.

  2. Field Data Integration: Experience gathered from actual working systems is therefore very useful. As a result, real-world application data collected in various settings enable the effective adjustment of BMS algorithms in real time. Real-time data integration is useful in forecasting problems and maximizing performance.

  3. Firmware Updates: To keep the BMS connected to the newest developments and secure, firmware updates are vital. They can be functional updates that improve the device's performance, include new safety features, or offer new features in general. Applying secure OTA updates guarantees that all battery packs can be updated without contact, as all updates are done over the air.

💻 How to Develop Battery Management Software

Well, now let's figure out how to build battery management software. Our experienced developer, Sergey Shemshur, will tell us about the main steps in creating the software, while our QA Engineer, Ostap Shtypuk, will discuss the testing processes during development of a battery management system to ensure the quality and reliability of the final product.

Researching

First, get familiar with the documentation and plan features in line with the capabilities offered by the BMS. Determine if there are any available SDKs to streamline development, avoiding the need to create battery management software from scratch. Since there are no standardized communication protocols with BMS, you'll need to customize it for each specific device.

Reverse engineering of the proprietary software

To develop BMS software, it is sometimes possible to analyze similar proprietary products and create a similar one. This includes assessing the functions, capacities, and techniques used in commercial BMS software. In doing so, you can benchmark your own design and identify some of the opportunities for improvement that you might not have previously considered.

This step involves understanding the hardware and software components as well as having a general understanding of system analysis and dissection. This means that reverse engineering must be conducted legally and ethically, and steps should be taken to ensure it is done legally and ethically.

Choosing technology

The choice of technology before starting to develop a BMS software depends on whether there is an SDK for React Native, but it is likely that there won’t be one. There may be two separate SDKs for iOS and Android, which can be wrapped into a native module. Also, if the SDK is of mediocre quality or if you want to avoid relying on the features available in the SDK, you could implement everything yourself, creating the communication protocol from scratch.

In most cases, communication will be via BLE, and for this, there are two main libraries in React Native:

In terms of features, they seem to be similar, but plx has better documentation and supports Expo out of the box.

In our work, we use develop BLE app solutions for real-time BMS monitoring and control, enhancing user interactions with their IoT devices.

Validating

A good idea would be to create a test app that implements the main features. If we’re talking about BLE, this includes scanning, connecting, pairing, and a very simple UI.

Ostap Shtypuk, QA Engineer @ Stormotion

Creating a test validator app before the development process begins can significantly reduce risks associated with firmware issues. During this phase, we collaborate with our developers to ensure that the functionality outlined in the tech documentation is correct. In such a way, we can find some problems with firmware, and sometimes even with hardware parts. At this stage, we typically need to verify the data we are receiving from BMS. For instance, in Norsk, this includes voltage, rated capacity, temperature, and remaining capacity. But in any case, it all depends on the needs of the customer. Very often, when a new product hits the market, it may not fully align with its technical documentation, leading to potential issues with its functionality. Therefore, in such a case, we can inform the customer that something is not working properly even before the start of development, and the customer will have time to decide whether this will suit him.

Ostap Shtypuk, QA Engineer @ Stormotion

Implementing all supported features

Here, the implementation of the main business logic takes place, reusing the functionality of the test app wherever possible.

Ostap Shtypuk, QA Engineer @ Stormotion

At this stage, we test the all data received from the BMS within our application and verify that it accurately reflects correct values. Essentially, we comprehensively check all functionality—from searching and establishing connections to handling error codes and displaying issues reported by the BMS in the application. The main point is to check all functionality, including all firmware parameters that were not checked at the Validating stage (in Norsk, for example, it's Heating, etc.).

Ostap Shtypuk, QA Engineer @ Stormotion

Security

The main protection of the communication channel is covered by simply creating a BLE pairing. If a pairing has not been established, the communication is not protected, and someone can eavesdrop, intercept control, etc. However, if a pairing has been established, the communication is protected by AES-128 encryption, and this encryption is entirely on the BLE side, so nothing needs to be done on the app side (other than initializing the pairing process).

There are several types of pairing:

  • Just Works - when the pairing is automatically confirmed by the device, without any extra interactions. Accordingly, the security is minimal, but if the device has a display and buttons, you can restrict the pairing window to only when the user specifically selects the pairing mode in the menu.
  • Passkey - when the device displays a 6-digit code, and the user must enter it on their phone. This code can also be static, for example, printed somewhere on the label. This is more secure, but when the code is static, it is slightly less secure.
  • Key Comparison - this is a combination of the two previous methods, where both the device and the phone display a 6-digit code, and the user must confirm whether they match. This is even more secure but requires a display on the device being paired.
  • Out of Band (OOB) - This is when, for example, the device has an NFC tag, and pairing is initiated only when the phone is brought close to it. This is probably the most secure method, as it requires physical contact.

For those interested in learning more about BLE security, we offer a comprehensive Bluetooth Low Energy FAQ guide, detailing best practices to ensure secure communication between devices.

🔍 Things You Need to Pay Attention While Test BMS Software

Now let's focus on important aspects that need attention when testing software for battery management systems. Our experienced QA Engineer, Ostap Shtypuk, will discuss key points that will help ensure the reliability and efficiency of the BMS.

Firstly, ensure that the firmware works as expected before starting development. Very often, when a new product hits the market, it may not fully align with its technical documentation, leading to potential issues with its functionality. A great opportunity to check this is the creation of a validator test application, in which it will be possible to search and connect to the BMS and directly see that correct data can be obtained.

!NOTE: Also, very often firmware developers have already developed an application in which you can connect and check the received data. For example, on Norsk, a hardware manufacturing company (Chinese friends) sent us download links, and if something on our end didn't work, we made sure to double-check in their app before looking for a solution. Well, in this case, we will be able to validate the data we receive with the data displayed in the application from the firmware developers.

Then, when development has begun, you need to compare the parameters in our app with the validator app or with the app developed by firmware developers. Additionally, you need to verify the not prioritized parameters that weren’t tested in the Validating stage.

If we examine the key parameters in more detail, they include:

  • Voltage. You can check it using a validator test app and also an application developed by hardware developers. It's an important parameter. This is a parameter which quite often may not be displayed correctly if, for example, the BMS has had a short circuit.
  • Remaining capacity. It is also an important parameter that may not be displayed correctly if the battery is not calibrated or has other firmware problems. In this case, the best option would be to check it during discharge by roughly calculating the discharge current, and also comparing this data with a test or an application created by firmware developers.
  • Temperature. One of the key parameters in the battery is temperature, as it significantly influences many other parameters. For instance, temperature affects heating, emergency shutdown, and overcharge/over-discharge protection. For example an interesting unpredictable issue we found during the Heating testing. When we placed the battery in the freezer(to lower the temperature), the frequency of data updates decreased so the Heating view was lagging in our app. Additionally, frequently, due to the low temperature, not all the required information was received.
  • Cycle times. It’s easy to verify by charging/discharging the battery.
  • Current discharge. In order to accurately check the display of the correct discharge, you need to create a test bench where you will be sure of the values of the current discharge.
  • Current charge. In the case of charging, you need to purchase a quality charger, preferably with a built-in voltmeter and ammeter.

It’s also essential to test the operation with multiple test devices, as a feature that works with some devices may not function with others. Therefore, the main point is to use the maximum available number of test devices.

We need to integrate the telemetry service in order to be able to validate the data transmitted by the battery. For example, we use InfluxDB to analyze errors that occur when working with BMS, and to process, correct, and track issues for the Norsk Guardian project.

If the actual device is unavailable, creating a simulator is essential for development and testing, especially for connecting with and working with BMS (Battery Management Systems). The simulator should replicate all the connection options of the real device. It's a common scenario where long transportation times for batteries and other issues associated with device testing can hinder the development team's progress. In such cases, developing a device simulator is often the best solution to facilitate successful application development.

💰 Cost to Implement BMS Software

When implementing integration with battery management systems (BMS), it's important to clearly separate the integration part from the rest of the business logic. The part related to the rest of the business logic is generally no different from any other development, so we won’t delve into that in detail. Let's focus on the integration with BMS, including the following key stages:

Protocol Research

Investigating the communication protocol with the BMS to understand its capabilities and limitations.

10 - 40 hours

Reverse Engineering Proprietary Application

Analyzing the existing application to identify discrepancies between the described protocol and its actual implementation.

50 - 150 hours.

Creating a Dummy Application

Developing a test application that can connect to the BMS and execute commands from the protocol.

100 - 250 hours

QA Validation

Testing the application under various conditions to ensure its stability and correct operation.

40 - 80 hours

The overall scope of work will depend on the functionality provided by the protocol. In some cases, the BMS may only provide basic data, such as battery voltage, requiring less development time. However, if the BMS has multiple functions, such as different sleep modes and other parameters, the time needed for integration will significantly increase.

In general, the cost of BMS integration within the discovery stage ranges from $11,000 to $30,000, depending on the scope of work.

While custom BMS solutions may seem expensive initially, they are a long-term investment. If you're wondering about the cost to develop IoT software for your specific needs, we offer consultations to help you understand the cost-benefit analysis.

📚 Norsk Guardian Case Study

Finally, we will discuss the project that we often cite as an example in this article. In this section we will tell you about our case study - Norsk Guardian - an advanced application designed by Stormotion to provide real-time monitoring and ensure the safety of battery-powered devices.

Background and Objectives

Norsk Guardian is an application created for Norsk, a company focusing on the manufacture of original lithium-ion batteries for uses like fishing in open water, on ice, and kayaking. The application functions as efficient battery monitoring software where users can get complete details about battery temperature, voltage, current, and almost all other aspects related to the battery.

Norsk Guardian by Stormotion

(Image by Stormotion)

The main goal was to avoid distressing situations at sea linked to battery issues and consequently offer users safe experience.

Development Process

In regard to creating the Norsk Guardian application, the entire full cycle from wireframing to QA and release was used. The key stages included:

  • Discovery Stage: This included realizing the data capacities of the battery to encourage the inventiveness of a Bluetooth Low Energy (BLE) module to ease data transfer between the battery and the app.
  • Framework Selection: React Native was selected as the most suitable framework for developing the application because of the factors of cross-platform development and productivity.
  • Simultaneous Battery Monitoring: The app was designed to monitor multiple batteries simultaneously, retrieve telemetry data, and display charging indicators. This required thorough testing, data retrieval methods setup, and the establishment of database entities for user and battery associations.

Results and Impact

The final product was able to deliver all envisaged objectives while remaining a user-friendly and technically sound product. Key features and outcomes included:

  • User-Friendly Design: Although the app is based on technical concepts, our UI/UX designer made the interface clean and devoid of excess elements to give a more functional feel with animations too.
  • Reliable Communication System: We have flawlessly integrated the battery and the application so that the chances of a battery going off and putting users’ lives in danger are reduced to the barest minimum.
  • Comprehensive Testing: The app was tested to the extremes, including using real-life situations like freezing temperatures on the car's fellows to ensure safety and efficiency were offered through the use of the app.
  • Feedback Mechanism: The incorporation of a feedback system in the app was efficient since it enabled the constant modification of the application based on input from the users.
Norsk Guardian by Stormotion

(Image by Stormotion)

As a result, 95% of Norsk clients expressed satisfaction with the app's ability to monitor battery performance, providing them with peace of mind and confidence in the reliability of their battery systems during their voyages.

👂 Takeaways

Thus, the development of battery management system (BMS) software implies comprehensive knowledge of certain components and their interactions to achieve the best results in battery operation and durability. Key takeaways for creating successful BMS software include:

  • The BMS market is dynamically developing due to the constantly rising popularity of EVs and other systems that use renewable energy storage.
  • It is essential for effective BMS software to contain good monitoring and control, accurate state estimation, as well as good protection methods.
  • Challenges that emerge when designing the software for building management systems include managing the requirements of a complex system, processing real-time data, guaranteeing safety and fault tolerance, integrating with the physical hardware, and constantly improving and testing the system.

Thus, using these basic points of reference is effective for reinforcing the overall understanding of the key aspects of BMS software development.

If you prefer to get more specific information or just need help, we are always here for you. This is where our team comes in to assist you in the management and attainment of your goals as far as BMS software is concerned.

Contact us

Questions you may have

Take a look at how we solve challenges to meet project requirements

Have you developed solutions for Li-ion, NiMH, lead-acid, or other battery types?

Yes, we have developed solutions for various battery types including lithium-ion, nickel-metal hydride (NiMH), lead-acid batteries, and more. Our expertise spans across different chemistries, ensuring optimal performance and safety for each battery type.

What methods do you use for SoC, SoH, and SoE estimation?

We utilize advanced algorithms for state-of-charge (SoC), state-of-health (SoH), and state-of-energy (SoE) estimation. These include techniques like Coulomb counting, voltage estimation, Kalman filters, and equivalent circuit models to provide accurate and reliable estimations.

How do you ensure reliability and safety in your systems?

Reliability and safety are ensured through comprehensive protection mechanisms, including overcharge, over-discharge, overcurrent, and thermal management. Our BMS continuously monitors critical parameters and employs fault detection and isolation strategies to prevent hazardous conditions.

What communication interfaces do you support, and how do you ensure compatibility with other system components?

Our BMS supports a range of communication interfaces such as CAN bus, Modbus, and other internet protocols. We ensure compatibility with other system components by adhering to industry standards and providing flexible integration options for seamless operation.

What techniques do you implement for cell balancing in your BMS solutions?

We implement both passive and active cell balancing techniques. Passive balancing uses resistors to dissipate excess energy, while active balancing redistributes energy between cells to maintain uniform charge levels, enhancing battery performance and longevity.

Can you explain your process for real-time monitoring and fault detection in BMS?

Our BMS solutions feature real-time monitoring through continuous data acquisition from sensors measuring voltage, current, and temperature. Advanced algorithms process this data to detect and diagnose faults instantly, triggering protective measures to safeguard the battery and system.

What are your strategies for ensuring the scalability and adaptability of your BMS software?

Scalability and adaptability are achieved through modular software architecture and flexible design. Our BMS software can be easily configured and expanded to accommodate various battery sizes and applications, ensuring long-term adaptability and integration with evolving technologies.

Do you use simulation, hardware-in-the-loop testing, or other methods?

Yes, we employ real-time simulation and hardware-in-the-loop (HIL) testing extensively. These methods allow us to validate our algorithms and systems under various scenarios, ensuring robust performance and reliability before deployment in real-world applications.

How do you ensure the software meets industry standards and safety regulations?

Our BMS software is developed in compliance with industry standards such as ISO 26262 for automotive applications and IEC 61508 for functional safety. Continuous testing, validation, and adherence to these standards ensure that our software meets all regulatory requirements.

How do you ensure compliance with relevant industry standards and regulations?

We ensure compliance by following rigorous development processes, including thorough documentation, regular audits, and adherence to industry standards. Our team stays updated with the latest regulatory changes to maintain compliance across all our solutions.

How do you ensure the cybersecurity of your BMS solutions?

Cybersecurity is ensured through robust encryption, secure boot mechanisms, and regular security updates. Our BMS solutions incorporate advanced cybersecurity measures to protect against unauthorized access and cyber threats, ensuring the integrity and safety of the system.

Read also

How can we help you?

Our clients say

Stormotion client Max Scheidlock, Product Manager from [object Object]

They understand what it takes to be a great service provider, prioritizing our success over money. I think their approach to addressing ambiguity is their biggest strength. It definitely sets them apart from other remote developers.

Max Scheidlock, Product Manager

HUMANOO