Asselin.Engineer

Battery Management System (Formula SAE Electric)

2018/04/08
ece star
Last Update: 2018/06/15

For our electrical and computer engineering final year project, our team chose to help our university's Formula SAE Electric team by completely refactoring the old Battery Management System (BMS).

A BMS measures and regulates the rechargeable cells in a battery. BMS are required with new battery technologies like LiPo for various reasons (sometimes they explode).

In laptop batteries, there are around 6 LiPo cells. In the electric vehicule we are working on, there are 600.

Our task was to deliver a new system able to measure the entire pack, while following the Formula SAE Electric competitions rules.

The design we chose consists in a master device which communicates to 6 slave devices, each measuring thermistor values and cell voltages on the battery segments.


I am extremely proud of my teammates! They did an insane job on the hardware and I am very lucky to work with them! Our team is 3 electrical engineering students and 2 computer engineering students. Congrats to Nic who became a father of two during this last semester! (BMS + baby Clara).

The project is immense and I honestly did not believe we could deliver the final result on time. Almost everything was completed in only 4 months, while we still had regular classes.

Some of the PCB technology I didn't even know was possible. The master PCB is on 4 layers and the slave's giant connection PCB to the mux and it's thermistors system is flexible!

My job was to design and program most of the software on the TI microcontroller of the master board. This includes the following parts:

  • Create comprehensive and easy to use drivers to manage the slaves (LTC6804)
  • Handle all 120 cell voltage measurements
  • Handle all 192 thermistor measurements (temperatures of the battery
  • Manage multiple ADC and timers to measure the current probe and reference voltages
  • Check the interlock circuit values received on GPIO
  • Provide debugging errors that will be easy to understand when during competitions
  • Manage the charger states and communicate by UART
  • Check for any errors on all measured values and different states of the BMS
  • Manage errors, decide when to shutdown the car
  • Shutdown the car before something explodes
  • Respect strict deadlines from FSAE rules
  • Manage the state of charge
  • Provide power limits to the motor controllers
  • Optimize all of this on a 16 bit MCU
  • Optimize the code for performance while keeping it clean and simple
  • Receive BMS limits and constants from CAN port so it is simple for the SAE team to modify values
  • Load and save in external EEPROM fail safe states, parameters and state of charge
  • Test all of this independently on a demo board
  • Integrate with our custom BMS hardware
  • Test each hardware interface independently
  • Test
  • Test more

The battery pack, featured on a Matworks racing-lounge blog post!