DIY Lithium Battery Balancer and monitoring (BMS)

Yeah i blew 5 of my 7 boards track when i accidently shorted two of the connector cables. I just soldered a piece of wire across the broken track and it works good again. One adum1250z did die though.

no metal that i can see. I didn’t burn up the track (checked that to confirm this morning)

It was weird, it was ok for awhile. the test sketch was able to find it, and report voltage temp ect.

Oh well. i guess ill start swapping parts now and see what still works lol

Ok, i have my board working at the moment. seems to have been running for a bit now. My voltage is off so i need to do the calibration. Could Stuart or Colin maybe chime in on which of the calibration boxes to use and how the values are calculated? No worries if not, im gonna dig through the code in a bit regardless :slight_smile:

Im just happy it seems to be stable at the moment

Sigh. Another 710 burned up after just sitting there for over an hour. I wasn’t even messing with it. I was working on a graph thing for my HA system.

Any thoughts? It’s not burning traces. Just keeps frying the 710 after like an hour

ok, so quick update. I did not burn up a second 710 (phew!!) I was having some issues with both some code and the i2c pull ups. Got both figured out. Currently have 1 pack working. Just reflowed a second board and will be testing it shortly once it cools!!

Thanks for the help so far!!!

Ill post updates again soon!! YAY BMS!

1 Like

Calibration should be simple enough - you will need an accurate multimeter, just take a reading of the pack and enter the real value on the web page - the software calculates the correct multiplier/offset for you.

Give it 5 mins to settle down and then check both onscreen values and multimeter. I doubt the readings are out by too much.

On the 710 issues, you may have had a bad batch if you brought from AliExpress and the like, I’ve seen it before where reject chips are sold off.

Is it possible to export your graphs ect you used for EMONCMS so I can import? Thx

board in the wild stuart!!

1 Like

I’m have now completed testing all my cells… I have grouped them within 100mA of each other.
I still have to test the resistance and group them together in packs of 20.
My plan is a 14s setup consisting of groups of 20 cells. I expect to reach 3-4 springs of 14 times 20 cells.
Would it make sense to add one BMS to each block of 20 cells? Or is 14 BMS’s enough? One for each string?
I quite enjoy hot air soldering the BMS’s :wink: but it will become quite large installation once done… like 56 BMS boards :wink: . Have this been tested yet?

BTW, I have built 10 battery modules, and most of them work, so that I can flash the code to them, and provision them, yet on a few the REG710 is getting quite hot… Does this suggest they are faulty? I have looked at and measured the components, and I do not see anything wrong, other than this getting hot…
I do not have any load resistor installed yet, just connected the boards together with a controller…
I must admit that I have shopped some of the REG710 in China, and others from Farnell/Mouser… so maybe that’s the problem? :slight_smile:

Hmm had a few modules running in my test setup, then had to shut it all down… now all the modules are not connecting to the controller… after about 1-2 minutes they start to blink on D4…
The controller works OK, but cannot see any modules…
I have now tried to re-write both the controller FW and the FW of the modules… but still does not help…
The modules also didn’t lit ud solid on D4 after reflash… so I guess they have some configuration stored on the chip?
But this seems a bit strage? Any suggestions are welcome…

I fixed this problem :slight_smile:
It seems that attinys store their information in the EEPROM, and I thought that selecting “EEPROM Not retained” in the board settings cleared that EEPROM, yet this is not the case…
I finally programmed this little code into the attiny, which will clear it…

After this, the module acts as if it is new, and I am able to provision it :slight_smile:

But it seems like the controller does not remember the modules, because after a reset, no modules are found… am I doing something wrong?
(PS: Right now I’m trying out Colin’s version of the software, but I suspect the same issue with the original version, as this is when I first saw the issue…)

Looks like I may have the same issue as CrankyCoder with my 710, I will try to replace it… good thing it is not too small :wink:

The controller doesn’t remember the modules - it scans the i2c bus on reset to find them - if you factory reset the modules it won’t find anything.

Maybe I have to explain it a bit better :slight_smile: . I managed to provision some modules, and they showed their voltage, and everything looks ok… I then had to turn off the whole system, controller and modules…
When I tried to power it up again, the controller was unable to find any of the modules, and after awhile, they started to blink… I then cleared the EEPROM, and reflashed the software to the modules, and they then act as it they were “new”…that is a solid D4 LED after power up… And I was then able to provision them again… but… a reset of the controller brought me back to where the controller was unable to see any of the modules, and they are blinking again… :slight_smile: . So something must be off somehow?

The module’s blink is an “alarm” state which occurs when the module doesn’t get a request from the controller for over a few seconds. It obviously is a problem.

Do you have the pull up resistor on the NodeMCU i2c cable ?

Yes I use the Wemos D1 mini, with two 2.2K pull-ups on D1 and D2
I think I saw that on Andys youtube video… :slight_smile:

…have just tried to replace the resistors to 4.7K… yet no luck there either…

Strange how it works with modules that are reset to defaults…

Try a lower resistance - 1K.

Are you sure you havent got two modules with the same ID ? (they get a unique ID number during the provision process)

Right now I’m only testing with one module…
And I have tried with 2.2K, 4.7K, 10K, 1K and no resistors…
Yet nothing seems to work for me :frowning:
All I get is blinking after awhile…
I have also started to use an external power source instead of the USB power from my laptop…
Of cause the power for the module is from a single 18650…
Are there any debugging I can so? Can I measure voltages somewhere to check that things are working as expected? Strange thing is that I works after I have cleared the EEPROM, and I can add the module as a new one… where it read the voltage and temp with no problems…

Hi Stuart, Colin and all contributors,

I have been watching the progress for a while and finally took the plunge and ordered 10 boards, not put them together yet but from what i can see of what you guys have been doing so far its a great job…

The Balancing is something i am interested in so once i have a few boards put together i will start to look at whats already there and see if i can help out…

I prefer to top balance but i think that if code is there to be allowed to choose your own preference then that would make it easier for most users…

i will post some pics in a couple of weeks when i have had enough time to sit down and solder 3 boards and start testing and playing with the code.

I like a few of the tweaks that colin has made… well done to all that have contributed to this project, i will also be looking at adding an OLED screen to mine so that i can see the status of the cells where they are…