Battery Management System

Battery Management System Overview

The battery management system is a system we can use to monitor and maintain the health of the 6-series battery pack used in the rover. Without this system, we often have to constantly check the battery status to avoid drawing too much voltage and must take extra precautions when using the battery, increasing the effort needed to operate the rover. By using a battery management system, the system will be able to automatically shut off the battery when it is low and also log important statistics such as current and voltage draw to be analyzed later to improve performance. Most importantly, the actual battery status will always be known due to the functionality of the BQ40Z80 and battery longevity will be prolonged.


The BMS is made up of 3 components: the BQ40Z80 battery management system chip, the SD card reader and an LCD screen. The BQ40Z80 is the central brain of the system and handles all of the functions related to manipulating and operating the battery. The SD card reader and the LCD screen are vehicles to display the battery data from the BQ40Z80 in which the SD card stores lifetime data and the LCD screen shows the ongoing status of the battery.


BQ40Z80

The BQ40Z80 uses SMBus protocol to communicate. SMBus is similar to I2C in the protocol timings but is a specific protocol used for battery management purposes. Specific ‘words’ are sent to perform specific tasks such as: “get voltage” or “shutdown”.

The BQ40Z80 also has a layer of registers which must be programmed beforehand with BQstudio. These registers can also be programmed using SMBus by flashing specific values to addresses in the BQ40Z80. However, it is much easier to just use BQstudio for the time being.

Main features:

  • Controlled battery charging and discharging by controlling FET’s to allow charge
  • Connectivity to temperature sensors to monitor the cell temperatures
  • Protection alarms to check monitor specific stats such as voltage, current, temperature. If an alarm is tripped the battery stops operation
  • Permanent fail detection to permanently disable battery operation in case of significant failure
  • Storing of lifetime performance data which can be pulled at any time(data logging)
  • Power modes to reduce battery consumption when battery is not in use

Advanced features(to be implemented in the future):

  • Gas gauging 
  • Cell balancing
  • Advanced charge algorithms to charge the battery at optimal rate

Other features(not to be implemented):

  • Security authentication to control what is written to the chip
  • Gpio capability; interrupts etc
  • Led support

Felix is in charge of this component. 

BQ40z80 Technical Manual - https://www.ti.com/lit/ug/sluubt5b/sluubt5b.pdf?ts=1592446606864 


SD card reader 

To log lifetime data for analysis and to store data in case of failure, the BQ40Z80 will intermittently write data to the SD card. The SD card can be pulled and read afterwards to analyze the battery performance. 

agratton@uwaterloo.ca (Deactivated) is in charge of this component. 


LCD Display - NHD-C12832A1Z-FSW-FBW-3V3

This LCD display will simply show the current status of the battery so during testing/operation the operator can know the status of the battery at any time. 

a8ebrahi@uwaterloo.ca (Deactivated) is in charge of this component.

LCD Display datasheet - https://www.newhavendisplay.com/specs/NHD-C12832A1Z-FSW-FBW-3V3.pdf