Switching your PineTime between InfiniTime and Wasp-os

From PINE64
Revision as of 09:01, 9 September 2021 by Danielt (talk | contribs)
Jump to navigation Jump to search
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)
  • 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 loo 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!