https://wiki.pine64.org/api.php?action=feedcontributions&user=PeterCxy&feedformat=atomPINE64 - User contributions [en]2024-03-29T12:15:19ZUser contributionsMediaWiki 1.37.1https://wiki.pine64.org/index.php?title=Switching_your_PineTime_between_InfiniTime_and_Wasp-os&diff=13191Switching your PineTime between InfiniTime and Wasp-os2022-06-14T19:55:03Z<p>PeterCxy: /* Introduction */ Add a note about the nRF Connect v4.25.x regression that stalls installation.</p>
<hr />
<div>[[File:Flash-reloader-mcuboot.jpg|600px|thumb|right|Flashing <code>reloader-mcuboot.zip</code>]]<br />
[[File:Flash-micropython.jpg|400px|thumb|right|Flashing <code>micropython.zip</code>]]<br />
== Introduction ==<br />
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!<br />
<br />
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 [https://github.com/daniel-thompson/wasp-reloader reloader]. However, instructions you find elsewhere (including [https://www.youtube.com/watch?v=lPasAt1LJmo Daniel Thompsons video]) are somewhat outdated.<br />
<br />
Flashing can be done with any of<br />
* 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])<br />
** 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.<br />
* [https://www.gadgetbridge.org Gadgetbridge] (Android >= 4.4)<br />
* [https://github.com/piggz/harbour-amazfish Amazfish] (SailfishOS and Linux)<br />
* [https://github.com/alexr4535/siglo Siglo] (Linux desktop and Pinephone) (Use the 'Manual OTA File' option)<br />
* [https://github.com/ZephyrLabs/PinetimeFlasher PinetimeFlasher] (Windows)<br />
* ota-dfu-python (Linux CLI) which is included in sources of both Infinitime and Wasp-os<br />
** <code>InfiniTime/bootloader/ota-dfu-python/dfu.py</code><br />
** <code>wasp-os/tools/ota-dfu-python/dfu.py</code><br />
<br />
This guide has been last updated for Infinitime 1.1.0 and Wasp-os 0.4.1<br />
<br />
== InfiniTime => Wasp-os ==<br />
<br />
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].<br />
<br />
* Make sure the watch is running Infinitime and can be found by your companion device (PC, phone, etc).<br />
* First we need to flash the reloader, with the wasp-os bootloader as payload. To do this, flash: <br><code>wasp-os-0.4/build-pinetime/reloader-mcuboot.zip</code><br />
* 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.<br />
* 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.<br />
* Now you can flash micropython with wasp-os: <br><code>wasp-os-0.4/build-pinetime/micropython.zip</code><br />
* Wasp-os should now boot. Enjoy!<br />
<br />
== Wasp-os => InfiniTime ==<br />
[[File:Flash-reloader-infinitime-recovery.jpg|500px|thumb|right|Flashing <code>reloader-infinitime-recovery-0.14.1.zip.zip</code>]]<br />
[[File:Flash-infinitime.jpg|600px|thumb|right|Flashing <code>pinetime-mcuboot-app-dfu-1.1.0.zip.zip</code>]]<br />
<br />
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.<br />
<br />
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].<br />
<br />
* Reboot the watch by holding the button until the pine cone arrow appears.<br />
* Flash the reloader zip: <br><code>reloader-infinitime-recovery-0.14.1.zip</code><br />
* After flashing, the reloader will run (blue smaller pine cone), then it'll boot the InfiniTime bootloader (large pine cone) will run.<br />
* 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.<br />
* You can now flash InfiniTime 1.1.0 (or any other version): <br><code>pinetime-mcuboot-app-dfu-1.1.0.zip</code><br />
* InfiniTime should now boot. Enjoy!<br />
<br />
<br />
[[Category:PineTime]][[Category:Guide]]</div>PeterCxy