Difference between revisions of "InfiniTime"

From PINE64
Jump to navigation Jump to search
(Created page with "== InfiniTime == InfiniTime (also known as JF's project, FreeRTOS firmware or Pinetime-JF) is an open source (GPLv3) firmware written in C++ and based on FreeRTOS, LVGL and Ni...")
 
Line 27: Line 27:


On a sealed device, the only way to work around this issue is to wait for the battery to drain completely before trying again.
On a sealed device, the only way to work around this issue is to wait for the battery to drain completely before trying again.
This issue can be avoided by ensuring that the display is ON when manually resetting the device (long push on the button).


== Releases ==  
== Releases ==  

Revision as of 08:18, 27 October 2020

InfiniTime

InfiniTime (also known as JF's project, FreeRTOS firmware or Pinetime-JF) is an open source (GPLv3) firmware written in C++ and based on FreeRTOS, LVGL and NimBLE. This firmware (version 0.7.1) is preloaded at the factory since the new batch of PineTime devkits and sealed PineTimes of end of September 2020.

Read this first!

  • PineTime is still considered as a development device. InfiniTime and the bootloader are still in heavy development, and some features might not work as expected.
  • OTA is a critical feature which which is still considered as risky on sealed devices. There is no known way to recover a sealed device from a failed OTA upgrade.
  • There is currently no way to upgrade the bootloader on a sealed device.
  • Do not use a sealed PineTime as a development device, there is a lot of chances that you'll brick it.

Known issues

Warning: Please read this section carefully before upgrading the firmware on your PineTime, especially if you are using a sealed device!

Black screen after a reset in sleep mode

Description

This issue occurs if you are using the original bootloader (from InfiniTime 0.7.1), upgraded from InfiniTime 0.7.1 to 0.8.2 and the watch resets while the display is OFF : the watch is stuck on a black screen and does not respond to touch, button press or BLE.

The reset can be triggered by the watchdog or manually by long pressing the button.

This issue is caused by InfiniTime 0.8.2 that put the external SPI flash memory to sleep before switching the display off and by the bootloader that cannot wake the memory chip up. The bootloader is stuck in an infinite loop.

More info : https://github.com/lupyuen/pinetime-rust-mynewt/issues/24 and https://github.com/JF002/Pinetime/issues/60

Workaround

On a development kit, a simple reset via SWD is needed to unlock the bootloader.

On a sealed device, the only way to work around this issue is to wait for the battery to drain completely before trying again.

This issue can be avoided by ensuring that the display is ON when manually resetting the device (long push on the button).

Releases

Version 0.7.1

This is the version that ships with PineTime devkits and sealed PineTime as of September 2020.

  • Time synchronization over BLE
  • Display brightness setting
  • Notifications over BLE
  • Integration with AmazFish (SailFishOS) and Gadgetbridge (Android)
  • OTA using NRFConnect

Bootloader : https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v4.1.7

Version 0.8.2

  • Music control app
  • Paint app
  • Manual image validation after OTA

Bootloader : https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v5.0.4.

This new version of the bootloader fixes #Black_screen_after_a_reset_in_sleep_mode and enables the watchdog before launching the firmware.