Difference between revisions of "Switching your PineTime between InfiniTime and Wasp-os"

From PINE64
Jump to navigation Jump to search
(→‎Introduction: Add a note about the nRF Connect v4.25.x regression that stalls installation.)
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[File:Flash-reloader-mcuboot.jpg|600px|thumb|right|Flashing <code>reloader-mcuboot.zip</code>]]
[[File:Flash-micropython.jpg|400px|thumb|right|Flashing <code>micropython.zip</code>]]
== Introduction ==
== Introduction ==
Both Infinitime and Wasp-os are very cool OS'es for the [[PineTime]] and many people will want to try both. This is possible, even with a sealed device!
Both Infinitime and Wasp-os are very cool OS'es for the [[PineTime]] and many people will want to try both. This is possible, even with a sealed device!
Line 6: Line 8:
Flashing can be done with any of
Flashing can be done with any of
* nRF Connect for Mobile ([https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp Android], [https://apps.apple.com/us/app/nrf-connect-bluetooth-app/id1054362403 iOS])
* nRF Connect for Mobile ([https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp Android], [https://apps.apple.com/us/app/nrf-connect-bluetooth-app/id1054362403 iOS])
* [https://www.gadgetbridge.org GadgetBridge] (Android >= 4.4)
** Note: nRF Connect for Android has a regression in v4.25.x that may stall the main wasp-os installation (<code>micropython.zip</code>); if affected, please use v4.24.x instead.
* [https://www.gadgetbridge.org Gadgetbridge] (Android >= 4.4)
* [https://github.com/piggz/harbour-amazfish Amazfish] (SailfishOS and Linux)
* [https://github.com/piggz/harbour-amazfish Amazfish] (SailfishOS and Linux)
* [https://github.com/alexr4535/siglo Siglo] (Linux desktop and Pinephone) (Use the 'Manual OTA File' option)
* [https://github.com/alexr4535/siglo Siglo] (Linux desktop and Pinephone) (Use the 'Manual OTA File' option)
Line 14: Line 17:
** <code>wasp-os/tools/ota-dfu-python/dfu.py</code>
** <code>wasp-os/tools/ota-dfu-python/dfu.py</code>


This guide has been last updated for Infinitime 1.1.0 and Wasp-os 0.4
This guide has been last updated for Infinitime 1.1.0 and Wasp-os 0.4.1


== InfiniTime => Wasp-os ==
== InfiniTime => Wasp-os ==


All the zips you need can be found on the [https://github.com/daniel-thompson/wasp-os/releases/ Wasp-os Releases] page, for example in [https://github.com/daniel-thompson/wasp-os/releases/download/v0.4/wasp-os-0.4.tar.gz wasp-os-0.4.tar.gz].
All the zips you need can be found from the [https://wasp-os.readthedocs.io/en/latest/install.html#binary-downloads wasp-os installation guide].


* Make sure the watch is running Infinitime and can be found by your companion device (PC, phone, etc).
* Make sure the watch is running Infinitime and can be found by your companion device (PC, phone, etc).
Line 28: Line 31:


== Wasp-os => InfiniTime ==
== Wasp-os => InfiniTime ==
[[File:Flash-reloader-infinitime-recovery.jpg|500px|thumb|right|Flashing <code>reloader-infinitime-recovery-0.14.1.zip.zip</code>]]
[[File:Flash-infinitime.jpg|600px|thumb|right|Flashing <code>pinetime-mcuboot-app-dfu-1.1.0.zip.zip</code>]]


The <code>reloader-factory.zip</code> are unfortunately broken in waps-os 0.4, and very outdated in older releases. I do not recommend flashing these. Older InfiniTime versions have flaky BLE which makes upgrading from there very unreliable. Trying to create new zips containing any recent version of InfiniTime also fails, because it has grown too big to fit inaide a zip together with the reloader and bootloader.
The <code>reloader-factory.zip</code> was broken in the original wasp-os 0.4 but was fixed in wasp-os 0.4.1. However the Infinitime binaries are outdated the 0.4 release and I do not recommend flashing these. Older InfiniTime versions have flaky BLE which makes upgrading from there very unreliable.


Instead, I made my own containing just the [https://github.com/JF002/InfiniTime/releases/tag/0.14.1 InfiniTime 0.14.1] [https://github.com/JF002/pinetime-mcuboot-bootloader/blob/develop/README.md#recovery-firmware recovery firmware]. This allows you to flash any future release of InfiniTime without having to find a new reloader zip. [https://github.com/Peetz0r/wasp-reloader/releases/tag/infinitime-0.14.1-recovery Get the zip here].
You can get newer binaries from the wasp-os projects CI system (see the [https://wasp-os.readthedocs.io/en/latest/install.html#binary-downloads wasp-os installation guide]) or alternatively, I made my own containing just the [https://github.com/JF002/InfiniTime/releases/tag/0.14.1 InfiniTime 0.14.1] [https://github.com/JF002/pinetime-mcuboot-bootloader/blob/develop/README.md#recovery-firmware recovery firmware]. This allows you to flash any future release of InfiniTime without having to find a new reloader zip. Get the [https://github.com/Peetz0r/wasp-reloader/releases/tag/infinitime-0.14.1-recovery reloader zip here] and the [https://github.com/JF002/InfiniTime/releases latest Infinitime here].


* Reboot the watch by holding the button until the pine cone arrow appears.
* Reboot the watch by holding the button until the pine cone arrow appears.
* Flash the reloader zip: <br><code>reloader-infinitime-recovery-0.14.1.zip</code>
* Flash the reloader zip: <br><code>reloader-infinitime-recovery-0.14.1.zip</code>
* After flashing, the reloader will run (blue smaller pine cone), then it'll boot the InfiniTime bootloader (large pine cone) will run.
* After flashing, the reloader will run (blue smaller pine cone), then it'll boot the InfiniTime bootloader (large pine cone) will run.
* Boot the watch into recovery mode by holding the button until the pine cone turns red. It'll boot again (large pine cone will turn green) and then the InfiniTime loo will appear.
* Boot the watch into recovery mode by holding the button until the pine cone turns red. It'll boot again (large pine cone will turn green) and then the InfiniTime logo will appear.
* You can now flash InfiniTime 1.1.0 (or any other version): <br><code>reloader-infinitime-recovery-0.14.1.zip</code>
* You can now flash InfiniTime 1.1.0 (or any other version): <br><code>pinetime-mcuboot-app-dfu-1.1.0.zip</code>
* InfiniTime should now boot. Enjoy!
* InfiniTime should now boot. Enjoy!




[[Category:PineTime]]
[[Category:PineTime]][[Category:Guide]]

Revision as of 19:55, 14 June 2022

Flashing reloader-mcuboot.zip
Flashing micropython.zip

Introduction

Both Infinitime and Wasp-os are very cool OS'es for the PineTime and many people will want to try both. This is possible, even with a sealed device!

Both devices use the same Nordic (legacy) DFU protocol for updating firmware over the air. But the BLE stack and the bootloaders for both are different. That's why we need to use the reloader. However, instructions you find elsewhere (including Daniel Thompsons video) are somewhat outdated.

Flashing can be done with any of

  • nRF Connect for Mobile (Android, iOS)
    • Note: nRF Connect for Android has a regression in v4.25.x that may stall the main wasp-os installation (micropython.zip); if affected, please use v4.24.x instead.
  • Gadgetbridge (Android >= 4.4)
  • Amazfish (SailfishOS and Linux)
  • Siglo (Linux desktop and Pinephone) (Use the 'Manual OTA File' option)
  • PinetimeFlasher (Windows)
  • ota-dfu-python (Linux CLI) which is included in sources of both Infinitime and Wasp-os
    • InfiniTime/bootloader/ota-dfu-python/dfu.py
    • wasp-os/tools/ota-dfu-python/dfu.py

This guide has been last updated for Infinitime 1.1.0 and Wasp-os 0.4.1

InfiniTime => Wasp-os

All the zips you need can be found from the wasp-os installation guide.

  • Make sure the watch is running Infinitime and can be found by your companion device (PC, phone, etc).
  • First we need to flash the reloader, with the wasp-os bootloader as payload. To do this, flash:
    wasp-os-0.4/build-pinetime/reloader-mcuboot.zip
  • After flashing, it will boot using the Infinitime bootloader (green large pine cone), then it'll hang for a few seconds, then it'll show the reloader animation (blue smaller pine cone), and then it'll boot the wasp-os bootloader.
  • Make sure the watch is on the screen with the pine cone and arrow. If it is in a bootloop instead, then reboot the watch by holding the button until the arrow appears.
  • Now you can flash micropython with wasp-os:
    wasp-os-0.4/build-pinetime/micropython.zip
  • Wasp-os should now boot. Enjoy!

Wasp-os => InfiniTime

Flashing reloader-infinitime-recovery-0.14.1.zip.zip
Flashing pinetime-mcuboot-app-dfu-1.1.0.zip.zip

The reloader-factory.zip was broken in the original wasp-os 0.4 but was fixed in wasp-os 0.4.1. However the Infinitime binaries are outdated the 0.4 release and I do not recommend flashing these. Older InfiniTime versions have flaky BLE which makes upgrading from there very unreliable.

You can get newer binaries from the wasp-os projects CI system (see the wasp-os installation guide) or alternatively, I made my own containing just the InfiniTime 0.14.1 recovery firmware. This allows you to flash any future release of InfiniTime without having to find a new reloader zip. Get the reloader zip here and the latest Infinitime here.

  • Reboot the watch by holding the button until the pine cone arrow appears.
  • Flash the reloader zip:
    reloader-infinitime-recovery-0.14.1.zip
  • After flashing, the reloader will run (blue smaller pine cone), then it'll boot the InfiniTime bootloader (large pine cone) will run.
  • Boot the watch into recovery mode by holding the button until the pine cone turns red. It'll boot again (large pine cone will turn green) and then the InfiniTime logo will appear.
  • You can now flash InfiniTime 1.1.0 (or any other version):
    pinetime-mcuboot-app-dfu-1.1.0.zip
  • InfiniTime should now boot. Enjoy!