Switching your PineTime between InfiniTime and Wasp-os
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
InfiniTime => Wasp-os
All the zips you need can be found on the Wasp-os Releases page, for example in wasp-os-0.4.tar.gz.
- 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
The reloader-factory.zip
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.
Instead, 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 zip 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):
reloader-infinitime-recovery-0.14.1.zip
- InfiniTime should now boot. Enjoy!