[DEAD PROJECT] OSBMS - A scalable, low cost, and full featured BMS

Progress update

Lots of stuff has happened since the last big update, and if that one was a "design" iteration, then this one is definitely a "test" iteration. This post is probably also longer than strictly needed, but I partially want to document this thing so I can go back and look back at it and see how it progressed, and partially for engineer eye candy. :)

recieved boards.jpg
Boards arrived and I finally got my hands on them after sitting in the mailbox over break. One of each was promptly pasted and assembled as classes hadn't really picked up yet.




assembly workbenck.jpg
Assembling boards and definitely not hogging the entirety of 2 island tables. :roll:




assembling balancer.jpg
Tiny, tiny smd parts. Get a good tweezers.



View attachment 9 balancer reflow.jpg
Reflowing in the toaster oven.



balancer finished.jpg View attachment 6
Hot off the presses.

At this point The only thing that was left was to test and refine the code. That only lasted all week... :shock:

For code changes I basically rewrote the burst receive function, which gets all the cell voltages and one temp adc reading in one swoop, but surprisingly everything else seemed to work almost off the bat.




View attachment 3
Testing mosfet outputs and ADCs. Everything works.


Once I confirmed that everything seemed to be working hardware wise, I made more.

industrial production y'all.jpg
(so identical. much fun)


At this point the more sinister problems started to pop up. unreliability in adc reads, taking 3+ seconds to read instead of the advertised 8.2ms.



logic test bench.jpg
Logic analyzing the crap out of stuff. You gotta love practically living in an EE lab. (2 minute walk)

At this point I realized that the datasheet was lying to me, or at least leaving out some critical information.
Sure enough, after a thorough reading and a 500khz square wave from a signal generator, I confirmed that the CLK pin actually needed me to clock it, instead of what I had assumed would be a clock out in the absence of the datasheet specifying otherwise.
I was now reading things in the 8.2 ms advertised and getting reliable data every single time. The chip was working perfectly not that it no longer needed to relay on stray EMI to "ghost clock" the thing.
a few hours of coding later and a jaunt through the atmega328 datasheet and I configured timer 1 to toggle pin 9 at 500khz without using any computation time. a jumper was added and problem solved.




12s test bench.jpg
Everything working and looping through balance resistors to test them. Good data all around.



And in case a wall of pictures and text isn't your thing, have a video.

[youtube]nwdLbB5ceOw[/youtube]


The working code has been published to the github and the files are also included in the zip file below for easy reference.
https://github.com/Teslafly/OpenBMS
View attachment ATA6870N_Test_Program_2.0.zip

If you want more pics and such you can find full-size versions of most the pictures I took over here: https://www.flickr.com/photos/76027390@N05/sets/72157649986107399/

Up next: (This weekend?)
- Current goals
- Future plans
- Feedback
 
What is the link for KiCad? I want to make some block diagrams and I can use Visio, Word, Excel, etc but I figure I'd try KiCad in the interest of open source and sharing files. One site seems down, the other is a downloader site that has to use their downloader (softonic, softpedia). Is KiCad ok for block diagrams? Preferences?
 
Gary Krysztopik said:
What is the link for KiCad? I want to make some block diagrams and I can use Visio, Word, Excel, etc but I figure I'd try KiCad in the interest of open source and sharing files. One site seems down, the other is a downloader site that has to use their downloader (softonic, softpedia). Is KiCad ok for block diagrams? Preferences?
I personally use Inkscape for block diagrams. You could create block diagrams in kicad but it's probably more trouble than its worth.
 
i've used inkscape for diagrams but google drawings is my new favorite and easier to share work products (like google docs).

Re: kicad, i dl'ed, built via (windowsbuilder) and am just learning it now. i only previously used the free version of Eagle. Using KiCad is quite different than Eagle but both can accomplish the same thing.

A+ to Marshall for bringing so many technologies together to envision, design, manufacture, build and develop s/w for this project! If i could have done this at his age, i'd rule the world by now! :D
 
Teslafly said:
All prototypes are currently spoken for. Rev2 may come into existence in 1-2 months. I am currently writing the post detailing this.

What changes will come in Rev2? Is it worth to wait for it ?
I would like to have it more compact like the BMS from Adaptto.

So my suggestion would be to make 2 new hardware designs which would fit most of all LEV vehicles:
The master board with 2 slaves on one small PCB board for 8s - 12s battery.
The master board with 3 slaves on one small PCB board for 12s - 18s battery.
And for the crazys than the option to daisy chain more single slave boards to them.


I would also suggest to use 6pcs of 2w 20 ohm resistor for balancer like in this picture.
2w 20ohm.JPG
It would be more compact and easyer to assemble.
 
Is anybody actively working on this? I have a balancer board and an Arduino, and I compiled the code. I need to sort out some details to connect and run. I also have a touch screen display working.
 
Has anyone loaded s/w into the micro master? I couldn't find my board so I was trying to use an Arduino to run the balancer board. I just found my micro master so I will read through github for info but my internet is pretty bad right now.
 
ok, I got this bit of info - "Atmega328 main processor @ 3.3v - 8mhz. Programmable through arduino with usb -> serial adapter (Program it just like an Arduino pro mini)".
 
guys i need to power an Esc which requires 55A and 22v. i'm using power source from 18650 batteries. I'm using 6 batteries in series + 10 sets of similar batteries to get
the required power ratings.
voltage:6*3.7=22.2v
current:5.8*10=58 a(10 sets of 6S)

how many slave boards do i require?
 
Excuse me if I'm reviving the dead here.... is anyone actively working on this? It looks like a very exciting project and I'd love to be a part of it.
 
I have the boards and played with it a bit, planning on hitting it again soon. Yes, very good project - we need a good OS BMS!
 
That is a pity, but there has to be some open source affordable BMS! Where one may program it with an Arduino like interface ?
 
Linear is quite pricey...
but if you divide it by the number of cells it works out to a buck a cell so... not bad.

Linear Technology is a bad-ass company. They have been on the leading edge for decades. I had a very good experience while there and try to use their part numbers over TI etc in my designs. I dont trust Maxim. At least not for high reliability.

-methods
 
I looked at them...
Chased my tail on 100+ page datasheets for half a night.

Came back around to the trivial solution. You wont like it... but its rad.
ATiny13A per channel to act as the detector (1/2 to 1/3 cost of hardware parts)
Divider to read cell voltage
Regulator to referance ADC
Option for temp probe one per channel
Dual opto out to a buss
Target sub 5uA total system
Expandable infinitely
Grouped in 8's on the first board
10 placed parts per channel
$5/channel out the door
Programmable LVC/HVC and anything else could think of

Mating $20 smart board with a bi-directional SSR capable of 100V 40A
Drive an LED, Contactor, or direct control of both charge and discharge

Going to use it on Electric Boats in the 4S to 8S range, electric lawn mowers on 8S - then once bugs worked out - for the 28S Zero Packs.

Starting now....

-methods
 
Back
Top