New open source tool for JBD / XiaoXiang BMS

MrSurly

1 µW
Joined
Dec 19, 2020
Messages
2
Hi everyone,

tl;dr -- I made some open source code for the JBD BMS -- any interest in use / beta testing / development?

I posted this before, and was banned for being a Russian Bot ¯\_(ツ)_/¯

I have a JBD-SP04S020 that I'm using for a non-solar project. I wanted to have a little e-ink screen to monitor the cell/pack status, and pursuant to that, I've kind of fallen down the rabbit hole of the BMS serial protocol, since (1) I'm a Linux guy (2) the JBD app for Windows is kinda ... klunky.

Support:

Linux
Windows
Mac

The caveat for these OS's is that my app packager (pyinstaller) requires you do your "build" on the target system. I have Linux and Windows, but no access to a Mac, so if there's a Mac dev out there that could help out, that'd be great. For Linux and (especially) Windows, I'd appreciate testers / feedback / bug reports.

The code and Windows executables:


The repository consists of a backend Python API, and a frontend GUI.

In progress:
  • Replacement firmware for the BMS itself
  • BLE support

Planned:
  • Microcontroller C source code to read the basic info and display on an e-ink screen (which is my personal ultimate goal).

Some (now somewhat old) screenshots of the GUI:

windows-info-screenshot.png

windows-settings-screenshot.png
 
Very cool that you've shared this with us despite some unfair resistance.
I personally don't have use for this; just wanted to say thank you. :)
 
Yes, thanks for posting this.

I don't yet have one of these BMSs, but at some point it's probable that I will, specifically for the remote monitoring functions (not necessarily for any of the control functions).

I am willing to help test stuff as I can on a Windows10 system, if it is something that can be tested without the BMS to connect to. But my personal goal would be to test on an Android device, if you intend to make a version that can work on those (especially an old Samsung Galaxy Tab 2 10.1", or an old Samsung Orbit J something (I forget) phone).

But...I have no idea how to "build" so that would require a tutorial. ;)



BTW, it's weird, but I found that it showed you were still banned (though I can't figure out why (wasn't me ;) )), starting on Dec 20th 2020, and never unbanned, so I am not sure how you were able to log in today to post this. I fixed that and removed you from the banlist just now after seeing this post, so you should be fine now anyway. :)
 
Yeah I can try it out. Is easy for me to try.

What was changed? From the " Klunky" OEM program? I dont really see much from the screenshots that cannot be calibrated with the OEM. What are you planning to change via the firmware boot?


I program these things all the time.. and yes it is a convoluted process every time, but I have reliable repeatable results. I got a few lying round.
 
amberwolf said:
But...I have no idea how to "build" so that would require a tutorial. ;)

The Gitlab page has instructions but it's pretty straighforward. Just a few lines. I've just been running it as python without building, personally... :thumb:

I used the backend of this package for bms integration in my ASI dash app. The code is much cleaner than my own newb python :lol: And I haven't had a problem with it yet.
 
With Bluetooth support coming in later, would it be possible to connect multiple BMSs at the same time? My inverter uses 15s lead acid batteries and I would like to replace it with lithium to around 52S. Cheapest way would be to use multiple 13s BMSs and hook them up just for active balancing and info reporting through Bluetooth(not using the FETs). Connect the data to Grafana and that would be something similar to Batrium
 
multifrag said:
With Bluetooth support coming in later, would it be possible to connect multiple BMSs at the same time? My inverter uses 15s lead acid batteries and I would like to replace it with lithium to around 52S. Cheapest way would be to use multiple 13s BMSs and hook them up just for active balancing and info reporting through Bluetooth(not using the FETs). Connect the data to Grafana and that would be something similar to Batrium
You could use multiple serial lines and open it multiple times. Grafana uses Go, you probably could send the data to it from the python backend one way or another.
 
I thank you for what you are doing. The most frustrating thing I have ever endured in my life is figuring out JBDTools by trial and error. Total crap, there is no decent documentation. Or rather, I think I've read every forum in the world. But there's no way to figure out what the last tab is for and how it works. MODBUS TEST is understood, Mosftet Control also.... but everything else is an incomprehensible disaster.
I found out that there's a correlation between some field and the password that bluetooth asks you for when you connect with the xiaoxiang app. This would solve a lot of problems for a lot of people who are having a hard time with the password - PIN bluethoot - BMS password correlation...
This is what I tried:
Leaving the fields on the first "radio button ???" at the top right empty, then fourth TAB of the JBDTools - then if you connect with the bluetooth BMS 4S 60A module, no password is asked.
However, if you start typing and pressing something in the various fields of JBDTools, then connecting with bluetooth, then the app asks for a password. But reconnecting the JBD Tools then it is no longer possible to read with the Read button on Parameter... you have to put back all the empty fields in the fourth TAB and randomly press things...

If any good souls can shed some light on this for me, I would sincerely thank them. The vendor doesn't want to understand or pretends not to understand my requests.
 

Attachments

  • password JBD Tools.jpg
    password JBD Tools.jpg
    56.4 KB · Views: 1,650
  • jbd tool last version.JPG
    jbd tool last version.JPG
    220.1 KB · Views: 1,649
Back
Top