Conducting some accelerated batter life test on a HM10 BLE module as an iBeacon, revealed some disappointment battery life results.
The HM10 and HM11 are popular Bluetooth Low Energy modules based on the Ti CC2540 and CC2540 BLE SoC device.
Most HM10 and HM11 devices seem to come pre-installed with with “HMSoft” from a Chinese company called “Huamao Technology CO,. LTD.”
I was interested to determine the battery life of these devices operating as an iBeacon, so I decided to do an accelerated long term test, using two AAA Energizer cells to power the module.
To accelerate the test, I changed the Advertising period using the AT+ADVI command to the minimum time between transmissions, which is quoted as 100ms using the command “AT+ADVI0”
Power use was minimized by using AT+ADTY3 to make the device non-connectable and AT+DELO2 and enabling auto sleep mode AT+PWRM0
0.44mA Digital current meter
0.5mA Analogue current meter
As far as I can tell the batteries I tested with were standard Energizer E92 / AAA http://data.energizer.com/PDFs/E92.pdf
Looking at the spec, the batteries should have over 1000 mAH on the very low current load that the BLE beacon consumes, however the quoted capacity is at a final voltage of 0.9V, which would give 1.8V for 2 batteries, and is lower than the minimum working voltage for the CC2540 as shown in the spec on the device from TI http://www.ti.com/lit/ds/symlink/cc2540.pdf
The time versus consumption graphs from the battery spec PDF show that at 10mA constant discharge that the battery should last 100 hours, which equates to 1000mAH. However for lower currents there is no data on the graph, as 10mA is the lowest value shown. However if at lower currents, the capacity followed the same trend line, the capacity would be well in excess of 1000mAH.
At 0.5mA on a 1000mAH battery, I had hoped that the beacon would run for around 2000 hours, which is nearly 12 weeks. This would extrapolate to around 10 times as long, using normal broadcast rates, of 1 per second, i.e 120 weeks or over 2 years.
However to my surprise, after just over a week, when I measured the voltage on the batteries, I noticed that they had dropped to a combined voltage of 1.9V and the beacon had stopped functioning.
So why has the battery life been magnitudes of order less than anticipated. Well, at the moment I don’t know. There are a number of possible causes for this problem.
- The batteries were not full when I started.
Although I took them out of a packet of 20 AAA cells, there is a chance that I’d accidentally put a used battery back in the packet, however this seems unlikely
- The batteries are elaborate fakes. I bought from a reputable local store, but its possible that somehow fake batteries have got into the supply chain, and perhaps normally no one double checks their capacity.
- The current measured by my digital and analogue meters was incorrect because of the way that current is taken in pulses rather than being constant.
This seems the most likely cause at the moment, and needs more research. The “Active Mode Tx” current in the CC2540 spec is 24mA, which would mean for a average current of 0.5mA that the duty cycle would need to be around 1/50 of the total.
The only way to accurately determine the real power requirement is to monitor the current using an oscilloscope to measure the voltage drop across a low value resistor e.g. a few ohms, connected in series with the HM10 module, then integrate the area of the voltage pulse and calculate the average current.
I will follow up on this.
- Operating the beacon at fast update rates (10 per second), may substantially change the way in which the module operates. It may not be fully hibernating. However this seems unlikely.
Where to from here
- I’m starting the test again, with a brand new pack of unopened Energizer AAA batteries.
- I will need to build a small test rig with 10 ohm resistor in series with the battery, and use my oscilloscope to look at the pulse nature of the current consumption
- Keep thinking of other possible reasons why the results differ so much from the predictions
Watch this space.