<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jvandermey</id>
	<title>PINE64 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jvandermey"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/Jvandermey"/>
	<updated>2026-04-08T10:49:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=InfiniTime&amp;diff=10919</id>
		<title>InfiniTime</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=InfiniTime&amp;diff=10919"/>
		<updated>2021-07-25T21:43:56Z</updated>

		<summary type="html">&lt;p&gt;Jvandermey: Added information for all firmware releases to date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== InfiniTime ==&lt;br /&gt;
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. '''This page contains general information about the project. Actual project documentation and nuances are documented in the repository'''&lt;br /&gt;
&lt;br /&gt;
* GitHub repo : https://github.com/JF002/InfiniTime&lt;br /&gt;
* Official website : https://infinitime.io/&lt;br /&gt;
&lt;br /&gt;
== Read this first! ==&lt;br /&gt;
* InfiniTime and the bootloader are still in heavy development, and some features might not work as expected. Any issues should be reported on GitHub.&lt;br /&gt;
* Do not use a sealed PineTime as a development device, there is a fair amount of chances that you'll brick it with very experimental firmware.&lt;br /&gt;
* OTA is relatively stable, but when you're on an outdated bootloader version it can freeze which will require you to wait for the battery to run out.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
{{warning|1=Please read this section carefully before upgrading the firmware on your PineTime, especially if you are using a sealed device!}}&lt;br /&gt;
=== Black screen after a reset in sleep mode ===&lt;br /&gt;
==== Description ====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The reset can be triggered by the watchdog or manually by long pressing the button. If that doesn't work, wait for the battery to run out, it'll reboot then.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
More info : https://github.com/lupyuen/pinetime-rust-mynewt/issues/24 and https://github.com/JF002/InfiniTime/issues/60&lt;br /&gt;
&lt;br /&gt;
==== Workaround ====&lt;br /&gt;
On a development kit, a simple reset via SWD is needed to unlock the bootloader.&lt;br /&gt;
&lt;br /&gt;
On a sealed device, the only way to work around this issue is to wait for the battery to drain completely before trying again.&lt;br /&gt;
&lt;br /&gt;
This issue can be avoided by ensuring that the display is ON when manually resetting the device (long push on the button).&lt;br /&gt;
&lt;br /&gt;
==== Fixed version ====&lt;br /&gt;
This issues is fixed in [https://github.com/JF002/InfiniTime/releases/tag/0.8.3 InfiniTime 0.8.3]&lt;br /&gt;
&lt;br /&gt;
== Releases == &lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.7.1 Version 0.7.1] ===&lt;br /&gt;
This is the version that ships with PineTime devkits and sealed PineTime as of September 2020.&lt;br /&gt;
* Time synchronization over BLE&lt;br /&gt;
* Display brightness setting&lt;br /&gt;
* Notifications over BLE&lt;br /&gt;
* Integration with AmazFish (SailFishOS) and Gadgetbridge (Android)&lt;br /&gt;
* OTA using NRFConnect&lt;br /&gt;
&lt;br /&gt;
Bootloader : https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v4.1.7&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.8.2 Version 0.8.2] ===&lt;br /&gt;
* Music control app&lt;br /&gt;
* Paint app&lt;br /&gt;
* Manual image validation after OTA&lt;br /&gt;
&lt;br /&gt;
Bootloader : https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v5.0.4.&lt;br /&gt;
&lt;br /&gt;
This new version of the bootloader fixes [[#Black_screen_after_a_reset_in_sleep_mode]] and enables the watchdog before launching the firmware.&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.8.3 Version 0.8.3] ===&lt;br /&gt;
* Fixes the &amp;quot;bootloader stuck after a reset&amp;quot; mentioned in 0.8.2 above&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.9.0 Version 0.9.0] ===&lt;br /&gt;
* Touch panel fixed (no more freezing)&lt;br /&gt;
* Improved music application (possibility to control both volumes and browsing, display the song progression)&lt;br /&gt;
* Notification UI rewritten: can now display up to 100 characters&lt;br /&gt;
* Improved BLE connectivity&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.10.0 Version 0.10.0] ===&lt;br /&gt;
* 2 new games: Pong and 2048&lt;br /&gt;
* Fixed display glitches and improved needed time to turn on the display&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.11.0 Version 0.11.0] ===&lt;br /&gt;
* Heart-rate sensor application:&lt;br /&gt;
  * Displays the current value, and when running, this value is also displayed on the clock face&lt;br /&gt;
  * Value exposed over BLE, meaning other applications can read it (e.g. companion app such as Amazfish)&lt;br /&gt;
* Navigation app: InfiNav - works e.g. with PureMaps on SailfishOS&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.12.0 Version 0.12.0] ===&lt;br /&gt;
* Improved BLE connection&lt;br /&gt;
* OTA updates much more reliable&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.13.0 Version 0.13.0] ===&lt;br /&gt;
* Vibration&lt;br /&gt;
* Call notification: it is possible to accept/ignore/reject a call from the PineTime&lt;br /&gt;
* Music app got nicer icons&lt;br /&gt;
* BLE connectivity improved a bit more&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.14.0 Version 0.14.0 &amp;quot;Green Avocado&amp;quot;] ===&lt;br /&gt;
* LVGL 7&lt;br /&gt;
* Bugfixes to the build process&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.14.1 Version 0.14.1] ===&lt;br /&gt;
* New Recovery firmware&lt;br /&gt;
* MCUBoot based [https://github.com/JF002/pinetime-mcuboot-bootloader/releases/tag/1.0.0 bootloader]&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/0.15.0 Version 0.15.0 &amp;quot;Yellow Banana&amp;quot;] ===&lt;br /&gt;
* Analog watch face&lt;br /&gt;
* Support for switching watch faces&lt;br /&gt;
* Stopwatch app&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/1.0.0 Version 1.0.0 &amp;quot;Red Cherry&amp;quot;] ===&lt;br /&gt;
* Motion sensor integration&lt;br /&gt;
* Step countin&lt;br /&gt;
* UI redesign&lt;br /&gt;
* Quick action menu:&lt;br /&gt;
  * Brightness setting&lt;br /&gt;
  * Do not disturb mode (disable vibrations on notifications)&lt;br /&gt;
  * Flash light application&lt;br /&gt;
* Settings menu allowing configuration of:&lt;br /&gt;
  * Display timeout&lt;br /&gt;
  * Wakeup source (button only, single tap, double tap and wrist rotation)&lt;br /&gt;
  * Time format (12/24H)&lt;br /&gt;
  * Watchface&lt;br /&gt;
* New navigation flow :&lt;br /&gt;
* User settings stored in flash memory and restored on reset&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/1.1.0 Version 1.1.0 &amp;quot;Dragon Fruit&amp;quot;] ===&lt;br /&gt;
* Steps application&lt;br /&gt;
* Timer application&lt;br /&gt;
* UI improvements&lt;br /&gt;
* Clang-format and clang-tidy config files&lt;br /&gt;
* Bugfixes&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/1.2.0 Version 1.2.0 &amp;quot;Blue-purple Elderberry&amp;quot;] ===&lt;br /&gt;
* Added support for alternate accelerometer part BMA425&lt;br /&gt;
* Metronome app&lt;br /&gt;
* Memory usage optimizations&lt;br /&gt;
* Bugfixes, minor improvements and code cleanup&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/JF002/InfiniTime/releases/tag/1.3.0 Version 1.3.0 &amp;quot;Purple Fig&amp;quot;] ===&lt;br /&gt;
* LittelFS integration&lt;br /&gt;
* New watchface, PineTimeStyle&lt;br /&gt;
* Battery level notification on BLE (supported by Gadgetbridge)&lt;br /&gt;
* Improved stopwatch app, Paddle game and call notifications&lt;br /&gt;
* Firmware update app is now more foolproof&lt;br /&gt;
* The SPI flash is put in sleep mode when the watch goes to sleep (only if the new bootloader is detected)&lt;br /&gt;
* UI improvements (better 'tick' handling in LVGL, more consistent refresh rate)&lt;br /&gt;
* Various improvements and code cleaning&lt;br /&gt;
&lt;br /&gt;
[[Category:PineTime]]&lt;/div&gt;</summary>
		<author><name>Jvandermey</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineTime_Hardware_Wishlist&amp;diff=10917</id>
		<title>PineTime Hardware Wishlist</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineTime_Hardware_Wishlist&amp;diff=10917"/>
		<updated>2021-07-25T04:56:53Z</updated>

		<summary type="html">&lt;p&gt;Jvandermey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains a list of things people wish PineTime did differently&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* Long pressing the button should power-cycle the watch without any software being involved&lt;br /&gt;
* Other display tech could be explored. [//en.Wikipedia.org/wiki/Transflective_liquid-crystal_display A transflective LCD] would probably be a nice option. Or potentially OLED?&lt;br /&gt;
* Touchscreen should possibly have a configurable sensitivity level for both glove-wearing and droplet-resistance. Preferably it should still be a capacitive one, a resistive touchscreen would have too many trade-offs.&lt;br /&gt;
* A slightly bigger 256×256 pixel graphics display size is preferable for its binary alignment, affording some low-level simplicity – it has the property that its X and Y coordinates are each addressable with a single byte, with no out-of-bounds; its total number of pixels is 65536 (another power of 2), and each pixel is addressable with exactly 2 bytes, with perfect efficiency. The [http://Pelulamu.net/ibniz IBNIZ (Ideally Bare Numeric Impression giZmo) virtual machine], designed for fun minimalist demoscene graphics, has chosen 256×256 for its virtual display, and makes use of these simplicity advantages. If PineTime also chose 256×256 then it would be a target platform for unclipped IBNIZ demoscene programmes, which would be really fun to play around with on one's wrist!&lt;br /&gt;
* A full 16-bit redraw on the display takes 120ms at the very least, which is 8Hz (although modest optimization is possible by adopting 12-bit color). A smooth scrolling/usage/animation experience would be 30Hz minimum, preferably 60. Display redraw is currently bottlenecked by the nRF52832 maximum SPI clock (8MHz).&lt;br /&gt;
* Some sort of scroll wheel would be nice for convenience.&lt;br /&gt;
* Changed GPIO assignment so more functionality is available (i.e. NFC and VSYNC)&lt;br /&gt;
* Wireless charging, or Qi Charging capability&lt;br /&gt;
* An external RTC circuit saving the current time to allow the main MCU go to deep-sleep.&lt;br /&gt;
* nRF5840 update: QSPI, CryptoCell + Secure Key Storage, has more RAM, a coprocessor and the possibility to expose USB through power pins&lt;br /&gt;
* Preferably a pre-certified MCU module with a ceramic antenna&lt;br /&gt;
* Version without sensors but maybe bigger battery&lt;br /&gt;
* A couple of pins on the programmer connector to allow UART while developing (currently there is a TX test point on PCB). (Note: There's ARM SemiHosting and Segger RTT)&lt;br /&gt;
* Connect the pin of LCD controller that allows RD/WR from it in order to save RAM on the MCU. (The MOSI pin for the SPI is already connected to the nor flash that shares the same pins, pin number is P0.04)&lt;br /&gt;
* LCD must be centered on case. Currently is not and watchfaces seems different when clock is put on the other wrist.&lt;br /&gt;
* A NFC antenna around the case, connected to the NFC pins.&lt;br /&gt;
* Used sensors should be NDA-free and preferably also blob-free. For example the BMA421 accelerometer doesn't have a datasheet (it seems private to some hardware integrators): a more open one would be much easier to develop for. Special attention should be paid to advanced features, such as step counting integration or flick detection.&lt;br /&gt;
* PineTime SoC could support USB or have a FTDI chip with the relevant pins exposed. It could allow flashing a sealed device, just like Arduinos work. The same USB-C could also be used for charging. &lt;br /&gt;
* A bigger pulldown resistor for the power button, because 100k still leaks a noticeable amount of power when the button is always on.&lt;br /&gt;
* Ceramic Bluetooth antenna for better signal reception&lt;br /&gt;
* Ultra low quiescent current PMIC for better deep sleep. Better shipping/storage/turned off mode&lt;br /&gt;
* Separate RTC chip to maintain time setting through MCU reset&lt;br /&gt;
* Battery charger IC with built-in &amp;quot;fuel gauge&amp;quot; functionality for better estimation of battery capacity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineTime]]&lt;/div&gt;</summary>
		<author><name>Jvandermey</name></author>
	</entry>
</feed>