The foxBMS 1 version 1.5.3 is available on GitHub.

We publish major software releases for our open source BMS platform every 3 to 6 months and interim bug fixes when solved in the News section. By subscribing to the foxBMS Newsletter, you will be informed when the new releases are available. Further, the foxBMS Roadmap and the Documentation are also updated regularly.

Warning: The foxBMS platform including the foxBMS hardware and the foxBMS software are under permanent development. The free and open research and development platform foxBMS as presented in the documentation hereafter is not provided to be used without any adaptions (e.g., to fulfill mandatory regulations) in consumer products, electric vehicles, production environments or any similar usages: it is only intended to be used by skilled professionals trained in designing battery system prototypes.

Based on all the feedback received during the last 2 years from foxBMS software partners and users, the embedded software and the computer software have been restructured to reduce the MCU hardware dependency and enable even more flexibility.

Hereafter is a summary of the changes provided in foxBMS 1 version 1.5.3.


  • Toolchain:
    • raised compiler warning [-Werror=comment] to error level
    • write compiler macros to header file for improved eclipse support
  • Bugfixes:
    • fixed a bug, that caused the mcu temperature for primary and secondary mcu to be never updated.
    • fixed a bug, that caused the coin cell voltage of the primary mcu to be never updated.
    • rewrite of struct DIAG_RETURNTYPE_e. The enumeration had non-consecutive numbering and potentially dangerous typo in duplicate enum (DIAG_HANDLER_RETURN_ERR_OCCURED = 2 and DIAG_HANDLER_RETURN_ERR_OCCURRED = 4).
    • fixed a bug, that diagnosis entry for a voltage violation of the maximimum safety limit wrote to wrong database entry.
    • NVRAM module was compiled twice for primary mcu. Once it was compiled by mcu-common module and once again in mcu-primary module). Now compiled only once by mcu-common module as on mcu-secondary.
  • Enhancements:
    • debug printing is replaced by printf for easier and more versatile usage
    • added additional basic math macros (e.g., LN10, PI etc.) in foxmath.h
    • Fuse state is now monitored. Fuse can be placed in NORMAL and/or CHARGE path. Added flag to CAN0_MSG_SystemState_2 message
    • added support to build and link multiple libraries
    • added warning flag if MCU die temperature is outside of operating range to CAN0_MSG_SystemState_2 message
    • added warning flag to replace coin cell if measured coin cell voltage is low to CAN0_MSG_SystemState_2 message
    • added daisy-chain communication error flags to CAN0_MSG_SystemState_2 message
    • added error flag if an open voltage sense wire is detected


  • none


  • updated library build documentation
  • updated .dbc file

In case you encounter problems, please contact us.

The Fraunhofer IISB foxBMS Team