The authoritative location for this project is: https://github.com/sectioncritical/zeva24_firmware
NOT SUPPORTED BY ZEVA
This project, and the owner of this repo, have no association with ZEVA. I made this project based on the design files released to open source by ZEVA but they have nothing to do with this repository. Please do not ask ZEVA for help with this project.
This is the ZEVA 24-cell Lithium BMS Module firmware. See this link for the product page (working at the time of this writing):
https://www.zeva.com.au/index.php?product=143
ZEVA was a company that makes electric vehicle components such as battery management systems. In August 2021 they converted their product to open source. See the notice here (ZEVA home page working at the time of this writing):
Here is the link for the open source package of the BMS24 package. This is where I downloaded the original design documents package for conversion to this repo:
https://www.zeva.com.au/Products/designFiles/ZEVA_BMS24.zip
The design documents were released under the MIT License. Refer to the LICENSE file.
This project continues to use the same license.
This project is firmware for the above-mentioned ZEVA BMS24 board. It starts with the original firmare released by ZEVA, but with modifications over time. See the commit history to see the historical changes.
The original functionality is versioned and released in this repository as
1.0.0
.
All changes after that will be versioned using semantic versioning,
with minor versions (ex: 1.1.0) for new features that remain compatible with
the original protocol, and major versions (ex: 2.0.0) when it is no longer
compatible with the original.
The original firmware has a simple CAN protocol that allows you to read the voltage of each cell as well as 4 temperature sensors. You can set the voltage threshold for shunting.
See the CHANGELOG for a list of changes since the original release.
There may also be future modifications to the original board design. This project will track board changes with firmware updates as needed.
Here is the BMS CAN Protocol.
When the BMS firmware is installed on a board and the board is deployed into a battery system, you can read the cell voltages via a CAN bus protocol. The Monitor Utility is a simple Python program that will read the voltages.
See the build directory.
Note: The first commit in the src/
directory is the original, unmodified
source code from ZEVA.
See this document for more information about the hardware configuration.
This project was created as a result of ZEVA making their products open-source. Other project related to this are: