Code Monkey home page Code Monkey logo

battman-firmware's Introduction

Battman Firmware

Firmware for the "battman" battery management system.

Setup

Clone repository.

git clone https://github.com/raphaelchang/battman-firmware.git

Compiling

You'll need to install the following gcc arm cross compiler.

Mac OS

brew tap PX4/homebrew-px4
brew update
brew install gcc-arm-none-eabi

Ubuntu

sudo apt-get install gcc-arm-none-eabi

To build the files, navigate to the root of the repository and run the following:

make

Programming

You'll need to install dfu-util v0.9 or higher.

Mac OS

On Mac, the homebrew version is adequate.

brew install dfu-util

Ubuntu

On Ubuntu 14.04, dfu-util must be installed from source. See instructions here: http://dfu-util.sourceforge.net/build.html.

Uploading code

  1. Plug in Battman to computer via USB.
  2. Ensure that nothing is connected to the discharge output of the BMS.
  3. Enable bootloader mode by reseting the board while the bootloader button is held down.
  4. Ensure that no other boards are connected that are also in bootloader mode.
  5. Run the following to build and upload the code. make upload

battman-firmware's People

Contributors

anuragmakineni avatar brentyi avatar raphaelchang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

battman-firmware's Issues

Feature TODO List

  • Turn Board On
  • Turn Board Off
  • SPI Support (ADC and Balancer)
  • Detect Charger Plugged In
  • Charging Algorithm
    1. Enable Charging Circuit
    2. Balance Cells
    3. Disable Charging Circuit
  • Current Sensor Read
  • Coulomb Counting
  • Over Current Protection
  • Under Voltage Protection
  • Over Voltage Protection
  • CAN Support

Periodic wake using RTCC alarm

  • Determine how long battery pack left unused
  • Discharge cells to storage level after long period
  • Reset alarm on every shutdown

missing hw_conf_v4.2.h

hw_conf.h:13:26: fatal error: hw_conf_v4.2.h: No such file or directory
#include "hw_conf_v4.2.h"

Precharge routine

  • Turn on precharge FET before main discharge FET
  • Monitor rising of output voltage to determine when precharge is complete
  • Prevent turning on into short circuit by checking for output voltage rising above threshold within few milliseconds

Cell voltage level protection

  • Cut off discharge when any cell is over-discharged
  • Warn user when cell is low
  • Warn user and send CAN message when cell is overcharged

State-of-charge tracking and estimation

  • Implement SOC tracking algorithm using coulomb counting from current measurements
  • Update SOC using voltage limits
  • Update battery capacity and state-of-health

Connecting charger with powered off bms problem

When i connect the charger while the bms is powered off, the lights start flashing green very fast, and nothing is responsive. Using the switch or connecting the USB port gets the bsm out of this weird loop and turns on.

Accessory support

  • Options for various accessories (LED, WS2812, segment display, LCD display, buzzer, etc.)

Cell balancing routine

  • Bleed off higher voltage cells after charging above a certain threshold
  • Synchronize with charge routine

Current controlled charge routine

  • Current controller using current sensor as feedback and voltage as output
  • Three charging modes (current-controlled boost, current-limited boost, bypass)
  • Cut off at CV completion (boost mode) or fully charged voltage (bypass mode)
  • Precharge at very low battery voltage
  • Synchronize with balancing routine
  • Check for correct charger input voltage

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.