Monday, 5 September 2016

Using OpenTx to help manage LiFe rx batteries

Eneloops are well-proven and reliable power sources, and until now I've used them exclusively on all my F3F models. However, my Needle 115 is equipped with high voltage servos, and it made sense to go for a 2S LiPo or LiFe. After some thought, I settled on a Vapex 1600 LiFe pack, as it was easiest to fit. LiFe's are also less prone to catch fire.

Vapex 2S 1600 LiFe pack, Eneloops for comparison (note LiFe pack voltage is equivalent to five Eneloops)

It didn't take long to encounter a common issue with LiFe packs: their voltage is not a reliable indicator of remaining operating time. This is due to the (a) flat voltage curve followed by a steep decline (see discharge curve below) and (b) high internal resistance.

For my Needle, I have the telemetry alarm set at 5.7 V, low enough to prevent false positives when a lot of current is being drawn e.g. with full crow.

The voltage alarm is a good back stop, but I also wanted a second indicator in the form of a usage monitor. This would record the cumulative time that the receiver has been operating since the last full charge. In this post I'll describe the steps I used to implement this on my Taranis running OpenTx 2.1.

Monitoring operating time

When switched on, the receiver sends telemetry data. So to detect whether the battery is supplying current, I set a logical switch when RSSI data is being received:

Battery detection 

The logical switch controls a timer. The timer is configured for 'manual reset' so that its value is persistent between sessions:

Timer1 configuration.
The timer display:

Timer1 display
Before the first use of a freshly charged battery, the timer is reset by pressing [long ENTER] from the main menu then selecting "Reset Timer 1". Thereafter no user intervention is required.

Determining the current draw

To estimate the maximum safe operating time, I needed to determine the current supplied by the battery:
  1. Fully charge the receiver battery
  2. Reset the timer.
  3. Go flying (but not for too long!).
  4. Note down the battery operating time from the timer display.
  5. Top up the battery, noting the mAh needed to replenish the pack.

Using this method on my Needle resulted in the following figures:
  • Operating time: 56.5 mins = 0.933 hrs
  • Capacity to replenish to full charge: 664 mAh
  • Average current = 0.664/0.933 mA = 712 mA

Determining safe operating time

The final step was to measure the capacity of the battery by using the charge/discharge cycle on my charger. Knowing the capacity, and the average current, the maximum operating time can be calculated. Here are figures from my Needle + Vapex pack:
  • Measured capacity: 1215 mAh
  • Max operating time = capacity/current = 1215/712 = 1.71 hrs = 102 mins

Allowing a 20% safety margin:
  • Max 'safe' operating time = 80% * 102 = ~80 mins


Capacity check

As an aside, my new Vapex 1600 mAh pack measured in at only 1215 mAh. Two other Vapex packs showed a similar shortfall. I have no explanation. Perhaps capacity will increase after a few cycles...

[Note: To check the capacity I used an iCharger 106B on the LiFe setting, 0.8C charge, then 0.2C discharge using default voltage end points.]


The usage monitor is a useful safety tool, and has given me a lot more confidence with the LiFe pack in my Needle. Together with a low voltage alarm and real time telemetry, there's little excuse now to run out of juice!

[Note: 15 Sept 2016 - an F3F colleague tells me that the internal resistance of LiFe's can increase significantly at low temperatures, and the resulting voltage dips can be the limiting factor rather than the battery capacity. At very low temperatures, recharging after each flight provides ultimate safety margin - see comments below.]


Matthew Brett said...

Nice solution Mike, very neat. Am surprised at the shortfall in your battery capacity though - the two LiFe RX packs I have (both cheapies from Hobbyking for small models) were pretty much on the money when I tested them when new.

Matthew Brett said...

PS - For field chargin gon slope awaydays I now take one of these, powered by a 3S 1800 or 2200; small, light and very effective. Only £11 too!

RC Soar said...

Matt, that's interesting. So far the three packs I've tried have all been well below rated values. I'm going to see if I can a days racing in on one battery, if not then that micro-charger may yet come in handy.

philip lewis said...

Excellent well written and useful blog, thank you.

I've used LiFe batteries for years now as RX packs (twin 700 mah packs in a 2m plane) because they are perfect for 6 Volt servo's with no switch or regulator and like you said don't catch fire. I throw them away at the end of each year on a MTBF basis because they are so cheap anyway but of the literally dozens of packs I've had of various capacities (though all Zippy's or Nano's) they have always been spot on for capacity and they also tend to stay that way as well