DIY 6S to 12S BMS with CAN - DieBieMS

Yes I could enable the BMS to support a “regular” power supply, It will need some sort of CC/CV supply or regulation. I did a project a while ago for a 12S system but never came around to finish the small and compact version of it:

However I would like to add this as an option later (would have added 15 euro to the cost of the BMS for a 100W CC/CV or double for 250W).

The smaller version is still a hacky prototype xD:

2 Likes

Huge progress today. Was able to make most of the library components and started to compose the schematic. The schematic so far can be found on Github ( see opening post ). Its far from done but we are getting somewhere!

Microcontroller will have a lot to “manage” :smile:.

3 Likes

Nice progress man. Well i think the micro controller in VESC still have plenty of room to process data. However I hope it doesnt make it run hotter or hitting over heating issue.

Next update and bringing an end to the sprint for this week. I forgot to add a SWD/Debug interface and switched the current / voltage monitoring to a dedicated chip ( ISL28022 ) for the job making the focus of today remapping all IO / peripherals to the uC and implementing it in the schematic:

And implemented most of the power switching elements:

Finally I started playing with the components layout, this are the results so far:

6 Likes

Slick! Do you have an estimated dimensions? Please post more common data for normal people like me. Charging voltage? Charging current? Discharge current? Would it be customizable like VESC? I mean more general information :smiley: it will trigger interest!

1 Like

Ah yeah of course! For now I design it with the following specs:

6S to 12S Charge current: 15A (up to 20A depending on heat) Discharge current: 120A (up to 160A burst a 10seconds isch depending on heat buildup)

I added a fancy feature that lets the BMS turn on when a charger is connected, The discharge contact will remain off (keeping the ESC powered down) in this state but the OLED display will show general information and the digital WS2812 LED shows a pattern indicating that its charging.

On first instance only the trivial stuff will be configurable: Number of cells Max discharge current Max charge current max cell voltage min cell voltage

I am planning on making a simple chrome app to do this configuration stuff. Cross platform and needs minimal installation + auto updates :D.

11 Likes

I feel like I should wear one of those full body non-static suits when I read this thread

6 Likes

@JTAG You are freaking awesome!! This is a great thread! I can’t wait to see where this is going! Cheers, Danny!!

Good stuff!

You don’t want to use the JST XH familly for your balance connector? don’t forget to route your shunt signals as a diff pair.

I don’t really like the regulator balance connectors, they feel really cheap and are easy to accidentally break (exposing unfused thin wires to the battery, very scary). I also want two temperature sensors on the pack and this connector solves both of these issues/desires.

And little progress on the schematic / board. I finally figured out how to reuse / implement multiple equal schematics for the cell balancing circuits:

4 Likes

Nice progress man. Hey btw I just realized this. If your BMS is needing alot of computational power, would it be possible to utilize the power of the 2nd STM processor on dual VESC build? Otherwise just add extra STM processor for better flexibility of ur bms. One chip only cost 5 - 10 euro in mouser if I am not mistaken.

Just across my mind. At this moment balance charging system is quite in efficient according to my perspective. Is there any possibility to improve the charge rate for the last 20% of the capacity? I noticed my balance charger are slower when battery reaches about 90%.

That is some impressive work you do there. I don’t understand the magic behind it, but the numbers I do understand sound pretty awesome. Keep up the great work an make this masterpiece available :smiley:

@JTAG This is great! always wondered how the magic works in a BMS - still not 100 percent on how it works but it is cool seeing your progression. I dont mean to hijack the thread but you seem to be the person to ask about BMS stuff, after reading a bit I was curious if you could control sections of a battery with CAN - low voltage/high voltage cut off and have those sections controlled by the main PCB. Basically take your cell balancing circuits and daisy chain them with CAN bus. This way the battery can be modular so easy to replace sections and easy to wire (just daisy chain tx/rx- similar to is really quick rendering.

1 Like

What you seem to desire is having multiple battery voltage monitor pcb’s (one per pack), them all connected to a CAN bus communicating with a master module that is in control of enabling or disabling the charge/discharge current. This is actually the most used method in electric vehicles / large battery systems. There are a few open github projects with this exact topology.

However, this is not the path I would like to go with my design, although it is possible it would become crazy expensive since 70% of the cost is in the power switching components and not at voltage monitoring. Also electric skateboards (and in most other system that I know are needing a BMS are max 12S).

2 Likes

Thanks for the info. Cant wait to see where your BMS goes.

Another question: When You build a 12S3P pack it would Monitor and balance 12x 3 Batteries (3x) . Could it be that one battery is unbalanced because it checks the voltage of all three Batteries instead of every one individually ? Just a Crazy example: 3V 3V 6,6V

All cells in a parallel group will self balance and the bms module will treat them as a single cell.

2 Likes

Mmmm I love Altium.


1 Like

@JTAG- any update on your BMS

1 Like

Yeah but nothing exiting, should post an update indeed, here is a small summary (ill make a bigger update soon): *I worked on the power enabling / switching (managing how en when the BMS should turn on). I still need to check all voltage levels everywhere. *I just received a LTC6802 evaluation board and had a little play with that, seems all nice and straightforward.

Next big thing todos are: *Fix circuit around LTC. *think of a way to safely configure the bms for the different battery configurations.