Battery Management System/Solar charge controller #16257
Replies: 5 comments 4 replies
-
Nice work |
Beta Was this translation helpful? Give feedback.
-
Very nice! I love the elegant idea of hybrid relays with mosfets to prevent arcs when switching strong dc. Didn‘t know about this. Just two notes:
|
Beta Was this translation helpful? Give feedback.
-
Thanks for the explanations about your project. I now have an idea of how you did it. I would like to implement something similar for a boat battery. I have already realized a project with a PZEM-017. https://open-boat-projects.org/en/wifi-battery-monitor/ |
Beta Was this translation helpful? Give feedback.
-
@gemu2015 Trying this setup with 12.3.1.5 and SPI communication is not working. CS and CLK are performing correctly, and it seems like MOSI is sending correctly, but MISO isn't receiving anything. Downgraded back to 12.0.2.1 with same script and config, and everything works. Haven't stepped up the versions to see where the breaking change is yet, but in the process. |
Beta Was this translation helpful? Give feedback.
-
Nice! When leaving test status I would replace any breadboard. This will fail sooner or later in real life use. |
Beta Was this translation helpful? Give feedback.
-
*Disclaimer: Lithium batteries can be dangerous if you don't know what you're doing
A friend who is re-using electric car batteries to make large lithium installations had a bunch of Mercedes BMS modules based on Analog Devices LTC6802-1. He loaned me a few to play with, and I've cobbled together a simple solar battery charger based on cheap AliExpress modules. The system can handle around 15amps and works with systems from 4s to 10s
The LTC6802-1 communicates via SPI, and Tasmota scripting can do basic SPI communication.
Solar input and load output are controlled with a combination of MOSFET switch and mechanical relay in parallel. The MOSFET switches on first, then mechanical relay, then MOSFET switches off. This minimizes arcing and allows higher-than-rated voltages. (30v on the little 10a relays can go up to 100v if arc suppression is achieved) Article
Solar panel is a 350w 42v Voc, 38v Vmp, which works well for systems up to 8s. In my case, 9s because I limit charging to 4.0v instead of 4.2v. MOSFET for solar input is FRN120 (100v max), and D4184 for output (30v max). No MPPT or even PWM is happening for solar input. Either on or off.
I used a ESP8266 Wemos Mini D1 clone (4mb) compiled with 160mhz option. Pin assignments are as follows:
I used default hardware SPI since it sounds like software SPI can't handle 1mhz clock speed. I used a INA226 with an external 15a shunt, calibrated using a DC current clamp multimeter, to measure bus voltage and current going into and out of the battery. INA226 can handle voltage up to 36v if measured on the high side, so the system would be limited to 8s using that module. A PZEM-017 can handle voltages of up to 300v, and would be a good choice for higher voltage systems.
User_config_override.h has the following defines for scripting, SPI, I2C. Heap hovers around 20 with these options.
Script currently takes about 70% of the defined buffer. In theory, can use 6.5k buffer if more is needed.
Front page looks like this:
Future development:
Beta Was this translation helpful? Give feedback.
All reactions