Skip to content

Releases: InfiniTimeOrg/InfiniTime

Bug fixes and information screen

16 Jun 19:19
Compare
Choose a tag to compare
Pre-release

This release contains mostly bugfixes:

  • Fix a bug that prevent the wake up of the screen once it has been automatically switched off;
  • Fix include path that were dependant of my own FS;
  • Fix build errors when CMAKE_BUILD_TYPE is not defined.

The informations screen has also been improved to add more information (BLE MAC, uptime, build date/time,...).

Bootloader, OTA, DFU

07 Jun 12:45
Compare
Choose a tag to compare
Bootloader, OTA, DFU Pre-release
Pre-release

This release brings a very important feature for the Pinetime project : firmware update via BLE ! This is the result of the combined work of @lupyuen and myself, with the help of the whole #Pinetime community !

For this to happen, we had to build a firmware that integrates MCUBoot, agree on a memory map for the internal and external flash memories and implement the whole OTA procedure (upload data via BLE, store it on the SPI flash memory, integrate with MCUBoot,...).

Note that the current status of OTA is still considered experimental. Do not rely on it to safely update your Pinetime for now !

The documentation about OTA and the bootloader is located into the folder bootloader of the source code.

This release contains 3 binaries:

  • pinetime-app : an autonomous version of the application (does not work with MCUBoot). It's easier and faster to use this one if you're working on and debugging the code;
  • pinetime-mcuboot-app : this is the binary you want to use with MCUBoot
  • pinetime-graphics : a simple app that writes the bootloader graphic assets into the SPI flash memory.

This release also provide 2 files to work with the bootloader:

  • pinetime-mcuboot-app.img is the file you must program to address 0x8000 of the internal flash memory
  • pinetime-app-dfu.zip is the file you need to test the OTA procedure (upload via BLE).

Memory usage of pinetime-app:

text	   data	    bss	    dec	    hex	filename
250828	    772	  41976	 293576	  47ac8	pinetime-app.out

NimBLE & Amazfish

17 May 08:41
Compare
Choose a tag to compare
NimBLE & Amazfish Pre-release
Pre-release

This version brings 2 major improvements:

  • The integration of NimBLE open source BLE stack instead of closed source Nordic Softdevice.
  • Pinetime-JF is now supported by Amazfish.

The integration of NimBLE was a lot of time, but it's totally worth it because I want this project to be as open source as possible. I also want to build OTA update via BLE on MCUBoot bootloader, and using another BLE stack than the NRF Softdevice was needed for this.

I would like to thank Adam for his work on Amazfish, a companion app for many smartwatches running on SailfishOS (which runs on the Pinephone !). He contributed to the code of Pinetime-JF to make the integration into Amazfish possible. Amazfish supports the connection to the pinetime via BLE, time synchronization and notifications. See this video for a live demo!

This version also brings some bugfixes

  • Update to LittleVGL to fix a memory leak issue on the Clock screen.
  • Improve the SPI driver to prevent race conditions on the SPI port.

Memory usage:

text	   data	    bss	    dec	    hex	filename
245840	    772	  41328	 287940	  464c4	pinetime-app.out

BLE notifications

05 Apr 18:10
Compare
Choose a tag to compare
BLE notifications Pre-release
Pre-release

There are two main features that have been added in this release.

This firmware now supports BLE notifications : it can receive notification from a companion app and display them on the screen. As I couldn't find any 'reference' application that could send BLE notification using ANS (Alert Service Notification), I've build a fork of gobbledegook, it's available here

The second nice feature are the icons that display the battery level and BLE connection state. These icons are provided by @arteeh. Here is his repo

Here is a complete changelog:

  • Add Brightness app : configure the brightness level (low, medium, high).
  • Add Sysinfo app : display runtime info about the firmware : date, time, version, battery level,...
  • Display ble connection state and battery level with icon (thanks to @arteeh : https://gitlab.com/arteeh/pinetimeos)
  • Add support for BLE notification using companion app (https://github.com/JF002/gobbledegook)
  • BLE connection should be now a bit easier

Memory usage:

text	   data	    bss	    dec	    hex	filename
174712	   1280	  27160	 203152	  31990	pinetime-app.out

Fix first boot after flashing the firmware

06 Mar 21:02
Compare
Choose a tag to compare

This bugfix release fixes the first boot after flashing the firmware. In previous releases, multiple hardware resets from the debugger were needed before the firmware was able to run properly.

This release should fix this bug and the allow the firmware to run directly after the programming.

Integration of lvgl

03 Mar 19:08
Compare
Choose a tag to compare
Integration of lvgl Pre-release
Pre-release

The most visible changes of the release are the integration of LittleVGL and the change of default font.

LittleVGL, an open-source embedded GUI library, comes with a lot of functionalities and widgets that’ll allow more rich and interactive user-interfaces.

The user-interface now provides a basic user interaction : touch any part of the screen on the watchface to display a menu of applications. Tap on an app to open it, and use the button to go back. There are 5 apps for now :

  • The watchface
  • A spinning meter (that could be used in a chrono app)
  • An analog gauge (that could be used as an analog watchface)
  • A message box that displays the version of the firmware
  • A simple Hello world application with a display that counts the number of time that a button has been pressed.
    the digital watchface

Except the watchface, these apps are demo showing the possibilities that are already implemented in the firmware. In the future, actual apps could be designed.

This release also brings another new feature : the watchdog is enabled. The watchdog will automatically reboot the device if the firmware crashes or freezes. The firmware can also be manually reset by pressing the button for a long time (5-10 seconds).

Finally, a bug in the time synchronization has been fixed (#21) and the correct time should be displayed after the time synchronization is finished.

Memory usage:

text	   data	    bss	    dec	    hex	filename
162316	   1276	  26708	 190300	  2e75c	pinetime-app.out

V0.2.2 - Powered by the community

31 Jan 19:33
Compare
Choose a tag to compare
Pre-release

This version brings the following new features:

  • The performances of the SPI drivers have been greatly improved by using DMA and IRQ. It means that the refresh of the screen is now a lot faster than before
  • Support for OpenOCD in CMake scripts (thanks to @luben93)
  • The minimum version of CMake has been set to 3.10 to be compatible with more dev environments (thanks to @danielkucera)

This is the first version that contains contributions from the community. I appreciate them!

This version also fixes the clock drift : before, the pinetime clock would drift for more than 30 minutes a day. Now, the drifting is reduced ... 0 minute a day!

I've also measured the battery life : my pinetime dev kit ran for more than 7 days on battery. Not bad knowing that I cannot measure the current drawn by the pinetime!

Memory usage:

   text	   data	    bss	    dec	    hex	filename
 132640	    988	  27860	 161488	  276d0	pinetime-app.out

Translation :

  • FLASH : 132640 / 524288 Bytes (25%)
  • RAM : 27860 + 988 = 28848 / 65536 Bytes (44%)

Version 0.2.0

18 Jan 14:03
Compare
Choose a tag to compare
Version 0.2.0 Pre-release
Pre-release

This version provides many improvements since version 0.1.0 :

  • The date and time should be correctly processed (Monday 23:59 + 1 minute => Tuesday 00:00).
  • BLE disconnect is now managed, and the display is updated accordingly.
  • Support for Black Magic Probe (and other programmer/debugger using GDB client) has been added in CMake targets.
  • Battery life should be improved by disabling the SPI and I²C peripherals during sleep.
  • The version of the firmware is displayed on the bottom of the screen.

Some bugs have also been fixed:

  • Fixed a stack overflow when waking-up, which would make the soft crash after ~7 wake-ups.
  • Fix an error that would prevent building the project if the file nrf_common.ld was not in a subdirectory of the project.
  • Improve the time tracking process so that the soft keep track of the time even when it's sleeping for more than 4 hours.

This release also provides a "-full" binary that contains the pinetime application and the Nordic Semiconductor SoftDevice needed for the BLE stack.

Early development stage release

05 Jan 15:38
Compare
Choose a tag to compare
Pre-release

This is the first release of this project. As the project is in early development phase, there are very few functionalities and probably a lot of bugs !

Implemented functionalities:

  • Display the date/time, BLE connection status and battery level on screen
  • The button allows to switch the screen on/off, and put the device to sleep
  • BLE advertising
  • BLE connection and bonding
  • Fetch the time if a CTS (Current Time Service) server is found on the device connecting to the Pinetime.
  • Basic touch functions : wakes up the device when it's sleeping, and draw squares on the screen when it's running

NOTE : This firmware needs the BLE softdevice (S132) to work. You must program it in the MCU flash memory before programming this firmware.

Feel free to test it, report bugs, suggest next features to be implemented and to submit pull requests!