You can find the video recording here: http://youtu.be/TS0FPfgxAso
Stuart Harrell, software engineer at Pebble, gives a talk about battery life and how to preserve it. This talk explains the effect of different system functions on battery life and discusses solutions to common battery life problems with apps.
Day 2 - Video 1
2. WHO IS THIS GUY?
I’m an engineer on the firmware team.
!
I spend a lot of time working on battery life.
!
I also make Pebble apps (see right).
3. WHY YOU MIGHT CARE
25% of customers say that battery life is important to
them (will probably rise)
!
We may start telling customers about battery hogs (they
don’t know)
!
???
4. OVERVIEW
First 10 minutes — guessing game
!
Second 10 minute — getting more battery life in YOUR
app
!
Last 10 minutes — interactive demo
23. RECAP
Backlight
Constant Animation
Bluetooth
Tick Timer
4 hours
1 day at 30 fps
6 days when using on minute
18 hours when using on second
36 days when turned off
14 days with minute watch face
9 days with second watch face
25. BATCHING
The CPU and bluetooth chip are power hogs
!
Every time the CPU wakes up, it has a system upkeep cost
!
Every time the bluetooth chip wakes up, it has to open the channel for
communication and it remains in a high-power active mode for a short
time
26. BATCH BLUETOOTH USAGE
Sending app message on the minute = 6 day battery
!
!
Sending app message on the second = 18 hours
!
!
Sending 60 app messages on the minute = 6 day battery
27. BATCH ACCELEROMETER READINGS
!
100 Hz with 25 sample batches = 12 day battery (very small impact)
!
100 Hz with 1 sample batches = 8 day battery
!
!
Above numbers are for when no processing is occurring.
!
Accelerometer cost = how much CPU is turned on
28. FPS MATTERS
Rotating house 30fps = 1 day battery
!
Rotating house 10fps = 3 day battery
!
!
More battery life or smoother animations? Which will
your users prefer?
29. VERTICAL VS HORIZONTAL ANIMATIONS
1-pixel row at 30fps = 5 day battery
!
1-pixel column at 30fps = 1 day battery
!
!
!
Why? Our display draws row-wise.
!
Consider trying to minimize the number of rows if you
have a long-lasting animation
30. SECOND VS MINUTE WATCH FACES
Simplicity with minutes = 14 days battery
tick_timer_service_subscribe(MINUTE_UNIT,
handle_minute_tick);
!
Simplicity with seconds = 9 days battery
tick_timer_service_subscribe(SECOND_UNIT,
handle_second_tick);
!
Power consumption is a mix between waking CPU and drawing to the
display
31. DON’T LEAVE ON THE BACKLIGHT
Will drain a fully charged battery in 4 hours
!
Be careful with light_enable
!
Consider giving users a choice if you do want to keep
the backlight on
!
Don’t repeat my mistake!
32. SUMMARIZING
Backlight
Constant Animation
Bluetooth
Tick Timer
Avoid light_enable
Lower FPS and try to minimize the rows
associated with the animation
Batch calls that use bluetooth whenever
possible
Process data in larger batches (25) if your
application permits
Waking the CPU every second is more
expensive then waking every minute
Accelerometer