Today, we share FoxBMS
The world’s most influential open source Battery Management System (BMS) development platform
FoxBMS is a modular open source Battery Management System (BMS) development platform. This platform is the result of over 15 years of development at the Fraunhofer Institute for Integrated Systems and Device Technology (IISB) in Erlangen, Germany, focusing on innovative hardware and software solutions for rechargeable battery systems, redox flow battery systems, and fuel cell systems.
It’s open source!!!
Features of FoxBMS include:
-
Open and flexible architecture: FoxBMS is an open source project, with its code and design documents available on GitHub, allowing users to perform secondary development and customization.
-
Modular design: The code of FoxBMS is based on a modular design, making it easy to maintain and expand, allowing users to add or remove functional modules as needed.
-
Wide hardware support: FoxBMS supports various types of batteries and battery packs, compatible with different hardware platforms, including but not limited to MCUs, FPGAs, etc.
-
Rich software tools: FoxBMS provides a wealth of software tools, including battery management applications, real-time operating systems (RTOS), hardware abstraction layers (HAL), etc., facilitating user development and debugging.
-
Community support: FoxBMS has an active community where users can seek help, share experiences, and learn about the latest development progress.
In summary, FoxBMS is a powerful, open, and flexible battery management system development platform suitable for multiple fields, providing users with a complete solution to achieve better results in battery management.
Subsequently, the open source community upgraded FoxBMS to FoxBMS2
The modular open source Battery Management System (BMS) development platform FoxBMS2 is designed to adapt to the development of the times.
This is the second generation of FoxBMS. It is a free, open, and flexible development environment that can design beyond the most advanced complex battery management systems.
An advanced technical solution aimed at providing safe and efficient battery management for new energy vehicles and usage scenarios.
To start using FoxBMS 2, you need to obtain the source code and install all necessary software dependencies. These are the required steps:
-
Obtain the FoxBMS 2 source code,
-
Install software dependencies:
-
Install Git
-
Install Texas Instruments (TI) Code Composer Studio (required for compilation)
-
Install Texas Instruments (TI) HALCoGen (required for code generation)
-
Install Continuum’s Miniconda (provides the Python environment used by FoxBMS 2),
-
Install LLVM (required for code formatting)
-
Install Ruby and Ceedling package (required for unit testing)
-
Install GCC (required for unit testing)
-
Install VS Code (required for development)
-
Set up the development environment
The following sections describe these steps in detail.
1. Obtain the source
The source code can be obtained from the Git repository at https://github.com/foxBMS/, specifically at https://github.com/foxBMS/foxbms-2. The following examples demonstrate how to clone (see Listing 3.1) or download (see Listing 3.2) the FoxBMS 2 source code from GitHub.
If a partner provides you with a “library project,” please use the archive equivalent to the “cloned FoxBMS 2 repository” in the subsequent steps of this manual.
Warning
If your username contains spaces (e.g., you must clone or download the repository to another path that does not contain spaces, such as,).vulpes vulpes
C:\foxbms-2
Listing 3.1Clone the FoxBMS 2 repository
C:\Users\vulpes\Documents>git clone https://github.com/foxBMS/foxbms-2
C:\Users\vulpes\Documents>cd foxbms-2
Listing 3.2Download the version
C:\Users\vulpes\Documents>curl --silent --show-error -L -o foxbms-2-v1.6.0.zip https://github.com/foxBMS/foxbms-2/archive/v1.6.0.zip
C:\Users\vulpes\Documents>tar -x -f foxbms-2-v1.6.0.zip
C:\Users\vulpes\Documents>ren foxbms-2-1.6.0 foxbms-2
C:\Users\vulpes\Documents>cd foxbms-2
Note
Bothgit
and curl
require correct proxy settings. This means that the environment variableshttp_proxy
and https_proxy
must be set according to your network configuration.
Warning
Do not clone/download FoxBMS 2 into a directory structure that contains spaces.
Bad |
|
Good |
|
Good |
|
2. Software prerequisites
General tips
The software installation here should not change the PATH
environment variable. When the installer prompts to add something to the PATH
, always deselect that option, regardless of whether it is explicitly mentioned in that step. The only exception to this rule may be Git and .VS Code
Official documentation address (very detailed, love it!!)
https://docs.foxbms.org/
System Voltage and Current Monitoring
It is necessary to measure several different voltages within the battery system. The exact number of voltages depends on the system topology and the configuration of the battery system.
Figure 3.1 shows the voltages that need to be measured in a multi-string system, taking a 3-string system as an example. Table 2.7 explains the symbols used. The color explanations are shown in Table 2.8.
The left side of the image shows the battery pack. The batterywiring box is located in the center of the image, and the indicated connection application is shown on the right side of the image.
Figure 2.2 Voltages of interest in a multi-string system
Multi-string system
The following section describes important parameters within a multi-string battery pack.
2.1.1. Measurements inside the battery pack
Figure 2.3 Voltages to be measured in a multi-string system within the battery pack (click to enlarge)
Strings are arranged from right to left in ascending order, starting from string 1 (S1
) to the leftmost string m (Sm
). Each string consists of modulesn
, each module has its own foxBMS slave unit. Each string is equipped with a current sensor, a string fuse, and one or two string contactors. Therefore, the following voltages need to be measured in each string:
-
String voltage, abbreviated as V Sm, where
m
represents the number of strings. -
Fused string voltage, abbreviated as V FSm, where
m
represents the number of strings. It is measured after the lowest module and the string fuse. -
Battery pack voltage, abbreviated as V Pm, where
m
represents the number of battery strings. It is measured between the negative terminal of the lowest module and the positive terminal of the string contactor. This voltage is the same for all connected strings and can be verified by measurement.
The current sensor also measures the current of each string.
The understanding of voltage and current measurements can be found in Table 2.9.
Symbol |
Reference Name |
Description |
---|---|---|
Voltage_ |
|
String voltage m |
VoltageFSm |
|
Fused string voltage m |
Pack voltage_ |
|
Battery pack voltage |
Current_ |
|
String current m |
2.2. Single-string system
The single-string system reduces the amount of required voltage and current measurements. Figure 2.4 shows the single-string topology.
Figure 2.4 Voltages and currents to be measured in a single-string system (click to enlarge)
Thus, the measurement list is simplified to Table 2.10, and no further measurements are required within the columns.
Symbol |
Reference Name |
Description |
---|---|---|
Voltage_ |
|
Battery pack voltage |
VoltageFused |
|
Voltage after the main fuse |
VoltageSV |
|
System voltage |
VoltageSV2 |
|
System voltage: second power path |
Current_ |
|
Battery pack current |
2.3. Measurements inside the battery wiring box
Figure 2.5 Voltages to be measured in a multi-string system within the BJB (click to enlarge)
-
Measure the battery pack voltage before the main fuse.
-
The battery pack voltage with a fuse is measured after the main fuse.
-
The system voltage is measured after the contactor.
-
Optional: If the system uses a second power path, measure the voltage of the second power path after the contactor.
Understanding the measurements of voltage and current inside the battery wiring box:
Symbol |
Reference Name |
Description |
---|---|---|
Voltage_ |
|
Battery pack voltage |
VoltageFused |
|
Voltage after the main fuse |
VoltageSV |
|
System voltage |
VoltageSV2 |
|
System voltage: second power path |
Current_ |
|
Battery pack current |
FoxBMS2 has the following features:
1. Modular design: FoxBMS adopts a modular design that can be flexibly configured according to different customer needs and scenarios, adapting to various battery types, capacities, and application environments.2. Open source architecture: FoxBMS adopts an open source architecture, making it easy for users and developers to customize and optimize. At the same time, the open source nature also means more technical support and collaborative innovation, which is beneficial for promoting the development of battery management technology.3. Rich functionality: FoxBMS has core functions such as battery state monitoring, balancing control, thermal management, fault diagnosis, and safety protection, providing users with a comprehensive battery management solution.4. High-precision state estimation: FoxBMS applies multi-state joint estimation, extended Kalman filtering algorithms, internal resistance/capacity online identification, and other technologies to achieve high-precision state estimation throughout the battery lifecycle, improving battery efficiency and safety.5. Rapid internal short circuit detection: FoxBMS utilizes a symmetric loop circuit topology (SLCT) and related algorithms to perform batch internal short circuit detection on multiple battery cells in a very short time (e.g., within 5 minutes), enhancing safety during battery production and usage.6. Easy integration: FoxBMS provides a variety of hardware solutions, including centralized and distributed topologies, making it easy for users to choose and integrate according to actual needs. 7. Rich ecosystem: FoxBMS has a complete ecosystem, including technical support, R&D tools, testing equipment, and services, helping users quickly develop and implement battery management solutions.
In summary, the modular open source Battery Management System (BMS) development platform FoxBMS, with its advanced technical features and rich functionality, provides efficient and safe battery management solutions for new energy vehicles and application scenarios. With the continuous development of the new energy market, FoxBMS is expected to become a key technology platform in the field of battery management.
The world’s most influential open source Battery Management System (BMS) development platform
Source code
http://www.gitpp.com/foxbms/foxbms-2
www.gitpp.com has collected over 10,000 industrial open source projects with source code
Click to read the original text