DIY Lithium Battery Balancer and monitoring (BMS)

Hmm,

for now I will try with what we have.

I once adapted a CANbus library to AtMega2560 with standard MCP2515 modules and made it work, its a lot of code, but its safe. So we talk about maybe STM32XXXX controller as cellboards?

Oliver

The two new ones i assembled work just fine, so there is a problem on my first board.

I leave this for now, since i only need eight, so the two extra would have been spares.

Thats good to hear. On the faulty board it may be worth going around with the soldering iron and touch each pin/part just in case theres a cold joint. Also check to make sure you didn’t swap one of the capacitors over - they are very similar with the 0.22 and 2.2uF values.

A little bit over powered for a cell board!! Perhaps the ATTINY814 or even no CPU on the cell at all :slight_smile:

Isn’t it working just fine now ?? Maybe better cables for the i2c pairs but for the rest ??

A screen is added easily to the esp, don’t need a board for it. You can buy a double pcb plugin board for a
wemos d1 for like 40 cents and a oled screen that fits on it for 2-3 dollars!!

Code is something else ofcourse :slight_smile:

Yes appears to be working okay, however the cell modules use about 10mA which can be a drain on smaller packs.

I’ve just published a quick video on construction of the v3.0 boards

3 Likes

If 10mA is a problem, maybe just add a recommended minimum of cells per pack ?

I’m still troubled, if i shut down the modules and power them up again the wemos doesn’t see them anymore and i have to flash all the modules again!! That isn’t normal right?

Simpler than CAN bus you have LIN bus that is specific designed for this task and works with only 1 data wire. MOD bus is also other option. Both only requiring an additional driver IC.
I’d go for LIN bus to connect the cells to the controller and CAN or MOD bus from the controler to the exterior.

Hi All,

Just about caught up on this thread … 30 more posts to go … and very interested in this project.
Aussiegwapio, I’d be keen on discussing those 18 spare boards you’ve got here in Aus, and maybe giving some a little relief from their current boredom :wink:

Cheers,
J.

That’s not normal and I’ve no idea how you have managed to get it to do this!!!

1 Like

The problem with all of these is galvanic isolation - which is currently performed by the ADUM1250 chip. They do other versions for CAN bus and Mod bus but they soon get expensive for a DIY solution.

I many look at simpler optocoupler serial solutions instead.

Iv been using solder past with a 0.5mm tip what fun that has been for 12 boards as components come in

1 Like

Privet message set mate

1 Like

I congratulate you for perseverance !

1 Like

Hi,

For now that this project got people working on it and following it, it might be worth to add some more basic functionality that a BMS should provide to the main controller. Anyway, this code is not wasted, the code can be just used on an other controller even that in future the CPU changes.

about the 10mA drain, would it not be more easy just to upgrade the controller a bit, for the folks that run small packs, so that its possible to send it into sleepmode and wake it up from time to time?
just by timer or by external signal?
I know that the Attiny has no recources for that but a small upgrade and it works.

And maybe a Linebus for the future?

Oliver

Good morning,

is there anywhere a documentation of the software?

I am specialy interested of the main controller.

Oliver

Understood, so linbus can be excluded as it required a bidiretional optocoupler that are costly.
Take a look at analog catalogs and the ADuM120x range seems the best fit for the physical level as it supports CAN / MOD bus, RS232 or RS484.
It’s up to you to implement the logic datamodel or follow any existent protocol that might exist already.
See ADUM1201 Datasheet and Product Info | Analog Devices

Is this Topic referring to GBS 300Ah Module or the 18650/Lipo 3.7v v3 mods ?
Im only starting to get back in to the coding side of things but building modules i find easy with steady hand.

I’ve been working on a similar project that uses a UART to communicate with ATTiny85-based cell monitoring boards (via ADUM1201 isolators). The boards are wired up in a daisy chain and go into a deep sleep until data is requested via the serial protocol (i.e. voltage, termp). Since there are separate TX and RX lines you could add something like RS485 for better noise immunity if required. It’s all still a bit of a work in progress but perhaps some of you may find something helpful in there.

Cell monitor schematics and firmware: GitHub - scttnlsn/cell-monitor: Battery cell monitor and balancer

The host controller communicates with the cell monitors and protects the pack by cutting off charge and discharge relays. It also tracks current in and out of the pack, state-of-charge and exposes a modbus interface for reading data from another device (in my case a Raspberry Pi).

I haven’t had much time to document this part of the project but the firmware is available here: GitHub - scttnlsn/pack-monitor: Battery pack monitor

I’ve been using all this to power my off-grid cabin for a while now.

1 Like