Saturday, August 16, 2014


The Arduino Battery Management System is intended to act as the 'voice of the battery' in part of a complete system.  It will provide to anyone who is interested the following information via the CAN network:
  1. Current battery Voltage
  2. Current battery Current (in or out)
  3. Current battery Temperature
  4. High Priority messages when battery reaches high voltage limit, or from a high dV/dT event.
  5. Guidance to charging sources:  Target Voltage and Amp limit for battery charging
  6. SOC estimate, likely based on coulomb counting with reset at full SOC.

Features 1..4 are intended to reduce wiring clustering from multiple charging sources to the battery.

Feature #5 is the foundation that can be used to build a systems approach with all charging sources working well together in a coordinated fashion.

Feature #6 is kind of  a free-be, given the Arduino BMS will be doing most of this work anyway.

Other capabilities of the BMS will be based on optional wiring and attachments, including:
  • Cell based BMS fault loop - allows cell based BMS modules to indicate a limit of an individual cell has been reached.
  • Two 'Feature Out' ports which could be used for:
    • PWM variable speed cooling fan control
    • Last chance safety cutoff - disconnecting battery from bus if needed for protection.
  • 'Feature in' port which can be used for ????  (Just have an extra pin left over on the ATmega uC)

As this device will be action 24x7, care should be taken with power usage.  Example:  Placing CPU into various sleep modes between sample periods.

No comments:

Post a Comment