I use 8 pin 7s connectors with 18 guage wire going to them for each of my packs, for balancing and monitoring. I have that same capacity checker that you have. Mine will attempt to balance my large packs @ ~50ma, but it will begin overheating after just a few mins, and the heat will usually burn through the plastic before the component blows at 30-60 mins. Just an FYI, if you haven't tried yet ;)
Interesting project. I'm anxious to see how this works out for you Adam. Still it's yet another BMS designed to convert our valuable power into waste heat. I have a tenative arduino-based design in my head that incorporates a boost converter on your output stage to be able to transfer the power drawn from your highest bank to the lowest, thereby saving 90% of the power and balancing twice as many banks at once with minimal heat produced. But that is still a ways off. For now I balance my 10p to 25p banks of my 7s packs to 4.00v manually via charging. Then after 10 full cycles from 4.10v down to 3.40v they are all within 0.003v (3 milli-volts) when charged back to 4.00v as a pack. So manually balancing once every 30-40 cycles saves me a lot of waste heat and unnecessary lifetime cycles of the cells for now :)
Looking good! Keep up the amazing work! I'm a bit dangerous I suppose... The Lithium pack that runs my Solar Camera is not balanced at all. :P Though I'll probably be changing that once I get around to putting together version 3.
I think you make a good point - but I live in hope that my packs will be even enough that balancing losses should be fairly minimal. I have been thinking about using an eight pack - connect it to the highest pack to discharge that one, then connect it to the lowest pack to increase that one. It includes the least amount of dc2dc conversion and hopefully the least losses - but I'm going to try this first :-)
The basic flaw in the current state-of-the-art for BMSs IMO is that they have to assume identical cells in each bank. However cells have widely varying discharge/charge curves, even ones with identical ratings from the same manufacturer. This has almost nothing to do with internal impedance btw. One cell may be at 50% charge at 3.85v while it's neighbor may be down to 3.35v at 50% charge. This is averaged out to a degree by shorting many of them in parallel as we do. But for a BMS, it is seeing a pack balanced at say 4.0v, but then at 3.8v it is seeing out of balance again due to these differing curves. So now it rebalances at 3.8v and your solar panels get sun and it is out of balance again. So, by design, the BMS is working non-stop whenever the potential of your packs change, even thogh they were perfectly balanced at a specific voltage =(
Exactly my thoughts. Well said. I have always found these "discharging" balancers to be a wrong way to do the job for all the reasons you mentioned. Wasted energy might not be a significant problem when you charge your cells with mains, but when it comes to solar power it becomes a concern. I hope you finish your project and share it with us.
I too have been wondering how a "good" BMS would work but I'm a newbie to electronics. My main concern would be the life cycle of the batteries. Discharging one pack to charge another artificially reduces the life cycle. I guess burning off energy by bypassing and dissipating only when some packs are underbalanced would be preferable. The energy won't get used or stored anyways in that case.
im glad I am starting my battery bank late that way I can know all the tricks of what you guys have learned and experimented with and I will have the best battery bank the first time! that is a really cool circuit!!! cant wait to see it in action!
Hi, at 5:05 you say that the additional resistors in the potential divider contribute to reading inaccuracies. In fact what happens is as you increase the divisor caused by the potential divider as you add cells, results in the decrease in resolution of the raw data from the ADC due to having to multiply back up to the measured voltage in software. Did you breadboard the circuit before sending the design off?
Interesting.... I have an exact Capacity Controller as you. I bought it for shits and giggles, but never got around to playing with it. After seeing your video, I opened mine up and I think you would've benefited by looking inside. There are 3x 100 Ohm resistors in parallel for each input. Each of these 33.333 Ohm resistor packs are driven by a PNP transistor marked 1TY, which is the same as S8550. Each of those PNP transistors are driven by an NPN transistor marked 1AM which is the same as 2N3904. You should've reverse engineered the PCB of the Capacity Controller, and make room for beefier PNP transistors + heat sink, and power resistors to limit the current to whatever you like. You could then de-solder the parts you needed from the Capacity controller and solder them on the new PCB, excluding the dinky 1TY and resistor arrays. Same LCD, Same everything. All else would stay the same. I am pretty sure you could even use logic level power mosfets instead of the PNP transistors, since it looks like the transistors are operated in switch mode (on or off), and rely on the resistors to limit the current. Anyways, just a thought. Good luck.
Was thinking the same thing as ive ordered this controller too. Id prefer to beef it up vs engineering a new one Edit: If you wanted a 100ma capable balancer would it even be possible to wire two of these capacity controllers in parallel for a quick solution?
Not true. The top portion of the PCB has traces going to transistors from the ports0. The bottom of the PCB has traces going to the ADC converter R/C filtering which goes to the MCU.
UFOhunter The capacity checker has the ability to measure the voltage, what I meant is that you can't get voltage readings and balance status with external microcontroller
Ardunio Due has 13 bit precision and on its ADC. This means even on the highest cell you would get 0.01 volt precision. You only need two resisters in the voltage divider per cell not many as you showed in your diagram, the inaccuracy of the resisters can overcome by putting in a adjustment which you can set via calibrating with a voltmeter.
Wow - Stuart has already updated the schematic and the gerber files for his project (fixing that thin track) just hours after posting this video. So you can download the latest files as ever on his github page... admw.uk/diyBMS Cheers Stuart!
I took a look at the schematic to try to figure out how Mr. Pittaway measures the voltage of the packs in series. Basically how it overcame the problem of measureing an increasing voltage. The schematic shows the battery between Batt-raw and ground, with Batt-raw going to the ADC via resistor divider network. Is ground in this schematic not at 0 volts ground but just a common point at some voltage depending on where the pack is in the series ?
I'm thinking in case of 3-4 separate packs of 3.7v to rewire them all in parallel with a switch. In theory, they should level all up and then put them back in the original 3s -4s. For this, of course, the battery can't be used in desired voltage but time to time maybe can be a solution to balance everything. Like this, I'm thinking that you don't have to burn the excess power and it will go in the lower cells. For real-time balancing will be of course better a BMS but I think will work. I'm curious what other think about this.
Yes I have seen this done. If this process is completed regularly then very little current should flow between packs when you connect them in parallel - good because you’re not stressing them (or your cable/relay), but also it may take quite some time to even them out perfectly. As you say - it all boils down to whether you can take you battery offline or not - and for how long.
I think another cheap solution that could work fairly well is to get something like the chips on those super capacitor banks and just use a more beefy 1-5W resistor.
If you have room, do not fit the power resistor flush with the board. Leave a couple of mm or 3 of air gap so heat can dissipate as airflow rather than warming up the pcb. The resistor should be ok suspended on its wires, but feel free to put a small bulb of silicon sealant each end to help if you want, or if the boards see any vibrations in their application.
A good suggestion, but in the end I’ve gone for a fairly high resistance for my power resistors - so they don’t generate a lot of heat. It’s slows down the balancing, but as long as the packs are fairly even I’ve found it has worked for me. Cheers
@@AdamWelchUK Thanks for your kind reply. Actually I was planning to build a battery pack of 3s7p(21 cells). So now I do require 3 modules and 1 controller right?
Hi Adam i was wondering if you know were i can get (10) SE30AFG-M3/6A as i am having trouble sourcing them as most places have a lead time of over a year. I don't know if anyone else is having the same problem. Its the last component i need to start the project. The only place i can find them is from Mouser or DigiKey but both want twelve pounds postage and the component are only two pounds eighty six pence. Any input from you or your followers would be very much appreciated.
I believe so, but it’s a little tricky as the comms needs to be two way. The module needs to inform of the cells voltage/temperature and receive instruction over what it needs to do (discharge or not).
Thanks for that and really appricate it I found 3 cells made up as a 12 volt battery other day in the road and got a eletric bike project to do Thanks to your videos i am now able to build a battery for it which will work out a lot cheaper then buying RC lipos and lighter then lead acid batterys also cheaper to replace if cell goes down
Wow that what i was creating lol using the same parts tho mine is abit more simple and didn't have the input buckboost, and using a mosfet with heatsick rather than using a big resistor. I will check out his code because my problem is not with the circuit but with bus communication when sending data to the master from lots of attinys over i2c. Cant wait to see more on this.
No I don’t think so. This is Stuart’s project and he’s open sourced it and the parts are fairly cheaply available. It’ll be interesting to see if someone does though!
Hi Adam looks good so far just a thought why not have the bms made up in China also I'm sure that it probably won't cost that much to do rather than pouring your own time into it anyway just an idea
It’s an interesting question. A few of the pcb fabrication houses will also complete the board for you but often it’s only do-able with components on their list. I’m looking forward to building them to be honest. I don’t expect soldering the pcb is going to take all that long.
Ya I understand that I'm looking forward to seeing the end result myself I wish I understood more about electronics I would have had a bash at myself anyway I think it cool that you're going to do it
Well with a bit of careful purchasing I’ve managed to get all the components and PCBs for about £7.40 per module. I think that’s pretty good value. But if you want really cheap... grab the capacity controller. :-)
Adam Welch: There is an active, rather than passive, solution available from Aliexpress (www.aliexpress.com/snapshot/0.html?spm=a2g0s.9042311.0.0.DKjQMr&orderId=505456887330944&productId=1950876697) which comes in at about $20 per module and uses the excess voltage/power from any higher value cells to ‘top up’ any lower value cells. This effectively redistributes power as opposed to burning off excess power and is therefore potentially more efficient in a solar system. I have recently purchased this to try out on a LifePO4 battery made up of 4 40A cells.
Oliver Thomas: if your search on google (or the Aliexpress website) for “QNBBM 4S/12V Lithium Battery Equalizer Balancer BMS for LIFEPO4,LTO NCM LMO 18650 DIY Pack”, that should take you to the product. There is also a single rather than 4 cell unit available . Here is a link (www.gne2010.com/product2) to the manufacturers web site. This link (diytechandrepairs.nu/1s-modular-active-balancer-reviewed-and-trashed/) also gives some background on active balancing.
I recently got a battery resistance meter, you can see it in my recent Mailbag video, looks like it is what you need to check the cells: th-cam.com/video/YANgRRFOipk/w-d-xo.html
A long time ago I found a project which used opto-isolators for the isolation: th-cam.com/video/BlQDPORL8pI/w-d-xo.html but this project seems neater and I do like the standardized single-bus communication protocol with these modules.
Thanks. I have seen some projects using opto's but the ADUM1250ARZ is leaps forwards really. Such a useful IC for this project. I believe Stuart thinks there's still a fair bit of work to do with the code (and much of it is beyond my skill level) but to me the hardware looks pretty much set. It's something I'm going to enjoy testing I think.
I use 8 pin 7s connectors with 18 guage wire going to them for each of my packs, for balancing and monitoring. I have that same capacity checker that you have. Mine will attempt to balance my large packs @ ~50ma, but it will begin overheating after just a few mins, and the heat will usually burn through the plastic before the component blows at 30-60 mins. Just an FYI, if you haven't tried yet ;)
Interesting project. I'm anxious to see how this works out for you Adam.
Still it's yet another BMS designed to convert our valuable power into waste heat. I have a tenative arduino-based design in my head that incorporates a boost converter on your output stage to be able to transfer the power drawn from your highest bank to the lowest, thereby saving 90% of the power and balancing twice as many banks at once with minimal heat produced. But that is still a ways off.
For now I balance my 10p to 25p banks of my 7s packs to 4.00v manually via charging. Then after 10 full cycles from 4.10v down to 3.40v they are all within 0.003v (3 milli-volts) when charged back to 4.00v as a pack. So manually balancing once every 30-40 cycles saves me a lot of waste heat and unnecessary lifetime cycles of the cells for now :)
Looking good! Keep up the amazing work!
I'm a bit dangerous I suppose... The Lithium pack that runs my Solar Camera is not balanced at all. :P
Though I'll probably be changing that once I get around to putting together version 3.
I think you make a good point - but I live in hope that my packs will be even enough that balancing losses should be fairly minimal. I have been thinking about using an eight pack - connect it to the highest pack to discharge that one, then connect it to the lowest pack to increase that one. It includes the least amount of dc2dc conversion and hopefully the least losses - but I'm going to try this first :-)
The basic flaw in the current state-of-the-art for BMSs IMO is that they have to assume identical cells in each bank. However cells have widely varying discharge/charge curves, even ones with identical ratings from the same manufacturer. This has almost nothing to do with internal impedance btw. One cell may be at 50% charge at 3.85v while it's neighbor may be down to 3.35v at 50% charge. This is averaged out to a degree by shorting many of them in parallel as we do.
But for a BMS, it is seeing a pack balanced at say 4.0v, but then at 3.8v it is seeing out of balance again due to these differing curves. So now it rebalances at 3.8v and your solar panels get sun and it is out of balance again. So, by design, the BMS is working non-stop whenever the potential of your packs change, even thogh they were perfectly balanced at a specific voltage =(
Exactly my thoughts. Well said. I have always found these "discharging" balancers to be a wrong way to do the job for all the reasons you mentioned. Wasted energy might not be a significant problem when you charge your cells with mains, but when it comes to solar power it becomes a concern. I hope you finish your project and share it with us.
I too have been wondering how a "good" BMS would work but I'm a newbie to electronics.
My main concern would be the life cycle of the batteries. Discharging one pack to charge another artificially reduces the life cycle.
I guess burning off energy by bypassing and dissipating only when some packs are underbalanced would be preferable. The energy won't get used or stored anyways in that case.
im glad I am starting my battery bank late that way I can know all the tricks of what you guys have learned and experimented with and I will have the best battery bank the first time! that is a really cool circuit!!! cant wait to see it in action!
Hi, at 5:05 you say that the additional resistors in the potential divider contribute to reading inaccuracies.
In fact what happens is as you increase the divisor caused by the potential divider as you add cells, results in the decrease in resolution of the raw data from the ADC due to having to multiply back up to the measured voltage in software.
Did you breadboard the circuit before sending the design off?
Interesting....
I have an exact Capacity Controller as you. I bought it for shits and giggles, but never got around to playing with it.
After seeing your video, I opened mine up and I think you would've benefited by looking inside.
There are 3x 100 Ohm resistors in parallel for each input. Each of these 33.333 Ohm resistor packs are driven by a PNP transistor marked 1TY, which is the same as S8550. Each of those PNP transistors are driven by an NPN transistor marked 1AM which is the same as 2N3904.
You should've reverse engineered the PCB of the Capacity Controller, and make room for beefier PNP transistors + heat sink, and power resistors to limit the current to whatever you like.
You could then de-solder the parts you needed from the Capacity controller and solder them on the new PCB, excluding the dinky 1TY and resistor arrays. Same LCD, Same everything. All else would stay the same.
I am pretty sure you could even use logic level power mosfets instead of the PNP transistors, since it looks like the transistors are operated in switch mode (on or off), and rely on the resistors to limit the current.
Anyways, just a thought. Good luck.
Was thinking the same thing as ive ordered this controller too. Id prefer to beef it up vs engineering a new one
Edit: If you wanted a 100ma capable balancer would it even be possible to wire two of these capacity controllers in parallel for a quick solution?
Good question, I am not sure. I don't see why not. Then again, they might fight each other some how.
Good idea, but you won't have individual cell voltage readings in that case, for remote monitoring and protection.
Not true. The top portion of the PCB has traces going to transistors from the ports0. The bottom of the PCB has traces going to the ADC converter R/C filtering which goes to the MCU.
UFOhunter The capacity checker has the ability to measure the voltage, what I meant is that you can't get voltage readings and balance status with external microcontroller
Wow. This is FANTASTIC. I recently put together my 4s80p packs and trying to figure out a good way to monitor/balance. I like where this is heading!
Stuart is keen to point out the code is still a work in progress. I'm pretty confident the hardware is all set though :-)
Ardunio Due has 13 bit precision and on its ADC. This means even on the highest cell you would get 0.01 volt precision. You only need two resisters in the voltage divider per cell not many as you showed in your diagram, the inaccuracy of the resisters can overcome by putting in a adjustment which you can set via calibrating with a voltmeter.
Wow - Stuart has already updated the schematic and the gerber files for his project (fixing that thin track) just hours after posting this video. So you can download the latest files as ever on his github page... admw.uk/diyBMS Cheers Stuart!
I took a look at the schematic to try to figure out how Mr. Pittaway measures the voltage of the packs in series. Basically how it overcame the problem of measureing an increasing voltage. The schematic shows the battery between Batt-raw and ground, with Batt-raw going to the ADC via resistor divider network. Is ground in this schematic not at 0 volts ground but just a common point at some voltage depending on where the pack is in the series ?
would love to see the end result.
You'll have to give me a bit of time :-)
How would you secure the thermistor to the battery pack?
I'm thinking in case of 3-4 separate packs of 3.7v to rewire them all in parallel with a switch. In theory, they should level all up and then put them back in the original 3s -4s. For this, of course, the battery can't be used in desired voltage but time to time maybe can be a solution to balance everything. Like this, I'm thinking that you don't have to burn the excess power and it will go in the lower cells. For real-time balancing will be of course better a BMS but I think will work. I'm curious what other think about this.
Yes I have seen this done. If this process is completed regularly then very little current should flow between packs when you connect them in parallel - good because you’re not stressing them (or your cable/relay), but also it may take quite some time to even them out perfectly.
As you say - it all boils down to whether you can take you battery offline or not - and for how long.
I think another cheap solution that could work fairly well is to get something like the chips on those super capacitor banks and just use a more beefy 1-5W resistor.
If you have room, do not fit the power resistor flush with the board. Leave a couple of mm or 3 of air gap so heat can dissipate as airflow rather than warming up the pcb. The resistor should be ok suspended on its wires, but feel free to put a small bulb of silicon sealant each end to help if you want, or if the boards see any vibrations in their application.
A good suggestion, but in the end I’ve gone for a fairly high resistance for my power resistors - so they don’t generate a lot of heat. It’s slows down the balancing, but as long as the packs are fairly even I’ve found it has worked for me. Cheers
This looks very interesting I will look forward to seeing this project through.
Looks like a good option to explore. I like it ☺
Fingers crossed. The code is still a work in progress but I’m confident that the hardware is pretty much set - so the fun starts here. :-)
So a single diybms is alone enough to monitor the entire battery pack or do we need more modules of it to monitor the pack?
One module per cell and one controller per battery bank. So for example my 7s20p lithium ion pack uses seven modules and one controller.
@@AdamWelchUK Thanks for your kind reply. Actually I was planning to build a battery pack of 3s7p(21 cells). So now I do require 3 modules and 1 controller right?
raaghav krishna Thats right. Have you seen there is a new version? Check out Stuart’s github for more info.
@@AdamWelchUK yeah sure I will look into it .Thanks for the info !!
Very excited for this project! I've been looking for something like this.
We'll be watching to see how this one performs. Are you planning on adding an extra wire to that thin track, as a safety measure? Thanks Adam.
Consider using LTC6804?
when you order the parts can you also give a list of where you bought them. I am very interested in this and will be watching your videos
Yes I will do this in a follow up video when I can. Cheers OTE
thanks
Good find. can you link us where you got the PCB's made. Thanks
I used Allpcb.com when they had a cheap offer on, but I’ve also used jlcpcb which is very cheap, but takes a while.
Hi Adam
i was wondering if you know were i can get (10) SE30AFG-M3/6A as i am having trouble sourcing them as most places have a lead time of over a year. I don't know if anyone else is having the same problem. Its the last component i need to start the project. The only place i can find them is from Mouser or DigiKey but both want twelve pounds postage and the component are only two pounds eighty six pence. Any input from you or your followers would be very much appreciated.
Couldn’t you use opto-isolators to link uC together?
I believe so, but it’s a little tricky as the comms needs to be two way. The module needs to inform of the cells voltage/temperature and receive instruction over what it needs to do (discharge or not).
Oh my gosh I am so hyped this is such a great channel!
Thank you!
Nice project. Look forward to seeing how it works for you 😀
Great project Adamt! The alternatives are so expensive.
Has anyone tries using repacker using cell resistance, instead of capacity, and kinda shoot for a happy medium! Maybe it could work?
Weredo you get the plastic trays for the cells from ?
I get them from ebay.. ebay.to/2IvB826
Thanks for that and really appricate it
I found 3 cells made up as a 12 volt battery other day in the road and got a eletric bike project to do
Thanks to your videos i am now able to build a battery for it which will work out a lot cheaper then buying RC lipos and lighter then lead acid batterys also cheaper to replace if cell goes down
What about the INA219?
Wow that what i was creating lol using the same parts tho mine is abit more simple and didn't have the input buckboost, and using a mosfet with heatsick rather than using a big resistor. I will check out his code because my problem is not with the circuit but with bus communication when sending data to the master from lots of attinys over i2c. Cant wait to see more on this.
Awesome project. Nice 3d printed clip/case
Thanks Trent
awesome project! looking forward for the end result. would you mind sharing with us the website where you printed the board, Adam? :)
I used AllPCB.com when they had a $5 offer on. I’ve also used jlcpcb.com which is cheaper, but much slower to deliver.
Adam Welch thank you very much. :)
Hi will you be making these available for sale or able to supply as a kit
No I don’t think so. This is Stuart’s project and he’s open sourced it and the parts are fairly cheaply available. It’ll be interesting to see if someone does though!
Adam Welch that's fair enough but could you put up the link to the PCB supplier and the part number of the board
Thanks for this. Keep updating.
Hi Adam looks good so far just a thought why not have the bms made up in China also I'm sure that it probably won't cost that much to do rather than pouring your own time into it anyway just an idea
It’s an interesting question. A few of the pcb fabrication houses will also complete the board for you but often it’s only do-able with components on their list. I’m looking forward to building them to be honest. I don’t expect soldering the pcb is going to take all that long.
Ya I understand that I'm looking forward to seeing the end result myself I wish I understood more about electronics I would have had a bash at myself anyway I think it cool that you're going to do it
Hello Adam. Is there any cheaper alternative to this bms?
Well with a bit of careful purchasing I’ve managed to get all the components and PCBs for about £7.40 per module. I think that’s pretty good value. But if you want really cheap... grab the capacity controller. :-)
Adam Welch: There is an active, rather than passive, solution available from Aliexpress (www.aliexpress.com/snapshot/0.html?spm=a2g0s.9042311.0.0.DKjQMr&orderId=505456887330944&productId=1950876697) which comes in at about $20 per module and uses the excess voltage/power from any higher value cells to ‘top up’ any lower value cells. This effectively redistributes power as opposed to burning off excess power and is therefore potentially more efficient in a solar system. I have recently purchased this to try out on a LifePO4 battery made up of 4 40A cells.
Dorian Wiskow that link doesn’t work - any chance of trying to link to it again? I’m interested to see the product you recommend. Thanks.
Oliver Thomas: if your search on google (or the Aliexpress website) for “QNBBM 4S/12V Lithium Battery Equalizer Balancer BMS for LIFEPO4,LTO NCM LMO 18650 DIY Pack”, that should take you to the product. There is also a single rather than 4 cell unit available . Here is a link (www.gne2010.com/product2) to the manufacturers web site. This link (diytechandrepairs.nu/1s-modular-active-balancer-reviewed-and-trashed/) also gives some background on active balancing.
Dorian Wiskow that’s got it. Thanks! Looks like an interesting product if it works as well as claimed.
Nice work sir😺
i use lm358 as a difference amplifier
You had all the values on your schematic except the power resistor.
Well I’ve not yet quite decided on the value of that yet...
I recently got a battery resistance meter, you can see it in my recent Mailbag video, looks like it is what you need to check the cells: th-cam.com/video/YANgRRFOipk/w-d-xo.html
omg you can use a diff.amp on each cell easy..
Nice !!!
It seems a bit overkill if you ask me!
Cool 😀
A long time ago I found a project which used opto-isolators for the isolation: th-cam.com/video/BlQDPORL8pI/w-d-xo.html but this project seems neater and I do like the standardized single-bus communication protocol with these modules.
Thanks. I have seen some projects using opto's but the ADUM1250ARZ is leaps forwards really. Such a useful IC for this project.
I believe Stuart thinks there's still a fair bit of work to do with the code (and much of it is beyond my skill level) but to me the hardware looks pretty much set. It's something I'm going to enjoy testing I think.
Show me, if you are ready ;-)