foxBMS is a free, open and flexible development environment to design battery management systems.

Overview

foxBMS 2

foxBMS is a free, open and flexible development environment to design battery management systems. It is the first modular open source BMS development platform.

Documentation

A current build of the documentation of this project can be found here:

Changelog

The project changelog is found in docs/general/changelog.rst.

License

The license information of the project is found in LICENSE.md.

Basically, the software is covered by the BSD 3-Clause License (SPDX short identifier: BSD-3-Clause) and the hardware and documentation by the Creative Commons Attribution 4.0 International License (SPDX short identifier: CC-BY-4.0).

Comments
  • wrong version in WAF?

    wrong version in WAF?

    Hello foxBMS-team,

    for some projects i searched for an open-source-BMS and found this awesome work. After getting familiar with the docs and the toolchain i tried to build the application, but encounteres some problems. After following the setup descripted in the docs i can't build the application, just getting an error message:

    Build failed Traceback (most recent call last): File "E:\01_Repos\07_FoxBMS\tools\waf3-2.0.22-1241519b19b496207abef1f72bbf61c2\waflib\Task.py", line 180, in process ret=self.run() File "E:\01_Repos\07_FoxBMS\tools\waf-tools\f_ti_arm_cgt.py", line 1172, in run self.generator.bld.fatal( File "E:\01_Repos\07_FoxBMS\tools\waf3-2.0.22-1241519b19b496207abef1f72bbf61c2\waflib\Context.py", line 261, in fatal raise self.errors.ConfigurationError(msg,ex=ex) waflib.Errors.ConfigurationError: Extracted version from git repo (1.1.0) does not match version defined in waf (1.1.1).

    after going back to the version 1.1.0 i'm able to build the binaries. Probably there is a small typo in some configs or scripts for WAF?

    Kind regards.

    opened by erniemaster 6
  • Error in ADC driver

    Error in ADC driver

    Hi there,

    thanks for this project. Very well structured.

    Ever wondered why ADC measurements are off? And can get negative? The ADC equation in the TI TRM is formulated backwards (adc counts as function of input voltage). It has been implemented like this in adc.c. That is wrong. The function needs to be inverted first, so:

    static float ADC_ConvertToVoltage(u16 adcCounts)
    {
        /** For details to equation see Equation 32 in Technical Reference Manual SPNU563A - March 2018 page 852 */
        float result_mV = (((adcCounts + 0.5f) * (ADC_VREFHIGH_mV - ADC_VREFLOW_mV)) / ADC_CONV_FACTOR_12BIT) + ADC_VREFLOW_mV;
    
        return result_mV;
    }
    

    I have also removed the cast in the call to ADC_ConvertToVoltage and renamed that function appropriately.

    What is your policy on pull requests? Do you like reports like this or would you rather have a PR?

    Best

    opened by juleq 4
  • Wrong label association to the pins in TI TMS570LC4357 Master v1.1.1 schematics

    Wrong label association to the pins in TI TMS570LC4357 Master v1.1.1 schematics

    I have the following observation:

    Based on the datasheet of IC PCF2131TF, pin 12 is BAR(INTB), and pin 13 is BAR(INTA). But in the schematic 'rtc.SchDoc' present in the TI TMS570LC4357 Master v1.1.1, the label assignment is interchanged. Is this correct?

    image

    image

    opened by Shrisha-Balkur 2
  • Cell Voltage Transmission Code Fix

    Cell Voltage Transmission Code Fix

    Hello, there is an issue in lines 76 & 77 of the can_cbs_tx_voltage.c file, particularly regarding the start bits. Cell voltage 2 has the start bit for cell voltage 3 and cell voltage 3 overwrites cell voltage 0. The correct start bits to correctly line up with the dbc file are 11, 30, 33, 52.

    opened by colookie 2
  • Missing components in BOM

    Missing components in BOM

    Many components in the schematic of the master board TI TMS570LC4357 Master v1.1.1 are present in the PCB layout but not in the BOM.

    These missing components are cross-marked in the schematics for example: In the buck-boost-converter.SchDoc image

    opened by Shrisha-Balkur 1
  • SOA - Battery Pack Overcurrent

    SOA - Battery Pack Overcurrent

    Packovercurrent is being checked for Cell Current Limit Violation at line 335 in <soa.c>. Wouldn't the pack current be much greater than Cell Current Limit. Also there exists a function for Pack current limit violation however was not able to find the usage for it.

    opened by debangoC 1
  • Error(s) in MXM driver: balancing control

    Error(s) in MXM driver: balancing control

    suspect, there are two mistakes in the balancing control driver of the mxm driver. both are located in: mxm_17852.c

    1st: line 408: pState->batteryCmdBuffer.msb &= ((uint8_t)1u << 7u); /* set CBRESTART bit */ because the Bit CBRESTART is active high, it should be set. actually the highByte of MXM_REG_BALSWCTRL is getting zeroed out by the command and the timeout-restart-bit is not set. also see the datasheet, page 310 and page 311 for CBRESTART -> pState->batteryCmdBuffer.msb |= 1<<7;

    2nd: line 468: pState->batteryCmdBuffer.lsb = 0x0EU; -> enable balancing switches for a minimum amount of time. i would suggest to change to 0xEEu or even 0xFEu to bring the balancing duty to 93,75% or even its maximum if possible between measurements (not sure, EE works fine for me).

    after this two changes the balancing driven by the max17852 works. the alternating balancing scheme between even and odd cells could be seen as well (works).

    opened by Virtex7 1
Releases(v1.4.1)
  • v1.4.1(Oct 27, 2022)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.4.1/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.4.1 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.4.1/

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Jul 29, 2022)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.4.0/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.4.0 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.4.0/

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(May 30, 2022)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.3.0/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.3.0 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.3.0/

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Dec 8, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.2.1/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.2.1 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.2.1/

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Oct 21, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.2.0/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.2.0 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.2.0/

    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Sep 3, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.1.2/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.1.2 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.1.2/

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Aug 6, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.1.1/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.1.1 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.1.1/

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Aug 2, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.1.0/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.1.0 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.1.0/

    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Apr 30, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.0.2/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.0.2 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.0.2/

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Apr 29, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.0.1/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.0.1 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.0.1/

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Apr 29, 2021)

    Changes

    The changes introduced by this release are documented at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.0.0/general/changelog.html#changelog

    Documentation

    A rendered version of the documentation based on release v1.0.0 is found at https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/v1.0.0/

    Source code(tar.gz)
    Source code(zip)
Owner
The foxBMS Team
foxBMS is a free, open and flexible development environment to design battery management systems. It is the first modular open source BMS development platform.
The foxBMS Team
A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment.

FREE Reverse Engineering Self-Study Course HERE Hacking Windows The book and code repo for the FREE Hacking Windows book by Kevin Thomas. FREE Book Do

Kevin Thomas 1.1k Dec 27, 2022
Exploring the Design Space of Page Management for Multi-Tiered Memory Systems (USENIX ATC'21)

AutoTiering This repo contains the kernel code in the following paper: Exploring the Design Space of Page Management for Multi-Tiered Memory Systems (

Computer Systems Laboratory @ Ajou University 23 Dec 20, 2022
C/C++ Application to solve irrigation rotation whatever two-turn rotation or three-turn rotation, longitudinal section design, hydraulic calculations, and design of hydraulic structures like weirs and tail escape.

Irrigation works C/C++ Application to solve irrigation rotation whatever two-turn rotation or three-turn rotation, longitudinal section design, hydrau

Mohamed Jamal Ghayyad 1 Jun 24, 2022
The ultimate battery tester with ESR measurement and discharge graph. Based on an Arduino Nano and a 1602 LCD.

Ultimate-Battery-Tester Version 1.0.0 Features Measures the ESR (equivalent series resistance) of the battery. This is an idicator of the health of th

Armin 11 Dec 7, 2022
Get CPU & GPU temperatures and fan and battery statistics from your Mac.

macOS Hardware Stats Get CPU & GPU temperatures and fan and battery statistics from your Mac. This simple script will output a JSON array containing h

tigattack 4 May 5, 2022
Save battery power and put your ESP32 to (deep) sleep - but what happens when it wakes up?

#229 ESP32 Deep Sleep Save battery power and put your ESP32 to (deep) sleep - but what happens when it wakes up? Direct link to video: https://youtu.b

Ralph Bacon 5 Nov 15, 2022
Single-Cell Li-Ion Battery Charger with Monitoring

TinyCharger - Single Cell Li-Ion Battery Charger with Monitoring TinyCharger is an ATtiny25/45/85-based, single-cell Li-ion battery charger with selec

Stefan Wagner 26 Dec 30, 2022
A no bullshit battery monitor for OpenBSD

A no bullshit battery monitor for OpenBSD. In particular, really useful for running alongside cwm in case you don't run something like dzen2 or lemonbar. It is designed to be remisicent of the little boxes you get on FVWM and GNUStep.

Ashton Fagg 7 Dec 25, 2022
lcd1602, HD44780 chipset, battery symbol

LCD_HD44780_BATTERY_SYMBOL lcd1602, HD44780 chipset, battery symbol HD44780 LCM battery gauge and symbol design Read This http://wp.me/ph3BR-1ZJ The H

xiaolaba 1 Nov 21, 2021
Open source selfhosted web-based wiki/doc/knowledge management and collaboration system

Tsailun - open source online document and collaboration Open source selfhosted web-based wiki/doc/knowledge management and collaboration system Access

null 125 Dec 30, 2022
A ROS based Open Source Simulation Environment for Robotics Beginners

A ROS based Open Source Simulation Environment for Robotics Beginners

Sulegeyixiu 131 Jan 5, 2023
CS:APP is an excellent material for learning computer systems and systems programming

CS:APP is an excellent material for learning computer systems and systems programming. However, it is inconvenient to use a virtual machine for self-learners. In this repo, I build a Docker image with most pre-requistes installed and attached all lab materials in it.

Guochao Xie 57 Nov 11, 2022
The ESP-BOX is a new generation AIoT development platform released by Espressif Systems.

中文版本 ESP-BOX AIoT Development Framework Important Note: We recommend updating the ESP32-S3-BOX firmware when you first receive the product to have the

Espressif Systems 160 Dec 29, 2022
Open source hardware design and software for OpenPodcar.

OpenPodcar Open Source Hardware Design and Software for OpenPodcar. OpenPodcar_obstacle_avoidance_INB_Atrium.mov Table of Contents I. General Info II.

null 10 Jul 8, 2022
SAE J1939 protocol free to use for embedded systems or PC with CAN-bus

Open SAE J1939 SAE J1939 is a protocol for shaping the CAN-bus message in a specific way that suits industrial vehicles such as tractors, machinery, t

Daniel Mårtensson 127 Dec 23, 2022
Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++, the architecture and usage like Cobalt Strike

Khepri Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++ Description Khepri is a Cross-platform agent, the archi

Young 1.4k Jan 3, 2023
AnalogWrite for ESP32 and ESP32-S2 with LEDC PWM. Includes PWM Phase Control, DAC and Smart GPIO resource management.

analogWrite() ESP32 Installation Instructions This library was tested using using the ESP32 Arduino IDE Boards Manager installation method. Stable rel

null 36 Jan 5, 2023
A terse, flexible language and runtime for creating and executing visual novels.

Fabulist A terse, flexible language and runtime for creating and executing visual novels. Contributing We're open to contributions from anyone and eve

NovelRT 5 Nov 26, 2022
Khepri is a Cross-platform agent, the architecture and usage like Coblat Strike but free and open-source.

Khepri Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++ Description Khepri is a Cross-platform agent, the archi

Young 1.4k Dec 30, 2022