VESC® BMS Firmware
This is the source code of the
VESC Battery Management System (BMS)
firmware. It is designed to integrate well with the VESC motor control firmware
as well as with VESC Tool.
Features
• Cell monitoring and balancing
• Charge control
• Balancing after charging
• Low-power sleep mode
• CAN-bus and USB
• Ah and Wh counting
•
Multiple hardware configurations for different cell count and current mea-
surement topologies
• Distributed balancing across multiple BMSes
• Bootloader and firmware update support with VESC Tool
• Full configuration support with VESC Tool
Overview
The three main tasks of the VESC BMS are
1)
Cell Balancing,
2)
Charge Control
and
3)
providing information to the power consumer (e.g. the VESC motor
controller). The power consumer is then responsible for limiting the current
draw based on the information provided by the VESC BMS.
1) Cell Balancing
Cell balancing is done by connecting a small load (in the form of a resistor) to
cells with higher voltage than the cell with the lowest voltage until they reach
the same voltage. There are a number of parameters that control how and when
balancing is done. At some point they will be added to this document, but for
now they can be found in the VESC BMS -> Balancing settings in VESC Tool
when connected to the VESC BMS. Each parameter has a help text in VESC
Tool.
Maximum Balancing Channels
To limit heat generation of the balancing resistors, the VESC BMS can limit the
maximum number of simultaneous balancing channels. When the channels have
to be limited, the cells that are most out of balance will have higher priority and
will be balanced first. In most cases this should not increase the balancing time,
as it will spread the heat generation more evenly over the balancing duration.
1