Closed GameTec-live closed 1 year ago
Hey!
dont rly know what the oldest supported is, but will find out... 1.0 or below def dont work XD
1.11.0 fosdem - working 1.11.0 - working 1.10.0 - working 1.9.0 - error sending firmware 1.8.0 - working (2nd attempt) 1.7.1 - working 1.7.0 - working 1.6.0 - flashed, failng to read/load data so 1.6.0 and below is the deathpoint...
Wow, thanks a lot for this work! I'll add a warning for 1.6 and below later this week.
just reflashed my devkit and then went from 1.11 down... Adding a warning would be great, yes... Also: i dont think adding waspos support wouldnt be too difficult? You could flash the "reloader" like everything else, then just go and search for a new device (which then prob is the bootlaoder, maybe add a confirmation?) and then flash the waspos itself / resources...
Wait, do you mean just adding ability to OTA upgrade from InfiniTime to WaspOS, or proper integration with WaspOS on a similar level as it is now for InfiniTime?
Speaking of just flashing from InfiniTime to WaspOS, WatchMate uses InfiniTime OTA upgrade procedure, so it really depends on if InfiniTime allows to receive other firmwares there. If loading WaspOS firmware from zip file doesn't work in WatchMate, then it's probably not supported or prevented by InfiniTime, and there's nothing a companion app can do here.
For a proper WaspOS integration, I can't find it on WaspOS docs, but I assume it is very different from InfiniTime in terms of BLE API (because why wouldn't it be if it doesn't explicitly try to be compatible, InfiniTime defines quite a few custom BLE characteristics, a very specific OTA upgrade protocol, slightly modified Adafruit BLE file system protocol for external resources, etc). And from the BLE API point of view, there's no really much difference whether it's a different firmware for PineTime or a completely different smart-watch. But if I'm wrong here, and WaspOS does try to be compatible with InfiniTime BLE API, then it might be not difficult indeed.
My preliminary idea is that for supporting multiple smart-watches / PineTime firmwares, I'd first need to define a more abstract smart-watch API, then implement multiple "backends" for it (InfiniTime, WaspOS, AsteroidOS, others), then map it to the UI. Designing this abstract API could be tricky to do well.
waspos is compatible with gadgetbridge etc, so ig the api is infinitime copatible (ish)? And waspos installation, you just flash the waspos relaoder like any other update and then you connect to the bluetooth thingy of the reloader and flash the main os like every other update too?
Ok, I should've read more about the reloader after you've mentioned it for the first time. It indeed might turn out easier than I imagined. I assume you should be able to flash it with WatchMate from manually selected zip archive, but then WatchMate wouldn't connect to it, is that right? I'd need to check if it follows InfiniTime OTA upgrade procedure for flashing wasp-os. If yes, then just disabling filtering devices by "InfiniTime" name might already allow to do that. But even if so, before releasing that I'd still implement some sort of more abstract wrapper API with multiple devices in mind, so that at least it would report device's capabilities, and the app wouldn't try to read unavailable data or display the UI for unsupported features. But this could be a good starting point for expanding to more devices/firmwares and should not be too complicated.
About the similarity of WaspOS and InfiniTime BLE API, GadgetBridge isn't really an indication because it has a similar architecture to what I'm describing and already supports huge list of devices with very different BLE APIs
ah ok... thx again for makeing this app, its rly useful ( and the only app that can flash resources i managed to get to work) <3
Just added warnings when trying to flash firmware older than 1.7 or mismatching version of external resources. Thanks again for your help with firmware versions testing. Probably I'll make another patch release with these changes and metadata update later today
kk
A little note here, it's a bit hard to make a new release on Flathub right now.
I used some unreleased features of the GUI library Relm4, and normally I could just depend on the unreleased version from git, but due to some issue in the build stack, it's temporarily unavailable. I could temporarily remove those changes, and use stable Relm4. But I hope this isn't pressing, so I can just wait until either the new alpha Relm4 release comes out, or the issue is fixed (whichever happens first).
A little note here, it's a bit hard to make a new release on Flathub right now.
I used some unreleased features of the GUI library Relm4, and normally I could just depend on the unreleased version from git, but due to some issue in the build stack, it's temporarily unavailable. I could temporarily remove those changes, and use stable Relm4. But I hope this isn't pressing, so I can just wait until either the new alpha Relm4 release comes out, or the issue is fixed (whichever happens first).
dont worry, its a nice to have...
1.) Thanks for this tool, its awsome 2.) maybe "prevent" / add a warning or improve compatability when flashing version 1.0 and below. When flashing 1.0 or below and after a reboot watchmate doesnt know what to do and just fails to load data. (i have a devkit, so i can just reflash) 3.) what about adding support for "3rd party" firmwares like waspos?