• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

Adding bluetooth/network to the EcoFlow 12v 100Ah battery

CorruptDB

New Member
Joined
Nov 15, 2024
Messages
6
Location
Salt Lake City, UT
After watching Will's video on the new cheap EcoFlow battery ($200 Ecoflow 12V Battery?! It's shiny!) I decided to pull the trigger and get one. I have been looking for a second 100Ah LFP to add to my RV. This one seemed perfect for a bunch of reasons:
  • It's SUPER cheap! I bought my current 100 Ah LFP RV battery (VATRER, also torn down by Will at
    ) a couple of years ago for nearly twice the price and it was one of the cheapest you could get at the time.
  • Prices are going to spike soon because of tariffs being added to Chinese batteries
  • EcoFlow makes good products, but I always associated them with the overpriced "solar generator" kits and the like where I prefer a more DIY/inexpensive route. I was surprised to see them offer a battery at this price point.
  • The build quality looked great on the teardown video and it passed all of Will's tests
  • Most of all, you can open the case, making it DIY friendly. I don't want to spend the extra money for the fancy batteries with bluetooth and displays when I can DIY it for a lot less and actually have access to the data instead of having to install a random app on my phone. Having a case I can open (then seal again) is way better than having to cut into one of the other batteries on the market then trying to seal it again when I was done.
In Will's video I noticed the BMS has unpopulated solder pads marked RS-485 and another set marked "LCD", along with 2 empty ports, one marked "SW" and the other without any markings. I figured that was enough that I would get one of these batteries and see what I could hack with the BMS.

My new battery looks pretty much like the one in the video on the outside and the inside. One odd thing is that the $199 battery on the EcoFlow site (https://us.ecoflow.com/products/lithium-12v-100ah-deep-cycle-lifepo4-battery) the specs say "Max Discharge Current 30 Seconds" is 110A where on Will's video the top panel of the battery says "300A@30s Instantaneous Load Capacity" which seems to be the specs of their $269 battery (https://us.ecoflow.com/products/lithium-12v-100ah-deep-cycle-marine-trolling-motor-battery). I ordered the $199 battery and the battery I received says the same as the one in the video, 300A@30s so they might be shipping the more expensive one for both SKUs, other than the instantaneous output I don't see the difference between the two batteries so maybe I just got lucky with a free upgrade.

The BMS board has some QR codes on it that encoded long (part?) numbers starting with "SP04S". I worked on the assumption that it was a JBD BMS because their part numbers follow that pattern and they had very similar BMSes on their site, but I couldn't find the exact BMS. I was able to access the UART in the BMS via the unmarked port next to the sensor port. If you look through the glue behind the port you can see the PCB silkscreen says "TXD", "RXD" and "VCC" next to 3 of the 4 pins. The TXD pin measured at 3.3v and the VCC pin measured at 12.8v vs. pin 1, which has continuity to pack ground.

I hooked a USB to serial converter up to the port and wrote a python script to send a query to the BMS using the JBD BMS protocol (send 0xDD, 0xA5, 0x03, 0, 0xFF, 0xFD, 0x77). That statement sounds simple but in actuality it was hours of probing, debugging, rewiring, trying different hardware, trying different bauds, etc.) but that's typical for me with any project like this. After I finally was able to get the BMS to return data in response to my query, I investigated what other people have done for parsing the output since I didn't want to write everything from scratch. I found https://github.com/sshoecraft/jbdtool which can connect to JBD BMSes, parse the battery/cell data and output to JSON or CSV. Querying the BMS information it reports it is manufactured by "Zetara" and the model is ZT_SP04S0457 but I'm not seeing it on their site. Whatever the case, it speaks the JBD protocol so I should be able to accomplish what I want.

I added a bluetooth module to the mix, an HM-10 clone module from Amazon. It has been less than successful. The modules I got don't seem very good, I can establish a link and data sent from its UART to bluetooth appears to work but if you try to send BT->serial it flips out and disconnects and often just disconnects for no reason.

I might try with a different bluetooth module but after seeing other people on this forum are using WiFi instead I decided to go that route since other people on this forum have already done that: https://diysolarforum.com/threads/jbd-bms-wi-fi-module.17252/ and I have a spare ESP8266 lying around. I got that up and working as expected but then I ran into the next difficulty. The pin marked VCC on the UART port doesn't seem to support any current. I was testing a DC/DC converter to test everything on battery power only and couldn't figure out why everything kept glitching out. My converter output was dropping from its set 3.3v once I connected any device even though it's way bigger than what's actually going into the battery long-term (rated for 5A). Even adjusting the converter adjustment pot up I couldn't get it back to 3.3v. I finally looked at the source voltage and found that it immediately dropped whenever anything is connected to it. I found the VCC pad on the LCD port appears to be pack voltage so I soldered a lead onto it and I'm using it for my power supply. Unfortunately since I had adjusted my DC/DC converter up when troubleshooting I now supplied WAY TOO MUCH voltage (probably close to pack voltage) to my ESP8266 and fried it. Literally fried it, I could hear it sizzle. I have let a lot of magic smoke out of a lot of parts in my time but that sizzle was the loudest I have ever heard, maybe the RF shield on that part amplifies it. That was my only spare so I am currently waiting on some ESP-01 boards and I'll get it working over WiFi, for now I am logging battery data over a direct serial connection.

For other people who are using JBD-style BMSes, what are you using to visualize/monitor your data? Right now I am just inserting the data (battery state, voltage, amps, temps, cell volts, etc) into a database and generating graphs with Python, are there any existing projects that consume data like this into a more cohesive solar system picture or do most people just install another app on their phone, occasionally look at some cell voltages and leave it at that? I would love to hear what other people are doing with BMS/inverter/MPPT charger data from their systems.
 
To follow up on this, I received my parts and have successfully built my WiFi module and installed it in the battery. It's been working great so far. Here are some pics.

Parts to build the module: ESP-01 wireless module, DC-DC converter, and a piece of protoboard.
1731871011146.png

DC-DC converter and wiring added
1731871163625.png

ESP-01 added
1731871234678.png

Heat shrink and hot glue added and installed in battery
1731871303867.png


It's been working great so far, jbdtool can query the battery over the network then I log the battery status to a database. The voltage regulator was $0.80 (10 for $7.99) and the ESP-01 was $2.00 (5 for $9.99) so it cost me $2.80 to add WiFi to my BMS. That's a lot cheaper than what the manufacturers charge for this functionality so I'm really happy with this modification.
 
I wish I was as technical as you. Maybe you could collaborate with EcoFlow and build these so people like me could add them to their 12v 100Ah liFePO4’s that are inevitably using to add capacity to their Delta/river series 3 plus pro plus 3+ instead of buying the $3,000.00 add on battery to connect to the delta/river. Plus maybe add the functionality to just plug a thing (adapter) into a delta/river to some battery terminals so I don’t have to know the difference between a normal xt-60/xt60i connected to negative and xt60i connected to positive connection.

Just make the adapter add the functionality into the battery and update the software. We’re all doing this to some degree already. Make it easy on us EcoFlow!

I do like the product but…
 
Please try XiaoxiangBMS app, it is available on AppStore, no idea about Android.
Some people use it to access JBD BMS.
 
I ended up putting ESPHome onto the WiFi chip and I can monitor all the battery sensors using esp-jbd-bms in Home Assistant. I'm also using the events interface on ESPHome devices to log to a local database and generate graphs in my home-built monitoring system. So far it's been working great.
 
I’d buy a few of these if you’d make them and send instructions, brilliant but beyond my ability.
 
Hi all,

Long time lurker, first time poster. Finally created an account to join in on this thread.

First - @CorruptDB - thank you very much for your work on this. Your efforts inspired me to make some assumptions, take some risks, and ultimately get lucky with the results.

As I was reading through your writeup of what ended up working, what didn't work, etc. I started looking on the web to see if I could find a standalone bms bluetooth module. Most of the ones I could find were from alibaba etc, but with all the current tariff/overseas shipping fun I kept looking.

I ended up stumbling across some modules from Overkill Solar. Since I can't post links at this stage due to the whole "new account" thing (which I get -- makes sense) -- web search for

overkill solar bluetooth module for bms

you should be able to get a web link for overkill solar that ends in product/bluetooth-module . I paid 10 bucks apiece for them (free shipping because I bought several of them.)

They arrived in the mail yesterday, and today I decided to play around with them. The modules that I received have this screenprinted on the back -
JBDBT002 V0.3
20200630

The pin order goes
GND
TX
RX
VBUS

The main chip on the front is
TLSR8251F512ET24

The cable that came with them (2.54mm pitch) doesn't match the pitch etc of the connector on the BMS (which may possibly be 2mm JST-PA based on comments I saw on the esphome github repo along the way). To get around that I sort of made it work by temporarily using some regular breadboard jumpers until I can find some connectors to use. I kept the center two (TX/RX) in a two-pin housing, and had to take the outside (VCC and GND) pins outside of the housing and just sort of stuck them on the bare pins to make it work.

I plugged all 4 pins into that uart connector on the bms...and it worked, power and all! No extra soldering, separate power converter, etc. I used the overkill solar app, and it showed up right away. That BMS module must be sufficiently low-power to not trip out whatever protection exists on the BMS.

It's reporting itself as:
Zetara
firmware 2.a
Device ZT_SP04S0457-L4S
Manufacture date Wed Dec 11 2024

with all sorts of fun details and metrics.


So ... hopefully others find this useful! Let me know if you have any questions and I'll try to answer if I'm able.


If anyone happens to know what the uart connector type is (is it a 2mm JST-PA??) - that'd be awesome to know for sure.
 
Turns out it's an hy2.0 / grove connector. I found cheap ones at electromaker, called grove2dupont. Cut, spliced, soldered, and heat shrinked, then adhered inside the case, now I can see all the details of the battery. About six bucks all said and done.
 

diy solar

diy solar
Back
Top