TI SensorTag 2 Power consumption analysys

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
Standby: 0.24mA
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

Conclusion:

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.

About the Author
Love to tinker all day long
  1. Oliver Reply

    Hi guys,

    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:
    https://itunes.apple.com/de/app/my-weather-center/id824900305?ls=1&mt=8

    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:
    http://www.myweathercenter.net/faq/

    We would be happy to receive your feedback about it!

    Best regards,
    Oliver

  2. Mandar Reply

    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.

    • admin Reply

      Hey Mandar, glad it useful for you, can you please share what can you modify to improve battery life?

      • Mandar Reply

        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

  3. Jarle Boe Reply

    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.

    Regards

    Jarle Boe

    • Misha Reply

      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?

    • Rodri Reply

      Hi Jarle,
      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.

      Best,
      Rodrigo

  4. Simon Reply

    Hi Misha,
    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

    • Misha Reply

      Hi Simon,

      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.

  5. Simon Reply

    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.

  6. haider ali Reply

    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.

    • Misha Reply

      Hi Haider,

      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.

  7. Ivan Chang Reply

    Yup, the battery life sucks for TI sensortag.
    The BLE transceiver during TX/RX draws the most current, did you measure that?

    • Misha Reply

      Are you basing it on my article or you have own data/findings?

  8. Chunhai Reply

    Hi Misha,

    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?

    Best Regards,
    Chunhai

    • Misha Reply

      Hi Chunhai, I made it using electrical tape as insulator and aluminium tape on both sides as conductor.

      • Chunhai Reply

        Hi Misha,
        Thanks for your replying.
        I am facing the same problem that the battery seems very consuming while the sensorTag only performs very simple functions. I will try to do the test as you did and hope that will help.
        Do you have any ideas about how to reduce the power consuming?

        Best Regards,
        Chunhai

        • Misha Reply

          I decided to go with big LiPO battery to power my project as in development phase I just don’t care as I want to make it work properly first, also TI recommends updating firmware to latest to improve power consumption.

          Also please look through the people comments here.
          For example: Mandar recommends increasing times for packets sent, keep alive etc, please see above.

  9. Xan Reply

    Is it possible to have some kind of “wake-up” script, so that it will only send data on certain intervals OR when the data is significantly different than the last data?

    • Misha Reply

      Not really sure, I have to dig into it more. May be TI Community forum will be good for this, Also there are sources available for the code running inside SensorTag and It can be modified.

  10. maillard Reply

    Hello,
    I should like operate to the SensorTag during 6weeks but the battery is low so what do i do?

    Best regards,

    Romain

    • Misha Reply

      Probably use some better power source, like 3v Litium battery

  11. maillard Reply

    I ha ve a problem with an extern battery because the battery put stanby. I think that the SensorTag don’t consumption sufficiently of tension and so the battery put standby.
    Have you an idea for resolve the problem?

    • Misha Reply

      No! I ahve not tried an external battery, what battery are you using?

Leave a Reply

*

captcha *