I took time today to look into this.
The name ‘RTC Backup Battery’ is actually misleading: it not only powers the RTC module in the Apollo3 chip, but it powers the complete Apollo3 chip. (VCC1) This starts as soon as you remove the USB and the LIPO battery. Attached is a chart that shows the different discharge times/speeds.
The difference in discharge rate between using the library V1.2.3 or the V2.2.0 is actually neglectable, BUT there is a very important aspect to take into account. See below.
The more internal Apollo3 peripherals, SRAM and flash memory are disabled the less power consumption and thus the longer backup battery will last. With power savings, you actually only see one line in the chart, although both are plotted. That is how close the results are between V1.2.3 and V 2.20. Without power saving, the time to discharge is MUCH shorter and you can see some difference between V1.2.3 and V 2.2.0, but that might also be because this test has not been done in a laboratory environment.
Only by testing, I was able to detect that as soon the RTC battery falls below ~2.3V, the RTC values are lost. In the chart, you can see that is already after 20 seconds without power saving !!
With power-saving, it takes a LONGER time. In the beginning, I see a big drop. I have tested for 50 minutes. In the first 2 minutes, the drop is on average 0.002V per second to 2.89V. From there it is on average 0,0001V per second. So in deep sleep with power savings, after ~ 100 minutes the battery would have reached 2.3V and thus we lose the RTC values.
The issue with V2.2.0 with OpenLog is that most of the power saving on the Apollo3 is NOT performed. Look in LowerPower.ino, function gotosleep(), none of the Apollo3 peripherals are powered disabled. The reason is the way the V2.x.x Sparkfun Apollo3 library interacts with the embedded mbed-os. A call to end(), either SPi / I2C / UART etc, is not causing the Apollo3 hardware layer (HAL) to de-initialize, and a begin() does not (re) initialize that HAL after wakeup and thus cause a crash if used after powered enable.
Note1:
The OpenLog backup battery should recharge itself within 20 minutes according to the information.
Note2 :
Just for reference, looking at the often used external DS3231 RTC module, the backup battery could last for years (How long will a DS1307 RTC run on a CR2032 coin cell battery? - Electrical Engineering Stack Exchange)
Attached also added the sketch that I used, in case others want to try this as well.
Example1_Get_Time_sleep.zip (2.86 KB)