Problems with firmware v19 in boards jk-pb2a16s20p


ALL NEW - Battery Finder Search for 12/24/36/48v or by capacity www.batteryfinder.net
New & used Batteries, Solar, accessories, LifePo4 cells & more 5% Coupon "Powerwalls" www.batteryhookup.com

joluinfante

New member
Joined
Nov 22, 2025
Messages
3
Hello. At the beginning of the year, I bought two battery boxes that included this board with firmware v15h. I was able to integrate the BMSs perfectly with Home Assistant and manage the connections between MPPTs, inverters, and batteries, converting half of my apartment (the bedrooms) to solar power. Pleased with the system's performance, I bought two more boxes. However, this time the boards came with v19a, which seems to be relatively new and isn't supported by the Git repository (for example, https://github.com/txubelaxu/esphome-jk-bms). I've been looking for implementations of this new version of the protocol (which works with both BLE and RS425), but I don't see that anyone has worked on it. I wrote to the Jikong team, but they haven't replied yet. Meanwhile, I thought I could help the community by implementing v19, but I need some context to do so (for example, I need to know where the documentation for version v15h is so I can associate it with the existing code, and then the documentation for version v19a, to make the appropriate queries for the board and avoid getting all zeros in the response—that is, it either ignores me or gives an error, which I'm not seeing).

Can anyone help me get started with this? Any material I can read beyond the source code?

Well, I don't know if this is the right place to ask this, but I decided to ask everywhere to see if I can find answers.

Jorge Infante
Rosario - Santa Fe - Argentina
 
Hello. At the beginning of the year, I bought two battery boxes that included this board with firmware v15h. I was able to integrate the BMSs perfectly with Home Assistant and manage the connections between MPPTs, inverters, and batteries, converting half of my apartment (the bedrooms) to solar power. Pleased with the system's performance, I bought two more boxes. However, this time the boards came with v19a, which seems to be relatively new and isn't supported by the Git repository (for example, https://github.com/txubelaxu/esphome-jk-bms). I've been looking for implementations of this new version of the protocol (which works with both BLE and RS425), but I don't see that anyone has worked on it. I wrote to the Jikong team, but they haven't replied yet. Meanwhile, I thought I could help the community by implementing v19, but I need some context to do so (for example, I need to know where the documentation for version v15h is so I can associate it with the existing code, and then the documentation for version v19a, to make the appropriate queries for the board and avoid getting all zeros in the response—that is, it either ignores me or gives an error, which I'm not seeing).

Can anyone help me get started with this? Any material I can read beyond the source code?

Well, I don't know if this is the right place to ask this, but I decided to ask everywhere to see if I can find answers.

Jorge Infante
Rosario - Santa Fe - Argentina
Okay. I'll answer my own question. I checked all the connections, replaced the RS485-TTL board, added debug functionality to the code, and finally (after reverting the speed back to 115200, as chatgpt had made me change it, and Deepseek told me it was incorrect to set it to 19200), everything started working again. In principle, I suppose it worked after thoroughly checking the wiring and/or the board. So, problem solved. If anyone else is having trouble with v19a, we can discuss it. Cheers!
 
Yeah, pretty much the only 2 baud speeds used for serial coms is 9600 & 115200. Anything else is pretty much user custom speeds. I think you could have even dropped to 9600 and it might have worked as that's usually the backup speed.
 
Yes, native is 9600 Baud for v19 JK BMS of this type. I constantly use them.
 
Maybe give AI a go? I have been using jblance's python program from https://github.com/jblance/mpp-solar but the code for the PB variant doesn't work for my JK-PB2A16S15P but the other protocols (JKv11) works for my JK-B2A24S. So I just spent an hour arguing with Grok and he finally pulled through and gave me a much simpler script that worked for both versions. It's just amazing! a 50+ file bloatware down to one simple script. I run it on a tiny raspberry pi.

I use the BLE (bluetooth) implementation because that's all the connection I had with the JK-B2A24S plus it's neater without all the wires.

Just for reference I am posting the code. It's output is pretty rough but just feed it to grok and ask it how you want it output I guess....
 

Attachments

  • grok-jkbms.txt
    13.6 KB · Views: 41
Maybe give AI a go? I have been using jblance's python program from https://github.com/jblance/mpp-solar but the code for the PB variant doesn't work for my JK-PB2A16S15P but the other protocols (JKv11) works for my JK-B2A24S. So I just spent an hour arguing with Grok and he finally pulled through and gave me a much simpler script that worked for both versions. It's just amazing! a 50+ file bloatware down to one simple script. I run it on a tiny raspberry pi.

I use the BLE (bluetooth) implementation because that's all the connection I had with the JK-B2A24S plus it's neater without all the wires.

Just for reference I am posting the code. It's output is pretty rough but just feed it to grok and ask it how you want it output I guess....
Whichever AI tool you use to code be aware that all of them are set up to produce protyping code that is not necessarily maintainable. Its because the machine uses the fewest tokens especially in free to use sessions. If one has a subscription then it may be possible to set up a play mode that produces production maintainable code every time. Just dont get caught up with relying on prototype code that some years down the line is unfathonable. By the way, production code is best practice, has error trapping and comments along with a revision history.
 
Back
Top