Pinetime Versions Save

Firmware for Pinetime smartwatch written in C++ and based on FreeRTOS

1.0.0-RC1

3 years ago

InfiniTime 1.0.0 RC1

I'm happy the release the first Release candidate version of InfiniTime 1.0.

The tag 1.0 is a great milestone! I think InfiniTime reached a point where it can actually be used by 'enthusiasts end-users' as a daily driver : it implements all the hardware of the watch, it provides many features and it's supported an awesome ecosystem of companion app running on many platforms and OSes. Of course, it's probably not bug free, it certainly provide not all the functionalities everyone can dream of but we'll have plenty of time to implement them in the future!

This version brings many new features:

  • Step counter
  • Wake on wrist rotation
  • 12/24h display
  • Vibration enable/disable
  • Big UI rework by Joaquimorg
  • User settings saved in flash memory
  • Improve TWI driver that should not freeze anymore in games

The goal of this RC version is to test it as much as possible and fix the most critical bugs before releasing v1.0.0.

As always, do not forget this is a release candidate version, not a stable release, flash it at your own risk on your sealed devices ;)

*build date reported in About app: "Apr 16 2021 18:58:21"

0.15.0

3 years ago

This release adds three new features to InfiniTime : A new analog watch face, the possibility to switch from the digital watchface to the analog one and a new stopwatch application!!

The new analog watchface and the multi watchface support were contributed by J8oaquim. You can now easily switch the clock face (digital / analog) by long-tapping the screen. Joaquim also improved the digital watchface by adding some colors and fixed the display issue when the date was too long for the display.

The stopwatch is contributed by Panky-codes. It provides all the necessary function such as start, pause, stop and lap.

Joaquim also fixed a bug in the display driver that would display strange glitches in some apps like the game Paddle!

Thanks again for these contributions!

NOTE : bootloader.bin is now the new bootloader version 1.0.0.

0.14.1

3 years ago

This release brings the new recovery firmware based on InfiniTime. This firmware is intended to be used in conjunction with the new version for the bootloader I've just released.

This new MCUBoot bootloader fixes a few bugs and add new features and a new UI. Among these new features is the recovery functionality which allows to load a recovery firmware from the external flash memory to recover the PineTime when the current firmware cannot boot anymore. This recovery firmware is a slightly modified version of InfiniTime that only provides a basic UI and the OTA functionality. You'll be able to use this firmware to load a new firmware over-the-air using BLE connectivity.

Note that all version of InfiniTime from 0.7.1 are and will be compatible with the previous MCUBoot bootloader (the one that is loaded at factory since September 2020) and the new version. The update is not mandatory.

Other than the recovery firmware, this release does not bring any new features in InfiniTime.

0.14.0

3 years ago

This release updates the version of LVGL (LittleVGL) from version 6 to version 7. This is a major update that brings many improvement and update that have been made in the LVGL project. I know that several contributors were waiting for this update to create new watchfaces and apps, and I hope they'll unleash their creativity now that it's finally there!

I would like to say a bit thank you to Joaquimorg for this contribution. Joaquimorg maintains his own fork of Infinitime and did a great work to port this update into InfiniTime, adapting all the apps and improving the theme used in InfiniTime!

Thanks also to roblabla for fixing the CMake FLASH target !

And also thanks to Nico for initiating the idea to name InfiniTime releases !

0.13.0

3 years ago

In this release, we added 2 new features and hopefully improved the BLE connectivity!

The first feature is the call notification. The companion app can now send a call notification to InfiniTime. InfiniTime displays this notification and gives the opportunity to accept the call, ignore it or reject it. Note that this feature needs to be implemented in the companion app. Thanks to jlukanc1 and petterhs for their work on this feature!

The second feature is the vibration on notification! I know a lot of people were waiting for it, me included since I wear my own PineTime! Thanks to petterhs, roka and t0tten for their contributions!

petterhs also improved the Music app by using nice icons for the buttons (next, previous, volume up/down).

Finally, after a lot of analysis and debugging, we might have improved the BLE connectivity a bit more. Let's hope everyone will notice a better connection reliability and less failed OTA!

0.12.1

3 years ago

This bugfix release fixes a bug that would cause a crash after 4 or 5 bluetooth reconnection. An error in the porting layer of Nimble (the glue between InfiniTime, FreeRTOS and Nimble) caused a leak each time a new connection was established. Once no memory was available, the firmware would crash.

0.12.0

3 years ago

This release brings an update of NimBLE (our BLE stack) to improve the BLE connection reliability and stability. I've already spent a long time trying to analyze and debug BLE connectivity issues (OTA failure and BLE connection drops for no reason) but couldn't find the cause of these issues.

It turns out that using a more recent version of NimBLE does improve the situation! Even if it's not perfect yet, it's still better than before so... enjoy an increased OTA success rate and long lasting BLE connections!

On the code level, many quality of life improvements have been made by Avamander (new clang-format and clang-tidy configuration, formatting rules,...).

0.11.0

3 years ago

Here is another big release with 2 major additions : the integration of theheart-rate sensor and InfiniNav, a navigation app!

Thanks to Daniel from Wasp-os, I've finally been able to integrate the heart rate sensor using a 100% FOSS implementation! To be honest, I've just ported the HR driver and algorithm from the Python code in Wasp-os and integrated it as an app in InfiniTime.

The Heart rate app in InfiniTime allows you to start and stop the heart rate sensor and displays the current heart rate value. This value is also displayed on the clock face when the HR sensor is running.

See it in video : https://video.codingfield.com/videos/watch/ee1e94e9-f2ae-4ea4-8f26-c16a8cb8e299

InfiniTime also exposes the standard Heart Rate Service over BLE, which allows any application supporting this service to read the heart rate value from the PineTime. Amazfish has added support for the heart rate service for InfiniTime in the last version.

InfiniNav is a great contribution from piggz, the creator of Amazfish. This app is design to work in conjunction with a companion app and a navigation app running on a phone, for example. As he doesn't things halfway, piggz also integrated this functionality in Amazfish and relies on Pure-Maps for the navigation.

Basically, all you have to do is connect your PineTime to Amazfish and start a route in PureMaps. Then you'll be able to receive the navigation instruction (text message, big icon and distance remaining) in the Navigation app in InfiniTime.

See it in video : https://video.codingfield.com/videos/watch/1fd64ff8-5a5b-48d9-b7f8-298df0dc383e

As a remainder, Amazfish is a nice companion app for many smartwatches and activity trackers, PineTime included, that runs on SailfishOS and that have recently been ported to 'mainstream' Linux distributions. A package has already been introduced in Manjaro-ARM.

Improvement on the display of the battery level have been done by Panky-codes : the battery level is filtered so that it doesn't fluctuate from +/- 10% each time the indicator is refreshed.

Finally, we had some fun with Nuxij and pfeerick adding support for Gitpod to the project. Gitpod allows you to create an online workspace (IDE, development environment,...) easily from configuration files included in the project. From Gitpod, you are able to edit the code, build it (and download binary files), create pull-requests,...

0.10.0

3 years ago

I'm very happy to publish this new version of InfiniTime because it contains new features and bugfixes that have been mostly implemented by contributors to the project, not by me !

This version introduces the first 2 games into InfiniTime. The first one is the Paddle game from ZephyLabs, a single player pong game. The second one a 2048 clone from jedmijares.

The time needed to turn the display on when pushing on the button has been improved, and the small glitch that displayed the time it was when the display was shut down has been removed, thanks to IoTPanic.

A first step to the internationalization of the firmware has been taken by AirHamster who added the support for notifications written in Cyrillic.

The docker image (and the associated documentation) has been greatly improved by pfeerick and Nuxij.

Regarding the code quality, okaestne did a nice job by cleaning all the #includes of the project, and fixed some build issues and warnings at the same time.

Finally, the bug that would display an erroneous battery level in the app SystemInfo has been fixed by IoTPanic.

0.9.0

3 years ago

This version is certainly the first version that receives the most feedbacks from users and the most contributions from other developers, and I'm very happy that InfiniTime receives that much attention!

As usual, this new version fixes some bugs and brings new features and improvements.

Two major bugs have been fixed in this release. The first one prevented the bootloader from working correctly after a reset from sleep mode. This would temporarily brick the device, and the only way to revive it was to let the battery drain completely before charging it again. Note that this fix is also present in version 0.8.3.

The driver of the touch panel has also been fixed. This issue has been highlighted by the pong game of ColdBrewCaffin that would freeze InfiniTime. With the help of TT-392, we were able to fix the TWI driver and fix this issue.

The new features, now ! First, the music app have been greatly improved by Avamander. The UI is really amazing, displays a nice disc animation, uses gestures to switch controls from browsing to volume, and also displays the song progression. Avamander also added support for these new features into Gadgetbridge 0.48. Gadgetbridge is a companion app running on Android which provide support for InfiniTime. Note that this version of Gadgetbridge also support firmware upgrade over the air (OTA) for Infinitime!

Next, the notification UI has been completely re-written. The small modal dialog box that could display only 18 characters has been replaced by a shiny new notification app that displays up to 100 characters. Note that a new version of Gadgetbridge is needed to support notifications with more than 18 characters. This version (0.49?) is not yet released.

The BLE connectivity has also been improved, it is now easier to connect/reconnect with a smartphone. InfiniTime now exposes the Battery Information Service and the FindMe profile to BLE host.

Finally, multiple pull-requests that bring improvements to the documentation, code structure and coding guidelines have been merged in this version.

I would like to thank every one who contributed to this release by reporting bugs, by contributing to the code and documentation and simply by providing feedback to me and other developers!