---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.4.1 - Changelog
date: 2014-08-12
---

## Detailed List of Changes:
### Changes for Firmware:

* Fix a compilation problem that caused firmware 2.4 to reduce the amount of memory available to apps

### Changes for PebbleKit iOS:

No changes

### Changes for PebbleKit Android:

No changes

### Changes for SDK Tools:

No changes

### Changes for Examples:

No changes

### Changes for Documentation:

No changes


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.4 - Changelog
date: 2014-08-11
---

## Detailed List of Changes:
### Changes for Firmware:

* Fix a potential crash when using scroll layers or animations
* Added support for realloc
* Added a gbitmap_create\_blank function to create empty bitmaps of a fixed size
* Added number_window\_get_window()
* Fixed a crash with atan2_lookup when high input values were used
* Fixed a bug where TupletInteger could not be used with unsigned integers
* Fixed several bluetooth reliability issues
* Fixed a case where the "Setup notifications" banner would erroneously show in the iOS Pebble app
* Fixed a bug with the music app where media playing faster than real time could not be paused
* Fixed a bug where the notifications view could show a rapidly increasing counter for number of notifications when first displayed
* Fixed a bug where switching watchfaces could cause the same watchface to be relaunched

### Changes for PebbleKit iOS:

No changes

### Changes for PebbleKit Android:

No changes

### Changes for SDK Tools:

No changes

### Changes for Examples:

No changes

### Changes for Documentation:

* Improved documentation around click handling

This is the latest version of the internal repository from Pebble Technology providing the software to run on Pebble watches. Proprietary source code has been removed from this repository and it will not compile as-is. This is for information only.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.5 - Changelog
date: 2014-09-18
---

>If you are upgrading from a previous version of the SDK, you will need to run the `pebble clean` command before using the SDK 2.5 with your project.

##Major Changes
* FW 2.5 includes an optimized version of ``snprintf`` (and related functions like ``APP_LOG``, etc) that does not support some length format specifiers previously supported (%hh, %ll, %j, %z, %t). The list of supported specifiers has been updated in the ``snprintf`` documentation. For those of you that use these previously-supported specifiers, please do not hesitate to [contact us](/contact) and we'd be happy to assist you with updating your code.
* Added [compass](/guides/events-and-services/compass) support.
* Enforced versionLabel formatting in appinfo.json in preparation for app auto updates.
* Added support for Pebble app relaunch on iOS when a Pebble watch is in proximity.
* Added notification dismissal support on iOS8.
* Added emoji support to Pebble notifications and system fonts.

## Detailed List of Changes:
### Changes for Firmware:
* Added functions ``heap_bytes_free`` and ``heap_bytes_used`` to view current heap memory usage.
* Added support for ``uuid_equal`` and ``uuid_to_string``.
* Added function ``accel_raw_data_service_subscribe`` to get accelerometer data with a single timestamp for all samples (significantly reduces memory usage for apps that do not depend on timestamps).
* Added [compass](/guides/events-and-services/compass) support.
* Added emoji support to Pebble notifications and system fonts `GOTHIC_24_BOLD`, `GOTHIC_18` and `GOTHIC_18_BOLD`.
* Fixed a bug that would cause a crash if a screen shot was taken while one was already in progress.
* Fixed an issue where Pebble APIs would use non-reentrant versions of standard C functions causing unexpected changes to return values.
* Fixed a bug with accel_service that could result in memory being freed twice.
* Fixed a bug where Golf API would show stale information on disconnect.
* Fixed a bug that prevented calling ``menu_layer_set_selected_index`` before ``menu_layer_set_callbacks``.
* Fixed a bug which would sometimes cause the command line logging tool to crash when a watchapp crashed.
* Fixed a bug that would cause the sample rate of the accelerometer to be reset when subscribing.
* Added support for Pebble app relaunch on iOS when a Pebble watch is in proximity.
* Added support for notification dismissal on iOS8.
* Fixed numerous bluetooth reliability & connection issues.
* Fixed a reset and other various bugs related to Data Logging.
* Fixed a bug that allowed backing out of FW update screen.
* Fixed a bug that would cause animations between windows to be slow.
* Fixed a bug where the Date UI would allow selection of invalid dates.
* Fixed a bug which would prevent the down button from scrolling through notification history.
* Fixed a bug with AVRCP that could lead to a crash.
* Set backlight to stay on during alarm ringing.
* Changed the default backlight setting to AUTO.
* Fixed a bug which would allow developers to ask for more than 25 accel samples per update.
* Added check for NULL parameter in ``gpath_draw_filled``.

### Changes for PebbleKit iOS:

PebbleKit iOS has been removed from the SDK download. Please find the latest PebbleKit iOS on [GitHub](https://github.com/pebble/pebble-ios-sdk) or on [CocoaPods](http://cocoapods.org/) under 'PebbleKit'.

### Changes for PebbleKit Android:

PebbleKit Android has been removed from the SDK download. Please find the latest PebbleKit Android on [GitHub](https://github.com/pebble/pebble-android-sdk).

### Changes for SDK Tools:

* Enforced versionLabel formatting in appinfo.json in preparation for app auto updates.

### Changes for Examples:

* Added [compass example]({{site.links.examples_org}}/feature-compass) application.

### Changes for Documentation:
* Added ``CompassService`` API document.
* Added missing ``calloc`` and ``realloc`` documentation.
* Improved ``tick_timer_service_subscribe`` documentation.
* Added missing ``RotBitmapLayer`` documentation.
* Corrected ``window_single_click_subscribe``	API entry.
* Corrected time_t time() function to specify that epoch adjusts for timezone and DST.
* Fixed typo in the ``AppMessage`` documentation.
* Improved ``gbitmap_create_with_data`` documentation.
* Fixed typo in documentation for ``resource_get_handle``.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.6.1 - Changelog
date: 2014-10-01
---

> This release is a hotfix for the SDK 2.6 release

### Changes for SDK Tools:
* Fix bug preventing use of `pebble analyze-size`
* Fix bug that caused compile errors with the use of custom fonts

---
### Pebble SDK 2.6 Release Summary ([full changelog](/sdk/changelogs/2.6/))
##### Major Changes:
* Add support for [background apps](/guides/events-and-services/background-worker) with ``AppWorker``
* Add ``graphics_capture_frame_buffer``, ``graphics_release_frame_buffer``, ``graphics_frame_buffer_is_captured`` APIs to expose framebuffer
* Add ``WatchInfo`` APIs to expose watch color, watch model, and firmware version
* Add quick launch support
* Bring back select-button-to-dismiss-notification on Android & iOS < 8
* Add --worker option to `pebble new-project` to create file structure for apps with background workers
* Add background worker [example]({{site.links.examples_org}}/feature-background-counter)


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.6 - Changelog
date: 2014-09-30
---

> The symbols for `NUM_ANIMATION_CURVE` and `AnimationTimingFunction` have been removed in SDK 2.6. They were exposed in pebble.h in a previous release, but were not documented and are not used for ``Animation`` or ``PropertyAnimation`` APIs.

## Detailed List of Changes:
### Changes for Firmware:
* Add support for [background apps](/guides/events-and-services/background-worker/) with ``AppWorker``
> NOTE: The Background Worker API is not intended to be used as a wakeup mechanism for timer-based events or activities. SDK 2.7 will include a new Wakeup API that will allow you to set a timer that automatically launches your app in the foreground. Please do not use the Background Worker API to set such wakeups.
* Improve bluetooth connection service by only reporting disconnections of a certain length in time
* Add ``graphics_capture_frame_buffer``, ``graphics_release_frame_buffer``, ``graphics_frame_buffer_is_captured`` APIs to expose framebuffer
* Add ``WatchInfo`` APIs to expose watch color, watch model, and firmware version
* Fix bug where reading an existing key from persistent storage would fail
* Fixed Sports API bug causing menu item to not always appear in app launcher
* Fix bug with PebbleKit iOS and AppMessage timeouts
* Add quick launch support
* Bring back select-button-to-dismiss-notification on Android & iOS < 8
* Re-enable vibration when done charging
* Improve battery life

### Changes for SDK Tools:
* Add a --generate command line option to the coredump command
* Add --worker option to `pebble new-project` to create file structure for apps with background workers

### Changes for Examples:
* Add background worker [example]({{site.links.examples_org}}/feature-background-counter)

### Changes for Documentation:
* Add [AppWorker Guide](/guides/events-and-services/background-worker/)
* Add documentation for ``Worker``, ``AppWorker``, ``WatchInfo``


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.7 - Changelog
date: 2014-10-16
---

## Detailed List of Changes:
### Changes for Firmware:
* Add ``Wakeup`` API
* Add ``launch_reason`` API
* Fix a bug that caused ``watch_info_get_color`` to crash the app when used
* Add ``clock_to_timestamp`` API
* Add ``clock_is_timezone_set`` API. In firmware 2.7, this function will always return false
  as timezone support is not yet implemented
* Improve Bluetooth reliability
* Fix bug showing 0% battery warning

### Changes for SDK Tools:
No changes

### Changes for Examples:
* Add [wakeup example]({{site.links.examples_org}}/feature-app-wakeup)

### Changes for Documentation:
* Add ``Wakeup`` API documentation
* Fix bug with missing ``snprintf`` specifier documentation


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.8.1 - Changelog
date: 2014-12-09
---

This release fixes a number of bugs and improves BLE pairing on iOS.
See [FW 2.8 Changelog](/sdk/changelogs/2.8/) for new features and major fixes.

## Detailed List of Changes:
### Changes for Firmware:

* Fix bug that would cause the watch to crash when ``accel_data_service_unsubscribe`` was called in a `window_unload` handler
* Revert error return values from ``resource_load_byte_range`` to pre-2.8 behavior
* Speed up BLE pairing on iOS
* Fix a bug that would cause an app to be built incorrectly if the first resource in appinfo.json was declared twice.
* Reduce stack usage of resource handling to prevent stack overflows introduced in 2.8
* Fix several strings in non-English languages
* Fix bug in ``AppMessage`` that would cause the watch to crash

### Changes for SDK Tools:

* Fix an issue where the SDK failed to build apps with non-ascii characters in the name.
* Include locale.h in pebble.h

### Changes for Examples:
No changes
### Changes for Documentation:
No changes


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.8 - Changelog
date: 2014-11-20
---

This release changes the rendering behaviour of custom fonts in apps compiled with SDK 2.8. The change
improves the visual appearance of fonts, but also causes them to be slightly larger. If you rebuild with
SDK 2.8 and text no longer fits, you can revert to the old behaviour by setting `"compatibility": "2.7"`
in the resource block for that font, like so:

```javascript
{
  "type": "font",
  "file": "fonts/something.ttf",
  "name": "FONT_SOMETHING_24",
  "compatibility": "2.7"
}
```

System fonts are unaffected by this change.

## Detailed List of Changes:
### Changes for Firmware:

* All system `GOTHIC` fonts are expanded to contain 351 characters
* Add ``setlocale`` and ``i18n_get_system_locale`` APIs in preparation for internationalization support
* Fix an issue that could cause an incorrect accelerometer sampling rate to be used
* Fix an issue causing wakeup events scheduled less than thirty seconds in the future to fail
* Improve the performance of very small resource reads
* Fix an issue where iOS calendar alert notifications sometimes did not appear
* Fix an issue sometimes causing spurious "Loading..." notifications to appear on iOS
* Improve behaviour when trying to boot with a critically low battery

### Changes for SDK Tools:
* Improve font rendering for custom fonts when compiling with SDK 2.8
  * This can change the font metrics. If the font no longer fits, add the flag `"compatibility": "2.7"`
    to the resource entry for that font.

### Changes for Examples:
No changes

### Changes for Documentation:
* Fix explanation of the timezone of timestamps passed to ``wakeup_schedule``


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.9 - Changelog
date: 2015-02-10
---

This release introduces actionable notifications for Android and minor stability improvements.

## Detailed List of Changes:
### Changes for Firmware:

* Add support for [Android actionable notifications](/blog/2014/12/19/Leverage-Android-Actionable-Notifications/)
* Fix bug that caused crashes when ``mktime()`` was used
* Fix behavior of ``window_stack_pop_all`` so that only the last window is animated
* Compiler will now show an error when the resources limit is reached
* Improve the stability of ``Worker``on launch
* Fix bug where a ``Worker`` selected from the Activity menus would not be set to default
* Fix bug where a ``Worker`` launched by a new app would not be set to default after the default worker was deleted
* Fix an issue that caused ``AppMessage`` to report sends as failed when sending/recieving a high volume of messages
* Notification date format is standardized: "Wednesday 11, February" -> "Wednesday, February 11"

### Changes for SDK Tools:
No changes

### Changes for Examples:
* Update openweather apis used in example apps.

### Changes for Documentation:
No changes


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-beta10 - Changelog
date: 2015-04-30
---

This is the first beta release of Pebble SDK 3.0.

All applications compiled with previous SDK should work on 3.0 and up.
However, we have made several changes to the APIs in this release that will
require source code changes.

We **strongly recommend** that all developers rebuild and retest their apps with
this version of the SDK.

*All apps built with beta10 will build with future releases of the SDK.*

## Detailed List of Changes:

### Changes for Firmware:

* The PDC format has changed. PDCs created for developer preview 9 or earlier will
  no longer work.

### Changes to SDK:

* Add new ``StatusBarLayer`` that you should use in apps that you want to have
  a status bar. We've added a
  [section to the 3.0 migration guide](/sdk/migration/migration-guide-3/)
  with example code and screenshots.
* Added `PBL_SDK_2` and `PBL_SDK_3` or detecting the major version of the SDK at
  compile time.
* Added new `buffer_size` parameter to ``clock_get_timezone``.
* Added Pebble Time Steel models to ``WatchInfoModel``.

### Changes for SDK Tools:

* The emulator now works on 32 bit Linux machines.
* The timeline now works with Python 2.7.9.

### Changes to Timeline:

* Apps in sandbox mode no longer have a whitelist by default. Existing timeline
  apps are not affected. Take a look at the
  [Enabling the Timeline](/guides/pebble-timeline/) guide for further
  information.
* There are more new icons you can use in your pins. Check out the
  [guide on pin structure](/guides/pebble-timeline/pin-structure)
  for more details.

### Changes for Examples:

*No changes*

### Changes for Documentation:

*No changes*


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-beta11 - Changelog
date: 2015-05-10
---

This is the second beta release of Pebble SDK 3.0. It includes a number of fixes to improve stability as well as new guide for Design and Interaction.

## Detailed List of Changes:

### Changes for Firmware:

* Crashes within ``worker`` will now show up with a crash dialog on the watch.
* Fixed bug where ``Timeline`` events displayed improper start/finish times.
* Fixed bug where images were drawn incorrectly if bounds in ``layer_set_bounds`` were set differently than (0, 0, size.w, size.h).

### Changes to SDK:

* Fixed a bug where apps would fail to wake up because ``Wakeup`` expected time in UTC.

### Changes for SDK Tools:

*No changes*

### Changes to Timeline:

*No changes*

### Changes for Examples:

*No changes*

### Changes for Documentation:

* Added [Design and Interaction](/guides/design-and-interaction/) guides.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-beta12 - Changelog
date: 2015-05-17
---

This SDK release includes improvements to stability including fixes for timeline and timezone. There's also a new guide for making your apps compatible on both platforms.

## Detailed List of Changes:

### Changes for Firmware:

* Fixed a bug with timezone that would result in reporting the incorrect time.
* Ongoing timeline events that started less than 10 minutes ago now show up in the future.

### Changes to SDK:

* Fixed ``Pebble.getAccountToken`` on Android to return the same token as iOS.
  To learn how to convert a new token to an old one for the same account, read
  the
  [Migration Guide](/sdk/migration/migration-guide-3#pebblekit-js-account-token).

### Changes for SDK Tools:

* Fixed a bug with the `pebble analyze-size` command caused by an incorrect elf file location.

### Changes to Timeline:

* Fixed a bug where [Reminders](/guides/pebble-timeline/pin-structure/) would not be shown at the precise time they were set.

### Changes for Examples:

* Updated the layout and content of the [Examples](/examples/) page.

### Changes for Documentation:

* Added a new guide, [Building For Every Pebble](/guides/best-practices/building-for-every-pebble); this covers the best practices for building an app compatible with both platforms.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp1 - Changelog
date: 2015-02-26
---

This is the first Developer Preview release of the brand new Pebble SDK 3.0.

We will not be providing a comprehensive changelog for this release, but you
can take a look at our guide to [What's New in SDK 3.0](/sdk/whats-new/) and
our [3.0 migration guide](/sdk/migration-guide/).


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp2 - Changelog
date: 2015-03-05
---

This is the second Developer Preview release of Pebble SDK 3.0.

We have updated the Aplite SDK to include some macros that make developing apps
for both platforms easier. For example, you can now use `GColorEq` on both
Aplite and Basalt and the SDK will take care of the platform differences.

## Detailed List of Changes:

### Changes for Firmware:

Multiple stability improvements.

### Changes for SDK Tools:

* Running the Pebble emulator on Mac OS X will no longer use up 100% CPU.
* Apps built with 3.0-dp2 will install correctly on iOS
* Fixed `png2pblpng` for case of 1 color causing bitdepth of 0.

### Changes for Examples:

*No changes*

### Changes for Documentation:

*No changes*


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp3 - Changelog
date: 2015-03-13
---

This is the third Developer Preview release of Pebble SDK 3.0.

We have slightly modified the build process in this release to separate out
logs from Aplite and Basalt when building your app.

In order to take advantage of this change, you will need to update your wscript.
The easiest way to do is to create a new project and copy the wscript.

## Detailed List of Changes:

### Changes for Firmware:

* Multiple stability improvements.

### Changes for SDK Tools:

* Separated Aplite, Basalt and bundling log output when building an app.
* Added new [`hiddenApp`](/guides/tools-and-resources/app-metadata/)
  property to appinfo.json.

### Changes for Examples:

Updated examples with new wscript.

### Changes for Documentation:

* Multiple improvements to various 3.0 documentation, including fixing broken
links and undocumented function parameters.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp4 - Changelog
date: 2015-03-19
---

This is the fourth Developer Preview release of Pebble SDK 3.0.

## Detailed List of Changes:

### Changes for Firmware:

* Added basic timeline interface for testing and development purposes.
  **This is not the finished timeline UI**.
* Pressing the up/down button from the main emulator screen will now open the
  timeline.
* Made the generic, sports, weather and calendar layout available to timeline
  pins (see the [timeline guides](/guides/pebble-timeline/) for more information).

### Changes to SDK:

* Fixed ``property_animation_clone()`` compatibility macro (for Aplite binaries).
* Added ``launch_get_args()`` for getting the `launchCode` attribute from an
  [`openWatchApp`](/guides/timeline/pin-structure/#pin-actions) timeline pin
  action.

### Changes for SDK Tools:

* Emulator now has the proper timezone set automatically (in firmware and in
  JavaScript).
* Added the `insert-pin` and `delete-pin` commands to the emulator to interact
  with the timeline locally.
* Added the `pebble login` command to connect your emulator to your Pebble
  account. *This is required for the timeline to work*.
* Fix a bug where the build would fail if the project contains a space in
  the name.
* The [`targetPlatforms` attribute is now supported on resources](/guides/app-resources/platform-specific/).
  You can use it to specify that a resource should only be available on one platform.

#### Known Issues

The timeline will not work if you have Python 2.7.8+. Please use Python 2.7.6 if
you want to work with the new timeline APIs.

### Changes for Examples:

Examples have been removed from the SDK download, and our old examples
repository has been deprecated.

You can now find all our examples on
[pebble-examples on GitHub]({{site.links.examples_org}}/).

### Changes for Documentation:

*No changes*


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp5 - Changelog
date: 2015-03-27
---

This is the fifth Developer Preview release of Pebble SDK 3.0.

The biggest new features with this release are
[antialiasing and stroke width](/guides/graphics-and-animations/drawing-primitives-images-and-text/).

## Detailed List of Changes:

### Changes for Firmware:

* Antialiasing is enabled by default for all apps built with SDK 3.0 or higher.

### Changes to SDK:

* Added ``graphics_context_set_antialiased`` to toggle adding antialiasing to
  the graphics_draw_* functions. See our
  [Drawing Graphics](/guides/graphics-and-animations/drawing-primitives-images-and-text/)
  guide for more details.
* Added ``graphics_context_set_stroke_width``  to set the stroke width for
  drawing routines. See our
  [Drawing Graphics](/guides/graphics-and-animations/drawing-primitives-images-and-text/)
  guide for more details.

### Changes for SDK Tools:

* Fixed bug where projects with png-trans resources would cause build failures.

### Changes for Examples:

* Added [ks-clock-face]({{site.links.examples_org}}/ks-clock-face)
  example to demonstrate the new antialiasing and stroke width APIs.

### Changes for Documentation:

* Documented the [new pebble commands](/guides/tools-and-resources/pebble-tool/)
  for working with the emulator, and improved the rest of the tool documentation.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp6 - Changelog
date: 2015-04-03
---

This is the sixth Developer Preview release of Pebble SDK 3.0.

## Detailed List of Changes:

### Changes for Firmware:

* The action bar has been updated for 3.0. It is now 30px wide and has new
  animations when the buttons are selected.
* The antialiasing added in 3.0-dp5 has been improved.

### Changes to SDK:

* ``ActionBarLayer`` uses the new 3.0 action bar, which provides one new API
  function: ``action_bar_layer_set_icon_animated``.

### Changes for SDK Tools:

*No changes*

### Changes to Timeline:

* `createMessage` and `updateMessage` have been renamed to `createNotification`
  and `updateNotification`.
  The [Node.js pebble-api][pebble-api-node] client has been updated to match.

### Changes for Examples:

*No changes*

### Changes for Documentation:

*No changes*

[pebble-api-node]: https://www.npmjs.org/package/pebble-api


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp7 - Changelog
date: 2015-04-09
---

This is the seventh Developer Preview release of Pebble SDK 3.0.

## Detailed List of Changes:

### Changes for Firmware:

*No changes*

### Changes to SDK:

* Added ``graphics_draw_rotated_bitmap`` for drawing rotated bitmaps to a
  GContext.
* Added new ``Draw Commands`` which allow for doing vector-like graphics and
  even animating them.
* Added ``action_bar_layer_set_icon_press_animation`` for setting the direction
  of the animation when selecting actions in the ``ActionBarLayer``.
* Updated ``MenuLayer`` with new methods and callbacks to support color
  highlighting.

### Changes for SDK Tools:

* You are no longer required to log in to the Pebble tool. If you want to use
  the Pebble timeline in the emulator you will still need to log in.

### Changes to Timeline:

* Added `foregroundColor`, `backgroundColor`, `headings`, and `paragraphs` as
  new fields on the Layout object for Pins. Check out the
  [Pin Structure guide](/guides/pebble-timeline/pin-structure/) for more
  details.

### Changes for Examples:

* Created [cards-example]({{site.links.examples_org}}/cards-example) to
  demonstrate the new [Pebble Draw Commands](``Draw Commands``).

### Changes for Documentation:

*No changes*


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp8 - Changelog
date: 2015-04-16
---

This is the eighth Developer Preview release of Pebble SDK 3.0. This week we
were focussed on the firmware UI and so this release does not contain many
changes that are visible to developers.

## Detailed List of Changes:

### Changes for Firmware:

* Updated the timeline UI.
* In preparation for the new 3.0 design style, we have removed the old system status bar and all 3.0 apps are now fullscreen by default. We will be releasing a new StatusLayer in the future.

### Changes to SDK:

* Added [`Pebble.getActiveWatchInfo()`](/guides/communication/using-pebblekit-js) for getting details about the currently connected Pebble watch.

### Changes for SDK Tools:

* Fixed incorrect values when reporting the maximum sizes of apps.
* Added SDK emulator support to the
  [pebble command line tools](/guides/publishing-tools/pebble-tool) for
  `emu_tap`, `emu_bt_connection`, `emu_compass`, `emu_battery` and `emu_accel`.
* Fixed the issues with installing apps to the emulator.

### Changes to Timeline:

*No changes*

### Changes for Examples:

*No changes*

### Changes for Documentation:

*No changes*


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0-dp9 - Changelog
date: 2015-04-27
---

This is the ninth Developer Preview release of Pebble SDK 3.0.

## Detailed List of Changes:

### Changes for Firmware:

*No changes*

### Changes to SDK:

* Added ``menu_layer_set_normal_colors`` and ``menu_layer_set_highlight_colors``
  to make using ``MenuLayer``s much simpler.
* Renamed `GColorEq` to ``gcolor_equal`` to be more consistent with similar
  methods.
* `InverterLayer` has been
  [deprecated](/guides/migration/migration-guide-3/) and removed from the
  SDK.

### Changes for SDK Tools:

* The pebble tool will now use any running emulator before attempting to launch
  the default Basalt emulator
* Fixed a bug causing an incorrect color for foregroundColor and backgroundColor
  on timeline pins

### Changes to Timeline:

* There are now many more icons you can use in your timeline pins. Check out
  the [guide on pin structure](/guides/timeline/pin-structure/#pin-icons)
  for more details. **Note:** All the existing icons have been renamed.

### Changes for Examples:

* Deprecated feature-inverter-layer SDK example (see deprecation notice on
  [GitHub]({{site.links.examples_org}}/feature-inverter-layer))

### Changes for Documentation:

*No changes*


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.0 - Changelog
date: 2015-05-27
---

This is the first public release of SDK 3.0. It includes a number of small fixes to polish the timeline ui as well as improve stability.

## Detailed List of Changes:

### Changes for Firmware:

* Added a crash dialogue when watchfaces crash.

### Changes to SDK:

*No changes*

### Changes for SDK Tools:

- The emulator now supports WebSockets
- The emulator now persists JavaScript `localStorage` between emulator launches
- The emulator now caches app JavaScript between emulator launches
- The SDK no longer depends on cython to install correctly.

### Changes to Timeline:

* Fixed a bug where text would overlay in calendar reminders.

### Changes for Examples:

*No changes*

### Changes for Documentation:

* Fixed documentation for ``clock_to_timestamp`` to specify that it returns a timestamp in localtime on aplite.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.1 - Changelog
date: 2015-06-30
---

### Changes to Firmware

* Fix watch reset on calling ``compass_service_subscribe`` from a worker.
* Fix bug where setting click config is ignored if a notification is displayed.
* Fix app crash on calling ``gdraw_command_sequence_destroy``.
* Fix bug causing valid PNG8 images with a zero-length `tRNS` chunk to not load.
* Fix app crashes on 2.x apps using MenuLayers.
* Fix app crashes on 2.x apps using ScrollLayer.
* Fix ActionBarLayer being drawn as white when set to GColorClear.
* Fix bug causing ``menu_cell_title_draw`` and ``menu_cell_basic_header_draw`` to always render text in black.
* Fix alarms sometimes crashing the watch after vibrating for ten minutes.
* Fix transparent zero-radius circles rendering incorrectly.
* Improve rendering of zero-length lines with stroke width greater than one.
* Correctly display a sloth after deleting all pins on the timeline.
* Improve Bluetooth reliability.
* Reduced applog output from the launcher menu.
* Fix multiple cells being highlighted when setting the Do Not Disturb time range.
* Improve responsiveness when returning to a watchface from the launcher.

### Changes to SDK

* `window_set_status_bar_icon` is now deprecated.

### Changes to Emulator/Phonesim

* Fix WebSocket connections staying open after closing the app.
* Improve reliability of Aplite emulator installs when there are many timeline pins
* XMLHttpRequest now correctly returns a Uint8Array instead of ArrayBuffer.

### Changes to Pebble Tool

* Add support for `pebble app-config` command.
* Modify `pebble rm` command to use --bank or --uuid on 2.x, and --uuid on 3.x
* Modify `pebble current`, `pebble list` and `pebble uuids` commands to return a no-op message on 3.x.
* Remove login warning when not using emulator/phonesim.
* Improve error logging for JSON parsing errors.
* Fix a minor analytics bug.
* Fix requirements.txt bug.

### Changes to Documentation

* Update documentation for `window_set_fullscreen`.
* Update documentation for ``clock_to_timestamp``.
* Fix typo in documentation for ``MenuLayerDrawBackgroundCallback``.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.10-beta1 - Changelog
date: 2016-02-15
---

This is a pre-release SDK, containing a preview of the new Pebble Health
API.

### Changes to Firmware

* Added energy (Calorie) usage to the Health app.
* Changed "till" to "'til" in the low battery modals.
* Improved firmware stability.

### Changes to SDK

* Added ``health_service_get_measurement_system_for_display`` to retrieve the user's unit preference.
* Added ``health_service_sum_averaged`` and ``health_service_metric_averaged_accessible`` to access
  average health data. These can be used to determine the goal line used by the Pebble Health app.
* Added ``HealthMetricRestingKCalories`` and ``HealthMetricActiveKCalories`` to retrieve Calorie burn
  information from Pebble Health.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.10-beta2 - Changelog
date: 2016-02-19
---

This is a pre-release SDK, containing a preview of the new Pebble Health
API.

The following release notes list only changes since [3.10-beta1](/sdk/changelogs/3.10-beta1/).

### Changes to Firmware

* ``health_service_get_measurement_system_for_display`` no longer crashes when called on
  real watches.
* ``rand`` is now seeded from the hardware RNG on app start, as it was in firmware 3.4 and
  earlier.
* An issue causing the sleep graph to sometimes be blank on the deep sleep display of the
  Health app was resolved.

### Changes to SDK

* `CFLAGS` and `LINKFLAGS` env variables are now correctly honored by the app build process.
* JSON files under the `src/js/` directory are available to `require` in newly-created projects.
* ``persist_write_bool`` and ``persist_write_int`` are now correctly documented to return the
  number of bytes written on success.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.10-beta6 - Changelog
date: 2016-03-04
---

This is a pre-release SDK, containing a preview of the new Pebble Health
API.

The following release notes list only changes since [3.10-beta2](/sdk/changelogs/3.10-beta2/).

### Changes to Firmware

* Improved Health accuracy.
* Improved firmware stability.

### Changes to SDK

* Added information necessary to debug workers as well as apps.
* Added information about SDK calls to gdb.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.10.1 - Changelog
date: 2016-03-10
---

This is a hotfix for [SDK 3.10](/sdk/changelogs/3.10/).

### Changes to Firmware

* Restored the following emoji that were inadvertently removed:
  * U+2192 RIGHTWARDS ARROW: →
  * U+25BA BLACK RIGHT-POINTING POINTER: ►
  * U+2605 BLACK STAR: ★
  * U+1F3A4 MICROPHONE: 🎤
  * U+1F3A5 MOVIE CAMERA: 🎥
  * U+1F435 MONKEY FACE: 🐵
  * U+1F4AA FLEXED BICEPS: 💪
  * U+1F4F7 CAMERA: 📷
  * U+1F648 SEE-NO-EVIL MONKEY: 🙈
  * U+1F3B5 MUSICAL NOTE: 🎵
  * U+1F381 WRAPPED PRESENT: 🎁
  * Note that these emoji are only available on Time-series Pebbles due to hardware constraints.
* Made another attempt at fixing the charging modals. Third time's the charm!

### Changes to SDK

None.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.10 - Changelog
date: 2016-03-07
---

### Changes to Firmware

* Added energy (Calorie) usage to the Health app.
* Changed "till" to "'til" in the low battery modals.
* ``rand`` is now seeded from the hardware RNG on app start, as it was in firmware 3.4 and
  earlier.
* Notifications containing only an emoji will now fill the screen with that emoji, if that
  emoji supports this.
* Added support for filtering notifications by app on iOS (requires iOS app 3.10).
* Fixed a window stack crash affecting some 2.x apps running on 3.9 watches.
* Fixed an error on Pebble Classic and Pebble Steel where reminders did not include their
  description.
* An issue causing the sleep graph to sometimes be blank on the deep sleep display of the
  Health app was resolved.
* Improved Health accuracy.
* Improved firmware stability.

### Changes to SDK

* Added support for debugging apps with gdb, in conjunction with pebble tool 4.2.
* Added ``health_service_get_measurement_system_for_display`` to retrieve the user's unit preference.
* Added ``health_service_sum_averaged`` and ``health_service_metric_averaged_accessible`` to access
  average health data. These can be used to determine the goal line used by the Pebble Health app.
* Added ``HealthMetricRestingKCalories`` and ``HealthMetricActiveKCalories`` to retrieve Calorie burn
  information from Pebble Health.
* `CFLAGS` and `LINKFLAGS` env variables are now correctly honored by the app build process.
* JSON files under the `src/js/` directory are available to `require` in newly-created projects.
* ``persist_write_bool`` and ``persist_write_int`` are now correctly documented to return the
  number of bytes written on success.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.11.1 - Changelog
date: 2016-04-04 15:00:00
---
This is a hotfix for [SDK 3.11](/sdk/changelogs/3.11/)

### Changes to Firmware

* Removed a non-functional app called `JavascriptTest` from the launcher menu.

### Changes to SDK

None.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.11 - Changelog
date: 2016-04-04
---

### Changes to Firmware

* Added a vibrations settings menu with new custom vibration patterns.
* Added sleep classification for naps and a pin to the timeline when a nap is completed.
* Changed the cutoff time for completed sleep sessions to be 9pm so sleep sessions ending after 9pm are recorded on the following day.
* Sleep summary screens are now hidden if no sleep data is collected overnight, and sleep graphs are hidden if no sleep data has been collected for the last week.
* Added a pin to the timeline when a long walk or run is completed, displaying distance, calorie burn and duration.
* Improved step-counting algorithm for Pebble Health.
* Fixed display of jumboji for larger font sizes.
* Fixed bug causing app resources not to be removed when uninstalling an application.
* Fixed watch reset on disconnecting smartstrap during communication.
* Fixed replying to SMS on iOS when a notification contains an attachment.
* Improved low battery screen and icons.
* Improved rendering of upper-case accented characters.
* Fixed watch crash caused by invalid ANCS messages that occur when two notification-receiving devices are connected.
* Fixed bug causing the "Dismiss" action to delete voicemails when a "Dismiss" option is not available for the notification in iOS.
* Fixed never-ending phone calls on iOS8 when a second phone call is received before the first call is ended.
* Fixed a watch crash when using the "Send Text" app caused by an animation not being cleaned up.

### Changes to SDK

* Added new ``gdraw_command_frame_get_command_list`` API.
* Fixed project build failures when the project path contained unicode.

### Changes to Documentation

* Added documentation of method arguments for ``smartstrap_set_timeout``, ``smartstrap_service_is_available``, ``smartstrap_attribute_get_service_id``, ``smartstrap_attribute_get_attribute_id``, and ``smartstrap_attribute_end_write``.
* Improved description of ``CompassHeadingData`` and how to convert to a heading using ``CompassHeadingData``.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.12 and 3.12.1 - Changelog
date: 2016-05-10
---

### Changes to Firmware

* Added Smart Alarms, which are smarter than regular alarms because they try to avoid waking you from a deep sleep.
* Added support for the Send Text app on iOS with Time-series watches and supported carriers.
* iOS users with Time-series watches and supported carriers can now respond to phone calls with text messages.
* Added Pebble Health notifications for runs and long walks, and daily activity and sleep.
* Added notification icons for Amazon, LinkedIn, Slack, Google Maps, Google Photos and the iOS Photos app (only on Time-series watches).
* Restored the ability to control general vibration strength (lost in 3.11 on Time-series watches).
* Removed weekly activity and sleep charts from the health app (they're in the phone app now).
* The default watchface, TicToc, is now written in and running as JavaScript on Pebble Time and Pebble Time Steel.
* ``health_service_get_minute_history`` now correctly rounds the start time down to the nearest minute.
* Fixed an issue where snooze on reminders sometimes never reminded you again.
* Fixed popups still showing after entering low-power mode.
* Fixed a crash when a notification is dismissed on the phone while performing a voice reply to that notification.
* Fixed the watch briefly freezing after backing out of a progress window.
* Fixed some incorrect timezone data.
* Improved rendering of the sleep ring in the Health app after more than twelve hours of sleep.
* Improved rendering of adjacent deep sleep sessions in the Health app.

### Changes to SDK

* Each line of build output now indicates which platform it applies to.

### Changes to Documentation

* Improved description of ``MenuLayer``-related constants.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.13 - Changelog
date: 2016-06-10
---

This is a hotfix for [SDK 3.13](/sdk/changelogs/3.13/). This is an SDK-only
release; no corresponding firmware exists.

### Changes to SDK

* Use the value of package.json's `pebble.displayName` for the app's name
  everywhere, instead of sometimes using `name`, which is subject to npm naming
  restrictions.
* When using a block AppMessage key (e.g. `Elements[6]`), the name of the base
  key is no longer usable directly and must be accessed numerically. This change
  was made to ensure that it _could_ be accessed numerically, which is the
  standard use-case for these array-like keys.
* Library capabilities (e.g. `location`) are now correctly merged with app
  capabilities.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.13 - Changelog
date: 2016-06-07
---

This firmware was released only for the Pebble Time series.

### Changes to Firmware

* Added the Weather app (requires mobile app 3.13).
* Reduced confusion between walking and sleeping in Pebble Health.
* Added U+1F525 FIRE (🔥) to the supported emoji.
* `layer_set_value()` functions now always mark the layer as dirty.
* Removed complaints about sleeping less than usual if you none-the-less slept
  plenty.
* Improved Pebble Health summary notifications
* ``gcolor_equal()`` now considers all transparent functions to be equivalent.
  This change only affects apps built with SDK 3.13 or later.

### Changes to SDK

* [We launched Pebble Packages](/blog/2016/06/07/pebble-packages/), our new,
  npm-based package solution!
  * Check out our [Pebble Package guides](/guides/pebble-packages/)!
  * **appinfo.json** is deprecated; long live **package.json**! Use
    `pebble convert-project` to update your app.
  * We now include Pebble Packages that you have installed in your
    `node_modules` folder for use in the C or PebbleKit JS code of your app.
  * We also include standard node modules for use in PebbleKit JS (but
    compatibility varies).
  * We can now create packages as a new project type. Try
    `pebble new-package`!
  * Packages can also use ``AppMessage`` and resources without identifier
    conflicts.
* `require` in PebbleKit JS now requires explicitly using relative paths when
  loading files in your app (i.e. prefixing filenames with `./`).
* ``AppMessage`` keys are now included in your C code with a `MESSAGE_KEY_`
  prefix. They are also included in your PebbleKit JS code as the return value
  of `require("message_keys")`.
* ``AppMessage`` keys can be auto-assigned, so numbers don't have to be picked
  explicitly for communication between C and PebbleKit JS. This is designed to
  enable libraries to function without conflicts.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.14 - Changelog
date: 2016-07-06
---

This firmware was released only for the Pebble Time series.

### Changes to Firmware

* Adjusted the Health alerts to be more positive and less condescending.
* "Average" is now "Typical", to match the phone apps.
* Improved the smart alarm algorithm.
* Improved syncing of health data to the phone.
* Fixed a potential crash loop when receiving unexpected ANCS data on iOS.

### Changes to SDK

* Added ``PBL_API_EXISTS`` macro, to test whether a function exists in a given
  SDK at compile time. This macro will also be added to the 4.0-dp3 preview.
* Fixed a bug that caused messageKeys containing an underscore to be mangled.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.2.1 - Changelog
date: 2015-08-12
---

This is a hotfix release for [SDK 3.2](/sdk/changelogs/3.2/).

### Known issues

* Taking screenshots from physical watches running firmware 3.2 or 3.2.1 usually doesn't work.
  We expect to fix this in firmware 3.3.

### Changes to Firmware

* Apps compiled using SDK versions earlier than 3.2 which caused heap corruption but
  did not crash will now emit warnings instead of crashing. Apps compiled using SDK
  3.2 or later will crash when a corrupt heap is detected.
* Resolved an issue causing emojis to display as boxes when replying to a notification using
  the large notification font.
* Resolved multiple issues caused by having unsupported language packs installed.

### Changes to the SDK

None.

### Changes to the Pebble Tool

* Fixed a crash in the pebble tool when receiving a log containing a non-ASCII character.

### Changes to the emulator and phone simulator

* Fixed JavaScript apps crashing when attempting to log non-ASCII characters.

### Changes to documentation

None.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.2 - Changelog
date: 2015-07-22
---

### Known issues

* Taking screenshots from physical watches running firmware 3.2 usually doesn't work.
  We expect to fix this in firmware 3.3.

### Changes to Firmware

* Improved the reliability of app wakeup service when it is in use by multiple apps.
* Added generic icons to the Watchfaces app for watchfaces without one.
* Improved rendering of non-antialiased rounded rectangles.
* Improved rendering of timeline pins with long body text.
* Improved rendering of notifications.
* Improved rendering of timeline pins using the Reminder layout.
* Improved the music app on Android, in conjunction with the Pebble Time Android app
  version 3.2.
* Added settings for backlight brightness and duration.
* Added settings for notification font size and vibration intensity.
* Restored the "dismiss all" action on notifications (long press or use the menu).
* Significantly improved music control reliability on iOS.
* Improved music control on Android, in conjunction with version 3.2 of the Android app.
* Fixed a crash when forcibly terminating the launcher.
* Improved the behavior of the app fetch UI after a bluetooth reconnection.

### Changes to SDK

* ``ANIMATION_PLAY_COUNT_INFINITE`` got lost, but it's back now.
* Added ``gcolor_legible_over``, which returns a color legible over some background color.

### Changes to Pebble Tool

We scrapped everything and rewrote it from scratch!

* Introducing [libpebble2]({{ site.links.libpebble }}), the successor to libpebble.
  If you want to write tools that interact with a watch, this is the library to use.
* Also introducing [pebble-tool](https://github.com/pebble/pebble-tool), the successor to the
  old 'pebble' command, which was also part of libpebble.

The following user-visible changes were made:

* You can now connect to your phone via the CloudPebble proxy, even if the network blocks
  local connections. Pass `--cloudpebble` to do this.
* The pebble tool will now prompt you to opt in to analytics on first launch. While this is
  optional, it would be very helpful if you said yes.
  * If you had previously opted out, that will still be respected and the question will be
    skipped.
* Analytics are no longer collected synchronously, which should reduce pauses while using the
  pebble tool.
* Launching and connecting to the emulator should now be much more reliable.
* Both aplite and basalt emulators can now run concurrently.
* There is no longer a default action if no connection is specified. However, if exactly one
  emulator is running, that will be used by default.
* Screenshots are now color-corrected by default. Use `--no-correction` to disable correction.
* You can now pass a filename to the screenshot command.
* On OS X, screenshots will automatically open once they are taken. This can be disabled by
  passing `--no-open`.
* Screenshots now display a progress bar while the are taken.
* `--debug` and `--debug-phonesim` have both been removed. They have been replaced by `-v`.
  * You can use up to four v's (`-vvvv`) for increased verbosity. At this level, all protocol
    messages will be displayed in both deserialised and binary forms.
* `pebble build` now respects `-v` (up to three v's) to increase the verbosity of build output.
* `pebble build` can now pass arguments to your wscript; place them after a `--`.
* Log output from `pebble logs` and `pebble install --logs` is now in color.
* Added `pebble logout`.
* `pebble wipe` now only wipes data for the current SDK version, and will not log you out.
  * To wipe *everything*, use `pebble wipe --everything`.
* `pebble app-config` has been renamed to `pebble emu-app-config`.
* The following commands have been removed: `list`, `rm`, `current`, `uuids`, `coredump`.
* The environment produced by `pebble repl` has changed: it now provides a libpebble2
  [`PebbleConnection`](http://libpebble2.readthedocs.org/en/v0.0.7/connection/#libpebble2.communication.PebbleConnection)
  object named `pebble` and places the pebble protocol messages under `protocol`.
* Lightblue support was removed, but direct serial connections are still available using
  `--serial`, e.g. `--serial /dev/cu.PebbleTimeDF7C-SerialPo`.

### Changes to Emulator/Phonesim

* Updated the phone simulator to use libpebble2.

### Changes to Documentation

* [PebbleKit JS is now documented](/docs/pebblekit-js/).
* [A PebbleKit Android tutorial was added](/getting-started/android-tutorial/part1/).
* [A PebbleKit iOS tutorial was added](/getting-started/ios-tutorial/part1/).


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.3 - Changelog
date: 2015-08-19
---

### Changes to Firmware

* Screenshots once again work reliably. The display will now freeze briefly while taking a screenshot.
* Added "relationship bars" to the timeline, which indicate whether events overlap, are
  back-to-back, or have time between them.
* Added the date to timeline day separators.
* Added groundwork for improved Android notification behavior (requires a future Android update).
* Further improved rendering of long paragraphs in timeline pins.
* Fixed MenuLayer animations in non-full-screen menu layers.
* Fixed a crash when passing ``data_logging_log`` a NULL pointer.
* Fixed timezone error in Chile.
* Resolved a privilege escalation exploit.

### Changes to SDK

* Added ``ActionMenu``, for easy hierarchical menus as seen in notifications, timeline, and
  throughout the system UI.
* Added ``app_focus_service_subscribe_handlers``, which enables apps to better synchronize with
  system animations.
* Exported ``property_animation_update_gcolor8``, for animating between colors.

### Changes to Pebble Tool

None.

### Changes to Emulator/Phonesim

None.

### Changes to Documentation

None.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.4 - Changelog
date: 2015-09-09
---

### Changes to Firmware

* Improved calendar and reminder pin display.
* Added support for internationalization and localization.
* Added standby mode (disables bluetooth when the watch is not being worn).
  * This can be toggled in Settings > System > Stand-by Mode.
* Renamed "Do Not Disturb" to "Quiet Time" and expanded functionality.
  * Can now disable notifications during calendar events.
  * Holding back from a watchface will now toggle Quiet Time.
  * Quiet Time can be enabled from notifications.
* Increased timeline paragraph length limit.

### Changes to SDK

* Enabled [timeline HTTP actions](/guides/pebble-timeline/pin-structure/) (requires iOS app 3.2 or Android app 3.4).
* Added [Smartstrap APIs](/guides/smartstraps/).

### Changes to Pebble Tool

* Added the [`pebble emu-control` command](/guides/tools-and-resources/pebble-tool/),
  which enables sending real-time accelerometer and compass data from phones
  to the pebble emulator.

### Changes to Emulator/Phonesim

None.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.6-dp2 - Changelog
date: 2015-09-23
---

This changelog collects only changes visible to developers using the emulator. A complete
changelog will be provided when 3.6 ships on physical watches.

### Changes to Firmware

* Added support for [circular watches](/round/).
* Window stack animations were disabled on Chalk.
* Adjusted the display of [`ActionBarLayers`](``ActionBarLayer``) for circular watches.
* Adjusted the display of [`ActionMenus`](``ActionMenu``) for circular watches.
* Increased the height of the ``StatusBarLayer`` on Chalk (16 to 20 pixels).

### Changes to SDK

* Added the new "Chalk" platform for the Pebble Time Round.
* Added `PBL_ROUND`, `PBL_RECT` and `PBL_PLATFORM_CHALK` defines.
* Added ``PBL_IF_ROUND_ELSE``, ``PBL_IF_RECT_ELSE``, ``PBL_IF_COLOR_ELSE`` and
  ``PBL_IF_BW_ELSE`` macros. ``COLOR_FALLBACK`` is now considered deprecated.
* Added ``graphics_fill_radial`` and ``graphics_draw_arc``, for drawing partial circles.
* Added ``gpoint_from_polar`` and ``grect_centered_from_polar`` for conversion from
  polar to cartesian coordinates.
* Added ``ContentIndicator``, which provides a visual indicator of content above or
  below the display.
* Added ``menu_layer_set_center_focused``, which forces the highlighted menu item to always
  be in the center of the display. This is the preferred configuration for menus on Chalk.
* Added ``DEG_TO_TRIGANGLE``, the inverse of the pre-existing ``TRIGANGLE_TO_DEG``.
* Added ``GBitmapFormat8BitCircular``, the new framebuffer format used on Chalk.
* Added ``gbitmap_get_data_row_info``, because ``GBitmapFormat8BitCircular`` does not have
  a constant number of bytes per row. This should now be used for all framebuffer
  manipulation.

### Changes to Pebble Tool

* Added support for Chalk and circular displays.

### Changes to Emulator/Phonesim

* Added support for Chalk and circular displays.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.6-dp5 - Changelog
date: 2015-10-02
---

This changelog covers only changes since 3.6-dp2. Developer previews 3 and 4 were never shipped.

### Changes to Firmware

* Made the status bar on Chalk (Pebble Time Round) four pixels taller (from 20 to 24 pixels).
* Resolved an issue causing AppMessages to sometimes be dropped when sending both ways.
* Improved backlight behaviour when dictating text.
* Fixed a calculation error in ``grect_centered_from_polar``.
* Resolved multiple issues that occured when reusing a ``DictationSession``.

### Changes to SDK

* Added the ``GTextAttributes`` structure, with methods for defining text flow and paging on a
  circular display.
* Added support for ``GTextAttributes`` to ``graphics_draw_text``. That `NULL` parameter that
  you've been tacking on the end for two and a half years now actually does something.
* Added methods to ``TextLayer`` for flowing and paging text on a circular display.
* Added paging support to ``ScrollLayer``.
* Improved the return codes from the dictation API.

### Changes to Pebble Tool

* Added the [`pebble transcribe` command](/guides/tools-and-resources/pebble-tool/), enabling
  testing dictation in the emulator.
* Added the [`pebble data-logging` command](/guides/tools-and-resources/pebble-tool/),
  to download stored datalogging from the
  watch to the computer.

### Changes to Emulator/Phonesim

* Added a translucent ring around the inside of the emulator to remind you of masked pixels.
* Resolved an issue causing appmessage events to fire repeatedly.
* Resolved an issue causing app installs to frequently fail on Linux.
* Resolved an issue causing emulated Bluetooth to be broadly unreliable.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.6-dp6 - Changelog
date: 2015-10-07
---

This changelog covers only changes since 3.6-dp5.

### Known Issues

* Unfocused menu layer cells on Chalk may have their content inappropriately truncated.
  This behavior will improve before the final 3.6 release.

### Changes to Firmware

* Added window stack transition animations on Chalk (subject to change).
* Correctly centred the loading bar for the voice API on Chalk.
* Removed an unexpected artifact at the end of ActionMenus on Chalk.

### Changes to SDK

* Added ``menu_layer_is_index_selected``.
* Added constants for the heights of menu cells on Chalk.

### Changes to Pebble Tool

* None.

### Changes to Emulator/Phonesim

* Fixed a series of issues causing AppMessages larger than 2048 bytes to be lost.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.6-dp7 - Changelog
date: 2015-10-09
---

This changelog covers only changes since 3.6-dp6.

### Known Issues

* Unfocused menu layer cells on Chalk may have their content inappropriately truncated.
  This behavior will improve before the final 3.6 release.

### Changes to Firmware

* MenuLayers will now correctly enable center focus by default on Chalk.
* Resolved an issue causing iOS notifications to cease after invoking the "call back"
  action.
* Pebble Time Round no longer vibrates when charging is completed.
* The action menu nub is now slightly larger on Pebble Time Round.

### Changes to SDK

* ``DEG_TO_TRIGANGLE`` no longer inappropriately normalizes angles.

### Changes to Pebble Tool

* None.

### Changes to Emulator/Phonesim

* Fixed a JavaScript runtime crash when sending non-ASCII characters by AppMessage.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.6-dp8 - Changelog
date: 2015-10-09
---

This changelog covers only changes since 3.6-dp7.

### Known Issues

* Unfocused menu layer cells on Chalk may have their content inappropriately truncated.
  This behavior will improve before the final 3.6 release.

### Changes to Firmware

* Fixed an issue causing the voice API to not return a transcription when confirmation is
  enabled.

### Changes to SDK

* None.

### Changes to Pebble Tool

* None.

### Changes to Emulator/Phonesim

* None.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.6.2 - Changelog
date: 2015-11-04
---

This SDK corresponds with firmware 3.6.2, which only shipped on Pebble Time Round.

### Changes to Firmware

* Action bars are now less curved on Chalk.
* Added Chalk support to the sports API.
* Improved text rendering in unfocused menu layer cells on Chalk.
* Some missing animations were added on Chalk.
* Resolved an issue with alarms when DST starts or ends.

### Changes to SDK

* The recommended menu layer heights on Chalk have changed.
  ``MENU_CELL_ROUND_FOCUSED_SHORT_CELL_HEIGHT``,
  ``MENU_CELL_ROUND_FOCUSED_TALL_CELL_HEIGHT``, ``MENU_CELL_ROUND_UNFOCUSED_SHORT_CELL_HEIGHT`` and
  ``MENU_CELL_ROUND_UNFOCUSED_TALL_CELL_HEIGHT`` were updated accordingly.

### Changes to Pebble Tool

* Resolved an issue causing emulator launches that raise EINTR to fail.

### Changes to Emulator/Phonesim

* None.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.6 - Changelog
date: 2015-10-14
---

This changelog contains all changes since SDK 3.4. SDK 3.5 was never shipped.

### Known Issues

* Unfocused menu layer cells on Chalk may have their content inappropriately truncated.
  This behavior will improve before Pebble Time Round is released.

### Changes to Firmware

* Added support for [circular watches](/round/).
* Window stack animations were disabled on Chalk.
* Adjusted the display of [`ActionBarLayers`](``ActionBarLayer``) for circular watches.
* Adjusted the display of [`ActionMenus`](``ActionMenu``) for circular watches.
* Increased the height of the ``StatusBarLayer`` on Chalk (16 to 24 pixels).
* Improved backlight behavior when dictating text.
* Added support for 8 KiB AppMessage buffers.

### Changes to SDK

* Added the new "Chalk" platform for the Pebble Time Round.
* Added the [Dictation API](/guides/pebble-apps/sensors/dictation/), enabling voice input on
  the Basalt and Chalk platforms.
* Added `PBL_ROUND`, `PBL_RECT` and `PBL_PLATFORM_CHALK` defines.
* Added ``PBL_IF_ROUND_ELSE``, ``PBL_IF_RECT_ELSE``, ``PBL_IF_COLOR_ELSE`` and
  ``PBL_IF_BW_ELSE`` macros. ``COLOR_FALLBACK`` is now considered deprecated.
* Added ``graphics_fill_radial`` and ``graphics_draw_arc``, for drawing partial circles.
* Added ``gpoint_from_polar`` and ``grect_centered_from_polar`` for conversion from
  polar to cartesian coordinates.
* Added ``ContentIndicator``, which provides a visual indicator of content above or
  below the display.
* Added ``menu_layer_set_center_focused``, which forces the highlighted menu item to always
  be in the center of the display. This is the default configuration for menus on Chalk.
* Added ``menu_layer_is_index_selected``.
* Added constants for the heights of menu cells on Chalk: ``MENU_CELL_ROUND_FOCUSED_SHORT_CELL_HEIGHT``,
  ``MENU_CELL_ROUND_FOCUSED_TALL_CELL_HEIGHT``, ``MENU_CELL_ROUND_UNFOCUSED_SHORT_CELL_HEIGHT`` and
  ``MENU_CELL_ROUND_UNFOCUSED_TALL_CELL_HEIGHT``.
* Added ``DEG_TO_TRIGANGLE``, the inverse of the pre-existing ``TRIGANGLE_TO_DEG``.
* Added ``GBitmapFormat8BitCircular``, the new framebuffer format used on Chalk.
* Added ``gbitmap_get_data_row_info``, because ``GBitmapFormat8BitCircular`` does not have
  a constant number of bytes per row. This should now be used for all framebuffer
  manipulation.
* Added the ``GTextAttributes`` structure, with methods for defining text flow and paging on a
  circular display.
* Added support for ``GTextAttributes`` to ``graphics_draw_text``. That `NULL` parameter that
  you've been tacking on the end for two and a half years now actually does something.
* Added methods to ``TextLayer`` for flowing and paging text on a circular display.
* Added paging support to ``ScrollLayer``.

### Changes to Pebble Tool

* Added support for Chalk and circular displays.
* Added the [`pebble transcribe` command](/guides/tools-and-resources/pebble-tool/),
  enabling testing dictation in the emulator.
* Added the [`pebble data-logging` command](/guides/tools-and-resources/pebble-tool/),
  to download stored datalogging from the watch to the computer.
* Added the [`pebble emu-time-format` commmand](/guides/tools-and-resources/pebble-tool/),
  allowing switching of the emulator between 12-hour and 24-hour formats.

### Changes to Emulator/Phonesim

* Added support for Chalk and circular displays.
* Fixed a JavaScript runtime crash when sending non-ASCII characters by AppMessage.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.7 - Changelog
date: 2015-11-23
---

Firmware 3.7 will not appear to be available unless you have the latest version of the
iOS or Android app.

### Changes to Firmware

* Added support for SMS notification replies on iOS, if you use AT&T.
* Added the date to the icon in calendar timeline pins.
* Restored the reminder icon to reminder notifications on Pebble Time Round.
* Fixed text clipping in the incoming call window in some cases.
* Improved rendering of clipped, antialiased GPaths.

### Changes to SDK

* Resolved an issue present since SDK 3.3 causing JavaScript changes to be ignored by
  incremental builds.

### Changes to Pebble Tool

* None.

### Changes to Emulator/Phonesim

* Added an option to block access to local IP addresses to the phonesim. This blocking
  is only active on CloudPebble.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.8-beta10 - Changelog
date: 2015-12-09
---

This is a pre-release version of the Pebble SDK. Only changes since beta8 are included.

### Changes to Firmware

* Resolved an issue causing alarms to not vibrate in standby mode
* Added `shortSubtitle` property to all timeline layouts.
  * This string, if provided, will be used as the subtitle in the timeline list view.
* Added a `displayTime` enum to the timeline weather layout.
  * If `none`, it will not display a time. If `pin`, it will display the time of the
    pin in the title. The default is `pin`.
* Timeline pins were no longer last updated in 1970.
* Resolved some minor layout issues.

### Changes to SDK

* Added `PBL_MICROPHONE` and `PBL_SMARTSTRAP` macros, which will be defined when a
  microphone or a smartstrap connector is available, respectively. Note that the
  runtime availability of the services should still be tested, as the presence of
  hardware is not sufficient.
* Removed spuriously exported `_EMOJI` fonts. Emoji symbols will display in system
  fonts as before.
* Fixed an issue causing the generation of indexed PBIs containing non-black transparent
  pixels to fail.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.8-beta12 - Changelog
date: 2015-12-14
---

This is a pre-release version of the Pebble SDK. Only changes since beta10 are included.

### Changes to Firmware

* ``graphics_fill_radial`` will now produce dithered 50% gray on Aplite where appropriate.
* Fixed an issue causing reduced stack availability after using dictation.
* Slightly reduced stack usage in general.
* Added support for 3.8 to 2.9 downgrades (but no data is retained when doing this).
* Restored the missing "Call back" button to iOS missed call pins.
* Improved stability.

### Changes to SDK

* Fixed an issue causing SDK 3.8 apps to install on firmware 3.6 and 3.7, but then
  potentially crash at runtime. They now display a compatibility error when launched.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.8-beta8 - Changelog
date: 2015-12-02
---

This is a pre-release version of the Pebble SDK.

### Changes to Firmware

* Added support for Pebble Classic and Pebble Steel watches!
  * You can read more [on our blog](/blog/2015/12/02/Bringing-the-Family-Back-Together/)
  * This is a major change! Please test your aplite apps thoroughly after rebuilding with
    SDK 3.8.
* Improved the rendering of ``NumberWindow``.
* Fixed a race when exiting an ``ActionMenuLevel``.
* Timeline pins no longer require icons, and will pick a sane default.
* Restored the double vibration when _disabling_ Quiet Time (enabling is still a single vibration).
* Resolved a memory leak in ``DictationSession``.
* Assorted minor design changes.

### Changes to SDK

* Deprecated `png`, `pbi` and `pbi8` in favor of a new `bitmap` resource type.
  [Read more on our blog!](/blog/2015/12/02/Bitmap-Resources/).
* Font resources are now somewhat smaller than they used to be.

### Changes to Pebble Tool

SDK 3.8 is the first version exclusively available via the
[new pebble tool](/blog/2015/12/01/A-New-Pebble-Tool/).

No future SDK packages will contain the tool, or any changes to the tool.

### Changes to Emulator/Phonesim

As with the pebble tool, the emulator and phone simulator are no longer coupled to the SDK.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.8.1 - Changelog
date: 2015-12-16
---

This release is currently SDK-only. In particular, the timeline text color
fix will not be available on watches until we ship a new firmware build
~~later this~~ next week.

### Changes to Firmware

* Fixed a timeline crash that only occurred on Aplite when run in an SDK
  emulator in a release build.
* Fixed timeline `foregroundColor` being used inappropriately in the
  timeline list view, sometimes leading to white-on-white text.

### Changes to SDK

* None


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.8.2 - Changelog
date: 2015-12-21
---

This release also includes the changes from [3.8.1](/sdk/changelogs/3.8.1/),
which was not shipped on physical watches.

### Changes to Firmware

* Fixed a crash when trying to unload a cached app.
* Fixed a crash showing health pins when using a non-English language pack.

### Changes to SDK

* Fixed an issue causing font processing failures to lead to the build system
  hanging until forcibly terminated.


---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 3.8 - Changelog
date: 2015-12-15
---

### Changes to Firmware

* Added support for Pebble Classic and Pebble Steel watches!
  * You can read more [on our blog](/blog/2015/12/02/Bringing-the-Family-Back-Together/)
  * This is a major change! Please test your aplite apps thoroughly after rebuilding with
    SDK 3.8.
* Added Pebble Health!
  * No API is yet available to access health information, but one will be added in
    an upcoming release.
* Improved the rendering of ``NumberWindow``.
* Fixed a race when exiting an ``ActionMenuLevel``.
* Timeline pins no longer require icons, and will pick a sane default.
* Resolved an issue causing alarms to not vibrate in standby mode
* Added `shortSubtitle` property to all timeline layouts.
  * This string, if provided, will be used as the subtitle in the timeline list view.
* Added a `displayTime` enum to the timeline weather layout.
  * If `none`, it will not display a time. If `pin`, it will display the time of the
    pin in the title. The default is `pin`.
* Timeline pins were no longer last updated in 1970.
* Resolved a memory leak in ``DictationSession``.
* Restored the double vibration when _disabling_ Quiet Time (enabling is still a single vibration).
* Restored the missing "Call back" button to iOS missed call pins.
* Assorted minor design changes.

### Changes to SDK

* Deprecated `png`, `pbi` and `pbi8` in favor of a new `bitmap` resource type.
  [Read more on our blog!](/blog/2015/12/02/Bitmap-Resources/).
* Added `PBL_MICROPHONE` and `PBL_SMARTSTRAP` macros, which will be defined when a
  microphone or a smartstrap connector is available, respectively. Note that the
  runtime availability of the services should still be tested, as the presence of
  hardware is not sufficient.
* Font resources are now somewhat smaller than they used to be.

### Changes to Pebble Tool

SDK 3.8 is the first version exclusively available via the
[new pebble tool](/blog/2015/12/01/A-New-Pebble-Tool/).

No future SDK packages will contain the tool, or any changes to the tool.

### Changes to Emulator/Phonesim

As with the pebble tool, the emulator and phone simulator are no longer coupled to the SDK.