Python code to monitor and log battery data
Switch branches/tags
Clone or download
Permalink
Failed to load latest commit information.
html Add charge state code Jul 30, 2018
system Add piptest.sh Jul 30, 2018
.gitignore Merge branch 'testing' Oct 14, 2014
AtoDs.pdf add circuit diagrams Jun 17, 2015
BMSbarePCBback.jpg Add pictures of mods to BMS PCB Jun 1, 2018
BMSbarePCBfront.jpg Add pictures of mods to BMS PCB Jun 1, 2018
BMScabling.jpg Add pictures of mods to BMS PCB Jun 1, 2018
BMSsingle.jpg add jpg of single cell monitor May 11, 2018
BMSsingle.pdf Fix Vdd Mar 19, 2017
BMStoBattery.jpg Add pictures of mods to BMS PCB Jun 1, 2018
BalanceResistorCalculations.xlsx added Balance Calcualtions spreadsheet Dec 29, 2015
BatteryMonitor.jpg Committer: Simon Matthews <simat@simat-laptop.(none)> Sep 15, 2014
BatteryMonitor.pdf Fix Vdd Mar 19, 2017
LICENSE Initial commit Sep 8, 2014
README.md Update README.md Nov 24, 2017
ResistorDivider.jpg Committer: Simon Matthews <simat@simat-laptop.(none)> Sep 15, 2014
ResistorDivider.pdf fix balance resistor network Dec 29, 2015
ads1115.py add import time Jun 6, 2018
alarms.py Add explicit link to battery data source for alarms Oct 12, 2018
batday.jpg Add batday screenshot Jun 3, 2018
batteries.py Add explicit link to battery data source for alarms Oct 12, 2018
battery12cellBMS.cfg Update config files for latest software Sep 30, 2018
battery15cellBMSPIP.cfg Add explicit link to battery data source for alarms Oct 12, 2018
battery16cell.cfg Convert alarms to own seperate class Mar 12, 2018
battery16cellBMS.cfg Add port search spec to config file, fix bugs in 16 cell bms files Oct 20, 2018
battery1cell.cfg bugfixes Apr 25, 2018
battery1cellPIP.cfg bugfixes Apr 25, 2018
battery4cell.cfg Convert alarms to own seperate class Mar 12, 2018
battery8cell.cfg Convert alarms to own seperate class Mar 12, 2018
battery8cellADS1115.cfg fix filename May 8, 2018
bms.py Add port search spec to config file, fix bugs in 16 cell bms files Oct 20, 2018
bmstest.py Improve BMS and PIP diag programs Jun 6, 2018
calibrate.py chages from Geoffs system Aug 10, 2015
caligain.py bug fixes to new data imput code Dec 3, 2017
calvcourse.py Change for Python3 and add course calibration Dec 2, 2017
calvfine.py Change for Python3 and add course calibration Dec 2, 2017
calvfineall.py Change for Python3 and add course calibration Dec 2, 2017
config.py Move USB port to config file Nov 24, 2017
filter.pdf add circuit diagrams Jun 17, 2015
getatod.py fix problems of working with new Adafruit libraries Dec 10, 2017
getbms.py update to adding pip4048 inverter/charge controller and improve error… Apr 6, 2018
getdata.py Add charge state code Jul 30, 2018
logger.py Work on user configurable logging Apr 24, 2018
pip.py Add port search spec to config file, fix bugs in 16 cell bms files Oct 20, 2018
piptest.py add QPIRI details Jul 30, 2018
summary.16cell add logging of max voltage while not charging Jun 28, 2016
summary.1cell reorganise way power is logged Apr 13, 2017
summary.4cell Changes to be committed: Mar 11, 2017
summary.8cell add logging of max voltage while not charging Jun 28, 2016
summary.bms.12cell Upgrade to Python3. Nov 24, 2017
summary.bms.15cell Add temperture and auto balance monitoring May 18, 2018
summary.bms.16cell Add port search spec to config file, fix bugs in 16 cell bms files Oct 20, 2018
summary.py Add charge state code Jul 30, 2018

README.md

BatteryMonitor

This project provides the information and software to make a low cost ($50-150) and flexible device to monitor and log individual battery cell voltages and other battery data either using a cheap Chinese Bluetooth BMS board or a Beaglebone Black Linux computer. The monitoring software can also set and reset I/O pins on the Beaglebone in response to cell voltages going out of programmed limits. Programming of the I/O is done via the config file. I have also written some webpages to display batery information on any web browser via the internet. For those that don't need or want all the IO and additional memory that the Beaglebone Black offers I see no reason why this project could not be run on the various models of the Raspberry Pi including maybe even the Raspberry Pi Zero which could cut the cost to below $50, or any Linux computer which has an accessable built in I2C bus or if using the Bluetooth BMS board a USB port. It would even be possible to run it on your router running OpenWRT or something similar.

The primary use for this would be to monitor large Lithium based battery banks of up to 48 volts but it would also be useful for other technologies like Lead Acid batteries. In my case I am using it to monitor and log data from our 24 volt 360ah LiFePO4 battery bank used in our off grid power system.

The main documentation for this project can be found in the wiki here https://github.com/simat/BatteryMonitor/wiki

My thanks to Adafruit for the ADS1X15 a/d drivers from here, https://github.com/adafruit/Adafruit_ADS1X15

I have made this an open source project with the hope that it maybe useful to others and if found useful that others will get involved and broaden the scope of the project. Please feel free to make suggestions, report bugs or provide positive or negative feedback. I am new to using the Beaglebone, Git and Python so suggestions on how to use features of the Beaglebone, Git and Python that I might not be aware of could also be useful.