Let's be clear off the bat. I'm not inventing anything here. This project is a way of combining LiFePO4 (LFP) batteries with Pb-Acid batteries in a system that alleviates many of the issues of both chemistries. Here are some references for anyone really interested in the nitty-gritty details. I'm not sure who came up with this idea. In any of my research, I haven't seen anyone say, "I invented this."
- I originally got turned-on about this concept from "Clark Adventures". Here is the Playlist talking about his work with creating a Bank Manager. It sounds like he might have been the originator, as it was not until his later videos that he had put together a product. About 5 hours worth of videos -
- This is a site with tons of technical research about LiFePO4 batteries mainly in the context of a Marine environment although the extensive testing behind much of the work is applicable to Off-Grid and RV battery usage - Days worth of reading - https://nordkyndesign.com/category/marine-engineering/electrical/lithium-battery-systems/
- Here is this as a product mainly catering to sailors. It maybe associated with Clark. - https://marinedcac.com/pages/bankmanager
- Here is this as a product mainly catering to RV. - https://wildebus.com/posts/hybrid-battery-bank-introduction/
I'll try to summarize the purpose and what it tries to solve. In the most generalized form, it combines one or more LFP batteries with one or more Pb-Acid batteries. For instance, I will be using this system on my 26 foot sailboat. I have a 12V LFP battery of 280 Ah. This is mainly to be considered the "House" battery. I will likely be adding a second 280 Ah battery. It will be combined with a standard 12V Car Starter battery of about 80 Ah that is mainly for just starting the boat's motor.
- LFP batteries absolutely do not like being floated. IOW, once fully charged, they don't want a "trickle" charge. Many chargers claiming to be for LFP batteries trickle charge. Many solar panel or wind turbine chargers trickle charge.
- LFP batteries have an electronic protection device called a BMS (Battery Management System). Most have multiple functions, but for this aspect the BMS totally disconnects the battery if one of the cells reaches some pre-defined voltage, typically 3.65 Volts.
- The problem that occurs when the BMS shuts off suddenly when it is being charged by a car/boat alternator, it destroys the rectifiers in the alternator.
- The solution InqLiPb and the above referenced "Bank Manager" products is to combine the LFP batteries in parallel with a Lead-Acid battery. If fully charged and needing to be disconnected, the alternator / wind turbine, is still connected to the Lead-Acid battery and is untroubled by the disconnection.
- Any standard car battery chargers, solar, wind turbines, can be used to charge the combined battery bank. This alleviates the need to have specialized (expensive) LFP chargers that may or may not be properly charging the LFP batteries anyway.
- No need to have DC-to-DC converters to act as intermediaries between the LFP and Lead-Acid batteries.
- No need to have 3-way switches or to manually manage which battery is being charged by what source.
There are other benefits, but this was the main one for me. I would recommend you peruse this video that explains far better than I can in under a ten-thousand words. (21 minutes) -
On to the actual project. I have built several bread-board projects of individual portions of InqLiPb. This is the first cut of a combined, "soldered" prototype. This a work in progress. I'd like to thank @davee for his help with improving the resolution of Hall Effect (Current Sensors). Here is the first cut of InqLiPb.
In a nut shell, it will:
- Monitor the voltage of the batteries and current flowing in or out of each side of the battery bank.
- When the LFP is fully charged (or some user specified lower percentage) It will disconnect the LFP from the Pb-Acid battery.
- If discharging and the batteries are near the same voltage, it will re-connect the LFP to the battery bank.
- It will disconnect the LFP when it reaches some user defined minimum.
- It will also use AI to create an accurate State of Charge curve that is a function of its usage characteristics and any idiosyncrasies of the batteries.
- It will also provide some basic information on small OLED screen that can be remotely mounted.
- It will also provide an extensive web based user interface for configuration, monitoring and long-term tracking usage on the battery bank system.
More to come...
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
I wouldn't know where to start trying to make a PCB for this. I didn't see a way to minimize wires crossing and so a multilayer board would be required thus increasing cost. This was built rather organically... one wire type / concept at a time. I've tried to make it as logical as I can, but I don't see any way to re-arrange the major components to clean this up. It's here for my records as much as to share it.
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
@Inq I think you will find that if you layout your circuit with a PCB design program such as EasyEDA or KiCad, it will be easy enough to route the rats nest of tracks on a standard 2 layer PCB.
Your diagram shows your wires all protruding outwards from the component, in reality the tracks are really rather small, the actual size of course depends on the current capacity required and no doubt other considerations such as impedance etc. but you will find many an online PCB track width calculator.
Often the tracks are routed from the pin back under the component, perhaps to then take a right angle turn or even to be routed back out the other side perhaps between some pins on the other side if the tracks are small.
But I should clarify easy 😶. Even though I done a few PCB's over the years often the first attempts usually need a few revisions with the sockets for the component boards being shifted around and re-angled to achieve the desired result. I would say if I was having a go at designing a PCB to accommodate your circuit it would probably take me a couple of days, with plenty of breaks for coffee breaks, long lunch breaks, and an afternoon siesta, etc.
For you I expect you would need to add a few days more to get up to speed on the design software. EasyEDA is easier than KiCad and would do the job, but KiCad has better facilities albeit with a longer learning curve. If you try EasyEDA then do make sure the tracks actually do link on to the desired end point. I've wasted a PCB in the past by thinking I had done it correctly whereas on of the tracks stopped just a tiny bit shy and I choose to ignore the warnings of some points not being connected as I had a few pins that indeed were not meant to be connected anywhere. But I should, nevertheless, been smart enough to check the count of completed connected points when the error would have been spotted. 🙄
Have you ever made one with surface mount components and have someone make the PCB and populate it? I have no idea if that is an easy thing or only valid with runs of thousands of boards. For instance, I'd assume that the chips and support components on the two ADS1115's breakout boards are just as readily available and I'm not really using the support hardware on the Wemos board that supports USB and 5V powering, so that could be axed. Considering there are only a couple other resistors, a diode and one transistor, I'd think this could be made in about 2 sq-in of PCB. The sockets take up most of the room.
VBR,
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
The 2 pcb fabricators I've used, PCBWay and JLCPCB, both offer an assembly service where your pcb will be returned with all the components soldered in place. You have to specify the components from their own sources and they obtain them and assemble them onto the pcb.
I've not used this service myself as most of my boards have been designed to have holes for sockets into which I solder dupont sockets to hold the likes of esp32s, level shifter boards, etc, or holes into which I solder connector sockets (such as grove connectors) and resistors etc. I have had it in mind to try out such a complete service in the future and I most certainly would if I was using surface mount components. @Davee was kind enough to solder a couple of minute surface mount components onto a small carrier board for me a few years back as I did not relish trying my luck with these specks of silicone. If you don't mind the go slow delivery then the cost is minimal and usually takes about 2 to 3 weeks to receive the PCB, but if you choose to pay for a courier delivery the turn around is just a few days.
I always wonder, what if I could sell this or that? How much trouble would it be to get boards pretty much built. Like you mentioned, if I could get it where I could load the program on an ESP8266/ESP32 and plug it in and ship it out. That's not too much overhead of my retirement time...
Ghad! I sound like some Gen-Z needing micro-retirement or a crying room to get my feelings under control and work-life balance.
You know... Even if this was a desirable product, I can't see me diving for doing even that much overhead. I don't think I would deal well with customers... especially with law-suit, US mentality and I really don't need the money that bad.
But it might be cool to try it out for a couple of spares. 😎
VBR,
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
Like byron, I haven't yet tried any of those PCB manufacturers. I have bought a few cheap-ish, simple surface mount soldering tools, which has enabled me to use transistors the size of a matchhead, etc. and whilst my results do not look as nice as a commercial board, largely due to too much solder paste, so far they seemed to survive. I think you could design, order and build some boards, probably using a mix of ESPxxxx dev boards, discrete components and so on.
They also offer fairly cheap solder stencil, which should help to get the right amount of solder on.
I am not sure I would try chips with BGA style connections, at least not yet, but most devices that allow you to see the joints should be doable, providing they are not a ridiculously small pitch.
Note that, at least according to the website when I looked a few months ago, they do double-sided boards up to 10cm x 10cm at a very cheap price, especially if you can wait a fortnight for delivery. Double-sided gives some chance for 'crossing over' tracks, and if you still have a couple of 'can't track' connections, then they can become simple wire links to solder in during assembly.
---
BTW, for anyone reading this wanting delivery in UK or Europe, who is not VAT registered, maybe check that you are paying the VAT with the order, to avoid getting surcharged, etc. by a delivery company. At least one, maybe both of the companies, Byron mentioned claim to do this on their website. Sorry I can't quote any direct experience, maybe others can.
----
Just a suggestion ... no responsibility accepted if it goes pear-shaped!
Best wishes, Dave
I simply can't imagine dealing with surface mount. I have a combined bench power supply, soldering gun, soldering blower thingy, but have never used the blower. Bought some surface mount LED's... and laughed... these will never get used.
I was going near blind doing this. On my monitor, this picture is about 3x reality. I can see this with my glasses. I was constantly having to check for continuity and isolation between adjacent soldering points. I'll use some melted ABS plastic to cover pig-sty up... uh... for water proofing. Yeah, that sounds good. 🤣
VBR,
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
Hi @inq,
It isn't easy to get a 'pretty' image with those matrix boards, but if the board works, don't worry about it.
I suspect you would find it a little easier if you used a bit more flux. The type that comes in syringes for surface mount can often be helpful. A little IPA (isopropyl alcohol) with cotton buds and kitchen roll can be used to clean off the surplus.
---
Actual surface mount methods, using a hot air blower that resembles this one, enables soldering of the tiny surface mount parts:
(I assume yours is a bit like the photo, but has a conventional soldering iron, etc., added in as well.)
Surface mount requires the component to be soldered to a board with pads that correspond to the part ... so the 0.1" matrix boards that you have used, require an 'adapter' or 'breakout' board to take surface mount parts. e.g. for the SOT-23 transistors, something like the green board below for the corresponding transistor:
The 3 through-hole square pads on the left side are 0.1" spacing, so wires or pins can be used to match to the matrix boards. They also give an idea of scale!
AliExpress and others offer these boards at low cost.
So, put solder paste (and maybe a little extra flux), on the three pads on the right side of the adapter board, place the transistor on the pads, gently blow hot air over the transistor and board, until the solder melts, keeping an eye on the transistor to make sure it stays in place, and then remove hot air and leave to cool.
The solder surface tension will 'pull' the solder together, as well as tending to align the transistor.
Then solder the board to a matrix board, using wires or pins.
-----
I have a magnifying glass and light source propped up, as well as glasses, to see what is going on, throughout. I have been meaning to rig up a tiny cheap camera and monitor, but not done so yet
-----
Expect to have a few practice runs, adjusting temperatures, air flow rates and so on, as well as blowing the odd transistor or board onto the floor. SM transistors are often sold at around $1 for a 100, and tiny adapter boards for say $1 for 10, so a few false starts and lost parts shouldn't break the bank.
---------
Obviously, you will need some tweezers and other small tools.
These 'lever' adapters, available for around a $1 each from AliExpress and elsewhere, help to control the syringes:
The syringes often come with blunt 'metal tube' luer lock needles. I have started trying alternatives, apparently named 'tapered' needles, which also have luer lock connections, mainly to have a smaller needle size that doesn't clog with solder balls:
They are available in different end nozzle sizes, the colour of the plastic indicating the size. Once again, AliExpress has offers of small packs for around $2.
------------
All of the above reflects my limited experience with surface mount parts on a small home budget.
If you design a PCB and buy the unpopulated boards, then it maybe wise to order the matching stencil at the same time, so that you can apply the solder paste using a spreader. I haven't tried that yet.
---------
Just some personal hints. Surface mount is now the standard commercial method, so through hole parts will gradually become scarcer ... probably not a problem for resistors, capacitors, etc., but newer semiconductors are likely to only be available in surface mount packages. Some will be available on small dev boards, like the ESPxxxx series, but not all.
Surface mount is both a challenge and an opportunity. Try not be totally scared off by it.
Best wishes, Dave
I had only built sub-assemblies on breadboards. For instance using on ADS1115 or just the relay circuit (resistor, NPN transistor, diode, relay), or a voltage dividers for measuring up to about 15V. When I combined it all together on the prototype board, it failed to even power up. I should have soldered one sub-circuit at a time and tested. I couldn't find any miss-wiring issue with the volt meter, and I was concerned I might have some interactions going on. So I backed up and layered one sub-circuit at a time on a breadboard and all worked as I expected. I'm still using the same schematic above, so it must be something in my solder work.
Here is the whole kit and caboodle hooked up to the 280Ah LFP battery and 80Ah Lead-Acid battery.
Here shows a close-up of the breadboard and a tablet that is connected to the LFP's BMS. The OLED display will only give minimal information. The left side is the Pb-Acid current and voltage and the right side is LFP current and voltage. The graphics shows arrows which way the current is flowing into the batteries in the upper left and right corners. The relay is currently energized and thus connects. The display will also graphically when the LFP battery is disconnected and for what reason. Currently it is charging at about 51 amps with 49.5A being sucked in by the LFP and 1.66A by the Pb-Acid.
The main way to configure and calibrate will be through a web-interface. I'm just not a fan of trying to see on the little OLE screen and button menus. I will be using MQTT and it already is sending minute by minute data to a Raspberry Pi based MQTT Broker. This way historical data, curves and configuration will be created using a graphical UI made with Node-Red.
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
I'm starting to work on some of the logic and have watched the first charging cycle. To start off with, the Pb-Acid (PBA) battery was pretty much charged and showing the typical resting voltage of 12.6V. The LFP battery was down around 13.2V which because of the general curve might be anywhere from about 15% to 70% SOC. Firing up the system, it always starts with the relay un-energized and thus the batteries are not connected. As stated, we run into the first logic condition.
Too Much Voltage Difference
It's not a good idea to just connect two batteries together in parallel with a big difference in voltage. With such large capacities, one can get huge current being dumped into the low voltage battery. I have not read on-line how much a difference is recommended. I would assume it is based on the internal resistances of the two batteries making up the circuit and the difference in voltage. I currently have the logic (will be user configurable) that this voltage difference can be no greater than 0.5V. This may also need to be configurable for either direction (TBD: LFP > PBA or PBA > LFP).
Turning on the 40A charger going to the common +/- connection was a pleasure to see the thing behave correctly the first time. 😊 The PBA battery being the only battery connected jumped up and quickly got within the 0.5V difference and the relay kicked in and paralleled the LFP battery. The LFP as expected hogs the incoming current and rose to 32A while the PBA absorbed the rest. As time marched on fairly quickly because the PBA battery was nearly fully charged. During this phase, the PBA battery dropped down to around 1A with the LFP taking the rest at 39A. I watched this, here in my office, using a digital infrared thermometer gun. InqLiPb circuitry, batteries and most connections never got more than 2 or 3 degrees over room temperature. The 250A relay was up to about 35C which might need further work. The only real heat (expected) is the fan-less 40A charger. It reached 60C. This went on for many hours as the 280Ah LFP absorb the charge until the next logic condition.
Maximum State of Charge
The main purpose of the InqLiPb is to automatically promote longevity of both the PBA and LFP batteries. Unlike PBA batteries, LFP batteries should not be kept at their maximum voltage. Here is a fairly typical voltage versus time curve for my battery being charged alone.
There are several things to note on this graph. First, note the fairly flat region. This is both the strength and the weakness of LFP batteries. Even under load, this large flat region supplies consistent voltage to your devices. The downside is it is near impossible to determine at what state of charge the battery is based on its voltage. Second, the sharp rise toward the end. This area from about 3.5V to the maximum voltage of 14.6V is the area (about 10% of the capacity) that reduces the life of an LFP battery. The battery should not be kept in this area either by resting or by trickle charging! Third, note how through my in-attention, the battery reached its maximum voltage and the BMS disconnected, then after a short time, reconnected and started charging... several times. This is with an LFP charger of dubious heritage.
InqLiPb has the logic that once the voltage reaches some user configurable value, in this case 3.6V, it turns off the relay, removing the LFP battery from the common leads. The PBA battery continues to charge. The LFP battery is protected. Because the PBA battery is still connected, a charging alternator is protected from the harmful back EMF caused by the BMS of a lone LFP battery breaking the connection.
Also note - Because InqLiPb handles the over voltage condition at a lower, safer voltage than the BMS, any standard car charger can be used... the PBA battery won't mind a bit. PBA car chargers are considerably cheaper than even a dubious LFP charger.
More to come...
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
Thought I'd update the project some. I thought something was wrong with my previous DIY PCB. I took the opportunity to add a on/off switch and do some re-organization to simplify the wiring. In this version, I simply decided to put all the sensor I/O for each battery on its own ADS1115. The old version had the Hall sensors on one and the voltage dividers on the second. The old one is still valid, just not what I'm using now.
Turns out, I didn't have a problem with my wiring in the previous version. I built this new one up one stage at a time and when I added the Buck converter, the ESP failed to boot. When wiring the 12V to 3.3V converter to the ESP, the power goes into the 3.3V pin. This is the pin, when connected to the USB, supplies 3.3V. Apparently the Buck converter (when not being supplied a power source) absorbs some power from this 3.3V pin to the point, it won't boot up. As soon as I hooked up the Buck to the 12V battery, it fired right up. So... I didn't really need to re-organize, but here's Rev 2 anyway.
I've also changed from RJ-12 sockets to standard screw-type terminal blocks. This is the bare circuit board with all soldered items. Note the rows of pin sockets at the top for two ADS1115 analog to digital converters and the OLED display. The whole thing is 65mm x 42mm.
More to come.
Inq
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide