diy solar

diy solar

Anybody tried new JK BMS with inverter communication support?

There is good news and bad news:

The good:
There is now a firmware version 15.17 on the jkbms.net site:
Furthermore, there is now a new android app verison 4.19.6 on the same site.

I found that if you update the new 15.17 firmware AND use the new android app, you can now select mode 11 (luxpower) for the CAN protocol.

This firmware seems to work with both mode 2 (pylontech) and mode 6 (luxpower) on my 6000xp inverter.

Sadly that is the end of the good news, because the new firmware still suffers from the same issue with luxpower (and many other) inverters which shut off the charge controller as soon as the battery hits 100% SOC. This behavior is unchanged, so I still need to the pb-acid setting on the inverter to get it to actually charge my battery above 3.4v.

Other than that it does seem to work fine, the pack SOC, voltage, capacity, charge/discharge limit etc are all are reported just as they were using the pylontech protocol.

2 other observations:
1. The charge/discharge current limits as reported by the EG4 app are divided by 10 (actual discharge limit = 200A, reported value in eg4 app is 20A, etc). The system does actually work correctly (charge current is correctly limited to actual charge limit setpoint in BMS), so I think this is a bug in the eg4 app (maybe related to the new generator boost firmware)

2. Curiously, and perhaps worryingly, when I tried to go back to the pylontech protocol (mode 2 on both jkbms and inverter) the battery capacity reported by the inverter and the eg4 app was stuck at zero. This is worrysome, because I know that this was working in the past, so I suspect that there is some sort of logic issue. I did try the usual power cycle everything and reset the inverter settings but no luck getting the battery capacity to read on pylontech mode. I am not sure if there is some broken logic in switching protocols, or if something else about the recent updates to the inverter and bms broke it. I would be curious if anyone else can keep a close eye on the battery capacity when they make the switch and report back.
This is what I wanted to know, if it works with the EG4 Electronics 6000XP. Looks like its a bit buggy, but works.

I wonder if the JK BMS will work with other inverters, such as the MPP LV6548V 500V?
 
A brief update -- solar assistant released a new beta firmware and I am happy to report that JKBMS parallel mode operation is now working with SA.
The connection is modified from the existing configuration (connect SA usb->rs485 adapter to the inverter RS485 port), instead you now connect the SA usb->rs485 adapter to the parallel ports (same pinout cable), and all batteries show up in SA 🥳

Now if only we can get luxpower/eg4 and JKBMS to play nice and settle the dispute about when to turn on the charge controller.
 
I have full closed loop working with master and slave batteries and comms to SMA Sunny Islands successfully.


Now just need a way to pull the cell data out for MQTT for logging.
 
There is good news and bad news:

The good:
There is now a firmware version 15.17 on the jkbms.net site:
Furthermore, there is now a new android app verison 4.19.6 on the same site.

I found that if you update the new 15.17 firmware AND use the new android app, you can now select mode 11 (luxpower) for the CAN protocol.

This firmware seems to work with both mode 2 (pylontech) and mode 6 (luxpower) on my 6000xp inverter.

Sadly that is the end of the good news, because the new firmware still suffers from the same issue with luxpower (and many other) inverters which shut off the charge controller as soon as the battery hits 100% SOC. This behavior is unchanged, so I still need to the pb-acid setting on the inverter to get it to actually charge my battery above 3.4v.

Other than that it does seem to work fine, the pack SOC, voltage, capacity, charge/discharge limit etc are all are reported just as they were using the pylontech protocol.

2 other observations:
1. The charge/discharge current limits as reported by the EG4 app are divided by 10 (actual discharge limit = 200A, reported value in eg4 app is 20A, etc). The system does actually work correctly (charge current is correctly limited to actual charge limit setpoint in BMS), so I think this is a bug in the eg4 app (maybe related to the new generator boost firmware)

2. Curiously, and perhaps worryingly, when I tried to go back to the pylontech protocol (mode 2 on both jkbms and inverter) the battery capacity reported by the inverter and the eg4 app was stuck at zero. This is worrysome, because I know that this was working in the past, so I suspect that there is some sort of logic issue. I did try the usual power cycle everything and reset the inverter settings but no luck getting the battery capacity to read on pylontech mode. I am not sure if there is some broken logic in switching protocols, or if something else about the recent updates to the inverter and bms broke it. I would be curious if anyone else can keep a close eye on the battery capacity when they make the switch and report back.
Have you tried to enable floating mode here?
 

Attachments

  • 1717512158622.png
    1717512158622.png
    127.5 KB · Views: 5
Last edited:
Yes, float mode is enabled on the jkbms.
Do you have a system where the float mode actually works with your JKBMS? The only ones I have heard of are the Victron charge controllers

The issue is more of a philosophical one:
JK considers that the cell is at 100% SOC during the entire CV period of the charge (RCV->RFV->RCV cycle when float mode is enabled).
This is enforced in the firmware by requiring that 'soc-100% volt' must be set below the RCV (presumably to ensure that the cell SOC is reset reliably at each charge). This makes sense from a coulomb counting point of view, as the trigger point where you go from CC to CV charging is the most reliable time to reset the coulomb counter. But the SOC is not truly 100% the moment that you hit RCV, you need to let the battery absorb!

However... luxpower, et al, look at the situation differently, and as soon as the battery reports 100% SOC it turns the charge controller off completely. This does makes sense from a true SOC perspective, because if the battery is reporting 100% SOC why bother keeping the charge controller on. But, with the way JKBMS reports the SOC, this means that the charge controller turns off as soon as one cell in the battery hits RCV (or worse yet: if you have negative drift in the coulomb counter it will report 100% SOC before you even get to that point!), so no absorption or balancing is possible.

They both make compelling arguments, but their logic is mutually incompatible. Either JKBMS needs to report the SOC as 99% during the whole of the absorption process (as the infamous 'peter boards' do), or the inverter needs to actually respect the pylontech 'charger enable' flag and leave the charge controller enabled as long as the BMS requests charging.
 
I'm still waiting for mine JK BMS. I'll be trying to connect it to luxpower sna 5000. Will let you know how it goes)
I was watching Andy's videos(Off-Grid Garage) today where he described all settings - video is called - New JK-BMS with full charge algorithm and surprise functions we always wanted. Is THAT the one? Also he tested it here - Practice test of the new JK-BMS. All new functions tested. You won't believe it!
But yeah, he is using Victron...

probably it can be useful for you
 
Fitting the JK-BMS in the EEL-box will be an interesting project.
The screen is huge so some cutting is required.
Also the communication board is pretty wide so I need to think about the place where to install it and cut holes. I think that will be on top of the box.
As for the BMS, I need to make something to mount it on. Not in a hurry (since I have two batteries running) so will take my time to make it nice.
Please, I will like to see your system update.
 
I'm still waiting for mine JK BMS. I'll be trying to connect it to luxpower sna 5000. Will let you know how it goes)
I was watching Andy's videos(Off-Grid Garage) today where he described all settings - video is called - New JK-BMS with full charge algorithm and surprise functions we always wanted. Is THAT the one? Also he tested it here - Practice test of the new JK-BMS. All new functions tested. You won't believe it!
But yeah, he is using Victron...

probably it can be useful for you
Well, bad news in advance for you.
The so called JKBMS float charge mode will not work for luxpower if you use closed loop comm.
As per previous post, luxpower and growatt will stop charging the moment JKBMS reported SOC 100% to the inverter.
 
The SMA Sunny Islands in closed loop continues charging until the JK 100% RCV is reached and ignores the soft 100% until the RCV is met, so seems likely its a Luxpower/Growatt problem. Still could be a JK issue but if they got it right for SMA, I can also use Goodwe, Pylontech and FSS (which is SMA) they should have got it right for Growatt etc.
 
Last edited:
The SMA Sunny Islands in closed loop continues charging until the JK 100% RCV is reached and ignores the soft 100% until the RCV is met, so seems likely its a Luxpower/Growatt problem. Still could be a JK issue but if they got it right for SMA, I can also use Goodwe, Pylontech and FSS (which is SMA) they should have got it right for Goodwe.
Quick question, which jkbms protocol you use for your battery and inverter? Pylontech? CANBUS or RS485?
I tried both growatt and pylontech protocol and the charging completely stopped right after 100% SOC signal is sent to the inverter.
 
The JK Canbus starting FSS which is the SMA Protocol for the 6.0H-11 and very similar to Pylontech plus Canbus.
 
Pylontech Canbus and Pylontech plus Canbus are not the same, the SOC is sent to an accuracy of 0.001V instead of 0.01V and then rounded to nearest volts on the plus version as one example. Try the FSS to see if the revised SOC makes a difference.
 
Catching up here, so the JK Inverter BMS turns off SCC on EG4 (Lux or Pylon protocol) at 100%, meaning no balance time and/or PV for loads if battery is 100%?
 
so the JK Inverter BMS turns off SCC on EG4 (Lux or Pylon protocol) at 100%
No, the Lux stops charging based on the 100% even if the JK says it would still take charge. The JK has 2 versions of the 100 SOC, a soft one calculated by the internal counter and a second one based on the RCV cell voltage setting. With my SMA the soft 100% does not change the charging amps only the 100% set when one cell hits the RCV cell voltage. Between a fault in Lux and the JK soft 100% that really should never go above 99% you have an issue.
 
Pylontech Canbus and Pylontech plus Canbus are not the same, the SOC is sent to an accuracy of 0.001V instead of 0.01V and then rounded to nearest volts on the plus version as one example. Try the FSS to see if the revised SOC makes a difference.
Ah darn, even with FSS selection at JKBMS, Growatt still turned off the moment the coulomb counter causes the capacity status to reach 100% instead of triggered by RCV voltage.
 
Yes, float mode is enabled on the jkbms.
Do you have a system where the float mode actually works with your JKBMS? The only ones I have heard of are the Victron charge controllers

The issue is more of a philosophical one:
JK considers that the cell is at 100% SOC during the entire CV period of the charge (RCV->RFV->RCV cycle when float mode is enabled).
This is enforced in the firmware by requiring that 'soc-100% volt' must be set below the RCV (presumably to ensure that the cell SOC is reset reliably at each charge). This makes sense from a coulomb counting point of view, as the trigger point where you go from CC to CV charging is the most reliable time to reset the coulomb counter. But the SOC is not truly 100% the moment that you hit RCV, you need to let the battery absorb!

However... luxpower, et al, look at the situation differently, and as soon as the battery reports 100% SOC it turns the charge controller off completely. This does makes sense from a true SOC perspective, because if the battery is reporting 100% SOC why bother keeping the charge controller on. But, with the way JKBMS reports the SOC, this means that the charge controller turns off as soon as one cell in the battery hits RCV (or worse yet: if you have negative drift in the coulomb counter it will report 100% SOC before you even get to that point!), so no absorption or balancing is possible.

They both make compelling arguments, but their logic is mutually incompatible. Either JKBMS needs to report the SOC as 99% during the whole of the absorption process (as the infamous 'peter boards' do), or the inverter needs to actually respect the pylontech 'charger enable' flag and leave the charge controller enabled as long as the BMS requests charging.
Allow me to borrow your post to be posted at Andy OffGridGarage channel.

Note: I already sent several emails to jkbms teams and requested the BMS to report 99% during "RCV Time" and switched to 100% after the timer expired, but never get any feedback from them. Otherwise, those with Voltronic OEM inverter like Growatt and Lux will never get a working "Controlled Float Charge"
 
If they are unresponsive from both sides then you need a 'Peter' board or the Sleeper85 solution for the JK PB


Both of these would sit between the JK and the Inverter and at least on the Peter board stop the premature 100% getting to the Lux. Not looked at the functionality of the Slepper85 but he is responsive to added feature requests.
 
AshleyL: Yes, feel free to share with Andy. It does seem that he is the only one who has been able to get a technical response out of JK

I should share my current solution to work around this issue and allows closed loop SOC based control on the inverter with a JKBMS based battery:
NOTE: It is a pretty big kludge, but so far it does work...
In my current setup I have a 'ghost' JKBMS based battery connected to to the system _only via the parallel RS485 coms_ which is configured with a small capacity (2Ah was the minimum I could set) and reports a permanent 0% SOC to the system. This has the effect of limiting the maximum SOC ever reported by the JKBMS master to the inverter to be caped at 99% without the need for intercepting the CAN coms with the inverter.

It is wasteful in terms of hardware but I am hopeful that we will eventually get a solution so it won't be permanant. If not, I may consider making a small JKBMS spoofer module based on the recently released JKBMS parallel mode libraries by txubelaxu (https://github.com/txubelaxu/esphome-jk-bms/blob/main/components/jk_rs485_bms/README.md ) that reports 0% SOC. I generally would prefer this approach because if the DIY solution were to fail (or should I say... when it fails...) the system will fall back to normal operation (charger cuts off at 100% SOC). This is in contrast to using the DIY solution as the master (as Slepper85 does) so if something goes amis with the DIY solution the CAN coms will fail and the inverter will trip out and disconnect the battery.

So far the solution has been reliable, but I have not had a chance to verify that the charge control logic is working (RCV->RFV->off after timer). I have the RCV set for 3.40v (effectively the float voltage) in the meantime to prevent overcharging.
 
Last edited:
Back
Top