How long you think SensorTag 2 will last on single 3V coin battery?
During my first SensorTag2 review video I had issue with that no all sensors were working properly, I was wondering if I got defective unit, turned out that battery which SensorTag 2 was shipped with was pretty low on juice. And the battery was just out of the box, so I assume it would just work perfectly. After installing perfectly fresh battery SensorTag 2 start working with no issue, this prompted be to investigate power consumption of SensorTag 2.
I also created video explaining what I did and how I measured current during SensorTag2 operation, please watch it here:
I tired to measure current in different modes like: discovery, connecting, powering on, all sensors on and full sample rate, only some sensors working etc in order to figure out how long SensorTag will work on 3V coin battery.
Here is the table showing compiled result of my analysts:
Powering On: 12mA
Discovery ( LED Blinks ): 0.4mA / 2mA ( LED current)
All Sensors Off: 0.44mA
All Sensors ON at maximum data rate (100ms sample rate) ~5.5mA
Just Temperature Sensor (Ambiet + IR): 0.84mA
Just (Ambiet + IR + Humidity Sensors): 0.92mA
Just Light Sensor slow / fast sample rate: 0.56mA / 0.68mA
Just Motion Sensor Sensor slow / fast sample rate: 4.16mA / 4.68mA
Just Barometric Sensor: 0.5mA
Standard CR2032 coin battery has typical capacity 240mAh, so we cannot expect SensorTag 2 work longer then 48 hours in maximum mode – when all sensors are powered on and at maximum sample rate, and about 240 hours when just few sensors working for example temperature and humidity. Curious what TI guys meant they said it suppose to work for 1 year on single battery, will need to do more investigation, may be it needs firmware update, or it just power consumption of CC2650 alone? I don’t really know….
Potential alternative would be running SensorTag 2 from 1cell LiPo, but this will require very efficient 3.7V -> 3V DC-DC converter, this may not be trivial task as I haven’t seen any off the shelve units like this.
we created an iPhone weather station app which both supports SensorTag and SensorTag 2. With MyWeatherCenter you can create a beautiful Weather station that shows you the latest weather sensor data from the TI SensorTag. If you want to try it, you can download it here:
For the SensorTag we also created our own firmware which disables the sleep mode. This means the connection stays always on. Here you can download it:
We would be happy to receive your feedback about it!
Thanks. This was really useful to figure out why my tag ran out of juice in 2 days. Need to go back to modifying the tag firmware a little. I got much more time out of the older tag after tweaking the firmware.
Hey Mandar, glad it useful for you, can you please share what can you modify to improve battery life?
If you have the BLE Stack and Code Composer Studio, you can modify the SensorTag.c and change the connection parameters. I mostly made all the intervals higher, so that the connection speeds were slower.
The changes for the older sensortag are like this :
1. Increase range of connection interval from “100ms – 1000ms” to “500ms – 3750ms”
// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
– #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80
+ #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 400
// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
– #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800
+ #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 3000
2. Increase slave latency (reduce speed, increase battery life):
// Slave latency to use if automatic parameter update request is enabled
– #define DEFAULT_DESIRED_SLAVE_LATENCY 0
– #define DEFAULT_DESIRED_SLAVE_LATENCY 1
3. Increase supervision timeout to 20 seconds. If no data is being sent, then the SensorTag keeps sending packet to stay connected once every 20 seconds (max allowed 32 seconds)
// Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter update request is enabled
– #define DEFAULT_DESIRED_CONN_TIMEOUT 1000
+ #define DEFAULT_DESIRED_CONN_TIMEOUT 2000
Thanks for sharing a very interesting post!
I am in charge of the SensorTag development at TI. We have spent a lot of time optimizing power consumption for both the CC2650 and the sensors on the SensorTag. The first batches of SensorTags were shipped with pre-release software with sub-optimal power consumption. With the recent updates of the SensorTag apps we are including new SensorTag firmware with better power consumption.
Thank you Jarle for updating us! I really happy to hear that improvement are coming, I just update my SensorTag 2 to the latest 1.01 firmware, is this the update you are talking about? Also is it possible to see change log somewhere, what exactly was updated in firmwares?
I bought my sensorTag which comes with firmware V0.91, with the Android App I could update it to V1.12. So V2.1 is not available through the app.
The only way to update SensorTag right now is with a debugger?
Are you going to update the app with the new firmware?
BTW I made the same test as Misha with firmware V1.2 getting similar results.
Also connecting SensorTag to a Raspberry Pi and running a python code to use it with GATT. Is it possible to put the device in low power mode using GATT?
Another issue with GATT is that Battery value is not listed.
Thanks Misha for this post and Jarle to be part of it.
Interesting video. Have you access to a ‘scope? As I think you will find that the current consumption is high for a small amount of the time, and you should consider the integrated value. This will give a more realistic battery life result. ie it may consume 5.5mA, but this might be for 10% of the time, the rest could be 0.5ma.
Also have you considered the volts dropped across you meter on different current ranges? (although I think the Fluke 87 is very good)
Yours Simon M
Thank you for the reply, it is totally possible that it just short impulse and I was using max mode to capture the value, I will do scope test as well (but my scope is old analog Tek, wont be able to integrate automatically). I consider voltage drop negligible in leads and fluke, also I was also interested in differences between idle, advertising, connected mode, and my test showed this.
I was planing to redo test with new firmware and I will use scope as you suggested (with limitations), but I don’t have good enough precise resistors for the range… so not sure if scope options will be feasible, except just to see ratio between high/low usage cycle.
If you monitor the voltage across the fluke meter it will act as a precision resistor. As a rule, the lower the current range the greater the v drop across the meter. for example the 10A range is often a few milliohms, but the micro amps could be 100’s of ohms on cheap meters.
I think the 87 quotes 1.8mV /mA, which is very good. So your scope if capable of 1mV / division, could resolve this. Failing that, I’d put a 100ohm resistor in series with the input of 3.3v LDO and measure the volts across that. You could use the scope offset to null the current required by the regulator.
Yours Simon M.
I have a question regarding your current measurement, are the currents listed in your experiment the peak current consumption or the average current? This is important to know in order to precisely calculate the battery life. If, for example, 5.5 mA is the peak current when all the sensors are ON then we also need to consider the duty cycle or the time during which the sensortag is consuming this much current, for the rest of the time the device is assumed to be in sleep mode. I guess your meter is just reporting the peak current consumption.
Thank you for the comment. Yes this test irrelevant if you care about power consumption, because it measures peak current, I will redo it, but I have to use scope with integration in order to capture actual value of the current otherwise it no use.
Yup, the battery life sucks for TI sensortag.
The BLE transceiver during TX/RX draws the most current, did you measure that?
Are you basing it on my article or you have own data/findings?
Can you please tell me the material (something looks like a medal band) you used to test the current in this video? Where can I get it?
Hi Chunhai, I made it using electrical tape as insulator and aluminium tape on both sides as conductor.