diy solar

diy solar

Convincing your Daly smart BMS to balance your battery

halibut58

New Member
Joined
Nov 24, 2021
Messages
10
I have 3 Daly smart BMS with Bluetooth a couple of 100A and one 150A. I am experimenting with various 1P4S or 2P4S 100AH lifepo4 batteries of assorted quality. So I am stuck with the Daly.

Apologies for the convoluted lengthy post, but I thought maybe some DALY expert can provide a clearer picture. Also, since different Dalys have slightly different factory settings – including the sign of charge current, your mileage may vary.

After my 'mis-calibration' hack - the end result: my daly is balancing my battery at zero current (and overvoltage disconnect):

daly - Copy.jpg

The batteries are always top balanced and charged/discharged with typical settings on the daly (charge cutoff 3.65V, discharge cutoff 2.6V). Settings changed and monitored in BMS bluetooth app.

Overall the daly works quite well for normal charge/discharge, but when some cells are out of balance, the daly almost never turns on balancing, and when it does it will do almost nothing.

Balance open start voltage: 3.35V

Balance open voltage: 0.01V

Example balance: When charging at 5A, out of balance may hit .2V when the one cell hits 3.65V For example: 3.45, 3.55, 3.52 and 3.65V for 4S. This pack is not really much out of balance (< 0.1AH), but at the top end it becomes very visible.

What is worse, on my 3 daly BMS, each BMS appears to behave slightly different. One will balance only if current > 2A, one if > 1.2A and one if > 3A.

In any case, the time for balancing is only about 5-20minutes while a 5A charge current flows near the end of the cycle. At the 30ma balance current for this short time nothing ever seems to happen to the balance – it is just too short.

So I asked the question: Is there any way to get the balancer turned on when it is needed, not just when large current is flowing?

Warning: The setting changes suggested below can potentially change a setting that will damage your battery. It can also brick your BMS. The sinowealth software is less than stellar in terms of reliability on some windows system (as I found out….). Furthermore changing undocumented settings using best guess interpretation of their meaning can lead to disaster. Beware.

But here it goes….

The BalanceVolDiff in the Bluetooth app can only be changed to 10mv. In sinowealth I changed it to 5mV (0.005V). That helps a bit since it will start balance a bit sooner.

The DfilterCur setting on my 3 daly BMS was: 2000mA, 1200mA and 3000mA. I changed those to 0. Suddenly the BMS app showed current down to 0.1A! Furthermore the balancing suddenly worked down to 0.1A.

Next I changed ‘BalCurrent’ to zero. WARNING: not exactly sure what this does, but it seems to be a threshold for balancing of some sort….

Then I was wondering: Is there a way to activate the balance close to 0A. In Sinowealth there is a manual calibration for current: CadcGain and CadcOffset. Those are the settings that are changed when you ‘calibrate’ but you can do it manually. On the ‘info’ screen click ‘CADC Current’ to ‘scan’.

WARNING: write down your “CadcOffset “ and “CadcGain” in case you need to restore it. That will show the real time current. With 0 current applied, you can modify CadcOffset until ‘CADC Current’ is always positive (say 50). On one daly that number was 3, on another 1 and on the third -2! You are tweaking the offset to force a small positive reading. The calibration seems to be of linear y=ax+b (slope a /offset b, CadcGain/ CadcOffset).

Warning: this will make your SOC somewhat unreliable, over time, but it is kind of useless anyhow on my Daly.

You can also calibrate the current accuracy using ‘CadcGain’: apply 5A charging current and tweak it up or down to make the ‘CADC Current’ 5000mA.

Now what happens? When the balance voltage is exceeded **AND THE CURRENT IS 0ma or greater** the balancer will activate. Meaning if your charge until the first cell hits 3.65V and stop, the balance will activate, the balancer will run until the pack goes into balance or until the balance threshold is reached. (3.35V on my settings). This may take several hours. Note: it will even balance after over voltage charge disconnect!

Note: I know the passive balance will effectively bleed over-voltage cells. Meaning I am discharging my cells. But at 30mA, not a big deal and it shuts down at 3.35V anyhow (when the battery is still 99% + full….)

A single cycle may not be enough. You may have to charge back up the next day and let it balance overnight. Eventually it will get closer to the goal of a balanced pack. Not perfect, but close.

Having looked at this issue I am extremely disappointed that Daly does not provide this feature out of the box- without this weird mis-calibration hack. The BMS firmware could be re-written with minor code change to provide this feature and maybe even end up with accurate current readings. If I had the source code it would take about 3 minutes to make this simple code change....

Note also, near the end of the cycle, if you change the charge current to 50mA for a long time, the battery will balance without much supervision with this hack.

Now don’t get me started complaining about the less than stellar SOC accuracy….
 

Attachments

  • dalysetupPicsR2.pdf
    518.7 KB · Views: 342
The fix for the Daly BMS issues is to not buy a Chinese piece of crap BMS...
Go get a REC, Batrium, Orion..
 
After further investigation I came to the realization that the balancing can be enabled at low currents by a simple change to the ‘Balance open current’ (‘BalCurrent’ in my post, was 30mA from factory) parameter available in sinowealth. The calibration does not have to be changed/touched. Set ‘Balance open current’ to zero (or negative if you want balance while discharging) This will enable balancing. Apologies I should not have used term ‘BalCurrent’ in my post and used ‘Balance open current’ instead.

The ‘Balance open current’ parameter is simply the threshold above which balance will start.

The cause of balance not working is indirectly related to the current enable threshold ‘DfilterCur’, which Daly seems to set to a random high value at the factory. Any current below this value (2 or 3 Amps in my case) will set current to 0. Since the balance threshold on my Daly was 30mA, it did not come at low or 0 current.

This should be set to a reasonable number higher that the ‘idle’ noise current (the raw current reading from the analog input). 200mA would be a reasonable value. At 200mA, SOC may actually start to produce reasonable results. Why: if ‘DfilterCur’ is set to 3A and you charge/discharge with 2A, the SOC will not change until overvoltage!

With these 2 changes your Daly will behave similar to the ciabatta ‘JBD’ BMS reviewed over at the off grid garage…..
 
I have 3 Daly smart BMS with Bluetooth a couple of 100A and one 150A. I am experimenting with various 1P4S or 2P4S 100AH lifepo4 batteries of assorted quality. So I am stuck with the Daly.

Apologies for the convoluted lengthy post, but I thought maybe some DALY expert can provide a clearer picture. Also, since different Dalys have slightly different factory settings – including the sign of charge current, your mileage may vary.

After my 'mis-calibration' hack - the end result: my daly is balancing my battery at zero current (and overvoltage disconnect):

View attachment 73533

The batteries are always top balanced and charged/discharged with typical settings on the daly (charge cutoff 3.65V, discharge cutoff 2.6V). Settings changed and monitored in BMS bluetooth app.

Overall the daly works quite well for normal charge/discharge, but when some cells are out of balance, the daly almost never turns on balancing, and when it does it will do almost nothing.

Balance open start voltage: 3.35V

Balance open voltage: 0.01V

Example balance: When charging at 5A, out of balance may hit .2V when the one cell hits 3.65V For example: 3.45, 3.55, 3.52 and 3.65V for 4S. This pack is not really much out of balance (< 0.1AH), but at the top end it becomes very visible.

What is worse, on my 3 daly BMS, each BMS appears to behave slightly different. One will balance only if current > 2A, one if > 1.2A and one if > 3A.

In any case, the time for balancing is only about 5-20minutes while a 5A charge current flows near the end of the cycle. At the 30ma balance current for this short time nothing ever seems to happen to the balance – it is just too short.

So I asked the question: Is there any way to get the balancer turned on when it is needed, not just when large current is flowing?

Warning: The setting changes suggested below can potentially change a setting that will damage your battery. It can also brick your BMS. The sinowealth software is less than stellar in terms of reliability on some windows system (as I found out….). Furthermore changing undocumented settings using best guess interpretation of their meaning can lead to disaster. Beware.

But here it goes….

The BalanceVolDiff in the Bluetooth app can only be changed to 10mv. In sinowealth I changed it to 5mV (0.005V). That helps a bit since it will start balance a bit sooner.

The DfilterCur setting on my 3 daly BMS was: 2000mA, 1200mA and 3000mA. I changed those to 0. Suddenly the BMS app showed current down to 0.1A! Furthermore the balancing suddenly worked down to 0.1A.

Next I changed ‘BalCurrent’ to zero. WARNING: not exactly sure what this does, but it seems to be a threshold for balancing of some sort….

Then I was wondering: Is there a way to activate the balance close to 0A. In Sinowealth there is a manual calibration for current: CadcGain and CadcOffset. Those are the settings that are changed when you ‘calibrate’ but you can do it manually. On the ‘info’ screen click ‘CADC Current’ to ‘scan’.

WARNING: write down your “CadcOffset “ and “CadcGain” in case you need to restore it. That will show the real time current. With 0 current applied, you can modify CadcOffset until ‘CADC Current’ is always positive (say 50). On one daly that number was 3, on another 1 and on the third -2! You are tweaking the offset to force a small positive reading. The calibration seems to be of linear y=ax+b (slope a /offset b, CadcGain/ CadcOffset).

Warning: this will make your SOC somewhat unreliable, over time, but it is kind of useless anyhow on my Daly.

You can also calibrate the current accuracy using ‘CadcGain’: apply 5A charging current and tweak it up or down to make the ‘CADC Current’ 5000mA.

Now what happens? When the balance voltage is exceeded **AND THE CURRENT IS 0ma or greater** the balancer will activate. Meaning if your charge until the first cell hits 3.65V and stop, the balance will activate, the balancer will run until the pack goes into balance or until the balance threshold is reached. (3.35V on my settings). This may take several hours. Note: it will even balance after over voltage charge disconnect!

Note: I know the passive balance will effectively bleed over-voltage cells. Meaning I am discharging my cells. But at 30mA, not a big deal and it shuts down at 3.35V anyhow (when the battery is still 99% + full….)

A single cycle may not be enough. You may have to charge back up the next day and let it balance overnight. Eventually it will get closer to the goal of a balanced pack. Not perfect, but close.

Having looked at this issue I am extremely disappointed that Daly does not provide this feature out of the box- without this weird mis-calibration hack. The BMS firmware could be re-written with minor code change to provide this feature and maybe even end up with accurate current readings. If I had the source code it would take about 3 minutes to make this simple code change....

Note also, near the end of the cycle, if you change the charge current to 50mA for a long time, the battery will balance without much supervision with this hack.

Now don’t get me started complaining about the less than stellar SOC accuracy….
Hi
I had similar problems but chose to look for an easier solution. First I replaced one Daly with an Overkill with JBD. same batteries the problem went away. I only want access with bluetooth so Daly wasn't a solution. It seemed the daly wouldn't balance within it's settings while discharging I added Heltec 4S -5 A active balancers to the Daly for tests all the problems went away. I'm still using the Overkill units also with balancers because they won't hurt. I have 3 Dalys 1- 200A , 2- 250A in the junk pile. Not a problem for me just the cost of being a newbie.
 
After further investigation I came to the realization that the balancing can be enabled at low currents by a simple change to the ‘Balance open current’ (‘BalCurrent’ in my post, was 30mA from factory) parameter available in sinowealth. The calibration does not have to be changed/touched. Set ‘Balance open current’ to zero (or negative if you want balance while discharging) This will enable balancing. Apologies I should not have used term ‘BalCurrent’ in my post and used ‘Balance open current’ instead.

The ‘Balance open current’ parameter is simply the threshold above which balance will start.

The cause of balance not working is indirectly related to the current enable threshold ‘DfilterCur’, which Daly seems to set to a random high value at the factory. Any current below this value (2 or 3 Amps in my case) will set current to 0. Since the balance threshold on my Daly was 30mA, it did not come at low or 0 current.

This should be set to a reasonable number higher that the ‘idle’ noise current (the raw current reading from the analog input). 200mA would be a reasonable value. At 200mA, SOC may actually start to produce reasonable results. Why: if ‘DfilterCur’ is set to 3A and you charge/discharge with 2A, the SOC will not change until overvoltage!

With these 2 changes your Daly will behave similar to the ciabatta ‘JBD’ BMS reviewed over at the off grid garage.
So my 16s 310 pack is top balanced, or as balanced as I could get it.
When should I care about balance? When its in float charge from the hybrid inverter or when its discharging?
In charge mode my diff is .2 or a little more, but if i unplug my hybrid inverter and let it run the inverter with the 1a draw or so it uses my diff voltage quickly goes to .007 or lower.
Im just not sure if im obsessing over having my cells balanced at the wrong time or not. When charging my high voltage protect cuts the charging with say cell 7 at 3.65 but cell 16 is only at 3.38.
Appreciate any advice.
 
We have a 4S 200a Daly. In my opinion, the Daly's 30-50ma of balance current is just not enough current to make a noticeable difference, unless the delta is really low, say <25ma. I suppose you could increase the current, but not sure those small gauge wires could sustain much more current.

Installed a 4S 5a Heltec-type active balancer about a month ago. This thing works! The higher the imbalance the more current flows. Supposedly it can move up to 5a, but I haven't verified this. It can typically resolve a 150-200mv delta (200ah cells) down to less than 5mv in less than an hour. Within an hour or two, we typically have a 1-2mv delta.
 
Last edited:
I have 3 Daly smart BMS with Bluetooth a couple of 100A and one 150A. I am experimenting with various 1P4S or 2P4S 100AH lifepo4 batteries of assorted quality. So I am stuck with the Daly.

Apologies for the convoluted lengthy post, but I thought maybe some DALY expert can provide a clearer picture. Also, since different Dalys have slightly different factory settings – including the sign of charge current, your mileage may vary.

After my 'mis-calibration' hack - the end result: my daly is balancing my battery at zero current (and overvoltage disconnect):

View attachment 73533

The batteries are always top balanced and charged/discharged with typical settings on the daly (charge cutoff 3.65V, discharge cutoff 2.6V). Settings changed and monitored in BMS bluetooth app.

Overall the daly works quite well for normal charge/discharge, but when some cells are out of balance, the daly almost never turns on balancing, and when it does it will do almost nothing.

Balance open start voltage: 3.35V

Balance open voltage: 0.01V

Example balance: When charging at 5A, out of balance may hit .2V when the one cell hits 3.65V For example: 3.45, 3.55, 3.52 and 3.65V for 4S. This pack is not really much out of balance (< 0.1AH), but at the top end it becomes very visible.

What is worse, on my 3 daly BMS, each BMS appears to behave slightly different. One will balance only if current > 2A, one if > 1.2A and one if > 3A.

In any case, the time for balancing is only about 5-20minutes while a 5A charge current flows near the end of the cycle. At the 30ma balance current for this short time nothing ever seems to happen to the balance – it is just too short.

So I asked the question: Is there any way to get the balancer turned on when it is needed, not just when large current is flowing?

Warning: The setting changes suggested below can potentially change a setting that will damage your battery. It can also brick your BMS. The sinowealth software is less than stellar in terms of reliability on some windows system (as I found out….). Furthermore changing undocumented settings using best guess interpretation of their meaning can lead to disaster. Beware.

But here it goes….

The BalanceVolDiff in the Bluetooth app can only be changed to 10mv. In sinowealth I changed it to 5mV (0.005V). That helps a bit since it will start balance a bit sooner.

The DfilterCur setting on my 3 daly BMS was: 2000mA, 1200mA and 3000mA. I changed those to 0. Suddenly the BMS app showed current down to 0.1A! Furthermore the balancing suddenly worked down to 0.1A.

Next I changed ‘BalCurrent’ to zero. WARNING: not exactly sure what this does, but it seems to be a threshold for balancing of some sort….

Then I was wondering: Is there a way to activate the balance close to 0A. In Sinowealth there is a manual calibration for current: CadcGain and CadcOffset. Those are the settings that are changed when you ‘calibrate’ but you can do it manually. On the ‘info’ screen click ‘CADC Current’ to ‘scan’.

WARNING: write down your “CadcOffset “ and “CadcGain” in case you need to restore it. That will show the real time current. With 0 current applied, you can modify CadcOffset until ‘CADC Current’ is always positive (say 50). On one daly that number was 3, on another 1 and on the third -2! You are tweaking the offset to force a small positive reading. The calibration seems to be of linear y=ax+b (slope a /offset b, CadcGain/ CadcOffset).

Warning: this will make your SOC somewhat unreliable, over time, but it is kind of useless anyhow on my Daly.

You can also calibrate the current accuracy using ‘CadcGain’: apply 5A charging current and tweak it up or down to make the ‘CADC Current’ 5000mA.

Now what happens? When the balance voltage is exceeded **AND THE CURRENT IS 0ma or greater** the balancer will activate. Meaning if your charge until the first cell hits 3.65V and stop, the balance will activate, the balancer will run until the pack goes into balance or until the balance threshold is reached. (3.35V on my settings). This may take several hours. Note: it will even balance after over voltage charge disconnect!

Note: I know the passive balance will effectively bleed over-voltage cells. Meaning I am discharging my cells. But at 30mA, not a big deal and it shuts down at 3.35V anyhow (when the battery is still 99% + full….)

A single cycle may not be enough. You may have to charge back up the next day and let it balance overnight. Eventually it will get closer to the goal of a balanced pack. Not perfect, but close.

Having looked at this issue I am extremely disappointed that Daly does not provide this feature out of the box- without this weird mis-calibration hack. The BMS firmware could be re-written with minor code change to provide this feature and maybe even end up with accurate current readings. If I had the source code it would take about 3 minutes to make this simple code change....

Note also, near the end of the cycle, if you change the charge current to 50mA for a long time, the battery will balance without much supervision with this hack.

Now don’t get me started complaining about the less than stellar SOC accuracy….
Yeah, but now after the firmware settings I've noticed that the BMS always stays on and never sleeps no matter the sleep timer in the app. Is that something you've noticed as well?
 
but not sure those small gauge wires could sustain much more current.

I have charged my 10s eBike battery pack with an external B6 v2 balance charger that only supports up to 6s configuration.
For this, I did it in two turns: first cells 1-5 then 6-10, both as 5s configuration through the balance wires that Daly included in the box.

I could push 3A charge current through them and I couldn't feel them heating up with bare hands. So those wires are fine, I guess the BMS itself has a simple resistor to burn away the balance current and they didn't dare put more than 30mA to avoid excessive heating.

PS One side-effect was that the 1st and 5th cells were always reading higher voltage than real because 3A flowing through those thin wires caused a noticeable voltage drop. At the end of the charge cycle, when the current dropped below 0.5A, the effect became small so I ended up with well-balanced cells.
 
I have charged my 10s eBike battery pack with an external B6 v2 balance charger that only supports up to 6s configuration.
For this, I did it in two turns: first cells 1-5 then 6-10, both as 5s configuration through the balance wires that Daly included in the box.

I could push 3A charge current through them and I couldn't feel them heating up with bare hands. So those wires are fine, I guess the BMS itself has a simple resistor to burn away the balance current and they didn't dare put more than 30mA to avoid excessive heating.

PS One side-effect was that the 1st and 5th cells were always reading higher voltage than real because 3A flowing through those thin wires caused a noticeable voltage drop. At the end of the charge cycle, when the current dropped below 0.5A, the effect became small so I ended up with well-balanced cells.
Interesting. Pushing 3000ma thru circuitry that was only designed to handle 30-50ma is a risk I wouldn't take. These Daly's are finnicky enough even under the best of conditions. Hope it continues to work well for you.

We elected to use a Heltec 5 amp active balancer. Resolves imbalances dramatically faster, with no need for charge current, and comes with much larger gauge wires designed to handle the higher current.
 
Good point, but to be fair, there is no circuitry, just two wires. The wires didn't get hot. That current did not go through the BMS, the balance cables were disconnected.
 
Good point, but to be fair, there is no circuitry, just two wires. The wires didn't get hot. That current did not go through the BMS, the balance cables were disconnected.
Glad you clarified that. 3a through through those small Daly sensor wires probably caused a 4-5% (150-200mv) voltage drop. In terms of the wire's raw ability to handle the current, agree, probably not a big deal.
 
Wow, you were right on the spot! The middle three cells were ~0.15V under the side cells (which got the 3A current)!
 

Attachments

  • IMG_5824.jpg
    IMG_5824.jpg
    356 KB · Views: 69
I have 3 Daly smart BMS with Bluetooth a couple of 100A and one 150A. I am experimenting with various 1P4S or 2P4S 100AH lifepo4 batteries of assorted quality. So I am stuck with the Daly.

Apologies for the convoluted lengthy post, but I thought maybe some DALY expert can provide a clearer picture. Also, since different Dalys have slightly different factory settings – including the sign of charge current, your mileage may vary.

After my 'mis-calibration' hack - the end result: my daly is balancing my battery at zero current
...

The way I handled this in my mobile solar power testbed was first, buy an older model of Daly with none of those monitoring features for $40 (they're up to $55 now, I happened to learn yesterday), then not push the limits on charge and discharge of the battery and wait for things to work out, while I deal with a long list of pressing problems and other questions. So far, so good!
 
This hack is awesome! I tried doing the exact thing, but I cannot connect the daly BMS over uart to sinowealth. It does work with the Pc master tool just fine. Any clues? Do new Daly bms's actually works with sinowealth?
 
No, I couldn't connect Sinowealth to my 10s Daly BMS either.
The PC Master Tool doesn't allow to decrease the "filter current".

This means that any current below 1A is monitored as 0A -> no balancing, no SOC change. If I had known this I'd asked for a refund, SOC is completely unreliable.
 
This hack is awesome! I tried doing the exact thing, but I cannot connect the daly BMS over uart to sinowealth. It does work with the Pc master tool just fine. Any clues? Do new Daly bms's actually works with sinowealth?
No, I couldn't connect Sinowealth to my 10s Daly BMS either.
The PC Master Tool doesn't allow to decrease the "filter current".

This means that any current below 1A is monitored as 0A -> no balancing, no SOC change. If I had known this I'd asked for a refund, SOC is completely unreliable.

The new Smart BMS from Daly without a MON port can't be used with the Sinowealth software. I've posted the newest version of the BmsMonitor/PCMaster software in the resources section. It now has an option to change the minimum current reading, which is called "Current wave". It allows adjusting down to 0.2A, but that means it will only show ≥0.3A, which is still better than the 1A my BMS came set at.

 
The new Smart BMS from Daly without a MON port can't be used with the Sinowealth software. I've posted the newest version of the BmsMonitor/PCMaster software in the resources section. It now has an option to change the minimum current reading, which is called "Current wave". It allows adjusting down to 0.2A, but that means it will only show ≥0.3A, which is still better than the 1A my BMS came set at.

Hi, everyone. I was so excited when I found this post because I was looking for a way to get my 16s Daly bms to balance after done charging (at zero amps). However I was very disappointed to find out that the sinowealth software does not work with the 16s Daly bms (I read this and tried it but could not connect). PC master software works but that only gave me the option of decreasing the current detection threshold to 0.2 amps (a big improvement over the default 2amps!) However this will not get the bms to balance when not charging. So I thought how can I trick the bms to think it is charging when it is actually not?? Simple! Apply a current (0.5 amps for example) accross the B- and the P- leads of the bms from an external circuit. So the shunt in the bms 'sees' a 0.5 amps going across it, but this 0.5 amps is not going into the battery. It is just 0.5 amps flowing in a totally separate circuit but being detected by the bms. I tried this and it works perfectly. Of course this will make the SOC of the Daly BMS not accurate but I don't rely on the soc reading anyways. So now the positive (charging current) will read 0.5 higher than the real charging current going into the battery and the negative current will read 0.5 amps less than the actual discharge current going out of the battery. And at zero amps in or out of the battery, (when the battery is just sitting there fully charged) the bms will 'falsely' read a 0.5 amps and will therefore continue to balance. I just thought I'd share my 'hack'. If anyone has any comments on this in terms of any ill effects or disadvantages this may have which I have not realized, pls share. Thanks.
 
I fixed all of my Daly's. I yanked them out and installed JK 16S 200A with 4.3" LCD's from Hankzor store on AliExpress. Working flawlessly. Finally remaining balanced and displaying correct SOC's!
 
I fixed all of my Daly's. I yanked them out and installed JK 16S 200A with 4.3" LCD's from Hankzor store on AliExpress. Working flawlessly. Finally remaining balanced and displaying correct SOC's!
Well that would be one way to solve the problem but I was trying to find a 'fix' that involves keeping my Daly while making it function more like I want it to. Not everyone has the option of simply replacing their bms. Thank you.
 
Back
Top