DIYBMS v4

Hello everyone, there is also a new firmware with a Wifi fix.

One or the other has been affected by this, so try it out, it works well for me. No more reboots when the WLAN is off :slight_smile:

Issue:

Since overall power consumption is an important factor to you, you may want to consider these additional thoughts on the matter:

1 - the AP doesnā€™t have to be powered on all day; it only needs to be on whilst youā€™re using your phone to interrogate the battery (the battery will re-connect to the wifi when it comes back up, as will your phone).

2 - I havenā€™t donā€™t have any data to back up my claim, but I would imagine that if youā€™re only interrogating the battery from your phone for a short period a couple of times a day then the overall power consumption would actually be less than if the main controller supported AP mode and was broadcasting beacons all day long

Food for thought :slight_smile:

Thanks. My thoughts as well. Just need to switch on the AP when needed.
Iā€™ve got a system working on an ESP 8266 (instead of an ESP 32) as this should use less power but I havenā€™t been able to test a 32 yet.

Back to that question, what functionalities are disabled when i dont use a shunt? Can i still use the dynamic charge/discharge function to control the Cerbos DVCC?

A long time ago i read here that you could not extend the lcd with a cable because of interference, well it actually works so if you need it you can do it.



2 Likes


I bought a set of controller, 16S board and passive balancer from Stuartā€™s shop a while back and finally got around to setting it up. Iā€™ve got a 2P16S battery of EVE MB31 314Ah cells that i charged and top balanced by placing all of them in parallel for a few days. Unfortunately, my battery module insists that two of the cells are off by a 20ish mV and it really wants to balance them. Iā€™ve measured the voltages right on the 17-pin terminal block and they are all within a mV of each other. Also, the measured voltage for the rest of the cells is off (it should be 3.320V, according to my fairly good multimeter, not 3.327V). Calibrating the cell in the module configuration does nothing. Any good ideas?

Obligatory angry pixy porn:


Try removing the balance pcb. I have had to replace some mosfets on the balancing pcb. Due to incorrect manipulation, I have had measurement errors in the voltage, some cells were at 0mv and others had more voltage than the real one.

Thank you, that was it!


Now all that remains is to figure out why my Deye inverter is getting ā€œMax Discharge Current: 0Aā€.

While doing some final stress testing with CANbus integration of multiple controllers I have tested changes to a couple more things. First, I have added a configurable pulse time so that you can choose anywhere between 250ms to 10s for the relay pulse. Second, is that I have now allowed a relay to be configured as Default=ON & RelayType=Pulse. This was explicitly disallowed inside the code - Iā€™m not sure exactly what the reasoning was but itā€™s working in my case so far. Third, when powering on the Controller I am now keeping the relays in the de-energized state until the Controller is fully up and running. Currently the relays fire to the ā€œdefaultā€ settings during the boot process despite not yet knowing that everything is OK (no comms yet so you have no temperature, voltage reading, etc). The end result from these changes is that now you are able to pulse a relay anytime a rule transitions from being active to being cleared (and also during startup). Iā€™m using this to fire a precharge resistor. To me itā€™s only an improvement, but does anybody see a use case or combination of settings they are using where this would create an issue?

1 Like

Hello Damian, the pre-charging resistor is a good idea. So you can precharge and then switch on the relay. Maybe @stuart can say something about why it is explicitly precursor.

Thanks for your efforts

Nice work @menningd

From memory (which may be incorrect!) the pulse to off, rather than on was removed as this was incorrectly triggered if someone or something triggered a restart of the esp32.

You can also achieve similar electrically using the NO and NC contact on the relay.

Just to clarify, I havenā€™t added any specific pre-charge logic to the firmware. I couldnā€™t think of an elegant way to do that without making assumptions about how every user would be setting up their relay states. Instead, Iā€™m using Relay 1&2 in the following setup:
(Ignore the contactor open coil as Iā€™m using a bistable relay).


All relevant rules are configured to turn relays off when they are active. Anytime a rule goes from active->clear then both relays fire simultaneously. At this moment Relay 2 is diverting power from being fed to Relay1 and directs it to the precharge resistor until itā€™s pulse timer elapses and power can return through Relay1 thereby firing the isolation contactor closed. While the MCU updates the rules together and sends both relay commands simultaneously, technically Relay 1 contact could close milliseconds before Relay 2 and leak some power through. But in practice itā€™s not an issue because whatever mechanism is being powered through Relay1 likely has some inherent delay (in my case a large contactor coil that takes ~100ms to energize).

Also, the wording gets a little confusing but itā€™s not allowing a pulse off - itā€™s allowing a pulse ON when the Default=ON. The effect is that anytime a rule goes from active->clear then the relay pulses ON.

Hey diyBMS crew!
Long time no see! Itā€™s been a while. Glad to see this project is still active and seems to still be making great progress!

Again hats off to @stuart pittaway!

Couple of quick questionsā€¦ (FULL DETAILS DOWN BELOW)

  1. Does the DIYBMS 4.21 cell modules allow you to configure at what voltage to start balancing?
    (This battery Iā€™m thinking about using them on is quite large and is never / very rarely charged upto 100% so I need to be able to set the balance voltage)

  2. I just seen a project called ActiBMS (unofficial diyBMS) on github, but it hasnā€™t been updated since 6 years agoā€¦ Is this project still around and maybe called something different or possibly got brought into the official diyBMS?


(More details if interested)
Iā€™ve got a ton of unused diyBMS 4.21 cell modules and a bunch of esp32 controller boards still. I was thinking of using a few for a semi large 4s64p lifepo4 battery pack I made a while ago consisting of 256 - A123 ANR26650M1B cells.

Originally I top balanced all the cells and I just thru a standard non smart DALY bms on it. Now I donā€™t use the pack very much, and I literally never charge it to 100%ā€¦ It just dawned on me that the DALY bms is most likely never balancing the cells since I believe it only does so when the pack is fully chargedā€¦ Correct?

I changed my DC to DC power to controller with this:
The battery ground does work ok for shunt dc voltage to display correctly.

Has anyone considered an active balancer drop in board that could solder onto the heating resistors pads?

Iā€™ve been looking at the eta3000 chip with its potential to pass 2a.

My logic is that the controller will still pass power to the resistors, but instead of burning it, it could be passed on a bus wire to the next add on module, for either use or repassing.

This would be pretty cool as a feature to be added to v5? But as an additional board, it could be backwards compatible?

If anyone can find issues my logic thatā€™d be much appreciated.

Can someone fill me in on what happened? V5 is 6y old and did everyone move away to a new community or something?

Wheres the action at?

I would like to submit the project to be 100% assembled by JLCPCB. I am not familiar with Kicad among others. I tried to submit the Gerber files, but they all appear distorted on the JLCPCB website.

What is the most current repository? Does anyone have the updated files for submission to JLCPCB?

Thanks

The latest version with the all-in-one design is quite different to the older version which I preferred (4.6). I was able to upload the files for that straight from the repo to JLC for an SMT build last year. Some minor BOM changes were needed to compensate for out of stock parts at the time.

Version 4.90 is hereā€¦ pcb-artifacts-modulev490-allinone Ā· stuartpittaway/diyBMSv4@1dbbac7 Ā· GitHub

If you preferred the older style, then these are the files I use to order from JLCPCB (back in 2023!) Release ordered-from-jlcpcb-20230220 Ā· stuartpittaway/diyBMSv4 Ā· GitHub