Unhappy with Enduro 3 battery life, I built my own watch face and get 40-50days battery life

Like many other people, my enduro 3 consumes about 4-5% battery per day without any activities. So I decided to investigate, and the result is a watch face that consumes about 2-2.5% per day, giving you 40-50 days of MIP power!

It is a minimalist watch face but has smart features for tracking heart rate, stress and move bar.

I'm still testing it before publishing it officially to the store, but if you are interested to test, here is the beta link: removed the beta link

It is open source and you can find more details about this watch face in github: dryotta/garmin-watchface-40d-mip-power: A Watchface for Garmin Smartwatches - with low battery usage optimzations (github.com)

E
DIT: It seems that the beta link only works for the developer and is not available for general public. I just submitted the app official and it will be available after Garmin's approval (can take up to 3 days). The new app link is Connect IQ Store | Watch Faces and Apps | Garmin

I initially built it just for myself, but since I see many people complaining about the battery, I hope this can be useful for you too.


  • I'm able to get 10-13h usage per 1% battery on my Enduro 3 with following settings:

    • minimum backlight level with 4s time out
    • Touch disabled
    • Gesture disabled
    • sound & alerts disabled
    • phone connection enabled
    • notifications disabled
    • Sleep watch face disabled
  • Thanks for building this! As it is still not available in my country, I figured out how to compile and side load it (if somebody else is interested, see here for instructions). My initial impressions after about 20 hours are good! It really seems to only sip battery like the Battery Saver watch face, while being more useful.

    I'll test it a bit more and use your code to customize it further while hopefully keeping it low power. So glad we have some alternative to the badly optimized default watch faces. I really appreciate that you shared this project, it has the right amount of complexity for me, a good starting point. Though it's already better than what Garmin managed to ship with this watch.

  • Thanks for this and for source code. I’ll give it a try tonight on my MIP F8 that also burns 5-6% per day. 

  • Great that you were able to build it and try it out! 

  • Well, first 12 hours and same burn rate. So, I don’t think watch faces are issue. There must be something else. My F8 AMOLED has longer battery life than my F8 MIP. That is insane. 

  • As soon as you enable the 1 second refresh rate (implied, to display HR on screen) on the watchface, you have opened Pandora's box. The Connect IQ API will frequently request HR from the system, and the on-screen display will drain the battery significantly. Another leak is the 1-second request to refresh the display (whether it's 1x1 px or 100x100).
    If you really want to compare to energy efficient watch interfaces, check out our XLarge Watch.

    apps.garmin.com/.../41216af0-baf4-4252-a173-2495388a4710

  • Can you list the other 1 second refresh rate fields? Is simply removing them enough? 

  • Ok, here is an update. I don’t have Enduro 3 but I have F8 MIP 51mm  that has the same problem. Here is how I reduced 5-6% burn rate per day to around 4%. I have factory reset it once, deleted everything and paired again to iPhone. Also, updated to latest SW, turned off incident detection and drained the battery fully 2 times by running the flashlight and using gps. After this last charge it seems that it is settling down to around 4% per day. I am using built in watch face with heart rate, seconds, etc.

  • In XLarge watch there are no any 1sec data fields at all.

    Implementation of 1 sec refresh and what data will be displayed at that, in what volume and size of the output window - depends on the CIQ developer. You can do a bunch of useless actions that waste energy, for example, update the date or year field once a second, and make it 4 times the size of the pixels. This will all lead to unnecessary battery consumption.

    In the usual approach, judged from the user's perspective, if you turn off seconds, steps, heart rate, any graphs, that should help. But no one is going to eliminate the if - then - else conditionals from the program - that part of the code will always read the current settings, and check whether to output this parameter or that one now, and do it this way or that way.

    Our watchface is rid of all possible unnecessary settings, so it doesn't have these conditional if then else constructs, and it doesn't even have potentially partially updated areas of the screen, only once a minute the system calls a redraw of the full screen. All of this saves energy considerably.

  • I definitely saw the increase in power consumption with this watch face when I enabled the seconds display in "active" (i.e. high power) mode.

    I did a bit of research, and this is 10 year old information at this point, but I think it might be still relevant: default watch faces have access to a low power core/co-processor that can update things like seconds on the watch face without using a lot of power. Of course it's probably not easy to program and could crash the watch if done wrong, so it's not accessible for ConnectIQ. But that explains why my 6.5 year old Forerunner 935 lasts 2-3 weeks with seconds enabled on its default watch face and the Enduro 3 cannot do it.

    What I suspect is happening is that the built-in watch faces are either not using the low power core yet, or they are not optimized well enough for now. Of course this is pure speculation without seeing any code. It might be just some coding error waking up the watch often. However it seems that really there is no way to do low power second display as a ConnectIQ watch face, which is sad, as I often rely on timing short stuff by just looking at my watch (i.e. waiting 15 second for coffee to preinfuse with water before starting my pour-over).

    I saw a couple of custom watch faces that can display different information on a second screen after long press. I wonder if that can stay active as long as necessary (not just 10 seconds) and could be used for this occasional need for more frequent refresh.