diy solar

diy solar

JBD BMS Wi-Fi Module

So Guys,
finally today I received the ESP01 and I tried again.
Unfortunately I found a problem, that maybe is the same that I had with the esp8266 that I used.

The volt from the UART wire is the same of the battery, in my case 13,56.
When I connect the ESP the volts drop to 5volt and the ESP is no longer able to stay on.
When I remove the ESP the volts raise again.

What can I do?

Thanks
 
Have you verified that you have 3.3v on the power pin to the ESP01? It cannot be any higher than 3.3v or you risk destroying the ESP01

The reason for the voltage regulator is to lower the pack voltage (10-14v) to 3.3v.
 
I downloaded the image from pcbway and edited to show the wiring diagram. I tried to compare it to the previous diagram you provided in post #140 and it looks to be the same (you show the same traces on multiple layers) - I'm just providing this for clarity.

It is absolutely essential you cut the trace for the "ADJ" pad and solder the 2 pads for 3.3v on the voltage regulator OR use the adjustment to adjust it to 3.3v.
 

Attachments

  • wiring diagram.png
    wiring diagram.png
    15.1 KB · Views: 45
Have you verified that you have 3.3v on the power pin to the ESP01? It cannot be any higher than 3.3v or you risk destroying the ESP01

The reason for the voltage regulator is to lower the pack voltage (10-14v) to 3.3v.
@melkier I adjust the voltage of the regulator to 3.3 before connect to the battery. So I know that is perfect.
When I connect to the Bluetooth connector the voltage from the bms (only on this connector) drop from the battery voltage to 5v so the ESP01s switched off.
If I remove the ESP01s from the pcb the volt raise again.
Anyway I move the positive from the bluetooth to the main positive and all works fine.

Now everything is perfect on my test raspberry, now I have problem to compile jbdtool on my main pi4, lots of warning during compile...
Tomorrow I will try again.
Thanks
 
Here's the last compiled version of jbdtool
 

Attachments

  • jbdtool_linux_static.zip
    1 MB · Views: 16
  • jbdtool_pi_static.zip
    1.3 MB · Views: 23
  • jbdtool_win64_static.zip
    180.3 KB · Views: 33
just extract it and run from the current location

for example:

Code:
./jbdtool -d 2 -t ip:192.168.1.55 -J -F
 
just extract it and run from the current location

for example:

Code:
./jbdtool -d 2 -t ip:192.168.1.55 -J -F
@melkier ok I find the way, thanks.
It was tricky but I got it.
The version that you sent me was not working on my Raspberry Pi, but I found in this amazing thread the Arm version.
Then I had problem to run it, but I found how to give the permission and not it's run.
I see that probably the Arm executable is not the latest version, but it work well.
Thanks again.
 
I sent you 3 versions: 1 for linux x86_64, 1 for Raspberry Pi (arm), and 1 for Windows x86_64

extract the jbdtool_pi_static.zip, then chmod +x ./jbdtool, then ./jbdtool

it should work - let me know if it does not
 
I sent you 3 versions: 1 for linux x86_64, 1 for Raspberry Pi (arm), and 1 for Windows x86_64

extract the jbdtool_pi_static.zip, then chmod +x ./jbdtool, then ./jbdtool

it should work - let me know if it does not
@melkier yeah that's true. I was tired probably and I took the Linux version not the Pi. My apologies mate. ?
I've started my dashboard for Android Tablet, here a screenshot took tonight.
FB_IMG_1629148868994.jpg
 
I sent you 3 versions: 1 for linux x86_64, 1 for Raspberry Pi (arm), and 1 for Windows x86_64

extract the jbdtool_pi_static.zip, then chmod +x ./jbdtool, then ./jbdtool

it should work - let me know if it does not
@melkier just did some tests and for your info.
With the two Static_PI versions that I called OLD and I found in this thread:
- Zip file 1.315Mb
- Zip file 757Kb
all work good.

If I install the latest version that you sent me up here with the same command used with the others two:
Code:
jbdtool -t ip:192.168.15.183 -m 192.168.15.182:Thor:Battery/Bat1 -J
the software answer with an error: "error: MQTTClient_connect: cant connect"

Always thanks
 
@melkier just did some tests and for your info.
With the two Static_PI versions that I called OLD and I found in this thread:
- Zip file 1.315Mb
- Zip file 757Kb
all work good.

If I install the latest version that you sent me up here with the same command used with the others two:
Code:
jbdtool -t ip:192.168.15.183 -m 192.168.15.182:Thor:Battery/Bat1 -J
the software answer with an error: "error: MQTTClient_connect: cant connect"

Always thanks

Depending on what MQTT broker you have, please check the logfile to see the reason it can't connect.

If you use mosquitto, you can use this command to see the end of the file:

Code:
tail /var/log/mosquitto/mosquitto.log

The new one only has 2 improvements: 1) Balance bitmask, showing which cells are balancing, and 2) the ability to use username/password when connecting to MQTT server. I think maybe the 2nd improvement might be the source of the issue.
 
Any further progress on this?

I have a few Wemos D1R1's sitting around so I put esp-link on one but I need to get the connector cable to hook it to the BMS as I don't have any cables that fit it.

I have 2x JBD 4s 150A BMS units that I want to monitor
 
Last edited:
Any further progress on this?

I have a few Wemos D1R1's sitting around so I put esp-link on one but I need to get the connector cable to hook it to the BMS as I don't have any cables that fit it.

I have 2x JBD 4s 150A BMS units that I want to monitor
If you're asking about using Wemos, there should be no reason it wouldn't work with a wemos, just have to get all the correct pins connected, etc.

I think everyone here is using ESP-01, check back through the thread. Mine is happily logging data and helping my system control two paralleled 10s packs in an electric tractor which is charged & discharged daily as a powerwall. I'll set it up for several more 14s packs in parallel as a larger powerwall.
1633542670159.png
(in this plot I had just started logging amps, and changed my sign convention partway through. neg dischg, pos chg is what I prefer.)
 
If you're asking about using Wemos, there should be no reason it wouldn't work with a wemos, just have to get all the correct pins connected, etc.

I think everyone here is using ESP-01, check back through the thread. Mine is happily logging data and helping my system control two paralleled 10s packs in an electric tractor which is charged & discharged daily as a powerwall. I'll set it up for several more 14s packs in parallel as a larger powerwall.
View attachment 67759
(in this plot I had just started logging amps, and changed my sign convention partway through. neg dischg, pos chg is what I prefer.)
Looks good!

I'm just figuring out the whole sequence of packages that are needed and the config I have to do. I didn't find any clear cut instructions to follow through to get the whole setup working. I'm not really a Linux guy (Windows dev mostly pre-retirement) but I can manage to figure some stuff out :)

I saw a post about an Android app but nothing further on it. I'll get some connectors and setup the Wemos conn to the BMS and see how I make out. I figured I'd try what I already have (also a bunch of NodeMCU's & ESP32 boards as well). I was previously monitoring with a nodeMCU/INA219/shunt and Pi3 talking to my Rover CC dumping into a SQL db with custom graphing that I setup a few yrs ago. The Grafana looks like better displays and easier to manage.
 
Is everyone that set this up using ESP-01's just having the GPIO pins connect to the 5V on the BMS?
 
Is everyone that set this up using ESP-01's just having the GPIO pins connect to the 5V on the BMS?
The Tx/Rx & Gnd from the BMS uart plug go straight to the ESP-01. I'm not sure what the Tx/Rx level on the BMS are exactly, but it's working with the 3.3v supplied to ESP-01.

The V goes from the BMS uart plug, via the 3.3v supply, to the ESP-01. On my 10s (36-42v pack) BMS, I see 12v at the V pin of BMS uart plug. Maybe if the pack voltage is close to 12v, say with a 4s LiFePo4 pack, then maybe it could be lower than 12v? I see spidgrou a few posts back mentioned he gets V+ direct from his pack top cell, not the BMS uart, and that resolved an issue for him.
 
Hmmm, having trouble with new BMSs & packs. I get empty mqtt objects to node-red, and if I do jbdtool from command line with debug it doesn't seem to be successful either, see below. Any ideas or advice? TIA

I got around to building 4 48v 14s packs, and have wired up the 60A 14s BMSs to the first and second packs. UART communication works correctly with the BT dongle & android app, but with the ESP-01 wifi dongle, no great luck yet. The VCC from the BMS was 12.8v with nothing hooked up to it, and about 11v with the ESP-01 wifi dongle and 3.3v still at the ESP-01 input. With a bench supply, the 3.3v adapter works fine, gives 3.3v, down to 4 or 5v supply, so a little droop from the bms '12v' supply should be fine? Esp-link seems to be working fine to it's webserver, pinging is ok. I do have a scope, but it's not my forte to use, I could look & see what the tx/rx levels are doing. I could power the 3.3v adapter separately, and run Gnd,tx,rx from the bms, see if that's any different.

I have three ESP-01 wifi dongles, 2 have been running for a while on 2 10s packs, and the third dongle was made at same time. I swapped dongles with ESP-01, and any work fine on the 10s packs, but not on the 14s. I swapped a couple esp-01 with esp-link also, same thing. I haven't changed the Rpi & jbdtool s/w since a few months ago when I got the 2 10s packs set up, maybe I'd update to latest from github and try. I have a third BMS from this shipment (last march) and a fourth coming soon, I'll see if they work any different. Of the working 10s BMSs, one was ordered earlier, and the second 10s came with the 3 14s.

Code:
pi@hassbian:~ $ jbdtool -t ip:192.168.15.36,23 -d 3 -a
main(801): transport: 0x7eb9f7cc, target: 0x7eb9f7cf
main(826): transport: ip
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x246f8
mybmm_load_module(79): adding module: ip
main(829): tp: 0x3c584
mybmm_load_module(45): mp->name: ip, mp->type: 2
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x19a84
mybmm_load_module(79): adding module: jbd
main(832): cp: 0x3c510
jbd_new(415): transport: ip
jbd_new(424): pp->target: 192.168.15.36, pp->opts: 23
ip_new(69): target: 192.168.15.36
main(844): charge: -1, discharge: -1
main(868): mqtt: (nil)
main(914): outfp: 0x11b3820
jbd_open(435): opening...
ip_open(97): s->sock: 0xffffffff
ip_open(100): creating socket...
ip_open(119): temp: 192.168.15.36
ip_open(126): connecting...
jbd_get_info(263): transport: ip
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 0
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 0
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 0

Successful request (one of the 10s packs), looks as follows.
Code:
pi@hassbian:~ $ jbdtool -t ip:192.168.15.35,23 -d 3 -a
main(801): transport: 0x7e99b7cc, target: 0x7e99b7cf
main(826): transport: ip
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x246f8
mybmm_load_module(79): adding module: ip
main(829): tp: 0x3c584
mybmm_load_module(45): mp->name: ip, mp->type: 2
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x19a84
mybmm_load_module(79): adding module: jbd
main(832): cp: 0x3c510
jbd_new(415): transport: ip
jbd_new(424): pp->target: 192.168.15.35, pp->opts: 23
ip_new(69): target: 192.168.15.35
main(844): charge: -1, discharge: -1
main(868): mqtt: (nil)
main(914): outfp: 0x1e8f820
jbd_open(435): opening...
ip_open(97): s->sock: 0xffffffff
ip_open(100): creating socket...
ip_open(119): temp: 192.168.15.35
ip_open(126): connecting...
jbd_get_info(263): transport: ip
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 34
jbd_verify(84): good data!
jbd_std_get_info(172): voltage: 39.13
jbd_std_get_info(173): current: -4.41
jbd_std_get_info(174): capacity: 54.13
jbd_std_get_info(179): fullcap: 130.00
jbd_std_get_info(180): cycles: 12
jbd_std_get_info(181): pctcap: 2a
jbd_std_get_info(196): balance: 0000000000000000
jbd_std_get_info(212): protect: 0000000000000000
jbd_std_get_info(221): year: 2021, mon: 3, day: 16
jbd_std_get_info(224): fetstate: 3
jbd_std_get_info(225): mfgdate: 20210316
jbd_std_get_info(226): version: 2.2
jbd_std_get_info(230): strings: 10
jbd_std_get_info(231): probes: 2
jbd_std_get_info(236): temp[0]: 2851
jbd_std_get_info(236): temp[1]: 2846
jbd_std_get_info(242): temp 0: 32.216
jbd_std_get_info(242): temp 1: 32.207
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 27
jbd_verify(84): good data!
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 33
jbd_verify(84): good data!
jbd_get_info(271): r: 0
jbd_get_info(280): cell 0: 3.914
jbd_get_info(280): cell 1: 3.912
jbd_get_info(280): cell 2: 3.914
jbd_get_info(280): cell 3: 3.913
jbd_get_info(280): cell 4: 3.912
jbd_get_info(280): cell 5: 3.915
jbd_get_info(280): cell 6: 3.913
jbd_get_info(280): cell 7: 3.916
jbd_get_info(280): cell 8: 3.913
jbd_get_info(280): cell 9: 3.915
jbd_get_info(288): cells: total: 39.137, min: 3.912, max: 3.916, diff: 0.004, avg: 3.914
dfloat(231): dint: label: Voltage, val: 39.130001
dfloat(243): temp: %-25s %.3f
Voltage                   39.130
dfloat(231): dint: label: Current, val: -4.410000
dfloat(243): temp: %-25s %.3f
Current                   -4.410
dfloat(231): dint: label: DesignCapacity, val: 130.000000
dfloat(243): temp: %-25s %.3f
DesignCapacity            130.000
dfloat(231): dint: label: RemainingCapacity, val: 54.130001
dfloat(243): temp: %-25s %.3f
RemainingCapacity         54.130
dint(188): label: PercentCapacity, val: 42
dint(200): temp: %-25s %d
PercentCapacity           42
dint(188): label: CycleCount, val: 12
dint(200): temp: %-25s %d
CycleCount                12
dint(188): label: Probes, val: 2
dint(200): temp: %-25s %d
Probes                    2
dint(188): label: Strings, val: 10
dint(200): temp: %-25s %d
Strings                   10
dstr(253): dint: label: Temps, val: 12.0,11.5
dstr(265): temp: %-25s %s
Temps                     12.0,11.5
dstr(253): dint: label: Cells, val: 3.914,3.912,3.914,3.913,3.912,3.915,3.913,3.916,3.913,3.915
dstr(265): temp: %-25s %s
Cells                     3.914,3.912,3.914,3.913,3.912,3.915,3.913,3.916,3.913,3.915
dfloat(231): dint: label: CellTotal, val: 39.137001
dfloat(243): temp: %-25s %.3f
CellTotal                 39.137
dfloat(231): dint: label: CellMin, val: 3.912000
dfloat(243): temp: %-25s %.3f
CellMin                   3.912
dfloat(231): dint: label: CellMax, val: 3.916000
dfloat(243): temp: %-25s %.3f
CellMax                   3.916
dfloat(231): dint: label: CellDiff, val: 0.004000
dfloat(243): temp: %-25s %.3f
CellDiff                  0.004
dfloat(231): dint: label: CellAvg, val: 3.913700
dfloat(243): temp: %-25s %.3f
CellAvg                   3.914
dstr(253): dint: label: DeviceName, val: 15300034-SP10S009-P10S-60A
dstr(265): temp: %-25s %s
DeviceName                15300034-SP10S009-P10S-60A
dstr(253): dint: label: ManufactureDate, val: 20210316
dstr(265): temp: %-25s %s
ManufactureDate           20210316
dfloat(231): dint: label: Version, val: 2.200000
dfloat(243): temp: %-25s %.1f
Version                   2.2
dstr(253): dint: label: FET, val: Charge,Discharge
dstr(265): temp: %-25s %s
FET                       Charge,Discharge

Empty mqtt messages in node-red, (tried with & without the user & pwd, same thing)
Code:
pi@hassbian:~ $ jbdtool -t ip:192.168.15.36,23 -i 175 -m 192.168.15.15:BMS_LB1:JBD_LB1:mqtt_user:mqtt_user_pw &                                  

In node-red debug window, displaying the received message:
10/27/2021, 11:30:32 PMnode: 5a5b7f20.fc897JBD_LB1 : msg : Object
object
topic: "JBD_LB1"
payload: object
empty
qos: 0
retain: false
_msgid: "9329c511.9c6138"

wah, I want more squiggly lines on my plots! ;>( haha Thanks melkier for sharing this project in the first place!
 
Hmmm, having trouble with new BMSs & packs. I get empty mqtt objects to node-red, and if I do jbdtool from command line with debug it doesn't seem to be successful either, see below. Any ideas or advice? TIA

I got around to building 4 48v 14s packs, and have wired up the 60A 14s BMSs to the first and second packs. UART communication works correctly with the BT dongle & android app, but with the ESP-01 wifi dongle, no great luck yet. The VCC from the BMS was 12.8v with nothing hooked up to it, and about 11v with the ESP-01 wifi dongle and 3.3v still at the ESP-01 input. With a bench supply, the 3.3v adapter works fine, gives 3.3v, down to 4 or 5v supply, so a little droop from the bms '12v' supply should be fine? Esp-link seems to be working fine to it's webserver, pinging is ok. I do have a scope, but it's not my forte to use, I could look & see what the tx/rx levels are doing. I could power the 3.3v adapter separately, and run Gnd,tx,rx from the bms, see if that's any different.

I have three ESP-01 wifi dongles, 2 have been running for a while on 2 10s packs, and the third dongle was made at same time. I swapped dongles with ESP-01, and any work fine on the 10s packs, but not on the 14s. I swapped a couple esp-01 with esp-link also, same thing. I haven't changed the Rpi & jbdtool s/w since a few months ago when I got the 2 10s packs set up, maybe I'd update to latest from github and try. I have a third BMS from this shipment (last march) and a fourth coming soon, I'll see if they work any different. Of the working 10s BMSs, one was ordered earlier, and the second 10s came with the 3 14s.

Code:
pi@hassbian:~ $ jbdtool -t ip:192.168.15.36,23 -d 3 -a
main(801): transport: 0x7eb9f7cc, target: 0x7eb9f7cf
main(826): transport: ip
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x246f8
mybmm_load_module(79): adding module: ip
main(829): tp: 0x3c584
mybmm_load_module(45): mp->name: ip, mp->type: 2
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x19a84
mybmm_load_module(79): adding module: jbd
main(832): cp: 0x3c510
jbd_new(415): transport: ip
jbd_new(424): pp->target: 192.168.15.36, pp->opts: 23
ip_new(69): target: 192.168.15.36
main(844): charge: -1, discharge: -1
main(868): mqtt: (nil)
main(914): outfp: 0x11b3820
jbd_open(435): opening...
ip_open(97): s->sock: 0xffffffff
ip_open(100): creating socket...
ip_open(119): temp: 192.168.15.36
ip_open(126): connecting...
jbd_get_info(263): transport: ip
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 0
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 0
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 0

Successful request (one of the 10s packs), looks as follows.
Code:
pi@hassbian:~ $ jbdtool -t ip:192.168.15.35,23 -d 3 -a
main(801): transport: 0x7e99b7cc, target: 0x7e99b7cf
main(826): transport: ip
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x246f8
mybmm_load_module(79): adding module: ip
main(829): tp: 0x3c584
mybmm_load_module(45): mp->name: ip, mp->type: 2
mybmm_load_module(51): NOT found.
mybmm_load_module(72): init: 0x19a84
mybmm_load_module(79): adding module: jbd
main(832): cp: 0x3c510
jbd_new(415): transport: ip
jbd_new(424): pp->target: 192.168.15.35, pp->opts: 23
ip_new(69): target: 192.168.15.35
main(844): charge: -1, discharge: -1
main(868): mqtt: (nil)
main(914): outfp: 0x1e8f820
jbd_open(435): opening...
ip_open(97): s->sock: 0xffffffff
ip_open(100): creating socket...
ip_open(119): temp: 192.168.15.35
ip_open(126): connecting...
jbd_get_info(263): transport: ip
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 34
jbd_verify(84): good data!
jbd_std_get_info(172): voltage: 39.13
jbd_std_get_info(173): current: -4.41
jbd_std_get_info(174): capacity: 54.13
jbd_std_get_info(179): fullcap: 130.00
jbd_std_get_info(180): cycles: 12
jbd_std_get_info(181): pctcap: 2a
jbd_std_get_info(196): balance: 0000000000000000
jbd_std_get_info(212): protect: 0000000000000000
jbd_std_get_info(221): year: 2021, mon: 3, day: 16
jbd_std_get_info(224): fetstate: 3
jbd_std_get_info(225): mfgdate: 20210316
jbd_std_get_info(226): version: 2.2
jbd_std_get_info(230): strings: 10
jbd_std_get_info(231): probes: 2
jbd_std_get_info(236): temp[0]: 2851
jbd_std_get_info(236): temp[1]: 2846
jbd_std_get_info(242): temp 0: 32.216
jbd_std_get_info(242): temp 1: 32.207
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 27
jbd_verify(84): good data!
ip_write(196): s->sock: 0x3
ip_write(201): bytes: 7
ip_read(179): debug: 3
jbd_verify(49): len: 33
jbd_verify(84): good data!
jbd_get_info(271): r: 0
jbd_get_info(280): cell 0: 3.914
jbd_get_info(280): cell 1: 3.912
jbd_get_info(280): cell 2: 3.914
jbd_get_info(280): cell 3: 3.913
jbd_get_info(280): cell 4: 3.912
jbd_get_info(280): cell 5: 3.915
jbd_get_info(280): cell 6: 3.913
jbd_get_info(280): cell 7: 3.916
jbd_get_info(280): cell 8: 3.913
jbd_get_info(280): cell 9: 3.915
jbd_get_info(288): cells: total: 39.137, min: 3.912, max: 3.916, diff: 0.004, avg: 3.914
dfloat(231): dint: label: Voltage, val: 39.130001
dfloat(243): temp: %-25s %.3f
Voltage                   39.130
dfloat(231): dint: label: Current, val: -4.410000
dfloat(243): temp: %-25s %.3f
Current                   -4.410
dfloat(231): dint: label: DesignCapacity, val: 130.000000
dfloat(243): temp: %-25s %.3f
DesignCapacity            130.000
dfloat(231): dint: label: RemainingCapacity, val: 54.130001
dfloat(243): temp: %-25s %.3f
RemainingCapacity         54.130
dint(188): label: PercentCapacity, val: 42
dint(200): temp: %-25s %d
PercentCapacity           42
dint(188): label: CycleCount, val: 12
dint(200): temp: %-25s %d
CycleCount                12
dint(188): label: Probes, val: 2
dint(200): temp: %-25s %d
Probes                    2
dint(188): label: Strings, val: 10
dint(200): temp: %-25s %d
Strings                   10
dstr(253): dint: label: Temps, val: 12.0,11.5
dstr(265): temp: %-25s %s
Temps                     12.0,11.5
dstr(253): dint: label: Cells, val: 3.914,3.912,3.914,3.913,3.912,3.915,3.913,3.916,3.913,3.915
dstr(265): temp: %-25s %s
Cells                     3.914,3.912,3.914,3.913,3.912,3.915,3.913,3.916,3.913,3.915
dfloat(231): dint: label: CellTotal, val: 39.137001
dfloat(243): temp: %-25s %.3f
CellTotal                 39.137
dfloat(231): dint: label: CellMin, val: 3.912000
dfloat(243): temp: %-25s %.3f
CellMin                   3.912
dfloat(231): dint: label: CellMax, val: 3.916000
dfloat(243): temp: %-25s %.3f
CellMax                   3.916
dfloat(231): dint: label: CellDiff, val: 0.004000
dfloat(243): temp: %-25s %.3f
CellDiff                  0.004
dfloat(231): dint: label: CellAvg, val: 3.913700
dfloat(243): temp: %-25s %.3f
CellAvg                   3.914
dstr(253): dint: label: DeviceName, val: 15300034-SP10S009-P10S-60A
dstr(265): temp: %-25s %s
DeviceName                15300034-SP10S009-P10S-60A
dstr(253): dint: label: ManufactureDate, val: 20210316
dstr(265): temp: %-25s %s
ManufactureDate           20210316
dfloat(231): dint: label: Version, val: 2.200000
dfloat(243): temp: %-25s %.1f
Version                   2.2
dstr(253): dint: label: FET, val: Charge,Discharge
dstr(265): temp: %-25s %s
FET                       Charge,Discharge

Empty mqtt messages in node-red, (tried with & without the user & pwd, same thing)
Code:
pi@hassbian:~ $ jbdtool -t ip:192.168.15.36,23 -i 175 -m 192.168.15.15:BMS_LB1:JBD_LB1:mqtt_user:mqtt_user_pw &                                 

In node-red debug window, displaying the received message:
10/27/2021, 11:30:32 PMnode: 5a5b7f20.fc897JBD_LB1 : msg : Object
object
topic: "JBD_LB1"
payload: object
empty
qos: 0
retain: false
_msgid: "9329c511.9c6138"

wah, I want more squiggly lines on my plots! ;>( haha Thanks melkier for sharing this project in the first place!

Someone else said there was an issue with no mqtt with the new version (which I changed to support user/pass in mqtt). I'll do some thorough testing this weekend and see if I can find it. In the meantime, you might use an older version or one you know works fine.
 
The Tx/Rx & Gnd from the BMS uart plug go straight to the ESP-01. I'm not sure what the Tx/Rx level on the BMS are exactly, but it's working with the 3.3v supplied to ESP-01.

The V goes from the BMS uart plug, via the 3.3v supply, to the ESP-01. On my 10s (36-42v pack) BMS, I see 12v at the V pin of BMS uart plug. Maybe if the pack voltage is close to 12v, say with a 4s LiFePo4 pack, then maybe it could be lower than 12v? I see spidgrou a few posts back mentioned he gets V+ direct from his pack top cell, not the BMS uart, and that resolved an issue for him.
I was initially using ESP8266 boards with SoftwareSerial and it was flaky. I now have an ESP32 board mounted to each battery pack and they publish the info via MQTT and it's working well. I now use hardware serial for the BMS comms and just connect directly to the BMS port with no added hardware other than a small 12v-3.3v module under the ESP32 . I printed small clips that screw to the battery box and the boards slide into them.
The Pi4 is running the servers and reading from my Renogy Rover and publishing that via MQTT also. Still working to get a nice Grafana dashboard. The layout format capabilities leave a lot to be desired.
 

Attachments

  • PXL_20211014_124321260.jpg
    PXL_20211014_124321260.jpg
    164.7 KB · Views: 94
Back
Top