The World’s Most Influential Open Source Battery Management System (BMS) Development Platform

Today, we share FoxBMS

The world’s most influential open source Battery Management System (BMS) development platform

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 World's Most Influential Open Source Battery Management System (BMS) Development Platform

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.

The World's Most Influential Open Source Battery Management System (BMS) Development Platform

To start using FoxBMS 2, you need to obtain the source code and install all necessary software dependencies. These are the required steps:

  1. Obtain the FoxBMS 2 source code,

  2. Install software dependencies:

    1. Install Git

    2. Install Texas Instruments (TI) Code Composer Studio (required for compilation)

    3. Install Texas Instruments (TI) HALCoGen (required for code generation)

    4. Install Continuum’s Miniconda (provides the Python environment used by FoxBMS 2),

    5. Install LLVM (required for code formatting)

    6. Install Ruby and Ceedling package (required for unit testing)

    7. Install GCC (required for unit testing)

    8. Install VS Code (required for development)

  3. 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 vulpesC:\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

C:\bad directory name\Documents\foxbms-2

Good

C:\Users\vulpes\Documents\foxbms-2

Good

C:\foxbms-2

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/

The World's Most Influential Open Source Battery Management System (BMS) Development Platform

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.

The World's Most Influential Open Source Battery Management System (BMS) Development Platform

Figure 2.2 Voltages of interest in a multi-string system

The World's Most Influential Open Source Battery Management System (BMS) Development Platform

Multi-string system

The following section describes important parameters within a multi-string battery pack.

2.1.1. Measurements inside the battery pack

The World's Most Influential Open Source Battery Management System (BMS) Development Platform

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, wherem represents the number of strings.

  • Fused string voltage, abbreviated as V FSm, wherem represents the number of strings. It is measured after the lowest module and the string fuse.

  • Battery pack voltage, abbreviated as V Pm, wherem 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.

Table 2.9 List of voltage and current measurements within the battery pack

Symbol

Reference Name

Description

Voltage_

StringVoltageM

String voltage m

VoltageFSm

FusedStringVoltageM

Fused string voltage m

Pack voltage_

PackVoltageM

Battery pack voltage

Current_

StringCurrentM

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.

The World's Most Influential Open Source Battery Management System (BMS) Development Platform

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.

Table 2.10 Measurement list for single-string systems

Symbol

Reference Name

Description

Voltage_

PackVoltage

Battery pack voltage

VoltageFused

FusedPackVoltage

Voltage after the main fuse

VoltageSV

SystemVoltage

System voltage

VoltageSV2

SystemVoltage2

System voltage: second power path

Current_

PackCurrent

Battery pack current

2.3. Measurements inside the battery wiring box

The World's Most Influential Open Source Battery Management System (BMS) Development Platform

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:

Table 2.11 Measurement list in multi-string systems

Symbol

Reference Name

Description

Voltage_

PackVoltage

Battery pack voltage

VoltageFused

FusedPackVoltage

Voltage after the main fuse

VoltageSV

SystemVoltage

System voltage

VoltageSV2

SystemVoltage2

System voltage: second power path

Current_

PackCurrent

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

Leave a Comment