Skip to content
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

Closed
17 of 29 tasks
C9Glax opened this issue Feb 19, 2021 · 102 comments
Closed
17 of 29 tasks

Add Support for Mobvoi TicWatch Pro (catfish) #11

C9Glax opened this issue Feb 19, 2021 · 102 comments
Labels
catfish/catfish_ext/catshark TicWatch Pro 2018/2020

Comments

@C9Glax
Copy link

C9Glax commented Feb 19, 2021

Just to summarize for now:

  • Boot
  • ADB
  • WiFi
  • Bluetooth
    • Pairing
    • Weather
    • Find
    • Notification
    • Screenshot
    • Time
      • Correct time on LCD
    • ❔ Calls
  • Sensors
    • Heartbeat
    • Steps
      • Fitness App (AsteroidOS general feature)
    • Tap-To-Wake
    • Automatic Screen Brightness (Ambient Light)
    • Tilt-To-Wake
    • Gyro
    • Compass
  • Low Power LCD (Reference)
    • Step Counter

TODO Features

-------------------------------------------------------- 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:

total 0
drwxr-xr-x 2 root root 740 1970-01-01 06:11 .
drwxr-xr-x 3 root root 800 1970-01-01 06:11 ..
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 DDR -> /dev/block/mmcblk0p18
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 aboot -> /dev/block/mmcblk0p4
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 abootbak -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 boot -> /dev/block/mmcblk0p21
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 cache -> /dev/block/mmcblk0p24
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 cmnlib -> /dev/block/mmcblk0p27
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 cmnlibbak -> /dev/block/mmcblk0p28
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 config -> /dev/block/mmcblk0p34
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 devinfo -> /dev/block/mmcblk0p26
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 fsc -> /dev/block/mmcblk0p15
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 fsg -> /dev/block/mmcblk0p19
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 keymaster -> /dev/block/mmcblk0p29
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 keymasterbak -> /dev/block/mmcblk0p30
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 keystore -> /dev/block/mmcblk0p32
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 misc -> /dev/block/mmcblk0p13
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 modem -> /dev/block/mmcblk0p1
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 modemst1 -> /dev/block/mmcblk0p11
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 modemst2 -> /dev/block/mmcblk0p12
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 oem -> /dev/block/mmcblk0p33
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 pad -> /dev/block/mmcblk0p10
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 persist -> /dev/block/mmcblk0p23
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 recovery -> /dev/block/mmcblk0p25
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 rpm -> /dev/block/mmcblk0p6
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 rpmbak -> /dev/block/mmcblk0p7
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 sbl1 -> /dev/block/mmcblk0p2
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 sbl1bak -> /dev/block/mmcblk0p3
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 sec -> /dev/block/mmcblk0p20
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 splash -> /dev/block/mmcblk0p17
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 ssd -> /dev/block/mmcblk0p16
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 system -> /dev/block/mmcblk0p22
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 ticnv -> /dev/block/mmcblk0p14
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 tz -> /dev/block/mmcblk0p8
lrwxrwxrwx 1 root root  20 1970-01-01 06:11 tzbak -> /dev/block/mmcblk0p9
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 userdata -> /dev/block/mmcblk0p35
lrwxrwxrwx 1 root root  21 1970-01-01 06:11 vendor -> /dev/block/mmcblk0p31

Kind regards,

(edit the code formatting on GitHub sucks)

@MagneFire
Copy link
Member

MagneFire commented Feb 19, 2021

Thanks for this!
As @jrtberlin mentioned the corresponding kernel is https://android.googlesource.com/kernel/msm/+/refs/heads/android-msm-catshark-3.18-pie-wear-dr and there appears to be another one https://github.com/Nexusma/msm-catfish-9.0-wear-os, not sure how different that one is.

@C9Glax Can you maybe also get the following from your watch?

  • The complete logcat log, reveals some information with regards to the hwcomposer.
  • The complete dmesg log. Useful when debugging issues.
  • The cmdline: This is also available in the dmesg log but just in case. It's located under /proc/cmdline. A simple cat /proc/cmdline should reveal it.

You'll probably need root to get the dmesg and cmdline

I should add that supporting the Ticwatch Pro might be a challenge as we don't have any supported watch based on Android Pie. mooneye is based on Android Oreo, but that one does not utilize a Qualcomm SoC. I would suggest to base an eventual build on Oreo for now. There appear to be image dumps for this here: https://androidfilehost.com/?w=files&flid=302395
And there is even a direct kernel source linked to it (https://android.googlesource.com/kernel/msm/+/refs/tags/android-wear-8.0.0_r0.51)

@C9Glax
Copy link
Author

C9Glax commented Feb 19, 2021

You'll probably need root to get the dmesg and cmdline

Yup, I used Magisk, which hopefully doesn't interfere with things...
Anyways here is everything i was able to get:

@D0L05
Copy link

D0L05 commented Jun 23, 2021

Has any further progress been made on this ?

@MagneFire
Copy link
Member

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 (firefish), this watch seems to hang at boot for the moment.

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.
Once we have these dumps a port is possible as there is now a possibility to use a general hybris patched system tar (MagneFire/meta-sawfish-hybris-1@652cb92).

@mikahjc
Copy link

mikahjc commented Jun 24, 2021

I believe mine is on Android Pie, but I'm not 100% sure how to check. If it is, would flashing it back to Oreo and dumping those partitions be helpful?

Never mind, it can't be flashed back to Oreo apparently.

@MagneFire
Copy link
Member

MagneFire commented Nov 3, 2021

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:

  • Does it boot? If no -> boot into debug-ramdisk mode (info: https://asteroidos.org/wiki/boot-process/)
  • If it does: Does the touchscreen work? Does WiFi work?
  • Does USB work?
  • If USB works, can you send me logs? (journalctl --no-pager)

@C9Glax
Copy link
Author

C9Glax commented Nov 3, 2021

Very cool, as soon as I get the watch charged I will try and flash your image.

@C9Glax
Copy link
Author

C9Glax commented Nov 3, 2021

- Does it boot? Yes!
- If it does: Does the touchscreen work? Yes!
- Does WiFi work? no am I missing something, because there is simply not option "WiFi" in the settings app.
- Does USB work? Sort of - not? It's charging, but I can't change the mode to any other than charging. (adb of course doesn't detect any devices, and device manager also does not list the watch)
- If USB works, can you send me logs? ^

Other than that very fast and snappy 👍🏼

@MagneFire
Copy link
Member

That's amazing!!
I probably should've mentioned that WiFi cannot be configured via an app at the moment, it must be setup via adb or ssh. Given that USB doesn't appear to be fully functional it is not straightforward to set that up.
I'll scan throught the kernel configuration, maybe I missed something.
Do sensors work too (tilt-to-wake for example)?
I'm not sure, but what does Always-on-Display look like? Does it activate the low power LCD?

Also can you post a picture? I'd love to see AsteroidOS in action on the Ticwatch Pro!

@C9Glax
Copy link
Author

C9Glax commented Nov 3, 2021

I probably should've mentioned that WiFi cannot be configured via an app at the moment

ah, that explains it

Do sensors work too (tilt-to-wake for example)?

It's crossed out for me, any other sensors you can think of?
Display turns off if you cover it though so that's nice :)

what does Always-on-Display look like?
IMG_20211103_185117

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

Also bonus:
IMG_20211103_184745

@MagneFire
Copy link
Member

Thanks!
Those images look great!
The crossed out option actually indicates that sensors aren't working. Maybe some other method is used, will need to investigate this further too.

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.
By any chance do you know which bloatware would cause it to break?

@C9Glax
Copy link
Author

C9Glax commented Nov 3, 2021

According to this Reddit post:

I disabled all the default mobvoi apps. I still get the step count on the LCD screen. When I compare those steps to google fit steps they are not equal though. They have around 100-500 step difference so it's accurate enough for me.

It turn out that if you remove the permissions in Tic Health to sensors and storage BEFORE disabling it the step counter on the LCD /Essential screen is completely gone.

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.

@LecrisUT
Copy link
Contributor

LecrisUT commented Nov 4, 2021

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. adb reboot bootloader says no deveice found), or at least there is no way of confirming in setting or on the computer if it can connect to the other modes.

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).

@MagneFire
Copy link
Member

MagneFire commented Nov 4, 2021

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. adb reboot bootloader says no deveice found), or at least there is no way of confirming in setting or on the computer if it can connect to the other modes.

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.
edit: It looks like we can get Bluetooth working more easily compared to the other new watches (firefish, ray, skipjack, swift) https://android.googlesource.com/platform/hardware/broadcom/libbt/+/master/include/vnd_catfish.txt indicates that the same communication method is used for communication with the Bluetooth chip as the other well supported watches (sturgeon, bass, dory).

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: nanoapp_cmd.
I may also have found a solution to the USB issue, I'll update this comment once uploaded (done!).
The only image that changed is the .fastboot image, there is no need to reupload the .ext4 file.

@LecrisUT
Copy link
Contributor

LecrisUT commented Nov 4, 2021

Can you clarify on the top right button? This is the power button right? So it should only wake and sleep the display.

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?

I'll update this comment once uploaded (done!).

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.

@MagneFire
Copy link
Member

Can you clarify on the top right button? This is the power button right? So it should only wake and sleep the display.

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?

At the moment the other hardware buttons don't do anything

I'll update this comment once uploaded (done!).

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.

Yes the same link: https://www.dropbox.com/sh/z63roaj1l44wmo8/AAAJpIAypuXJFKsIMc1_Ttv9a?dl=0

@C9Glax
Copy link
Author

C9Glax commented Nov 4, 2021

Hell yea!

Does USB work?

YES!

If USB works, can you send me logs? (journalctl --no-pager)

journalctl.txt

@LecrisUT
Copy link
Contributor

Any initial thoughts on how difficult it would be to get the drivers to work?

@MagneFire
Copy link
Member

MagneFire commented Nov 19, 2021

Bluetooth

While 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 catfish dump into the currently working sawfish (Huawei Watch 2) dump.

(Reason for keeping the sawfish dump as opposed to creating a new one for catfish: We don't have a full dump of an Oreo based system for catfish).

It does look like the appropriate daemons for Bluetooth are available in the Pie based dump that I currently have.

Sensors

Needs work. Basically same as above, but this platform uses nanohub for sensors. Which means a slightly different approach is needed.

Here's an image of how I think the sensors are implemented for this watch:

catfish-sensors

LCD

Need to reverse engineer it some more, but looking at the nanohub firmware, it appears as if the LCD is controlled as if it's a sensor 😆

The future

The 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 😉

@MagneFire
Copy link
Member

MagneFire commented Nov 27, 2021

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 (journalctl --no-pager) shows any different information. Here's exactly what I'm expecting from the journal log:

  • rmt_storage shouldn't crash anymore (not really used on this platform, but might be needed for audio)
  • Includes some Bluetooth backporting patches as well as the Bluebinder package. Also included some binaries from the catfish stock image. I'm expecting these binaries to fail loading at the moment due to missing files or symbols (log should be really helpful).
  • Program the nanohub sensor device. No idea if it's supposed to do anything else. I would recommend to backup the /persist and /firmware partitions prior to testing this (A complete backup of all partitions is a good idea in general).

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 partitions

Here are some short instructions on how to backup all partitions on your watch.
It will be using the fastboot image from AsteroidOS (Download from one of the previous Dropbox links, USB is an essential functionality).

Boot your watch into fastboot mode. Then boot the fastboot image using:

fastboot --cmdline debug-ramdisk boot zImage-dtb-catfish.fastboot

Next up, wait for the adb device to become available on your computer and pull the entire filesystem to your PC:

adb pull /dev/mmcblk0 .

It can take a while to backup the entire filesystem but after that you are done 😄
If you'd like you can also continue to extract some more information, like the partition table and the individual partitions:

sfdisk -d mmcblk0

Use this script https://gist.github.com/MagneFire/f0bbd8f862c7f5c72840922e2add0461 to extract the individual partitions.

@C9Glax
Copy link
Author

C9Glax commented Nov 28, 2021

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
journalctl.txt
Quick glance says

  • rmt_storage is working fine (apart from "error no: 22")
  • nanohub is sending data (charging, temperature, volume?)
  • bluetooth seems to be broken as expected

As for other sensors:

  • tilt-to-wake is disabled
  • tap to wake is enabled, but weirdly enough doesn't actually do anything...
Nov 28 01:04:12 catfish kernel: evbug: Event. Dev: input1, Type: 1, Code: 143, Value: 1
Nov 28 01:04:12 catfish kernel: evbug: Event. Dev: input1, Type: 0, Code: 0, Value: 0
Nov 28 01:04:12 catfish kernel: evbug: Event. Dev: input1, Type: 1, Code: 143, Value: 0
Nov 28 01:04:12 catfish kernel: evbug: Event. Dev: input1, Type: 0, Code: 0, Value: 0
Nov 28 01:04:12 catfish kernel: FTS: wakeup system from ambient mode

It is registering the double-tap just fine but not waking up

Overall

Nov 15 18:09:14 catfish sensorfwd[710]: library "libhubconnection.so" not found
Nov 15 18:09:14 catfish sensorfwd[710]: hw_get_module() failed Invalid argument
Nov 15 18:09:14 catfish sensorfwd[710]: HYBRIS CTL invalid sensor type: 5
Nov 15 18:09:14 catfish sensorfwd[710]: HybrisAdaptor::HybrisAdaptor(const QString&, int) no such sensor "alsadaptor"
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "alsadaptor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "adaptor 'alsadaptor' can not be started"
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "alssensor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: "alssensor instantiation failed"
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "sensor has not been instantiated"
Nov 15 18:09:14 catfish sensorfwd[710]: HYBRIS CTL invalid sensor type: 8
Nov 15 18:09:14 catfish sensorfwd[710]: HybrisAdaptor::HybrisAdaptor(const QString&, int) no such sensor "proximityadaptor"
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "proximityadaptor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "adaptor 'proximityadaptor' can not be started"
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "proximitysensor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: "proximitysensor instantiation failed"
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "sensor has not been instantiated"
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "requested sensor id 'alssensor' not registered"
Nov 15 18:09:14 catfish sensorfwd[710]: HYBRIS CTL invalid sensor type: 1
Nov 15 18:09:14 catfish sensorfwd[710]: HybrisAdaptor::HybrisAdaptor(const QString&, int) no such sensor "accelerometeradaptor"
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "accelerometeradaptor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "adaptor 'accelerometeradaptor' can not be started"
Nov 15 18:09:14 catfish sensorfwd[710]: QObject::connect: Cannot connect (nullptr)::propertyChanged(const QString&) to AccelerometerChain::propertyChanged(const QString&)
Nov 15 18:09:14 catfish sensorfwd[710]: QObject::connect: Cannot connect (nullptr)::propertyChanged(const QString&) to AccelerometerChain::propertyChanged(const QString&)
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "orientationchain" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "orientationsensor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: "orientationsensor instantiation failed"
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "sensor has not been instantiated"
Nov 15 18:09:14 catfish sensorfwd[710]: HYBRIS CTL invalid sensor type: 26
Nov 15 18:09:14 catfish sensorfwd[710]: HybrisAdaptor::HybrisAdaptor(const QString&, int) no such sensor "wristgestureadaptor"
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "wristgestureadaptor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: HYBRIS CTL invalid sensor handle: -1
Nov 15 18:09:14 catfish sensorfwd[710]: virtual bool HybrisAdaptor::setInterval(unsigned int, int) setInterval not ok
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "adaptor 'wristgestureadaptor' can not be started"
Nov 15 18:09:14 catfish sensorfwd[710]: Node ' "wristgesturesensor" ' state changed to invalid
Nov 15 18:09:14 catfish sensorfwd[710]: "wristgesturesensor instantiation failed"
Nov 15 18:09:14 catfish sensorfwd[710]: SensorManagerError:  "sensor has not been instantiated"

But thank you for keeping working on this!

@MagneFire
Copy link
Member

Thanks for the detailed report 😄
Also thanks to you for still having/taking the time to test these images 👍

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 rmt_storage, it might not be an issue. But we have to keep an eye on it as it might fail to release a wakelock meaning that battery life will be bad.

I've uploaded a new ext4 image that fixes two issues with Bluetooth (Use correct android.hardware.bluetooth@1.0-service) and sensors (add libhubconnection.so). It's located here: https://www.dropbox.com/sh/c5jpmwwb8oyhmpg/AABmb9OhpP7qqFUoYsbyXIBwa?dl=0 (Only the ext4 image updated, no need to redownload the fastboot image).

@C9Glax
Copy link
Author

C9Glax commented Nov 28, 2021

Of course I keep testing! It was after all me who wanted support for this watch 👍🏼

Bluetooth

Nov 15 18:09:15 catfish unknown: 11-15 18:09:10.786   470   470 W hwservicemanager: getTransport: Cannot find entry android.hardware.bluetooth@1.0::IBluetoothHci/default in either framework or device manifest.
Nov 15 18:09:15 catfish unknown: 11-15 18:09:10.788   472   472 D vndksupport: Loading /vendor/lib/hw/android.hardware.bluetooth@1.0-impl.so from current namespace instead of sphal namespace.
Nov 15 18:09:15 catfish unknown: 11-15 18:09:10.794   472   472 I ServiceManagement: Removing namespace from process name android.hardware.bluetooth@1.0-service to bluetooth@1.0-service.
Nov 15 18:09:15 catfish unknown: 11-15 18:09:10.798   472   472 I android.hardware.bluetooth@1.0-service: Registration complete for android.hardware.bluetooth@1.0::IBluetoothHci/default.
Nov 15 18:09:15 catfish unknown: 11-15 18:09:10.826   472   472 I android.hardware.bluetooth@1.0-impl: BluetoothHci::initialize()
Nov 15 18:09:15 catfish unknown: 11-15 18:09:10.860   472   472 F android.hardware.bluetooth@1.0-impl: Open: No Bluetooth Address!
Nov 15 18:09:15 catfish unknown: 11-15 18:09:10.860   472   472 F libc    : Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 472 (bluetooth@1.0-s), pid 472 (bluetooth@1.0-s)

We are making progress!

Other sensors

Tap to wake

Did this work in the first build (assuming not)?

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.
After booting I am however unable to mount this...

@MagneFire
Copy link
Member

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?

@MagneFire
Copy link
Member

Uploaded a new fastboot image that should fix tap-to-wake: Again it's here: https://www.dropbox.com/sh/c5jpmwwb8oyhmpg/AABmb9OhpP7qqFUoYsbyXIBwa?dl=0

I'm still looking into Bluetooth. Can you list the files in /persist? Specifically, I'm looking for a file called bt_nv.bin. Does this exist in any of the partitions?

@C9Glax
Copy link
Author

C9Glax commented Nov 28, 2021

For reference, can you also provide a full journal log?

Knew I forgot something!
That sensors thing was formatting I forgot to remove...

tap-to-wake

Working sometimes now.
Waking up with Powerkey (works every time):

ov 15 18:15:02 catfish systemd-logind[439]: Power key pressed.
Nov 15 18:15:02 catfish mce[386]: powerkey.c: pwrkey_datapipes_keypress_cb(): powerkey pressed
Nov 15 18:15:02 catfish kernel: evbug: Event. Dev: input0, Type: 1, Code: 116, Value: 1
Nov 15 18:15:02 catfish kernel: evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
Nov 15 18:15:02 catfish mce[386]: tklock.c: mce_tklock_unblank(): display state req: ON
Nov 15 18:15:02 catfish mce[386]: modules/display.c: mdy_display_state_leave(): current display state = POWER_UP
Nov 15 18:15:03 catfish kernel: Idle off 
Nov 15 18:15:03 catfish kernel: [FTS] power state  2 -> 0 
Nov 15 18:15:03 catfish unknown: 11-15 18:15:02.964   616   649 I qdhwcomposer: handle_blank_event: dpy:0 panel power state: 1
Nov 15 18:15:03 catfish unknown: 11-15 18:15:02.987   629   641 I nanohub : osLog: 258 [TSL2584] sensorRateAls: rate=5 Hz latency=199999488 ns
Nov 15 18:15:03 catfish unknown: 11-15 18:15:02.993   629   641 E nanohub : osLog: 258 [TSL2584] faled to change state to STATE_POWER_CHG
Nov 15 18:15:03 catfish kernel: [FTS] fts_ts_resume data->suspended =1
Nov 15 18:15:03 catfish kernel: [FTS] power state  0 -> 0 
Nov 15 18:15:03 catfish unknown: 11-15 18:15:03.004   616   616 D qdhwcomposer: hwc_setPowerMode: Setting mode 2 on display: 0
Nov 15 18:15:03 catfish unknown: 11-15 18:15:03.004   616   616 D qdhwcomposer: hwc_setPowerMode: Done setting mode 2 on display 0
Nov 15 18:15:03 catfish asteroid-launcher[616]: unsleepDisplay
Nov 15 18:15:03 catfish unknown: 11-15 18:15:03.008   616   649 I qdhwcomposer: handle_blank_event: dpy:0 panel power state: 1
Nov 15 18:15:03 catfish kernel: evbug: Event. Dev: input0, Type: 1, Code: 116, Value: 0
Nov 15 18:15:03 catfish kernel: evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
Nov 15 18:15:03 catfish mce[386]: powerkey.c: pwrkey_datapipes_keypress_cb(): powerkey released
Nov 15 18:15:03 catfish mce[386]: modules/display.c: mdy_display_state_enter(): current display state = ON
Nov 15 18:15:03 catfish asteroid-launcher[616]: QDBusMarshaller: cannot add an invalid QVariant
Nov 15 18:15:03 catfish asteroid-launcher[616]: QDBusMarshaller: cannot add an invalid QVariant
Nov 15 18:15:03 catfish asteroid-launcher[616]: QDBusConnection: error: could not send message to service "com.nokia.thermalmanager" path "/com/nokia/thermalmanager" interface "com.nokia.thermalmanager" member "get_thermal_state": Marshalling failed: Variant containing QVariant::Invalid passed in arguments
Nov 15 18:15:04 catfish msyncd[617]: "No carrier"

Locking with Powerkey:

Nov 15 18:16:08 catfish kernel: evbug: Event. Dev: input0, Type: 1, Code: 116, Value: 1
Nov 15 18:16:08 catfish kernel: evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
Nov 15 18:16:08 catfish mce[386]: powerkey.c: pwrkey_datapipes_keypress_cb(): powerkey pressed
Nov 15 18:16:08 catfish systemd-logind[439]: Power key pressed.
Nov 15 18:16:08 catfish kernel: evbug: Event. Dev: input0, Type: 1, Code: 116, Value: 0
Nov 15 18:16:08 catfish kernel: evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
Nov 15 18:16:08 catfish mce[386]: powerkey.c: pwrkey_datapipes_keypress_cb(): powerkey released
Nov 15 18:16:08 catfish mce[386]: powerkey.c: pwrkey_action_blank(): display state req: LPM_ON
Nov 15 18:16:08 catfish mce[386]: modules/display.c: mdy_display_state_enter(): current display state = LPM_ON
Nov 15 18:16:09 catfish kernel: nanohub: [FG] control = 0x238a; status = 1; present = 1; TEMP = 417; VOL = 4170; flags = 0x0188; FAC = 416; RM = 266; FCC = 402; SOC = 67; AC = 281; RMU = 268; FCCU = 403; SOCU = 67; CF = 402000; power_avg = 1172; health = 1; CDF = 415; charger_online = 1;
Nov 15 18:16:10 catfish mce[386]: modules/display.c: mdy_display_state_leave(): current display state = POWER_DOWN
Nov 15 18:16:10 catfish asteroid-launcher[616]: sleepDisplay
Nov 15 18:16:10 catfish unknown: 11-15 18:16:10.423   616   616 D qdhwcomposer: hwc_setPowerMode: Setting mode 3 on display: 0
Nov 15 18:16:10 catfish kernel: Idle on 
Nov 15 18:16:10 catfish kernel: [FTS] power state  0 -> 2 
Nov 15 18:16:10 catfish kernel: [FTS] fts_ts_suspend data->suspended =0
Nov 15 18:16:10 catfish unknown: 11-15 18:16:10.424   616   616 D qdhwcomposer: hwc_setPowerMode: Done setting mode 3 on display 0
Nov 15 18:16:10 catfish unknown: 11-15 18:16:10.425   616   649 I qdhwcomposer: handle_blank_event: dpy:0 panel power state: 2
Nov 15 18:16:10 catfish mce[386]: modules/display.c: mdy_display_state_enter(): current display state = LPM_OFF
Nov 15 18:16:10 catfish kernel: [FTS] power state  2 -> 2 

Locking with Quicksettings:

Nov 15 18:16:50 catfish mce[386]: modules/battery-statefs.c: tracker_open(): /run/state/namespaces/Battery/State: open: No such file or directory
Nov 15 18:16:50 catfish kernel: evbug: Event. Dev: input1, Type: 3, Code: 57, Value: 7
Nov 15 18:16:50 catfish kernel: evbug: Event. Dev: input1, Type: 3, Code: 54, Value: 26
Nov 15 18:16:50 catfish kernel: evbug: Event. Dev: input1, Type: 1, Code: 330, Value: 1
Nov 15 18:16:50 catfish kernel: evbug: Event. Dev: input1, Type: 0, Code: 0, Value: 0
Nov 15 18:16:50 catfish kernel: evbug: Event. Dev: input1, Type: 3, Code: 57, Value: -1
Nov 15 18:16:50 catfish kernel: evbug: Event. Dev: input1, Type: 1, Code: 330, Value: 0
Nov 15 18:16:50 catfish kernel: evbug: Event. Dev: input1, Type: 0, Code: 0, Value: 0
Nov 15 18:16:50 catfish mce[386]: modules/display.c: mdy_dbus_handle_display_lpm_req(): display lpm request from name=:1.45 owner=:1.45 pid=616 uid=1000 gid=1000 priv=0 cmd=/usr/bin/asteroid-launcher -plugin evdevtouch:/dev/input/event1
Nov 15 18:16:50 catfish mce[386]: modules/display.c: mdy_dbus_handle_display_state_req(): display state req: LPM_ON
Nov 15 18:16:50 catfish mce[386]: modules/display.c: mdy_display_state_enter(): current display state = LPM_ON

Now as for unlocking. Tap to wake only works within the first 1-2 seconds after locking:

Nov 15 18:17:43 catfish mce[386]: powerkey.c: pwrkey_datapipes_keypress_cb(): powerkey pressed
Nov 15 18:17:43 catfish systemd-logind[439]: Power key pressed.
Nov 15 18:17:44 catfish kernel: evbug: Event. Dev: input0, Type: 1, Code: 116, Value: 0
Nov 15 18:17:44 catfish kernel: evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
Nov 15 18:17:44 catfish mce[386]: powerkey.c: pwrkey_datapipes_keypress_cb(): powerkey released
Nov 15 18:17:44 catfish mce[386]: powerkey.c: pwrkey_action_blank(): display state req: LPM_ON
Nov 15 18:17:44 catfish mce[386]: modules/display.c: mdy_display_state_enter(): current display state = LPM_ON
Nov 15 18:17:44 catfish msyncd[617]: "No carrier"
Nov 15 18:17:45 catfish mce[386]: modules/display.c: mdy_datapipe_touch_detected_cb(): display state req: ON
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 3, Code: 57, Value: 16
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 3, Code: 53, Value: 206
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 3, Code: 54, Value: 221
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 1, Code: 330, Value: 1
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 0, Code: 0, Value: 0
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 3, Code: 57, Value: -1
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 1, Code: 330, Value: 0
Nov 15 18:17:45 catfish kernel: evbug: Event. Dev: input1, Type: 0, Code: 0, Value: 0
Nov 15 18:17:45 catfish mce[386]: modules/display.c: mdy_display_state_enter(): current display state = ON
Nov 15 18:17:45 catfish asteroid-launcher[616]: QDBusMarshaller: cannot add an invalid QVariant
Nov 15 18:17:45 catfish asteroid-launcher[616]: QDBusMarshaller: cannot add an invalid QVariant
Nov 15 18:17:45 catfish asteroid-launcher[616]: QDBusConnection: error: could not send message to service "com.nokia.thermalmanager" path "/com/nokia/thermalmanager" interface "com.nokia.thermalmanager" member "get_thermal_state": Marshalling failed: Variant containing QVariant::Invalid passed in arguments
Nov 15 18:17:45 catfish mce[386]: modules/battery-statefs.c: tracker_open(): /run/state/namespaces/Battery/State: open: No such file or directory

journalctl

from the latest Image:
journalctl.txt

/persist

Files in /persist (Note that I am flashing to userdata. But that doesn't make a difference does it?):

-rw-------    1 1002     1002             9 Jan  1  1970 .bt_nv.bin
-rw-rw-rw-    1 root     root             5 Jan  1  1970 DCtestflag.txt
-rw-r--r--    1 root     root            10 Jan  1  1970 Factory_sn
drwxrwx---    2 1002     1002          4096 Jan  2  1970 bluetooth
-r--r--r--    1 root     root            18 Jan  1  1970 bt_nv.bin
drwx------    4 ceres    ceres         4096 Jan  1  1970 data
drwxrwx---    2 ceres    1003          4096 Jan  1  1970 display
drwxrwx---    2 ceres    ceres         4096 Jan  1  1970 drm
drwx------    2 root     root          4096 Jan  1  1970 lost+found
drwxrwx---    2 ceres    ceres         4096 Jan  1  1970 misc
-rw-r-----    1 ceres    ceres          118 Jan  1  1970 sensorcal.json
drwxrwx---    2 ceres    ceres         4096 Jan  1  1970 sensors
-r--r--r--    1 root     root            16 Jan  1  1970 sn.bin
-rw-rw-rw-    1 root     root             5 Jan  1  1970 wbg_flag.bin
-r--r--r--    1 root     root            18 Jan  1  1970 wifi_nv.bin

bluetooth

/persist/bt_nv.bin and /persist/.bt_nv.bin
bt_nv.zip

@C9Glax
Copy link
Author

C9Glax commented Nov 28, 2021

Oh I also found a different version in /system/vendor/etc/persist/bluetooth/.bt_nv.bin
bt_nv.bin.zip

@MagneFire
Copy link
Member

MagneFire commented Nov 28, 2021

Thanks again for testing!

I've uploaded a new ext4 image, that might fix one of the Bluetooth warnings.
For reference, I added the line ro.bt.bdaddr_path=/persist/bt_nv.bin to the build.prop file. The idea is that the Android Bluetooth service uses that to set the mac address for Bluetooth. The idea is that android.hardware.bluetooth@1.0-service uses this property to set it.

Also, looking at the logs gives me the impression that sensors are now working? Can you execute the command test_sensors? I'm curious if it lists 32 sensors.

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 fastboot image I mentioned in the previous comment FTS: wakeup system from ambient mode).

@C9Glax
Copy link
Author

C9Glax commented Nov 28, 2021

Alright last run for today (gotta get up at 5:30am zZz)
I redownloaded and flashed both .ext4 and .fastboot

bluetooth

Holy moly it is working!
I can connect with the Asteroid App, but as you probably expected syncing is not working...

sensors

sensors.txt
Only 20 sensors.

tap to wake

I am feeling kinda stupid now tbh...
I think I forgot to flash fastboot at some point, because I can't get it to not work now!
In other words it keeps waking up even after a minute or two. FIXED

journalctl

journalctl.txt

Misc

Battery percentage in quicksetting broke 2 or 3 updates ago (also in the app).
modules/battery-statefs.c: tracker_open(): /run/state/namespaces/Battery/State: open: No such file or directory

Thanks for your continued investment :)

@MagneFire
Copy link
Member

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.
A manual fix is to run the command: opkg configure
Then reboot the watch (should be solved now).

@MagneFire
Copy link
Member

Absolutely fantastic work everyone! Having a lot of fun with asteroidos on this watch so far.

I'm interested in fixing the tilt-to-wake for catfish, can someone point me to what in the stack actually controls this behavior?

The kernel module nanohub is responsible all peripherals connected to the watch see #11. There are various logs in this GitHub issue that mention a configuration error during initialization of the nanohub. I think it's worth it to try and get a strace log from the nanohub userspace binary to find what paths are used during setup. You can download strace for your watch here https://release.asteroidos.org/nightlies/ipk/armv7vehf-neon/strace_5.14-r0_armv7vehf-neon.ipk look here for instructions on how to install packages: https://asteroidos.org/wiki/package-installation/#packageinstallation

Also, on the latest releases the battery seems to seem undefined%.

We finally have a fix merged for this: AsteroidOS/meta-asteroid#83 🥳. I expect that this will be part of next weeks nightly build.

@LecrisUT
Copy link
Contributor

LecrisUT commented Jan 27, 2022

@C9Glax if you're not on matrix, here are the latest updates:
LCD time sync and tilt-to-wake are fixed with the following changes
fixes.tar.gz:

  1. Force reinstall qt5-qpa-hwcomposer-plugin_5.15.0+gitr0+e9b72254c3-r0_catfish.ipk
  2. Copy overwrite nanohub.full.catshark.19090317.bin to /vendor/firmware
  3. mkdir -p /data/vendor/sensor/nanohub_lock
  4. Overwrite underclock in /usr/bin and run it

@MagneFire will probably upload a fixed version with these changes as well as:

  • The fix for the battery level requiring opkg configure
  • Linking the 12h/24h to the AsteroidOS option?

@C9Glax
Copy link
Author

C9Glax commented Jan 27, 2022

Hello everyone!
@LecrisUT nope not on Matrix.

I am back online for testing if y'all need a tester, I will try and check this issue manually every few days.
I guess I can check-off time and tilt-to-wake from the list in comment 1?

@LecrisUT
Copy link
Contributor

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.

@ConorIA
Copy link

ConorIA commented Jan 30, 2022

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!

@eshrh
Copy link

eshrh commented Jan 30, 2022

@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 sh: write error: No such device and then when chown'ing /data/vendor/sensor/nanohub_lock/lock it says the file doesn't exist, which I can confirm. Was I supposed to touch the file or something? On the other hand, the file /sys/class/kgsl/kgsl-3d0/devfreq/governor does exist, but it still throws an error.

Any ideas?

@MagneFire
Copy link
Member

@C9Glax if you're not on matrix, here are the latest updates: LCD time sync and tilt-to-wake are fixed with the following changes fixes.tar.gz:

  1. Force reinstall qt5-qpa-hwcomposer-plugin_5.15.0+gitr0+e9b72254c3-r0_catfish.ipk
  2. Copy overwrite nanohub.full.catshark.19090317.bin to /vendor/firmware
  3. mkdir -p /data/vendor/sensor/nanohub_lock
  4. Overwrite underclock in /usr/bin and run it

@MagneFire will probably upload a fixed version with these changes as well as:

  • The fix for the battery level requiring opkg configure

This was an issue for all watches, but fixes have been merged and the current nightlies have this fix working.

  • Linking the 12h/24h to the AsteroidOS option?

No idea on this one yet. I did find a persist option. But I'm not sure about the right way to implement this.

@MagneFire
Copy link
Member

MagneFire commented Jan 30, 2022

@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 sh: write error: No such device and then when chown'ing /data/vendor/sensor/nanohub_lock/lock it says the file doesn't exist, which I can confirm. Was I supposed to touch the file or something? On the other hand, the file /sys/class/kgsl/kgsl-3d0/devfreq/governor does exist, but it still throws an error.

Any ideas?

Did you run the command: mkdir -p /data/vendor/sensor/nanohub_lock as referenced by @LecrisUT in #11?

@C9Glax
Copy link
Author

C9Glax commented Jan 30, 2022

@LecrisUT

I still have to manually enable lcd-test 1, but I guess this will be a feature combined with the AOD option just like

Linking the 12h/24h to the AsteroidOS option?

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 :)

@LecrisUT
Copy link
Contributor

when echoing performance I get sh: write error: No such device

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?

I still have to manually enable lcd-test 1, but I guess this will be a feature combined with the AOD option

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.

@C9Glax
Copy link
Author

C9Glax commented Jan 31, 2022

Layer 8 problem. Had thr old lcd package still installed and the newer one didnt install over it. So that wasnt an issue.
Issue right now is that the lockfile isnt created and the underclock service fails because of it.

@LecrisUT
Copy link
Contributor

Yes, that should be handled in the image itself, so lets wait for the new build to come out. Right now I believe undeclock hack is only temporary, and it should be exchanged here or other similar spots where it only runs once. Maybe we should help and gradually add these changes here. If I can understand how to make the builds, I can try help on that part. There are some unclear changes that @MagneFire did behind the scenes with the other changes so we would still have to wait on those.

@rdtm443
Copy link

rdtm443 commented Mar 5, 2022

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!!

@C9Glax
Copy link
Author

C9Glax commented Mar 5, 2022

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!
Glax

@rdtm443
Copy link

rdtm443 commented Mar 5, 2022

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!
Glax

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

@LecrisUT
Copy link
Contributor

LecrisUT commented Mar 5, 2022

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?

@rdtm443
Copy link

rdtm443 commented Mar 5, 2022

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,

@C9Glax
Copy link
Author

C9Glax commented Mar 6, 2022

The newest Version I have is from February 22nd, Version 1.1
lcd_1.1-r0_armv7vehf-neon.zip

@LecrisUT
Copy link
Contributor

LecrisUT commented Mar 6, 2022

Is that mine or Magne's? I don't remember having updated a version of anything yet

@C9Glax
Copy link
Author

C9Glax commented Mar 6, 2022

Should be the one you shared on Matrix that fixes the time-sync reliably...
"Version" is from the filename and I dont have anything else so suppose it's yours

@locksmxth5839
Copy link

A quick update... the tilt-to-wake feature actually works now.

@locksmxth5839
Copy link

It works amazingly fine.

@LecrisUT
Copy link
Contributor

@C9Glax, @locksmxth5839 What are your statuses with the watches? Beware of #84

@MagneFire
Copy link
Member

Closing this issue as the main goal has been achieved.
Most current issues relate to missing features not specific to this port. We can create or look at the existing issues for this.

Device specific issues should now get their own dedicated issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
catfish/catfish_ext/catshark TicWatch Pro 2018/2020
Projects
None yet
Development

No branches or pull requests

9 participants