-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Support for Mobvoi TicWatch Pro (catfish) #11
Comments
Thanks for this! @C9Glax Can you maybe also get the following from your watch?
You'll probably need root to get the I should add that supporting the Ticwatch Pro might be a challenge as we don't have any supported watch based on Android Pie. |
Yup, I used Magisk, which hopefully doesn't interfere with things... |
Has any further progress been made on this ? |
Not specifically for this watch but in general we are working on getting the Android Pie base working with AsteroidOS. The watch that is currently being used for testing is a Fossil Gen 4 ( However if your watch still runs on an Android Oreo base then a port should be straight forward. The things that are needed for that is a dump of the boot, system, vendor and modem partition. I did find a dump of an Oreo ROM but it's missing the vendor and modem partition so using this would cause a reboot/crash. |
I believe mine is on Android Pie, but I'm not 100% sure how to check. Never mind, it can't be flashed back to Oreo apparently. |
Took me a while to get around to this again, but I have build an image for the Ticwatch Pro: https://www.dropbox.com/sh/z63roaj1l44wmo8/AAAJpIAypuXJFKsIMc1_Ttv9a?dl=0 Make sure you only use a temporary install for the moment, the general instructions suffice: https://asteroidos.org/install/sturgeon/ Things to test:
|
Very cool, as soon as I get the watch charged I will try and flash your image. |
- Does it boot? Yes! Other than that very fast and snappy 👍🏼 |
That's amazing!! Also can you post a picture? I'd love to see AsteroidOS in action on the Ticwatch Pro! |
ah, that explains it
It's crossed out for me, any other sensors you can think of? So no sadly it's not the LCD, but that is a whole another issue and it gets easily broken even on the original wear os if you uninstall some bloatware |
Thanks! Also, thanks for mentioning what affects the LCD mode. This confirms that some very specific vendor implementation is used. Meaning that we will need to reverse engineere the method, or analyze the kernel code for some more info. |
According to this Reddit post:
The package here is: com.mobvoi.wear.health.aw Then mentioned in the spreadsheet here Essential mode: com.mobvoi.wear.mcuservice.aw And here also mentions mcuservice as being the main driver for the lcd to turn on. |
Should also add that the bluetooth is not functioning either. If you have a different experience @C9Glax please clarify. For the usb, I also cannot change to other modes. They are available, but switching between them does not seem to do anything (e.g. The top right button seems to be functioning, but there is no action associated with it, but the lower one does not respond at all. Going back and forth between the OS works perfectly, so if anyone else wants to try, feel free (make sure you install as dual boot). |
You are correct Bluetooth does not work for this first build, I need to patch the kernel and probably do some other things to get that working. Can you clarify on the top right button? This is the power button right? So it should only wake and sleep the display. edit: When it comes to sensors, a dedicated daemon is used called: |
On the original OS, it serves as the main menu button and assistance on long press, while the bottom one is programmable and power menu on long press. At boot, indeed it's the power button, but wear os seems to override this. For asteroidOS, what functionalities can be added to the physical buttons?
Which link, same as the old one? Can you make a new comment when you upload an update? We don't get notifications on edits. |
At the moment the other hardware buttons don't do anything
Yes the same link: https://www.dropbox.com/sh/z63roaj1l44wmo8/AAAJpIAypuXJFKsIMc1_Ttv9a?dl=0 |
Hell yea!
YES!
|
Any initial thoughts on how difficult it would be to get the drivers to work? |
BluetoothWhile I didn't take a much greater look, recently other watches have gained support for Bluetooth. Which is beneficial here too, because we can use the same approach (AsteroidOS/meta-ray-hybris#8 and AsteroidOS/meta-skipjack-hybris#10). It basically involves moving binaries and libraries from a (Reason for keeping the It does look like the appropriate daemons for Bluetooth are available in the Pie based dump that I currently have. SensorsNeeds work. Basically same as above, but this platform uses Here's an image of how I think the sensors are implemented for this watch: LCDNeed to reverse engineer it some more, but looking at the The futureThe most useful feature on smartwatches is in my opinion Bluetooth, so this will probably the thing I work one first. Then followed by sensors. Oh, forgot to mention, the source code currently lives at https://github.com/MagneFire/meta-catfish-hybris. I'll attempt to upstream it soonish 😉 |
A short update on this. I've created a new image here: https://www.dropbox.com/sh/c5jpmwwb8oyhmpg/AABmb9OhpP7qqFUoYsbyXIBwa?dl=0 It's mostly for testing, functionality should be similar to the previous image, but I've added some work in progress things for Bluetooth and sensors. At this stage I'm just wondering if the journal log (
So in short, expect only the updates that were recently upstreamed but don't expect Bluetooth or sensors to work (Would be really awesome though 😆 ). Backup all partitionsHere are some short instructions on how to backup all partitions on your watch. Boot your watch into fastboot mode. Then boot the fastboot image using:
Next up, wait for the adb device to become available on your computer and pull the entire filesystem to your PC:
It can take a while to backup the entire filesystem but after that you are done 😄
Use this script https://gist.github.com/MagneFire/f0bbd8f862c7f5c72840922e2add0461 to extract the individual partitions. |
Hey, while I am a bit... slow... today (might be the time) and flashed the image instead of temporarily loading it; I do have some results
As for other sensors:
It is registering the double-tap just fine but not waking up Overall
But thank you for keeping working on this! |
Thanks for the detailed report 😄 Also thanks for reporting tap-to-wake not working. Did this work in the first build (assuming not)? That log snippet should also be enough for me to devise a fix. With regards to I've uploaded a new |
Of course I keep testing! It was after all me who wanted support for this watch 👍🏼 Bluetooth
We are making progress! Other sensorsTap to wake
I sadly do not remember 100%, but I think it did? Misc The battery-status in the pull-down menu (Quicksettings) now reads "undefined" (Was working on the last image) Also interestingly enough during boot I get the notification to mount "LEO-BX9" as MTP device. |
Thanks for testing this quickly! Bluetooth: these errors are new to me. Will have to debug this further. Tap-to-wake: Next image should hopefully fix this (will mention when it's ready) Sensors: You didn't mention anything related to that? Battery status undefined: It's a known issue. You can fix this by manually running the command: opkg configure. We are currently working towards a 2.0 release. A fix for this specific issue will be merged after the release as the fix is unstable for one specific watch. Device name: LEO-BX9 is an artifact from the Android base we use (sawfish/sawshark is a Huawei Watch 2 that uses that code naming scheme). Will probably fix later, but it's a very low priority issue imo. MTP: Didn't test recently, might be broken for other watches too. For reference, can you also provide a full journal log? |
Uploaded a new I'm still looking into Bluetooth. Can you list the files in /persist? Specifically, I'm looking for a file called |
Knew I forgot something! tap-to-wakeWorking sometimes now.
Locking with Powerkey:
Locking with Quicksettings:
Now as for unlocking. Tap to wake only works within the first 1-2 seconds after locking:
journalctlfrom the latest Image: /persistFiles in /persist (Note that I am flashing to userdata. But that doesn't make a difference does it?):
bluetooth
|
Oh I also found a different version in |
Thanks again for testing! I've uploaded a new Also, looking at the logs gives me the impression that sensors are now working? Can you execute the command Regarding tap-to-wake, can you send me a log where it actually doesn't work? The 1~2 seconds you mentioned is actually because watch entered deep sleep in which case the touch screen also enters a low power mode. A special event is used to wake the watch at that point (This is the thing I thought that was fixed in the |
Alright last run for today (gotta get up at 5:30am zZz) bluetoothHoly moly it is working! sensorssensors.txt tap to wakeI am feeling kinda stupid now tbh... journalctlMiscBattery percentage in quicksetting broke 2 or 3 updates ago (also in the app). Thanks for your continued investment :) |
No need to rush ofc. Test whenever you find the time for it Actually when it comes to Bluetooth, if the app finds it, I would expect it to work. Can you clarify this part? It shows when scanning? Does it pair (pairing popup on watch and phone)? Does it disconnect after connecting? Sensors, definitely needs some further investigation. It does look like the heart rate sensor is available in this one. I'm not sure if the heart rate monitor app is packaged in the image. I'll add that in another one. Great to see that tap-to-wake is working after all :) The battery undefined issue. Is a known issue. It randomly occurs on on new installations. For some unknown reason opkg (the package manager) crashes sometimes on first boot. On first boot some packages need to be configured (statefs in this case). But due to this random crash it's not configured. |
The kernel module
We finally have a fix merged for this: AsteroidOS/meta-asteroid#83 🥳. I expect that this will be part of next weeks nightly build. |
@C9Glax if you're not on matrix, here are the latest updates:
@MagneFire will probably upload a fixed version with these changes as well as:
|
Hello everyone! I am back online for testing if y'all need a tester, I will try and check this issue manually every few days. |
Sure, go ahead and confirm the findings on your end as well. For the checking off, we can wait for the changes to be officially ported. For me, getting a gadgetbridge interface up for AsteroidOS, will make it a daily driver. |
Hi @LecrisUT and @MagneFire, did those fixes make their was into the 28-Jan nightly? I still don't have any tilt-to-wake and the watch seems to keep time (the wrong time) that is uses for the LCD and that doesn't get fixed when the watch syncs time with the app. In fact, if the battery runs out, the watch shows the wrong time again until I toggle on-off 'sync time' in the Android sync app. I tried applying the fixes from #11, but still have the same issue. Thanks for the fantastic work so far! |
@LecrisUT I tried to install these changes (using the 28th nightly) but i run into problems when running the shell script when echoing performance I get Any ideas? |
This was an issue for all watches, but fixes have been merged and the current nightlies have this fix working.
No idea on this one yet. I did find a |
Did you run the command: |
I still have to manually enable
because my LCD is still in 12h. (If you have a manual fix for this, let me know please) The battery level in the app is still different from that of the watch, which now at least reads a value. Tilt-to-wake is working wonderfully know, so as you said, this watch will become daily-driver material again! Also I joined the matrix-server :) |
Indeed the shell script is faulty in that area. At first glance I can't figure out how to correct it. @MagneFire any clues on this one?
This id odd, I hadn't had this issue with a fresh install. I just disabled AOD and cycled the screen and all worked fine. |
Layer 8 problem. Had thr old lcd package still installed and the newer one didnt install over it. So that wasnt an issue. |
Yes, that should be handled in the image itself, so lets wait for the new build to come out. Right now I believe |
Hey guys! Just installed AsteroidOS on my TicwatchPro and stumbled across this thread. Will the fixes discussed here be released in the form of an update? How to install?:) Many thanks!! |
Good evening! For installation click here! The quickest way to get help is in Matrix (linked on the website). Otherwise you can also open an issue here! As you can see on the website, a lot of features are still WIP, but developments are still underway. Hope you enjoy the experience! |
Hi Glax Many thanks for the quick reply! Already found the installation link and flashed the OS successfully. Was just thinking whether the fixes in this thread are already built into the newest version of AsteroidOS :) Best |
If I remember correcty, only the lcd time sync is missing. I didn't have time to refactor the PR for that yet. We are also making steps towards integrating CI so we better keep track of that, so look foward for that in the comming weeks or month(s). That will enable smooth update paths (notice the current lack of version numbering), and over the air updates as well. But for now, keep reflashing, and ask for the test patches in the PRs and the relevant devs working on the fix you want. Speaking of which, @C9Glax, do you still have the test ipk I sent you with the LCD time fix? Can you share it here for now? |
Cool, thanks a lot for the explanations - makes perfect sense. OTA is super nice, looking forward to it! Best, |
The newest Version I have is from February 22nd, Version 1.1 |
Is that mine or Magne's? I don't remember having updated a version of anything yet |
Should be the one you shared on Matrix that fixes the time-sync reliably... |
A quick update... the tilt-to-wake feature actually works now. |
It works amazingly fine. |
@C9Glax, @locksmxth5839 What are your statuses with the watches? Beware of #84 |
Closing this issue as the main goal has been achieved. Device specific issues should now get their own dedicated issue. |
Just to summarize for now:
TODO Features
opkg configure
bug (battery undefined%) [Harmony] [KW99] Battery indicator doesn't work asteroid#94 [bass] Battery indicator showing "undefined%" asteroid#95-------------------------------------------------------- ORIGINAL --------------------------------------------------------
Hello,
we spoke briefly on IRC and @jrtberlin said that it might be possible to create a port for my beloved Smartwatch.
@MagneFire pointed me to the progress of the Huawei Watch 2 (Issue AsteroidOS/asteroid#101 ) and to get things started (in the future) I got the Partitiontable for you:
Kind regards,
(edit the code formatting on GitHub sucks)The text was updated successfully, but these errors were encountered: