Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DIY Arduino BMS
#11
Potential issues I see:

* If the fuse for cell#1 blows, and the cell#2 "above" is in bypass mode, the ATiny13#1 chip could be exposed to up to 8.4V? A zener diode to limit the max voltage to a safe limit might be in order. Though that will overheat in short order... but voltage#1 will increase and bypass#1 should activate...
At the same time ATiny#2 would crash due to low voltage... Good luck figuring that out :-(

* Doesn't the ATiny13 chip need a VCC-GND capacitor near it? Esp if you need to accurately measure VCC?

* With the ATiny13 IO driving the MOSFET, a pull down resistor is probably no longer needed
elkooo likes this post
Modular PowerShelf using 3D printed packs.  40kWh and growing.
https://secondlifestorage.com/showthread.php?tid=6458
Reply
#12
A youtube guy @Adam Welch did his own custom BMS for a 7s lithium battery bank - there are several youtubes and follow up with interesting problems. It also supports full graphical monitoring.

Here's a recent one: A year with the diyBMS https://youtu.be/DKz48WeSGlU
Here's an earlier one: diyBMS - Provisioning and Calibrating - 12v Solar Shed https://youtu.be/OL3HI7G-dmo

and there are more going thru the whole process and electrical diagrams.

I'm doing Batrium as this kind of electronics is beyond me, but @Adam Welch seems like a serious, electrical circuit guy and his efforts seem like a pretty sophisticated solution for those wanting to wire up their own.
elkooo likes this post
Reply
#13
(10-04-2019, 01:29 AM)OffGridInTheCity Wrote: @Adam Welch seems like a serious, electrical circuit guy and his efforts seem like a pretty sophisticated solution

This is also stuart pittaways BMS. It is for sure interesting BUT I will learn more doing it the hard way from scratch (also it is easier for me to learn if I start from zero rather than reading countless documents of specification of a already grown / built project).

(10-03-2019, 11:33 PM)ajw22 Wrote: Potential issues I see

Really good points. Idea
Concerning fuses: the easiest solution might just be two fuses for each bord or separate leads to the boards to solve the problem.
This way, each BMS-Board would probbably work isolated? If one fuse blows, the next board is still connected correctly and should not see more than the actual cell voltage.

Concerning Condensators: added & understood... 

PullDown: maybe a large value resistor will be better than none? Leave it for now but I'll keep your remark in mind...

Also I had some mistakes with resistors / missing pulldowns which I corrected... see attached updated drawings..

ajw22 likes this post
Reply
#14
Those ATtiny13 measuring/balancing modules are going to be 14x separate boards sitting on each cell pack, like with Batrium, right?
I think you can just fuse each positive side, and remove the negative side fuse.

How about adding a 5V fan in parallel with your balancing resistor? Wastes more power, and cools the resistor all at the same time.

Some of the ATtiny13 IO ports have internal pull-ups. You could reduce hardware and wiring by enabling that for the RX.

You may want to add a button and signaling LED to make the boards more admin friendly.
The button could be used to program the position of the device (#1~#14). You could hard program that, but long term a button will be more convenient.
And the LED to help locate the offending pack. It quickly gets confusing with multiple strings of 14 packs. How many hours I've wasted fixing a perfectly healthy pack, while the faulty pack was sitting one shelf below :-(
Modular PowerShelf using 3D printed packs.  40kWh and growing.
https://secondlifestorage.com/showthread.php?tid=6458
Reply
#15
(10-03-2019, 10:37 PM)elkooo Wrote: 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.

I totally agree. I've been working on my own BMS for exactly the same reason.

(10-03-2019, 10:37 PM)elkooo Wrote: Looking forward to hear your opinion...

I notice you have opted for the ATTiny13A.  I started out using that on my BMS design, but quickly found it to be false economy trying to go too cheap on the microcontroller.  It only has 1K of code space and I used a good chunk of that just implementing some comms since there are no hardware comms interfaces provided. Also there is only one timer that then has to be shared between bit banging the comms and timing other events like when to take the next voltage reading. I'm not saying it can't be done, but it sure makes it hard.


Also I'm pretty sure, on the tiny13, you can't use the trick of measuring your own VCC like some of the AVR's do. So you'll have to add a potential divider and connect that to an ADC pin to get your voltage readings.


In the end I went with the ATMEGA328PB. From Farnell (Element14) they are less that £1 each in lots of 25 in the UK.  This then gave me more options like having multiple thermistor inputs and some status leds, and I can simply use Arduino to write and upload the code.
Reply
#16
If going for a more powerful chip, the ADUM1250 for isolated i2c communication might be interesting. About $1 on aliexpress.
I've not used this chip, but i2c is awesome... hardware support on so many chips, and easy to add more modules to the system, eg. small LCD, temperature sensor, etc
Modular PowerShelf using 3D printed packs.  40kWh and growing.
https://secondlifestorage.com/showthread.php?tid=6458
Reply
#17
(10-04-2019, 01:00 PM)ajw22 Wrote: If going for a more powerful chip, the ADUM1250 for isolated i2c communication might be interesting.  About $1 on aliexpress.
I've not used this chip, but i2c is awesome... hardware support on so many chips, and easy to add more modules to the system, eg. small LCD, temperature sensor, etc

In my opinion a uart based communication method is a better fit for this application.  I2C relies on signal transitions to clock the bits through. The problem with that is that the switch mode inverters and chargers that we connect to the batteries can generate a lot of noise and transients that can get onto the data lines and create false positives making them unreliable. Uart signals are less susceptible because they are mostly time based, so there is significantly less chance of a stray transient on the line at the exact time the hardware samples the data.
Reply
#18
That's looking better :-)
The optocouplers will give you the voltage isolation & let you talk to each chip with some addressing, etc.

You might want to have separate + & - wires to each cell because if one cell is bypassing, the little extra drop across the fuse will (& does) affect the next unit's readings.
Running off solar, DIY & electronics fan :-)
Reply
#19
i have done something similar for my 4s test pack using 5 pro mini's each have a nrf24l01 module to send data to master. IRFZ44N mosfets with 5ohm 5W resistors for balance. pro minis are 3.3v and i have removed regulators on board and supplied power to VCC.
Reply
#20
So....

I did a bit of research and found, that the ATmega328P-PU chip also works with very low voltage (down to 1.8v as per spec-sheet) and is capable of running on an internal clock. Basically it can run in a similar environment as the ATtiny but has much more memory and a lot more options (more i/o's etc). The price is as low as 1.2$ each so it is also in the similar range as the ATtiny. Therefore I decided to use the ATmega.

I have ordered some equipment to programm the bare chips (already have some here) and will post about the ongoing process...
As soon as I have a better picture of how the ATmega works and what I will need, I'll also update the scematics.
Korishan likes this post
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)