Friday, 7 March 2014

Canvas 2.0

Pebble 2.0 is here... and so is Canvas 2.0!

You may have noticed that Canvas hasn't been updated much over the last few months. That's because I've been working exclusively on the Pebble 2.0 version. Thanks to everyone who has been beta testing Canvas over that period, it is ready for release. There are lots of cool new features made possible by Pebble SDK 2.0, as well as several months worth of bug fixes and improvements!

The first thing to say is: The existing 1.x version of Canvas will not work on Pebble 2.0 (and the 2.0 version of Canvas will not work on Pebble 1.x!), so make sure that you upgrade both your Pebble (Android app and firmware) and Canvas.

SDK 2.0 Goodness

You've been asking for it since the first release, and it is now possible... you can see your watch battery status in Canvas (find it under Time/Date/Pebble status)! 2.0 Also allows you current screen to be stored persistently on the watch, so that it can be displayed without loading from your phone after you switch apps/faces and return to Canvas (note: image storage is not supported).

SDK 2.0 also allows the freedom to dynamically allocate memory. What that means for Canvas is that more layers are allowed (up to 25!) and images can now be animated (animation duration can also be set, and more directions are available). This has also enabled the addition of analogue clock layers, and the really cool inverter layers!

Layers can now be dynamically re-sized based on content, allowing the creation of some really cool effects (see the Inversion example screen for a demo).

Share and discover: The Canvas Screen Store!

Built right into Canvas, you can now see hundreds of screens that other users have designed - and you can upload yours for everyone to see.

Ignore the built-in screens - the Screen Store is where to really see what Canvas can do (i.e. Canvas users are better at screen design that me!)

You can deep-link to Screen Store entries to share them with your friends.

App or Face?

You now have a choice: install the Canvas watch-face, or the Canvas watch-app. The face is the the classic Canvas, but the app instead appears under the Pebble main menu (i.e. it's not a watchface), and allows interaction.

In 2.0, when the app version is installed, you can switch between Canvas screens right from your Pebble using the up/down buttons.

More content

Yahoo! is now the default provider for Weather data (you can still choose OpenWeather), and lots of new weather fields have been added (including today's forecast, Beaufort, and lots more). You can also enter a fixed location via name or lat/lon.

You can choose to hide all-day/started calendar events, and some new fields have been added (e.g. calendar name).

Lots more information about your phone is now available: Current WIFI status (with image option) including SSID, GSM/CDMA signal strength (also with image option, not for all phones) and network state, and your phone ringer state (with image)

All bundled images (including weather and phone state) are now vector-based, meaning that they should scale better to your chosen size. They are also all now 1-bit black/white, just like the Pebble display.

Improved editor

The Pebble preview on the editor screen can now be enlarged, and you can also now place layers overlapping the edge of the Pebble screen.

The editor window is tabbed to better navigation, and there is also now a copy layer function to save time. You can also enter longer format strings in the editor to allow for conditionals (the text layer length limit on the watch has not changed).

The screen preview has been optimised, and you will also now not lose your changes when you rotate your device!


Lots of them...
  • More robust communication between the phone and watch
  • Display weather when temperature is 0f
  • Image aspect ratio lock improved
  • New crash reporting (now automatic, not email-based)
  • Phone app memory usage optimised, and background processing changed (may improve battery life..)
  • Better detection of changes in text layers on the watch (notable if time fields didn't update for you)
  • Treat a single space as a blank for the purpose of auto-hide
  • Time zone processing improvements
  • .pcs files will now loads from gmail
  • Lots of crashes
  • And lots more...

For a detailed record of all changes and fixes in Canvas 2.0, see 


  1. Would it be possible to add two more appointment tags?
    - Event Duration (Minutes) – giving the minute part of the appointment duration, to be used in conjunction with the %ED tag to give something like 1:15 hours.
    - Event Duration in Minutes – returning 75 for an appointment taking 1:15 hours

    The latter is probably less useful, but the former one would be relevant for short meetings and meetings not taking full hours.

  2. I can't get a conditional statement working worth my life. I want to make the battery percentage of the phone to only appear if it is less than 30 but this fails.



  3. Would love to see some extra options/features for handling content overflow. In particular, horizontal and vertical scrolling.

    The former would be a steady smooth scroll, while the latter would just advance a line at a time. Both could use configurable rates, and work independently from choosing word wrap/ellipses to cover some particularly handy use-cases. (Example: one line's worth of space for calendar events. The display could scroll horizontally and show all, or scroll vertically with word wrap showing all, or scroll vertically without word wrap, placing each item on a separate line and ignoring per-line overflow.)

    If this is open source, I might be able to provide patches.

  4. How do I upload my watchface to the Screen Store? The Screen Store profile has "Account identifer" blank and the Upload button doesn't do anything when pressed?

  5. It took me a while to reproduce the issue in enough scenarios to be sure I wasn't just running out of space (though that shouldn't matter as the text was right-aligned), but the two-digit minute display (%M) is getting incorrectly formatted. When the second digit is a zero, it gets dropped.

    1. Correction: when both digits are zero, one of them gets dropped.

  6. Thanks for providing good information,Thanks for your sharing.