Earth Notes: Testing Integration of LiFePO4 Battery with Off-grid Solar PV System

Shuffling in alongside existing gel lead-acid system...


I started a thread on FieldLines: some of the text below is extracted from there and edited.

I'd been having another serious think about boosting my off-grid storage from ~0.25kWh (with a ~0.1kWh/d steady load) and experimenting with Lithium-chemistry batteries, such as LiFePO4 (aka Lithium Iron Phosphate aka LFP), for better round-trip efficiency too. (A whole-house load-shifting experiment that I'm plotting as a follow-on probably isn't much worth doing with a whole-cycle battery efficiency anywhere less than 90% for example.)

The thousandsuns 'LiFePO4_-_12v_30A_Battery' pack as was (link dead as of 2012/08/29): claimed to have an integrated BMS*, and from its 10V--14.6V range looks as if I may simply be able to drop it in instead of my 40Ah SLA gen with one of my Morningstar PWM solar controllers.

(*Unlike SLA, Lithium-chemistry batteries always require some sort of smart Battery Management System (BMS) for safety, eg avoiding fires, as well as to get the best performance out of them.)

Has anyone done this? Am I (or the battery) going to die horribly if I do this?

Also, for Li packs with integrated BMS is it likely to be safe to parallel them up to increase the storage at a given voltage, eg I'd like to get 3x30A 12V to give me ~1kWh of usable storage.

I'm itching to do it, but if it goes wrong it may (a) fry my server and (b) my family since these things would be in the kitchen by the exit door unless I take steps to relocate them...


I visited Thousand Suns office on 2010/10/04 and bought a 12V 20Ah prismatic battery pack (so ~0.25kWh usable or a bit more) at ~£200+VAT. Not advertised on their site, and considerably more compact than the 20Ah shown.

It looks like a bomb all bound with tape and with wires hanging out, and I've worked out a way to hook it into my system to sorta kinda double up storage capacity.

It's about 1/3rd the size and weight of my 12V gel SLA 40Ah (ie same usable capacity), so I was able to plonk this in my backpack with my laptop.

But it's an odd one, with a common +ve rail for its separate charge and discharge connections...

Basically I'm going to detach a small portion of my off-grid PV and use it to directly charge this pack via its BMS, then preferentially power my server from this falling back to the SLA c/o a couple of Schottky diodes.

I shall be keeping it at a very low SoC in this config, and primarily relying on the SLA for system stability for now.

The new battery should take all the load from the SLA until the LiFePO4 (LFP) is virtually exhausted or the SLA is floating nicely.

It should test how well the Li battery copes with being completely drained, and should keep the Li battery in a low-ish SoC and the SLA in a high-ish SoC, which should suit both of them.

initial sketch schematic of integration

Installed the morning of 2010/10/05.

The SLA solar controller LVD was about to operate anyway (flashing red this morning), so this is a 'just-in-time' lash-up.

Already the now-unloaded SLA was recoving noticably within an hour of the LiFePO4 battery taking the strain. Given the approx day's worth of energy in the new battery, the SLA has a day to build up some charge...

After half a day the LiFePO4 battery on-load voltage has declined from about 13.4V to 13.3V and then stayed fairly flat overnight.

After most of two days on load (minus a few hours when there was enough sunshine to bring the SLA voltage above the LiFePO4 voltage, so the SLA would have been powering the load) voltage was about 13.1V.

After another half day, though with the load mainly supported directly through the SLA side, the LiFePO4 battery was still at about 13.1V. The SLA voltage is high enough after a thorough charge that load is likely to be shared between them.

I note that after dark the charge input from its private set of panels is showing 13.1V also and allows enough current to light a 3W LED for example, and thus might allow charge leakage at night and/or cause hot-spots on parallelled panels. At the very least if connecting panels directly to the input a blocking diode should be used. The panels in this set already contain one, but would not protect me from loss due to (say) damp getting in external wiring.

Morning of 2010/10/08, LiFePO4 output voltage still ~13.1V, carrying the entire load as the SLA at ~12.8V! Evening of 2010/10/08, back carrying the load after about 4 hours' break, and still ~13.1V!

On the morning of 2010/10/09 the voltage had dropped to match that of the SLA, ie with the SLA now taking the load.

Some Early Suggestions For Possible Product Improvement

Early days yet, but some small changes that might help a lot:

Some possible more radical changes:

Hardware Refactoring and Another Panel

2010/10/11: I took delivery of another (100Wp, mono-crystalline) panel, to put south-facing and plumb into the main MPPT/SLA circuit.

I also took the opportunity to re-arrange the system substantially to shift some of the panels from the back garden to charge the LiFePO4 battery (bringing its input up to about 110Wp, though no more than about 70Wp at once), and to add the MotorWind turbine with its crowbar overvoltage protection to the LiFePO4 inputs.

The MPPT/SLA system has about 180Wp total with the new panel. All loads except the SheevaPlug server remain on the SLA.

Importantly, this means that both batteries have some south-facing panels to get reasonable input even mid-winter.

The two systems are entirely isolated until the negative/0V outputs are connected together for delivery to the rest of the house.

If the LiFePO4 battery had a common-negative rail, then I'd interconnect the negative/0V rail at other points too.

See the LiFePO4 battery start charging in earnest around noon UTC (blue line) as about 70Wp+ of panel is connected to it with the sun shining brightly! Unexpectedly good sunshine the following day boosted charge of both batteries again. And the system still seemed to 'break even' on the following mainly-overcast day. The following day was even more gloomy, below average for mid-winter, but a small boost can be observed.

A few days later there seems to be a fairly fully charged system with both batteries pulled down to ~13V off-charge, falling ~0.1V overnight, and the SLA being pulled up in sunshine to "absorption" at ~14.4V falling after about 3 hours to a float of maybe 13.9V, and the LiFePO4 battery peaking at around 13.6V (3.4V/cell, vs 3.25V at night). Having looked at the weather forecast (for some sunny-ish days ahead) I'm using 12V desk lighting rather than mains, thus the downwards spikes on the measured SLA voltage after about 17:00 GMT, as the lamp I'm currently using draws about twice the power of the server!

Another few days and another surprise: in good sunshine the voltage leapt from about 14.4V to 15.5V when I'd expect the BMS to disconnect from its input (charge source) when full, capping the output voltage at somewhere around 14V. The battery was warm (not hot) to the touch as it was climbing past 15V. (See similar the next day.)

I had to adjust the upper bound on the graph to 16V, and I'll have to check that everything upstream of the DC-to-DC converter whose maximum input voltage is 28V is good to something similar, certainly over 16V which was nearly reached today and also over the 21Voc of the UniSolar panel. I may also have to move the small amorphous panel with a potentially higher Voc back to the SLA string. The cap on the input of the DC-to-DC converter is rated 25V.

After several very dull days in early November the batteries largely recover on one sunny day.

After a very dismal and cold end of November the batteries conk out after dusk with the LiFePO4 moments after the SLA LVD, supporting the notion that below ~13V the LiFePO4 has very little energy left. The next day the LiFePO4 voltage was rising quite rapidly but the SLA SoC (11.96V after dark) was still too low for the LVD to reset and so was still showing solid red on the solar controller and OV on the graph. The following day I'm still letting the batteries recover with some unexpected sunshine though I did put a small load on the SLA when the sun was out. Still recovering very slowly in dull conditions; the SLA charge controller has been back on amber for over a day after a brief period of 'green'. Recovered after some sunshine: SheevaPlug going back off-grid after 6 days.

Huge SLA Upgrade

The ageing 40Ah gel SLA seemed to be performing very poorly in December 2010, not helped by very poor insolation (less than half of that expected), so I took the decision to upgrade the SLA side with 400Ah of SLA (purchased as 4x100Ah@12V so could be re-arranged into a 24V or 48V system).

20110101: proposed upgraded off-grid power system circuit diagram .SHX, PDF.

The LiFePO4 battery has the capacity for a couple of days' server consumption, and with it being discharged preferentially, ie should be exhausted before the SLA starts being significantly discharged, the LiFePO4 should take away a lot of the need to cycle the SLA daily, at least when there is significant sunshine at least every other day. This may prolong the SLA life significantly.

The system still takes its main view on storage state-of-charge (SoC) and thus available energy reserves primarily from the SLA, but as of January 2010 now also is forced into 'very low power' mode if the LiFePO4 battery seems exhausted regardless of the SLA state. This basically indicates that we've had no decent sunshine for a couple of days.

See the k8055 poll script as of 20110103.

2011/01/14: 400Ah@12V of new SLA (gel) integrated into the system.

2011/01/16: watching the voltages seen on the graph, close to the load, as the LiFePO4 battery is exhausted and the SLA takes on the load at about 8am, suggests that the voltage drop from SLA to load is ~0.2V--0.3V, or that taking off the "surface charge" with a light load accounts for that, and indeed at ~16:30 (after dusk) measuring close to the battery gives 12.46V while close to the load shows 12.40V and is read by the k8055 at 12.4V. (The LiFePO4 had taken the load for about 1.5 days from only partially full.)

2011/01/18: after some decent sunshine, both LiFePO4 and SLA are much better, with the SLA measuring 12.80V close to the battery a ~18:30. At since the LiFePO4 did not charge enough to get above the SLA voltage they are sharing the load staying close in voltage with a slow drift down. The LiFePO4 will probably need to get a full charge to take all the load/cycling from the SLA. (Next day, more sun.) (A relatively healthy couple of days in Feb.)

2011/01/28: with the sun up and the battery charging, at 08:44 the MPPT controller's LVD suddenly cut off the power from the SLA having read 12.0V. The system coasted long enough on the LiFePO4 for me to switch to mains. A little after 11:12 and some deent charging on both batteries, the LVD disengaged and I was able to go off-grid again. I speculate that the new battery connection was a little flaky (high resistance) and the controller saw a problem and played safe. I tightened all the connections in the system, especially between battery and controller, and have not had a repeat up until 2011/02/23.

2011/03/05: adjusted the internal power-level thresholds so that LiFePO4 below 13.2V is regarded as 'low' and forces the system into low-power mode. It often hovers for a while after dusk at ~13.1V when it's had a good charge, so this tweak is to better detect sun-down in practice. See the k8055 poll script as of 20110305.

2011/03/07: replaced the Si diode (with a Schottky) that piggybacks the LiFePO4 to the 36Wp amorphous panels at the front of the house to in effect give the LiFePO4 priority charging until it is completely full, leaving little charge current for the old 40Ah gel SLA unless relatively empty. The batteries are getting tip-top full in good sunshine, even competing with the laundry hanging out to dry in front of the panels!

2011/04/15: adjusted MotorWind turbine crowbar trip to 18V (by putting a 10k 22-turn pot in parallel with the voltage divider), ie above max output voltage from LiFePO4 battery and below Voc of the PV inputs, so presumably 'safe' for the BMS input, to try to reduce spurious and potentially-damaging repeated operation a little when the battery is full. (Will soon be adding dump load down-stream of battery to help soak up excess input energy more aggressively so the crowbar should never activate at all.)

2011/04/16: wired in dump load (currently only ~16R/15W) for the LiFePO4 battery (c/o ghurd). Can increase load with another FET and/or more resistors (more than 50W to hand) with proper heat sinking and dissipation. LiFePO4 battery reaching ~15.5V and SLA 14V+ nearly every day, and SLA overnight voltage mainly below 13V after ADSL load (>12W) was moved to it off-grid on the 10th.

2011/04/17: dump load operating from around solar noon but not able to hold voltage down to 15V with ~70Wp+ of PV working, so may need to add extra load. Current load making system warm but not unreasonably so; however any significant extra dump load should be sited better and heatsinked.

2011/04/22: moved 12Wp panel from LiFePO4 to SLA input so former is dumping less and latter is full more, ie better balancing.

2011/07/25: current upgraded off-grid power system circuit diagram .SHX, PDF. Simplified the system and moved input from 36Wp amorphous panels at front to main battery bank to help support the off-grid ADSL and brings the input to the main controller to just less than 180Wp nominal.

2011/09/15: note that as the LiFePO4 voltage rises and passes the SLA here, the SLA voltage apparently suddenly rises about 0.2V as the LiFePO4 takes over supplying current to the server via the diode-OR and eliminates the voltage drop in the SLA route. More generally, this tends to yoke the output voltages of the two batteries together, sharing the load, unless being driven otherwise by large charge currents.

2011/12/31: the SheevaPlug has been off-grid since the battery upgrade, with no sign of the controller's amber or red status lights even this month. I have also tweaked software settings to reduce work done in 'extreme' shortage as measured by either battery (Li or LA) not being fairly full. In December the Li battery is usually low enough to trigger 'extreme' mode. The main server now also regards any period over about 48 hours without reaching a 'good' power level as similar to 'extreme' shortage for most purposes. 14:20 UTC: voltage measured at main LA battery bank terminals 12.70V, in (astonishing) agreement with 12.7V as seen by k8055 at SheevaPlug.

2012/01/07: made it into January in spite of sunless interval from before Christmas into the New Year: see the lack of lead-acid spikes to over 14V and the sub-13V state of the LiFePO4 battery.

2012/02/02: Li battery up to 15V, balancing, for first time for a couple of months at least!

2012/08/29: Li battery has regularly gone over 15V (but below 16V), though runs of gloomy weather clearly show up as days in a row without. Generally the Li battery subsystem continues to 'just work' well.

2013/06/24: reconnected after major kitchen works, assuming C- is charge (-ve) and D- is discharge!

2014/04/27: ADSL auto-off-grid hardware finally wired up today after keeping an eye on software/w control behaviour for a while. Battery levels seem to be more stable and healthier of late. The ADSL is perhaps 50% off-grid at the moment, including in evening peak demand time. If the ADSL were off grid 100% of the time, given a measured 7.7W consumption, savings (ie extra energy not taken from the grid) would be ~67kWh/y. ~20kWh/y (ie ~30%) off-grid may be realistic, ie 1.5% of total gross household consumption (~1500kWh/y), which starts to be noticeable!

2015/05/04: MacBookAir running directly from Li battery via Mikegyver.comcustom adaptor lead works well and can run indefinitely off-grid given current levels of sunshine.

Other Products

At the same time as I contacted thousandsuns I emailed M2Power about its SLA-emulating 2-terminal batteries, eg the 12.8V 40Ah 0.3C-charge-rate device, with BMS built-in.

I'd already bought my thousandsuns battery by the time M2Power responded, but M2Power confirmed that:

In particular M2Power confirmed that "An external BMS is not needed, it is integrated in our battery packs. The only requirement is that [the battery] is charged to 14.6V."

I imagine that an existing SLA controller/charger could be adjusted for an 'absorption' voltage of 14.6V and duration of ~3 hours, a little high for a flooded cell, and it might work well.


The machine that serves this site is powered by local off-grid solar and wind renewable energy as far as possible, backed up by on-grid renewables including as of 2008/03 a substantial grid-tie solar PV system, and 100% renewable grid power (mainly wind) from Ecotricity; power draw is ~1.5W.
Please email corrections, comments and suggestions.
Please read our privacy policy.
Mobile site
Copyright © Damon Hart-Davis 2007-2016.