NOTE FOR THE USERS OF SEALED PINETIMES FROM PINE64:
After the firmware and bootloader were sent to production, we discovered 2 critical bugs : one in InfiniTime (#60) and one in the bootloader (lupyuen/pinetime-rust-mynewt#24). These bugs could potentially brick (temporarily) your PineTime when it resets after the OTA from the original 0.7.1 version to this version, or when you force a reset with a long push on the button.
If you apply this update on a sealed PineTime and your device is stuck on a black screen, the only known workaround it to wait for the battery to drain completely before trying again.
If you use a development kit, you can just issue a reset using your SWD debugger. Your device should reboot properly.
Warning! Doing a force reset (long-pressing the button) can cause older bootloader to hang, it is not recommended!
These 2 bugs have since then been fixed (in this version 0.8.2 of InfiniTime and in the bootloader v5.0.4 (https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v5.0.4). For now, the only way to upgrade the bootloader is via the SWD interface. There's currently no way to OTA a new version of the bootloader to a sealed PineTime.
I recommend you use version 0.8.3 which prevent the bootloader from being stuck in an infinite loop after a reset.
Sorry for the inconvenience.
This release is the first version officially released under the GPLv3 license and under the new name of the project : InfiniTime.
This version brings new features, more documentation, better battery life and improvements for the developers!
Let's talk about the new features! The biggest one is the Music application (thanks to @piggz for this PR) that allows you to control the music playback on your phone (integrated in Amazfish running on SailfishOS). See this video for a demo about this new app.
Next feature is the Touchmodes : each application can select between 2 touch modes : gestures or polling. Gesture mode is the mode that was previously implemented. In this mode, applications are notified when a gesture is detected (tap, swipe,...). In the new Polling mode, the application is notified as soon as a touchevent is detected. It allows the application to follow your finger moving on the screen to build pain application like InfiniPaint, which is also included in this release.
Another interesting feature is the manual validation of the updated firmware. Previously, the new version of the firmware was automatically validated. When the firmware is validated, the bootloader knows that the firmware is running correctly and does not revert to the previous version. Now, the user has to manually validate the new version of the firmware before the next reset. If the new version does not work correctly, the user can choose to reset the device and let the bootloader revert to the previous version. See this page for more information about the firmware validation process.
The battery life has been improved by switching most of the peripherals off when the display is shut down. I've measured a battery life of 7 days with this version. This is good, but in theory, we can do even better!
The last feature to be announced is the new application menu, that can now display multiple page and more than 6 apps!
The documentation has been greatly improved. Please have a look at the main Readme.md file and all the links it contains. There are a lot of informations about the bootloader, build process, branch management, contributions... Thanks to many contributors who helped me write and check the documentation!
On the development side, annoying #include errors and a lot of warnings have been fixed. InfiniTime can be now built using Docker, which is really helpful when you don't want to install the whole development environment on you computer, and to easily produce binaries, images and DFU files for the releases on Github! Thanks to @FWeissenb for his work on this!
During the RC phase, annoying crashes and freezes have been fixed in InfiniTime (#60) and in the bootloader (lupyuen/pinetime-rust-mynewt#24). The bootloader has been updated in the source tree, but this version of InfiniTime is still compatible with the older version of the bootloader.