Wednesday, 18 June 2014

Jolla battery life power consumption problems

Update 18-Jun-2014 - It's Android support related


There is a bug, some processes caused by Android support are left running on the backgroud causing extra battery drain. More reports with different Android apps running (list them in your comment on the last page) would be very useful at this point, please contribute: User Report Tool

Update (14-Jun-2014) - Possible new bug

Link this post to your friends. Sharing is Caring!


There seems to be another Jolla power consumption issue after installing Sailfish OS 1.0.7.16/18 Saapunki. This is suspected to be related either to Jolla Store or Android support. You can notify this bug as a huge increase in your Jolla's power consumption, also heating the phone up, feeling very warm in your hands. New reports with/without Android support installed might be great to hunt this one down

Update (31-Jan-2014) - Great news, NFC bug is gone


Great news - Installing Sailfish 1.0.3.8. Naamankajärvi fixes the NFC bug. For those who did the mask-workaround for better battery life: Jolla has confirmed that tohd.service can be left masked while updating system. This means that you can remove the mask either before installing the update or afterwards. Personally I'm leaving it on at this point, as I have no use for TOH connection yet. To enable the connection with your Other Half again (removing the workaround), here's a detailed HowTo

Sailfish 1.0.3.8 also changes the way of The Other Half connection. When attaching TOH, the ambience changes only if it's marked as a favourite, or in the first time when TOH is connected.


Original article (22-Dec-2013)


After 90 reports posted with User Report Tool,  and 10 more received directly from friends, I've managed to estimate some power consumptions of most elements in Jolla. A big THANKS for everyone in the community for using the report tool - this would have been a slow (or impossible) project without your help.

In general Jolla's hardware parts have a reasonable power consumption, especially those in the Qualcomm chip (processor, connectivity, graphics, memory handling). The main problem is Jolla's NFC connection with The Other Half - that's quite a power sucker, considering it seems to be on all the time. It actually seems to reduce Jolla's standby hours from max 500h to poor 48h. Removing The Other Half, or the white chip inside it (Update, see comments) fixes the problem. We don't want to do that! Unfortunately there's no setting for turning the NFC off, but maybe after this article Jolla start to work to offer us one. NFC connection sucks the battery about 2% per hour.

As usual in modern smartphones, the screen is the biggest power sucker, also in Jolla. Jolla's IPS LCD screen is worse than some OLED screens used in other models, sucking the battery 5% - 10% per hour. Recommended to use dark tone ambiences and as low screen brightness as reasonable.

Then comes the graphic chip, processor and data transfer - but as already said, Qualcomm has actually done a very good job with these in their Snapdragon 400 chip which Jolla is using. Anyway they matter, so if you really want to see the percentages drown, try playing a powerful online 3D game with full screen brightness.

Below, power consumption in different cases is listed as percentage/hour & the usability time

Jolla's battery life in varying scenarios

  • Screen OFF, all connections (including mobile network) OFF, The Other Half removed:
    consumption 0,2% per hour, max 500h standby time
  • Screen OFF, all connections (including mobile network) OFF, The Other Half attached:
    consumption 1,7-2,5% per hour, average 48h standby time
  • Screen OFF, mobile network ON, other connections and accounts off
    consumption 1,7-2,8% per hour, average 43h standby time
  • Screen OFF, mobile network ON, WLAN ON, some accounts synching data
    consumption 2,4-4,6% per hour, average 30h standby time
    (depends a lot of the amounts of data transfered)
  • Phone in normal use, including some screen using, phone calls, data transfer
    consumption 3,6-14,3% per hour, variance 7-28h usability time
    (normal use varies a lot, as you can guess)
  • Phone in continuous use, screen staying ON at low brigtness
    consumption 5,9-14,3% per hour, variance 7-17h usability time
    (unfortunately, the reports didn't include what kind of screen use (video/3D gaming/static img)
  • Phone in continuous use, screen staying ON at high brigtness
    consumption 10,0-30,5% per hour, variance 3-10h usability time
    (lowest usability time reported playing Angry Birds)

The effect of NFC connection with The Other Half 

Above, the 4th dot is maybe the best to describe the normal standby hours of Jolla, so let's calculate some more with that. NFC itself, when in use, eats the battery with a speed of 2% per hour. Using this value we can calculate that the stanby time of 30h mentioned above, or 20-40h variance of it, would rise to 38-250h when removing The Other Half.

To confirm this result

This result is based on only 4 tests where The Other Half was removed, two of them done myself. At the very moment I'm running my third test with even SIM card removed, and after 13h my battery shows 98%. Anyway, for even more reliable confirmation, I've added the selection to the last page of User Report Tool. Now I wish that many of you will reports new test results with The Other Half removed. To people who have already sent reports: It would be ideal to repeat the test with exactly the same other settings (please mention this in comments when posting).

Thanks to the community

As mentioned, this finding wasn't possible without the great community work of several Jolla owners. Special thanks to jollatides.com & jollasuomi.fi for sharing the User Report Tool for their readers.

Forwarding the information

I've sent a link to this article and to the user reports data to Jolla customer care. Answers will be commented to here, if I get one and if it's ok for them - maybe they will also confirm the problem.

In the end, I hope our great community work, multiple user reports and this article will help the whole community to have, in time, even a better phone. We are Unlike! Thanks once again!

UPDATE, Picked up from comments: Two possible workarounds (Software solution and Hardware solution) until Jolla comes up with a Sailfish hotfix

A) Software Solution with developing tools 

(Please check Important below before you start )
  1. Go to Settings -> Developer Mode
  2. Enable developer mode. Enable SSH connection.
  3. Enter or generate a new password after SSH. Remember it and Save.
  4. Reboot the phone, open Terminal (Terminal becomes a visible app after enabling developer mode)
  5. In the terminal, write the bolded commands exactly as here and press enter after each row:

    devel-su
    (your password)
    <- note: password is written invisible (you don't see your input). When your password is accepted, $ mark changes to #, telling you that you're in developer superuser mode. Go on with:
    systemctl mask tohd.service
    systemctl stop tohd.service
    exit
    exit

    With the first exit you leave the developer superuser mode (# changes back to $). Second exit closes the whole terminal, and everything is done. Your phone will not establish connection to The Other Half any more, not even after reboot, and your idle battery use is 10% of what it used to be. (If you want your phone to connect TOH after reboot, leave the row with word "mask" unwritten)
  6. To enable connection again and return everythihg as it was, open terminal and write:

    devel-su
    (your password)
    <- note: password is written invisible (you don't see your input)
    systemctl unmask tohd.service
    systemctl start tohd.service
    exit
    exit
  7. Extra: In any time you can check the status of your connection to The Other Half. You can do it either in devel-su mode (#) or in basic mode ($) with this command:

    systemctl status tohd.service

    Important: Playing with developer mode might affect to your phone's warrantly. These commands are tested by several users and they don't seem to break anything, but writing something else might - so please doublecheck every letter before pressing enter. Everything you enter in the developer mode is in your own responsibility. If unsure, use the HW solution written below (after terminal images)

    Note: There has been some testing going on with disable / enable commands also. They might work, even as good, and they can be tested as well. However I would recommend the masking procedure above, as otherwise the system is left a change to enable connection later for other reasons (if there are any, I don't know), or the system halts in cases where it excepts that tohd isn't disabled. Commands instructed above (5) should give a working, permanent solution, which will last until commands (6) is given.
Image 1, Jolla terminal: TOHD checking, masking, stopping and checking again. Note one typo in "service". Note also that the exit written only exits the devel-su mode (# -> $). Second exit entered would close the app. Click twice for full size img.

Image 2, Jolla terminal after REBOOT: checking, failing to start (in testing purpose) and finally starting TOHD.

B) Hardware solution with foil

  1. Reboot your phone without The Other Half. (For testing in the end: Change your ambience)
  2. Cover the NFC chip with a suitable piece of tin foil.(3 layers is found to be enough)
  3. Attach The Other Half. (To be sure the tin foil is in place, your ambience shouldn't change now.)
Both of these solutions fixes the battery drain problem (tested). I recommend the upper, but if writing to a Sailfish terminal scares you a bit, just go with the HW solution. It should work as well, if there's enough foil. You might also just wait for a while, as reading the comment below written by Harri Hakulinen (Chief engineer at Jolla) we can guess that the hotfix won't take forever. Isn't it just great how Jolla community and Jolla the company can do things faster together? Now let's give them and ourselves a well earned Christmas holidays, and let's be patient while waiting for the Sailfish update fixing the problem.