Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DIY Arduino BMS
#1
Lightbulb 
Hi

I don't want to spend 1K$ for a Batrium. So I decided to do my own BMS. I already have some Ideas how I would like to solve it on the hardware side (see schematics concept enclosed). 



The CPU unit will be an ATmega.
It will measure each cell in cycles. To overcome common-ground-issues, I will do this by charging a capacitor and measure its voltage. This can be done by connecting the capacitor with two reed-relays to each of the cells in cycles. It balances its Voltage to the cell voltage very quickly, is then disconnected from the cells an connected to the CPU to measure its Voltage.
If one cell block is high by a defined amount against the other blocks, another relay triggers the discharge unit for a defined amount of time / measuring cycles to drain some power from it until it is equalized again. 

Low voltage cutoff and so on can all be controlled by the CPU and are matter of programming. 

Let me know what you think about it. I am also happy to hear your opinion on the choice of components (or where I didn't yet choose, let me know if you have a proposal... MOSFET...) since I don't have a lot of electronics experience just now. Still learning Wink


Cheers, 
elkooo
jm1 likes this post
Reply
#2
Not to dissuade you from doing your own work, but have you looked at Stuart Pittaways bms?
Headrc likes this post
Proceed with caution. Knowledge is Power! Literally! Cool 
Knowledge is Power; Absolute Knowledge is Absolutely Shocking!
Certified 18650 Cell Reclamation Technician

Please come join in general chit-chat and randomness at Discord Chat (channels: general, 3d-printing, linux&coding, 18650, humor, ...)
(this chat is not directly affiliated with SecondLifeStorage; VALID email req'd)
Reply
#3
Only had a quick look and I've never designed a BMS, but...

The MOSFET should have a pull down resistor (10k~100k range?) to the negative side of the LiIon cell. Otherwise it could stay turned on for much longer than intended.

1Ohm bypass resistor is quite ambitious. That's up to 18W. You will need a fan, overheat protection, etc. Depends on the size of your battery, but 4Ohm or more with logic to turn it on earlier will make life a lot easier.

You might want to add capacitors in the sensing lines to make sure that current will not flow even if the reed switches should malfunction or get bad signals.
Modular PowerShelf using 3D printed packs.  40kWh and growing.
https://secondlifestorage.com/t-AJW22-s-...PowerShelf
Reply
#4
OK so I did a bit more of research.
Thanks for the inputs so far.

@ajw22:
I didn't quite understand, where and why to put capacitors into the sensing line... can you further explain?

Here is my version two:


Reply
#5
You need to be measuring each cell voltage every few seconds.
At this speed, I suspect you will quickly get reliability issues with the relays.
If you get a relay fault you could short your cells = not fun.
Doing individual boards powered by each cell & isolating the communications is a much better approach.
Running off solar, DIY & electronics fan :-)
Reply
#6
(08-22-2019, 10:14 AM)Redpacket Wrote: You need to be measuring each cell voltage every few seconds.
At this speed, I suspect you will quickly get reliability issues with the relays.
If you get a relay fault you could short your cells = not fun.
Doing individual boards powered by each cell & isolating the communications is a much better approach.
Amount of cycles depends alot on the algorithm used to measure. 
I think I don't have to permanently measure each cell every few seconds (If you also have a total voltage measurement, you can leave the cell level voltage measurements cycles be much longer in the not fully charged / discharged stage). 

For Example:
Only measure every 5mins (or even longer cycles) if cells are >3.3v & <3.9v
Go to more dense measuring cycle if total voltage goes below/above calculated single cell threshold values

If the capacity is known and the charging current is known, then the time until theoretically a higher stage of charge is achieved can be calculated. 

I don't know the cycle-life of these reed-switches, possibly they do 500'000 cycles?
So if I measure every minute they will be gone in..... 347days?!?! wow! ok... didn't expect that... so even if I only measure every 5 mins, this will mean my relays will go throgh half a million cycles in five years, which is A LOT!

true - maybe have to find another solution... either much longer cycles between measurements or other components...? Maybe via opto couplers?




So... If I want to do individual boards, would I need an ATtiny or something like that?

Problem is: So far I don't have any expiriance with those... still learning Wink  Idea Huh Angel

Thanks for your thoughts anyways!
Reply
#7
I agree that you need to meassure often. A cell can easy go from 3.3 to 2.0v in under 30 seconds. You should meassure every other second. IF you want a Good bms functionality that is.
The Ultimate DIY Solar and build place
YouTube / Forum system setup / My webpage  Diy Tech & Repairs

Current: 10kW Mpp Hybrid | 4kW PIP4048 | 2x PCM60x | 83kWh LiFePo4 | 10kWh 14s 18650 |  66*260W Poly
Upcoming: 14S 18650~30kWh | Automatic trip breakers, and alot more
Reply
#8
OK - this clearly speaks for another solution.

But on the other hand would such voltage drops also be visible on the total pack voltage (very unlikely that one cell goes up alot while another goes down alot as you might be drawing amps from all cells in the same string...). And upon such a drop (with already near 3v/cell) the algorithm of the BMS could be forced to check on the cell level what is going on... even more so if the CPU knows the amp-draw. If the voltage level gets below a certain point (which with 3.3v/cell is maybe to low...) a closer per-cell-monitoring could be triggered.
Further more (and for the sake of having a longer battery life) I don't plan to drain the last out of my batteries and maybe also don't fully charge them to 4.2v

Nevertheless should the system be able to operate propperly for many years, I agree, and also should it do so reliably and in the best case even out of planned specs in case anything goes wrong...

further to this I will plan to add glass fuses to the measuring lines. Would probbably be a good Idea no matter how I finally gonna measure the cell voltage.
Reply
#9
there is a good dit bms here im building it at the moment its pretty good

https://github.com/stuartpittaway/diyBMSv4
jm1 likes this post
Battery is li iron using 18650s, 14s, 0p, and growing cell so far 300, untesteded.
Bms is a diy open source by stuartpittaway.
No solar yet, 
Building wind turbine, 48v im after a 48v motor if anybody has one for sale.
Cells 2000 to 2500ma.
Cells 1500 to 2000ma.
Cells 1000 to 1500ma.
Reply
#10
SOOO, 

I went back to the drawing board. 
Why I do it myself instead of using one existing solution?

I love doing it the hard way. And I like to know the stuff I build. If I just copy something, I will never have the same understanding and will not be able to optimize and tweak it as well to my needs as if I develop everything from scratch. Already learned a lot & love to learn more every day.

What I came up with so far is the following:


Looking forward to hear your opinion...
Reply


Who read this thread?
100 User(s) read this thread:
daromer (10-06-2019, 03:49 PM), Sean (10-06-2019, 01:14 PM), Majorphill (10-04-2019, 02:05 AM), Korishan (10-06-2019, 12:25 PM), PAF (10-07-2019, 07:22 AM), Franky Beuselinck (10-04-2019, 08:53 AM), Batrium (09-13-2019, 07:19 AM), Mike C (08-23-2019, 05:58 AM), jdeadman (10-06-2019, 01:39 PM), wim (09-01-2019, 02:38 PM), Christian (09-14-2019, 10:24 PM), watts-on (10-10-2019, 03:54 PM), jesusangel (08-23-2019, 07:15 AM), Hanssing (10-09-2019, 06:05 AM), Geek (10-08-2019, 01:25 AM), Ivo Staelens (08-23-2019, 04:30 PM), Grumplestiltskin (10-25-2019, 09:54 PM), hOOPSNAKE (10-06-2019, 11:41 AM), Oz18650 (10-12-2019, 08:01 AM), wycito (10-31-2019, 03:42 AM), Charly144 (08-21-2019, 07:08 PM), sturgeo (09-06-2019, 10:37 AM), jm1 (09-13-2019, 12:46 AM), gpn (08-19-2019, 02:17 AM), Headrc (08-18-2019, 11:56 PM), jonyjoe505 (09-01-2019, 04:04 PM), Redpacket (10-07-2019, 04:43 AM), farmerjohn (09-08-2019, 07:34 PM), cadric (08-28-2019, 05:23 AM), Bubba (10-06-2019, 12:46 PM), Cherry67 (11-14-2019, 01:42 PM), Walde (10-15-2019, 04:19 PM), Riplash (10-06-2019, 01:20 PM), w0067814 (10-06-2019, 09:52 PM), HikingGuy42 (10-06-2019, 04:12 PM), neowolf (09-03-2019, 01:18 PM), chuckp (09-01-2019, 10:52 PM), emuland-metroman (10-04-2019, 07:24 AM), hermitdave (10-22-2019, 09:05 AM), Chass90 (10-02-2019, 04:17 PM), Beholder (10-10-2019, 05:07 AM), Wolf (08-22-2019, 01:52 PM), Generic (10-04-2019, 03:26 AM), mufaddalk (11-13-2019, 06:11 AM), ajw22 (10-06-2019, 07:24 PM), RikH (10-09-2019, 08:14 PM), newone972 (10-15-2019, 11:00 AM), wind0r (10-16-2019, 12:40 PM), kevinjaye (09-11-2019, 03:54 AM), OffGridInTheCity (10-06-2019, 02:46 PM), rogeriosom (11-11-2019, 12:36 PM), Maniac_Powerwall (10-20-2019, 02:58 PM), Iker138 (11-12-2019, 09:15 AM), vivi0512 (10-21-2019, 10:22 AM), ma3006he (10-19-2019, 01:20 PM), fleming (10-15-2019, 01:51 PM), intra (10-04-2019, 12:53 AM), Sonnyz (10-01-2019, 08:41 PM), Kratom NC (10-04-2019, 03:17 AM), BobInHD (09-07-2019, 11:46 AM), Doin it (10-03-2019, 11:12 PM), juanjo57 (08-22-2019, 08:30 AM), gigaz (09-25-2019, 11:30 AM), lange5766 (09-01-2019, 02:37 PM), Wulffi (08-19-2019, 09:22 AM), fpv1812 (11-10-2019, 07:46 PM), mackoffgrid (09-11-2019, 07:46 PM), Janusz (09-05-2019, 10:40 PM), xahmedxsa (08-23-2019, 04:41 PM), ahmad mustofa hendrayano (08-20-2019, 04:01 AM), 7h0r (09-01-2019, 05:45 AM), Jonisingt35r (09-01-2019, 02:02 PM), 3xtr3m3 (10-16-2019, 06:42 AM), drnickriviera (09-01-2019, 02:26 PM), LPG (10-04-2019, 11:26 AM), poolizei (08-27-2019, 09:27 PM), elkooo (11-15-2019, 10:30 AM), LeoKK (08-22-2019, 04:26 PM), peterpopper222 (08-22-2019, 02:05 PM), Cobra_Phil (11-08-2019, 01:04 PM), stohner (08-19-2019, 09:45 AM), nettermann90 (08-20-2019, 10:14 AM), MBard (08-26-2019, 08:02 AM), diib (08-28-2019, 04:57 PM), hschlech (08-28-2019, 04:35 AM), James-w (09-21-2019, 10:08 PM), AaronM (09-01-2019, 06:54 PM), Diesel Pilot (09-02-2019, 05:14 PM), MadX (09-02-2019, 09:19 AM), doubee (09-24-2019, 08:30 PM), Alen (09-05-2019, 02:56 PM), skpro (09-20-2019, 06:55 PM), Robert024 (09-12-2019, 02:02 AM), skytek (10-06-2019, 12:52 PM), EnergyOasis (09-10-2019, 03:32 AM), Frenno (09-10-2019, 04:38 PM), Smarthome2582 (09-15-2019, 11:39 AM), habengr1 (09-15-2019, 05:26 PM), Sabrin (10-04-2019, 02:12 PM), BatteryMooch (10-13-2019, 02:52 AM)

Forum Jump:


Users browsing this thread: 1 Guest(s)