The foxBMS Team at Fraunhofer IISB is proud to announce that the second generation of its foxBMS platform, foxBMS 2 version 1.0.0, is available!
After the great success of the first generation of foxBMS, which was the first free, open and flexible research and development environment for the design of complex Battery Management Systems (BMS), Fraunhofer IISB now publishes foxBMS 2.
As every new generation of a products, foxBMS 2 comes also with new and exciting features. This is especially true when transitioning from generation 1 to generation 2.
Before having a closer look to the changes, we would like to emphasize the most important information first: foxBMS 2 version 1.0.0 is available and distributed under the same free and open source licensing model as foxBMS 1:
- The software is covered by the 3-Clause BSD License.
- The hardware and documentation are covered by the Creative Commons Attribution 4.0 International License.
And now, let’s shed some light on foxBMS 2!
Simplicity of foxBMS 2
foxBMS is a free, open and flexible research and development environment to empower everybody to build Battery Management Systems (BMS) beyond state of the art. To live up to this promise we have drastically reduced the complexity of developing on and for the foxBMS platform.
One of the obstacles that we have identified in foxBMS 1 was the architecture around two physically separated microcontrollers (MCU). The purpose of the combination of both MCUs has been to serve as a safety net during development. In reality, this is raising the software and system complexity, thus becoming a source of human errors. Therefore, we have removed the need for a secondary MCU while at the same time streamlining our safety concept by choosing an appropriate safety-qualified MCU providing a dual-core lockstep architecture. We have revised our component selection to only use AEC-Q qualified components. These clever design choices drastically improve the safety and the versatility of the foxBMS platform, enabling it to be used in safety critical automotive, industrial, aerospace, marine and even defense applications. Read more on this exciting new change in the Safety section.
The configuration features of the software have been extended to describe battery system architectures in an even simpler and more detailed way. The list of software tools that need to be installed has grown slightly. But the improvements gained by this are superb, let’s see for example the unit testing feature. You can now unit test large parts of the software inside the IDE without having to develop every part of your next generation state-of-charge (SOC) algorithm in the time consuming code – deploy-to-hardware – debug cycle. By enabling unit tests for foxBMS you can now enjoy much shorter code – deploy-to-hardware – debug cycles. It saves you time, money and for sure some headache while developing your prototype or your product.
Safety of foxBMS 2
While foxBMS is intended as a development platform, functional safety is a concern even in early stages of developments in the lab. With the second generation of our platform we have chosen to address this issue specifically and in an innovative way, enabling it to potentially fulfill the safety requirements in multiple application domains based on a single hardware platform.
A critical step while developing the safety concept is the choice of the MCU. We have chosen the Texas Instruments TMS570LC4357 for foxBMS 2. The TMS570LC4357 is an ARM Cortex-R5F safety MCU and uses a dual-core lockstep architecture. It provides extensive diagnostic features, such as a Built-In Self-Test (BIST) logic for the CPU and an Error Correction Code (ECC) protection for the internal buses, caches, flash and SRAM memories.
Functional Safety is a process that ensures that the developed system fulfills its tasks with certainty so that neither persons nor the surroundings are harmed. This always has to be tailored to a specific use case and development cycle. Therefore, it is not possible to have a one-size-fits-all BMS that magically fulfills all possible functional safety requirements at once. However, we have done the important groundwork to enable functional safety development processes. The components have been carefully chosen for parts with known reliability and high diagnostic coverage. For all the major components we are in contact with their manufacturers in order to be able to support your development process.
With foxBMS 2 and its focus on a clean safety concept, we enable the development of safe and reliable BMS for nearly all kinds of battery systems in mobile and stationary applications!
Connectivity and Algorithm Development
One key in making high-quality battery systems is accurate battery state estimation algorithms (SOx), where x is charge, energy, power, health, life or safety and transferring this knowledge into optimized operating strategies for the specific application.
foxBMS 2 provides an interface to bring these algorithms in a simple way into your application. One of the blog entries will cover the deployment of algorithms to the application. In order to enable this, we will also extend our focus to the connectivity of the BMS.
Improved connectivity allows to grow the applications around the BMS. Internet of Things (IoT) applications allow the aggregation of battery data. This can scale from the monitoring of single battery systems to big data applications. We are working on employing advanced artificial intelligence (AI) methods for generating deep insights into the captured data. Benefits of AI can be improved state estimation of the system, more economic usage of batteries or increased confidence in the stability of a system.
Organizational Information
Of course, such big changes always come along with organizational changes. Luckily, these are simple and short for the foxBMS project.
foxBMS 2
- The latest version foxBMS 2 documentation is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/latest/
- Previous versions of the foxBMS 2 documentation are found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/.
- Links to specific version are permalinks (e.g., for foxBMS 2 version 1.0.0 it is available at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.0.0/)
- Sources are available at github.com/foxBMS/foxbms-2
foxBMS 1
- The latest version of the foxBMS 1 documentation is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen1/docs/html/latest/
- Previous versions of the foxBMS 1 documentation are found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen1/docs/html/.
- Links to specific version are permalinks (e.g., for foxBMS 1 version 1.6.7 it is available at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen1/docs/html/v1.6.7/)
- Sources are available at github.com/foxBMS/foxbms-1
Comparison of foxBMS 1 and foxBMS 2 Hardware Capabilities:
BMS-Master | foxBMS 1 | foxBMS 2 |
---|---|---|
Operating ambient temperature | -40°C to +85°C | -40°C to +125°C |
Power Supply | 10V-26V | 6V-60V (all components rated for 12V, 24V and 48V automotive/truck/bus applications) |
SBC | - | 2x FS8530 connected over SPI to the MCU |
MCU | 2x ST32F429 @ 180MHz | 1x TMS570LC4357 @ 300MHz |
Single Core ARM Cortex-M4F for SIL2 / ASIL-C | Dual-Core ARM Cortex-R5F in Lockstep for SIL3 / ASIL-D / DAL-C (A) | |
Internal MCU Memory | 2MB Flash | 4MB Flash with ECC |
256kB SRAM + 4kB Backup SRAM | 512kB SRAM with ECC | |
External Memory | 256kB EEPROM with ECC | 256kB FRAM over SPI with ECC |
8MB SDR-SDRAM | 512kB MRAM over SPI with ECC | |
Memory Card | 128MB NOR Flash over SPI with ECC (ASIL-D) | |
Ethernet | - | 100BASE-TX/FX with WoL and loopback |
CAN | 2x 1Mb/s CAN 2.0B | 4x 1Mb/s CAN 2.0B with wake-up |
LIN | - | 1x 10.4kb/s SAE J2602 and 20kb/s, with wake-up |
RS485 | 1x RS485 Half-Duplex | 1x Half/Full Duplex with loopback |
USB | 1x USB over UART for Flashing | 1x USB over UART only over add-on board (not directly on BMS-Master) |
UART | 1x | 2x |
Power Contactor Drivers | 9x Opto-MOS up to 6A | 3x Quadruple Smart High-Side Switch (MC33XS2410EL) |
Analog I/O | 6x to 12bit SAR MCU ADC (non-isol.) | 1x Quadruple 24bit ADC (isolated) |
1x Quadruple 16bit DAC (isolated) | ||
Digital I/O | 8x Digital I/O (isolated) | 8x Digital I/O (isolated) |
RTC | 1x embedded in the MCU | 1x with TCXO oscillator and I2C |
Galvanic Isolation Monitoring | 1x PWM input + 1x Digital input | 1x PWM input + 1x Digital input |
1x Supply output (12V) with ON/OFF control | 1x Supply output (12V) with ON/OFF control | |
Interlock | 1x 20mA current loop over both MCUs | 1x 20mA current loop over the MCU |
Programming and Debugging | JTAG + ETM (8bit) | JTAG + ETM (32bit) + RTP + DMM |
Isolation | 560Vpeak reinforced isolation (VDE) | 2121Vdc reinforced isolation (VDE) |
Overview of the Selected Integrated Circuits for the foxBMS 2 Master Unit
Device Name | Manufacturer | Function | AEC-Q100 |
---|---|---|---|
PC33FS8530A0ES | NXP | System Basis Chip | Yes |
MC33664ATL1EG | NXP | BMS-Interface IC | Yes |
PC33XS2410EL | NXP | Smart High-Side Power Switch | Yes |
PCA9539PW/Q900,118 | NXP | I/O Expender with I2C Control | Yes |
PCA2131TF/Q900 | NXP | Ultra Low Power and High Accuracy RTC with Integrated Quartz Crystal | Yes |
TJA1042TK/3,118 | NXP | CAN Transceiver | Yes |
TJA1081TS,118 | NXP | FlexRay Transceiver | Yes |
TMS5704357BZWTQQ1 | Texas Instruments | MCU (Dual Core Lockstep ARM Cortex-R5F) | Yes |
DP83869HMRGZT | Texas Instruments | Ethernet 100BASE-TX/FX Transceiver | No |
TCAN1043HGDQ1 | Texas Instruments | CAN Transceiver (58V) | Yes |
ISO7763FQDWRQ1 | Texas Instruments | Digital Isolators (2121Vdc Working Voltage) | Yes |
LM5176QPWPRQ1 | Texas Instruments | Switching Buck-Boost Controller | Yes |
ADS131A04IPBSR | Texas Instruments | Analog-to-Digital Converter (24bit) | No |
DAC8775IRWFT | Texas Instruments | Digital-to-Analog Converter (16bit Voltage & Current) | No |
LTC2870HUFD#PBF | Analog Devices | RS232 & RS485 Full/Half-Duplex Transceiver | No |
ADR4525WBRZ | Analog Devices | Voltage Reference 2.500V | Yes |
ADR4540BRZ | Analog Devices | Voltage Reference 4.096V | No |
ADR4550BRZ | Analog Devices | Voltage Reference 5.000V | No |
CY15B102QN-50SXE | Cypress Semiconductor Corp | FRAM over SPI (2Mb) | Yes |
S25HL01GT | Cypress Semiconductor Corp | Samper Flash Memory over QSPI (1Gb) | Yes |
MR25H40MDF | Everspin Technologies Inc. | MRAM over SPI (4Mb) | Yes |
MAX13021ASA/V+T | Maxim Integrated | LIN Transceiver | Yes |
MAX16998DAUA/V+ | Maxim Integrated | Windowed Watchdog and Reset Circuit | Yes |
SHT35-DIS-F2.5kS | Sensirion AG | Humidity Sensor over I2C | Yes |
SIT8924BM-31-XXX-000.FP0000G | SiTIME | MEMS Oscillator | Yes |
What’s Next?
We plan to publish new blog entries about foxBMS 2 in the next time in order to introduce the improvements foxBMS 2 has made in detail, tips and tricks for working with the new platform and more generally, the joy of developing battery related software using foxBMS 2 for a better, more sustainable and battery powered future!
For more information or if you are looking for professional support in your battery projects, please do not hesitate to contact us.
The Fraunhofer IISB foxBMS Team