if this what stuart wrote do not help, measure the mV drop across the shunt at your maximum load and then look at the shunt readings in the bms, they should be nearly the same.

what shunt do you use and how much A load is at maximum on it?

Just received my order (4.6) from JLCPCB. All connectors (J series) are missing.
A look in the bom and cpl files, the connectors are not listed in the CPL.
We can add them manually for a complete order.
thanks to Stuart for all. :smiley:

Hi @Teave all connectors are manually soldered to the board after you receive them from JLCPCB.

You have to order those manually.

2 posts were split to a new topic: DIYBMS reports low temperature

on the new Charge/Discharge configuration, how about adding a new option at the bottom (where the prevent charging and prevent discharging tickboxes are)
called something like “store mode” which will keep the batteries charged up to a set level (even configurable to say 40-50%) so that in winter/store mode I don’t have to keep on turning the solar off for a week, then turn them on for a day to replenish and then off again to not overcharge my boat lifepo4 bank?
makes sense or can we achieve that now (without having to mess with all the cell charge level in mV and balancing current)
obvs would work only on canbus (my inverter/charger and mppt are all victron and nicely controlled from diybms)
EDIT: thinking as I type… alternatively having a charge profile option so we can setup different profiles for different situations/periods of system operation.



You could simply reduce the max system voltage to 3.3V per cell.

and then you have to possibly change a couple of other settings all around there, and then jot them down on pieces of paper and remember where exactly you had them before so that when you restore them cells do go up to where they should and do properly balance, etc, etc.
seeing that all major issues are done, maybe that would be a more prof looking touch to the interface of diybms.

Is it possible to update the DIYshunt via UPDI while it is connected to the system and working, or should I isolate it from the batteries to load the new firmware?

You can leave the shunt and rs485 connected, but remove the power cables to the PCB.

Had to compile v4.0 controller today (new platformIO setup on windows laptop) to hard code my SSID and PASS to match my new router setup.
What is the latest code I can use without building new modules (14)? Could I upgrade to esp32 controller but keep the modules? Thanks @stuart for making this process very easy with all the code available!

Why did you need to re-compile the code to swap WIFI SSID/passwords? Just press space bar whilst the controller is booting up?

So, I could have connected with usb 115200, booted, then hit space bar, it pauses for input, just tried it on spare controller! I suppose, “SSID, PASS” then enter? Will search for format to enter the changes. Phoooy.

Okay, now another problem. PlatformIO intercepts spacebar hit and ask “restart monitor or quit”, defeating getting controller (esp8266) in mode to change password. Trying to find this keyboard mapping to turn it off.

P.S. Works fine in Arduino IDE. Tried a bunch of “monitor filters” in platformIO, no joy.

I have a problem with RS485 communication.

I was going to do some test in my test panel and I got this error. Let’s see if someone can help me with the shunt flashing sequence. I put a video
thank you.

Hello, I am currently using DIYBMS v4 with v4.4 modules, on my diy electric motorcycle project and looking for some advice on a few questions please! Currently it’s looking after a 60v 40ah battery (16S1P).

  1. Is there a way to make the screen come on on startup and stay on (showing a particular screen rather than switching between)
  2. Is there a way to assign a static IP to the ESP32, currently mine seems to vary on reboots.
  3. Has anyone ever looked into waterproofing/conformal coating the battery modules or have any suggestions for this?


Hi @Henry,

Unfortunately bad news - the answer to all three questions is no :slight_smile:

There is an outstanding feature request for static IP’s in GITHUB, feel free to add some comments to that, to push it up the queue.

The flashing light sequence looks normal for the current monitor.

Are the modules working correctly? The message also relates to bad comms with the modules.

That depends on your router. It should offer a way to assign a fixed address to the ESP32’s MAC.

True, the message could be an error in modules or shunt, but if I remove the shunt or if I simply deactivate RS485 communication in the controller, the error message disappears, so I have ruled out an error in the modules. I’ll try new cables tonight just in case.

Thanks for the replies Stuart and Matthias

With regards to the static ip address and router - i run it off a mobile hotspot, i’ll dig deeper to see if it’s possible, i haven’t looked hard yet to be honest!

Shame to hear there isn’t an easy way to keep the screen on. Can you think of an alternative temporary hack that might force the screen to stay on? I can see in line 64 of the tft.cpp file there is a tftsleep_timer variable, could increasing this keep the screen on? I realise the ideal solution would be exposing this variable in the settings of diyBMS but for my instance if I were to change that would it solve my issue?