Fossil Hybrid HR #1751

Open
opened 2 years ago by imdanperks · 180 comments

Before reporting a bug, please confirm the following:

  • I have read the wiki, and I didn't find a solution to my problem / an answer to my question.
  • I have searched the issues, and I didn't find a solution to my problem / an answer to my question.
  • If you upload an image or other content, please make sure you have read and understood the github policies and terms of services

I got Gadgetbridge from:

  • F-Droid
  • I built it myself from source code (specify tag / commit)

Your issue is:

My device doesn't pair correctly with GadgetBridge.
The pairing process goes as follows:

  • I first unpair the watch from the Fossil app by removing it in the app, force stopping the app, clearing its cache and removing it from my Bluetooth devices. I then reboot.
  • In the GadgetBridge app, the device shows under the discovery. I choose to pair it to my device.
  • Once finished, it goes back to the blank GadgetBridge home screen, with no new addition of my device there. The notification at this time says the full name of my device, with the status 'Connecting...'. This does not change. Also, in this process, the hands on the watch turn to show some kind of connection. However, at no point am I told to authorise it by holding the middle button, as required when pairing to the app.
  • A reboot of the app or my phone changes nothing. The notification after either of these changes to say 'No Device Connected', and the notification freezes if the connect button is pressed.
  • After this process, the only way GadgetBridge would see the device is if I paired it through the Fossil app after. However, once I did this, GadgetBridge seemed to have no ability to read or write from the device. Unpairing the device from the Fossil app returned GadgetBridge to the point where it cannot see the device again.

Linked below is a log file (can't upload here???), starting from a fresh install of GadegtBridge, with my device not currently paired to either the Fossil app or the device itself. I tried to pair the device, got to the point where the pairing process was complete but the device was not showing in the app, but the notification says 'Connecting'. I waited in this state for a few minutes before closing the app and repairing to the Fossil app. As this screen was displayed, the hands on the device rotated like before. On the watches display, it says it is connecting to a device, but any options to interact with the phone (e.g. find my device) were unsuccessful.

LOG FILE: https://pastebin.com/xKTMVWnq

Your wearable device is:

Fossil Q Hybrid Collider HR (Firmware No: DN1.0.2.14r.v4)

Your android version is:

Android 9 on my Samsung Galaxy Note 8

Your Gadgetbridge version is:

0.40.0

#### Before reporting a bug, please confirm the following: - [x] I have read the [wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki), and I didn't find a solution to my problem / an answer to my question. - [x] I have searched the [issues](https://github.com/Freeyourgadget/Gadgetbridge/issues), and I didn't find a solution to my problem / an answer to my question. - [x] If you upload an image or other content, please make sure you have read and understood the [github policies and terms of services](https://help.github.com/articles/github-terms-of-service/#1-responsibility-for-user-generated-content) ### I got Gadgetbridge from: * [x] F-Droid * [ ] I built it myself from source code (specify tag / commit) #### Your issue is: My device doesn't pair correctly with GadgetBridge. The pairing process goes as follows: - I first unpair the watch from the Fossil app by removing it in the app, force stopping the app, clearing its cache and removing it from my Bluetooth devices. I then reboot. - In the GadgetBridge app, the device shows under the discovery. I choose to pair it to my device. - Once finished, it goes back to the blank GadgetBridge home screen, with no new addition of my device there. The notification at this time says the full name of my device, with the status 'Connecting...'. This does not change. Also, in this process, the hands on the watch turn to show some kind of connection. However, at no point am I told to authorise it by holding the middle button, as required when pairing to the app. - A reboot of the app or my phone changes nothing. The notification after either of these changes to say 'No Device Connected', and the notification freezes if the connect button is pressed. - After this process, the only way GadgetBridge would see the device is if I paired it through the Fossil app after. However, once I did this, GadgetBridge seemed to have no ability to read or write from the device. Unpairing the device from the Fossil app returned GadgetBridge to the point where it cannot see the device again. Linked below is a log file (can't upload here???), starting from a fresh install of GadegtBridge, with my device not currently paired to either the Fossil app or the device itself. I tried to pair the device, got to the point where the pairing process was complete but the device was not showing in the app, but the notification says 'Connecting'. I waited in this state for a few minutes before closing the app and repairing to the Fossil app. As this screen was displayed, the hands on the device rotated like before. On the watches display, it says it is connecting to a device, but any options to interact with the phone (e.g. find my device) were unsuccessful. LOG FILE: https://pastebin.com/xKTMVWnq #### Your wearable device is: Fossil Q Hybrid Collider HR (Firmware No: DN1.0.2.14r.v4) #### Your android version is: Android 9 on my Samsung Galaxy Note 8 #### Your Gadgetbridge version is: 0.40.0
Owner

@imdanperks

Your device is not a Fossil Q Hybrid. It is a Fossil Hybrid HR. And that is not yet supported by Gadgetbridge.

There is a branch created by @dakhnod, in this repository, which has experimental support, but it requires you to get hold of a secret key, probably with a rooted phone from the fossil app database (this is purely my speculation, based on how it works with the Mi Band 4).

Please be patient while the branch evolves, I might be able to help once I get the watch.

@imdanperks Your device is not a Fossil Q Hybrid. It is a Fossil Hybrid HR. And that is not yet supported by Gadgetbridge. There is a branch created by @dakhnod, in this repository, which has experimental support, but it requires you to get hold of a secret key, probably with a rooted phone from the fossil app database (this is purely my speculation, based on how it works with the Mi Band 4). Please be patient while the branch evolves, I might be able to help once I get the watch.
ashimokawa added the
device fossil
label 2 years ago
Poster

Ahh, my bad. Model numbers get confusing!

Ahh, my bad. Model numbers get confusing!
Poster

@dakhnod Would I be able to test your experimental version? I'm rooted and can be very active, to help test and develop your branch. I'm not in a state to compile the APKs myself, but I could probably do so within the week.

@dakhnod Would I be able to test your experimental version? I'm rooted and can be very active, to help test and develop your branch. I'm not in a state to compile the APKs myself, but I could probably do so within the week.
Collaborator

@imdanperks could you please do me a favor and find where the device key is stored by the fossil app?

@imdanperks could you please do me a favor and find where the device key is stored by the fossil app?
ashimokawa changed title from Fossil Q Hybrid Won't Pair Correctly to Fossil Hybrid HR 2 years ago

Hey,

I think about getting a fossil Hybrid collider HR. As far as I understand this right, there will be support in the future, but I have to compile the app by myself.
I'm right?

Hey, I think about getting a fossil Hybrid collider HR. As far as I understand this right, there will be support in the future, but I have to compile the app by myself. I'm right?
Owner

@Micha_Btz

Yes there is a branch with incomplete WIP support.

But in any case you would need to get hold of a secret key, that requires you to use the official app once plus you need the knowledge of getting the key. :/

@Micha_Btz Yes there is a branch with incomplete WIP support. But in any case you would need to get hold of a secret key, that requires you to use the official app once plus you need the knowledge of getting the key. :/

Could you give a short description on were to find the key in the fossil apps directory? I would guess somewhere in databases?

What is the procedure to use gadgetbridge then? Delete the fossil app without unpairing and start the fossil-q-hr branch gadgetbridge?

Thanks for the work so far, I would love to get rid of the official app.

Could you give a short description on were to find the key in the fossil apps directory? I would guess somewhere in databases? What is the procedure to use gadgetbridge then? Delete the fossil app without unpairing and start the fossil-q-hr branch gadgetbridge? Thanks for the work so far, I would love to get rid of the official app.
Owner

@TinCan

No I think the key is somewhere encrypted with another key securely stored in the KeyStore. If you can find a way of getting it from there - that would be cool.

But there are at least two other, more difficult ways of getting the key, the one I used requires a lot of knowledge.

Right now I don't think it would make sense to document these methods, since support is in so early stages.

@TinCan No I think the key is somewhere encrypted with another key securely stored in the KeyStore. If you can find a way of getting it from there - that would be cool. But there are at least two other, more difficult ways of getting the key, the one I used requires a lot of knowledge. Right now I don't think it would make sense to document these methods, since support is in so early stages.

@ashimokawa

I have the clock since yesterday and some hints to get the key would be good. Even if I search for the key, how long is the key and need I to add some letters before like by the amazfit gtr?

@ashimokawa I have the clock since yesterday and some hints to get the key would be good. Even if I search for the key, how long is the key and need I to add some letters before like by the amazfit gtr?
Owner

@Micha_Btz
You cannot search for the key in the Fossil app, sorry. It is simply not there.

But anyway, if you insist to try, the key is 16 bytes log (128 bit), stored as hex the key would be 32 ASCII characters long.

In Gadgetbridge this key is prefixed with 0x

The way I got the key is really very complicated, and even if you manage to do it how I did it, you still will end up with very incomplete support in Gadgetbridge.

I think it would be best to wait till someone creates a modified app which spits out the key, like people did with Mi Fit. However personally won't be part of the effort, because that would be probably illegal.

The complicated way I used was without tampering with the original app.

If you are using the offical app, maybe you can answer if the watch is constantly vibration on incoming calls or if it will just disaplay a notification?

@Micha_Btz You cannot search for the key in the Fossil app, sorry. It is simply not there. But anyway, if you insist to try, the key is 16 bytes log (128 bit), stored as hex the key would be 32 ASCII characters long. In Gadgetbridge this key is prefixed with 0x The way I got the key is really very complicated, and even if you manage to do it how I did it, you still will end up with very incomplete support in Gadgetbridge. I think it would be best to wait till someone creates a modified app which spits out the key, like people did with Mi Fit. However personally won't be part of the effort, because that would be probably illegal. The complicated way I used was without tampering with the original app. If you are using the offical app, maybe you can answer if the watch is constantly vibration on incoming calls or if it will just disaplay a notification?
Owner

@Micha_Btz @imdanperks

I have documented on how to get the key. Let's see how long it works, now that I have disclosed my method.

https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Fossil-Hybrid-HR

You might have to read tutorials on how to use mitmproxy with Android, that is probably not for the average user, you have been warned... 😏

@Micha_Btz @imdanperks I have documented on how to get the key. Let's see how long it works, now that I have disclosed my method. https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Fossil-Hybrid-HR You might have to read tutorials on how to use mitmproxy with Android, that is probably not for the average user, you have been warned... :smirk:

thanks a lot. works fine.I have build the debug app and there are some errors about AssetFilePutRequest, do you need the debug output?

thanks a lot. works fine.I have build the debug app and there are some errors about AssetFilePutRequest, do you need the debug output?
Owner

@Micha_Btz

Congratulations 👍

I am happy that my instructions were actually useful to at least you :)

We do not need debug output. This error happens when changing the widgets on the watchface.

Also I think it is not time for error reports yet - we are aware that thinks are not finished :)

@Micha_Btz Congratulations :+1: I am happy that my instructions were actually useful to at least you :) We do not need debug output. This error happens when changing the widgets on the watchface. Also I think it is not time for error reports yet - we are aware that thinks are not finished :)

Hi,

as I was just too lazy to use mitmproxy I located the key in the configuration files of the original app.

/data/data/com.fossil.wearables.fossil/shared_prefs/TEXT_ENCRYPTION_PREFERENCE.xml

reads:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="text_encryption_secret_key">SECRETKEY=&#10;    </string>
</map>

The first 16 bytes of
echo "SECRETKEY=" | base64 -d | hexdump -C
prefixed by 0x were indeed the infamous key and worked in Gadgetbridge.

Hi, as I was just too lazy to use mitmproxy I located the key in the configuration files of the original app. /data/data/com.fossil.wearables.fossil/shared_prefs/TEXT_ENCRYPTION_PREFERENCE.xml reads: ``` <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="text_encryption_secret_key">SECRETKEY=&#10; </string> </map> ``` The first 16 bytes of `echo "SECRETKEY=" | base64 -d | hexdump -C ` prefixed by 0x were indeed the infamous key and worked in Gadgetbridge.

nice catch

nice catch
Owner

@TinCan

Wait, wait, wait...

I know that key.

That key is used for encrypting/decrypting the logs. It is different from the pairing key here.

That key also never changes (because it is for the "global" device independent logs) when you remove or add new devices which all have different keys, so how can that work?

The only thing I can think about is that (due to a bug?) it is the same as the key which the first paired device gets IF the first attempt works (multiple pairing tries generate different device keys, but same log encryption key).

Can anyone confirm?

@TinCan Wait, wait, wait... I know that key. That key is used for encrypting/decrypting the logs. It is different from the pairing key here. That key also never changes (because it is for the "global" device independent logs) when you remove or add new devices which all have different keys, so how can that work? The only thing I can think about is that (due to a bug?) it is the same as the key which the first paired device gets IF the first attempt works (multiple pairing tries generate different device keys, but same log encryption key). Can anyone confirm?

Hi!
Very interesting progress. This request made my choose that device instead of garmin 😄
Have a question regarding the integration - will it support tasker activities integration like "alarm triggered"?
Thanks!

Hi! Very interesting progress. This request made my choose that device instead of garmin :smile: Have a question regarding the integration - will it support tasker activities integration like "alarm triggered"? Thanks!

I built the version off master and IMO it works quite well. Being able to set a custom background is the only feature I was missing.

I did run into one bug; the time was off by one hour (I'm in EDT right now). Even after connecting to the official app and "fixing" the time, then reconnecting using GB with the 'Sync Time' setting to off, it would still change the time to be 1 hr less than the actual time. Any suggestions or workaround?

I built the version off master and IMO it works quite well. Being able to set a custom background is the only feature I was missing. I did run into one bug; the time was off by one hour (I'm in EDT right now). Even after connecting to the official app and "fixing" the time, then reconnecting using GB with the 'Sync Time' setting to off, it would still change the time to be 1 hr less than the actual time. Any suggestions or workaround?

Also, I noticed there's a 'time offset' setting for Fossil hybrid watches, but that section isn't enable when connected to the Q HR.

Also, I noticed there's a 'time offset' setting for Fossil hybrid watches, but that section isn't enable when connected to the Q HR.
Owner

@hackorder

EST is daylight saving time?

We still have standard time in Europe, so maybe we are just missing DST offset, should be an easy fix!

@hackorder EST is daylight saving time? We still have standard time in Europe, so maybe we are just missing DST offset, should be an easy fix!
Owner

@hackorder

Can you try again?

@hackorder Can you try again?

@ashimokawa
That fixed it. Thanks for the quick fix!

@ashimokawa That fixed it. Thanks for the quick fix!

For anyone else who'd like to test, here is what I've found so far:

For tasker (commute app) actions, you can handle intent: nodomain.freeyourgadget.gadgetbridge.Q_COMMUTE_MENU with param extra_action='destination'.

To send response for tasker (commute app) actions, send Intent: nodomain.freeyourgadget.gadgetbridge.Q_SET_MENU_MESSAGE with EXTRA_MESSAGE='your response'.

Button presses can be changed in service/devices/qhybrid/requests/fossil_hr/buttons/ButtonConfigurationPutRequest.java

I've found that the following apps work: commuteApp, weatherApp, musicApp, stopwatchApp.

@ashimokawa or @dakhnod is there an 'app' to get to the notification list?

For anyone else who'd like to test, here is what I've found so far: For tasker (commute app) actions, you can handle intent: nodomain.freeyourgadget.gadgetbridge.Q_COMMUTE_MENU with param extra_action='destination'. To send response for tasker (commute app) actions, send Intent: nodomain.freeyourgadget.gadgetbridge.Q_SET_MENU_MESSAGE with EXTRA_MESSAGE='your response'. Button presses can be changed in service/devices/qhybrid/requests/fossil_hr/buttons/ButtonConfigurationPutRequest.java I've found that the following apps work: commuteApp, weatherApp, musicApp, stopwatchApp. @ashimokawa or @dakhnod is there an 'app' to get to the notification list?
Owner

@hackorder
Thanks for the information!

But I removed link to decompiled code (Accidentally actually removed your whole post, sorry)

The core team does not use decomiled code, it is tempting and easy but legally questionable. We use bluetooth logs, it takes more time but should be safe.

I know the buttons have to be made configurable, that is on my list (currently I put weather on the upper button and left the rest to commuteApp).

@hackorder Thanks for the information! But I removed link to decompiled code (Accidentally actually removed your whole post, sorry) The core team does not use decomiled code, it is tempting and easy but legally questionable. We use bluetooth logs, it takes more time but should be safe. I know the buttons have to be made configurable, that is on my list (currently I put weather on the upper button and left the rest to commuteApp).

@ashimokawa thanks, didn't know about that.

@ashimokawa thanks, didn't know about that.

@ashimokawa I had just finished adding in configurable button actions (don't worry, mine was a crazy mish mash of bad code; I haven't used Java in ages, so I'm happy to see your changes) and when I went to pull master I realized you had made the changes too.

Just tested out your changes and they work very well. Thanks! I also used the Fossil app to update to the latest firmware, and the new firmware continues to work well with GB.

@ashimokawa I had just finished adding in configurable button actions (don't worry, mine was a crazy mish mash of bad code; I haven't used Java in ages, so I'm happy to see your changes) and when I went to pull master I realized you had made the changes too. Just tested out your changes and they work very well. Thanks! I also used the Fossil app to update to the latest firmware, and the new firmware continues to work well with GB.

@hackoder is the alarm clock works well?

@hackoder is the alarm clock works well?
Collaborator

@asafb26 last time I checked alarms worked

@asafb26 last time I checked alarms worked
Owner

@hackoder

Sorry for duplicating the work, maybe the commit can serve a blueprint for further changes.

So the process is

  1. Add a new option to an xml file, make it fine grained to make it reusable if it is not strictly device specific.

  2. Add it to public int[] getSupportedDeviceSpecificSettings(GBDevice device) in the Coordinator class if 1 has been done in a new xml, if done in the device's main xml skip this step

  3. add the handler to DeviceSpecificSettingsFragment.java (addPreferenceHandlerFor())

  4. react in onSendConfiguration() in the device support class to make changes effective immediately when togging.

(This should go to the wiki with a concrete example)

@hackoder Sorry for duplicating the work, maybe the commit can serve a blueprint for further changes. So the process is 1. Add a new option to an xml file, make it fine grained to make it reusable if it is not strictly device specific. 2. Add it to public int[] getSupportedDeviceSpecificSettings(GBDevice device) in the Coordinator class if 1 has been done in a new xml, if done in the device's main xml skip this step 3. add the handler to DeviceSpecificSettingsFragment.java (addPreferenceHandlerFor()) 4. react in onSendConfiguration() in the device support class to make changes effective immediately when togging. (This should go to the wiki with a concrete example)

@ashimokawa Does the music app work as expected for you? I can get the controls (next, prev, play, pause) to work correctly, however the currently playing info as well as current state (play/paused) doesn't seem to be sent to the watch yet. Is that correct or just an issue with my configuration?

@ashimokawa Does the music app work as expected for you? I can get the controls (next, prev, play, pause) to work correctly, however the currently playing info as well as current state (play/paused) doesn't seem to be sent to the watch yet. Is that correct or just an issue with my configuration?
Collaborator

@hackoder I just tested that, and after removing Spotify from the notification blacklist music info worked.

@ashimokawa maybe we should ignore notification blacklists when dealing with music info?

@hackoder I just tested that, and after removing Spotify from the notification blacklist music info worked. @ashimokawa maybe we should ignore notification blacklists when dealing with music info?

Yup, removing from notification blacklist fixes it. Nice!

Yup, removing from notification blacklist fixes it. Nice!

Hi, is it possible to add utf-8 support for language such Hebrew? or is it require a custom firmware for that?

Hi, is it possible to add utf-8 support for language such Hebrew? or is it require a custom firmware for that?
Owner

@asafb26

It has UTF-8 support.
I can confirm german umlauts, full Japanese Kanji and Kana, and most emoji (till circa 2018).

I can try Hebrew script later today, but I am not sure what happens to right-to-left support etc.

@asafb26 It has UTF-8 support. I can confirm german umlauts, full Japanese Kanji and Kana, and most emoji (till circa 2018). I can try Hebrew script later today, but I am not sure what happens to right-to-left support etc.
Owner

@asafb26
I tried hebrew and it did not work :(
I was not expecting that.

I still use the initial firmware (there were two updates but Gadgetbridge does not support Firmware updates yet). Maybe newer work? Can someone test?

Custom firmwares do not seem possible since firmware updates seem encrypted.

I also tried arabic, which did work surprisingly. Strangly the notification title was reversed but the body seemed ok.

@asafb26 I tried hebrew and it did not work :( I was not expecting that. I still use the initial firmware (there were two updates but Gadgetbridge does not support Firmware updates yet). Maybe newer work? Can someone test? Custom firmwares do not seem possible since firmware updates seem encrypted. I also tried arabic, which *did* work surprisingly. Strangly the notification title was reversed but the body seemed ok.

@ashimokawa this is really wierd that arabic works well but not hebrew, as they sharing alot of common, not sure about newer versions of fossil firmware - they never mentioned that they have utf-8 support

@ashimokawa this is really wierd that arabic works well but not hebrew, as they sharing alot of common, not sure about newer versions of fossil firmware - they never mentioned that they have utf-8 support
Collaborator

@asafb26 hebrew does not work on the newest firmware aswell.
Just tested, only shows error characters.

@asafb26 hebrew does not work on the newest firmware aswell. Just tested, only shows error characters.

Hi all, while I haven't worked on gadgetbridge code myself yet, I do develop a patched version of the fossil app: https://www.reddit.com/r/FossilHybrids/comments/g5ba38/hybrid_hr_enhanced_android_app_v4301_with_dnd/

In this new release, I've added support to easily copy out the secret key needed for GadgetBridge.

Simply switch from the official fossil app (if you've got in installed) to my app, then go to the profile page, watch settings screen.
Now the important fields can be tapped on to copy their content, and there's a new field called Password which has the correctly (I hope) formatted secret key ready to click on and paste directly into GadgetBridge.

Hope this helps!

Hi all, while I haven't worked on gadgetbridge code myself yet, I do develop a patched version of the fossil app: https://www.reddit.com/r/FossilHybrids/comments/g5ba38/hybrid_hr_enhanced_android_app_v4301_with_dnd/ In this new release, I've added support to easily copy out the secret key needed for GadgetBridge. Simply switch from the official fossil app (if you've got in installed) to my app, then go to the profile page, watch settings screen. Now the important fields can be tapped on to copy their content, and there's a new field called Password which has the correctly (I hope) formatted secret key ready to click on and paste directly into GadgetBridge. Hope this helps!
Owner

@andrewleech

Thank you for letting us now, I will link the reddit post in the wiki.
I think this kind of indirect linking should be ok. What we do not want is that someone uploads cracked apks here.

Also this is not a recommendation for anything ;)

EDIT: Do you know if the key is somehow abtainable with root when using the official unpatched app? No one was successful AFAIK.

@andrewleech Thank you for letting us now, I will link the reddit post in the wiki. I think this kind of indirect linking should be ok. What we do not want is that someone uploads cracked apks here. Also this is not a recommendation for anything ;) EDIT: Do you know if the key is somehow abtainable with root when using the official unpatched app? No one was successful AFAIK.

@ashimokawa I didn't see anything in the code that wrote the key to disk, it does seem to handshake live to the watch very early in comms to the watch. They're is heavy use of a database though (through quite a few messy abstraction layers) which may have it stored somewhere, however I haven't chased down the format / contents of the db myself.

@ashimokawa I didn't see anything in the code that wrote the key to disk, it does seem to handshake live to the watch very early in comms to the watch. They're is heavy use of a database though (through quite a few messy abstraction layers) which may have it stored somewhere, however I haven't chased down the format / contents of the db myself.

Just took another look at the code, internally the data model structures are all split cleanly into a local directory and a remote directory. The only functions that deal with a secret are in the DeviceRemoteDataSource classes. The local database models are all using sql at the lower layers, so it's likely sqlite, but the remote stuff all seems to go direct to the fossil servers without any local caching that I can see.

Just took another look at the code, internally the data model structures are all split cleanly into a `local` directory and a `remote` directory. The only functions that deal with a `secret` are in the `DeviceRemoteDataSource` classes. The local database models are all using sql at the lower layers, so it's likely sqlite, but the remote stuff all seems to go direct to the fossil servers without any local caching that I can see.

On my Fossil HR Collidier set arlarms doesn't work. I always get AlarmSetRequest failed.


04-22 18:04:36.908 15641 15641 D nodomain.freeyourgadget.gadgetbridge.service.DeviceCommunicationService: Service startcommand: nodomain.freeyourgadget.gadgetbridge.devices.action.set_alarms
04-22 18:04:36.909 15641 15641 D FossilHRWatchAdapter: is connected: true
04-22 18:04:36.909 15641 15641 D FossilHRWatchAdapter: is connected: true
04-22 18:04:36.909 15641 15641 D FossilHRWatchAdapter: executing request: AlarmsSetRequest
04-22 18:04:36.909 15641 15641 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: about to add: 18:04:36: Transaction task:  with 1 actions
04-22 18:04:36.911 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: About to run action: 22. April, 18:04: WriteAction on characteristic: 3dda0003-957f-7d4a-34a6-74696673696d
04-22 18:04:36.919 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction: writing to characteristic: 3dda0003-957f-7d4a-34a6-74696673696d: 0x03 0x00 0x0a 0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x00 0x16 0x00 0x00 0x00
04-22 18:04:36.921   717   717 D vendor.qti.bluetooth@1.0-ibs_handler: SerialClockVote: vote for UART CLK ON
04-22 18:04:36.922   717   717 D vendor.qti.bluetooth@1.0-wake_lock: Acquire wakelock is acquired 
04-22 18:04:36.922   717   717 I vendor.qti.bluetooth@1.0-ibs_handler: DeviceWakeUp: Writing IBS_WAKE_IND
04-22 18:04:36.926   717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_WAKE_ACK: 0xFC
04-22 18:04:37.474   717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_WAKE_IND: 0xFD
04-22 18:04:37.475   717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Writing IBS_WAKE_ACK
04-22 18:04:37.517   717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_SLEEP_IND: 0xFE
04-22 18:04:37.624   717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_WAKE_IND: 0xFD
04-22 18:04:37.624   717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Writing IBS_WAKE_ACK
04-22 18:04:37.628 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic write: 3dda0003-957f-7d4a-34a6-74696673696d (success)
04-22 18:04:37.634 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x8a 0x00 0x0a 0x00 0x03 0x30 0x75 0x00 0x00
04-22 18:04:37.634 15641  7137 D AlarmsSetRequest: response: 10
04-22 18:04:37.657 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x83 0x00 0x0a 0x00 0x00
04-22 18:04:37.657 15641  7137 D AlarmsSetRequest: response: 3
04-22 18:04:37.659 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: about to add: 18:04:37: Transaction task: file upload with 1 actions
04-22 18:04:37.662 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: About to run action: 22. April, 18:04: WriteAction on characteristic: 3dda0004-957f-7d4a-34a6-74696673696d
04-22 18:04:37.664 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction: writing to characteristic: 3dda0004-957f-7d4a-34a6-74696673696d: 0x00 0x00 0x0a 0x02 0x00 0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x00 0xf9 0x9e 0x0e 0xff 0x1e 0x06 0x2b 0xc5 0xd3 0x75
04-22 18:04:37.669 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic write: 3dda0004-957f-7d4a-34a6-74696673696d (success)
04-22 18:04:37.715 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x88 0x00 0x0a 0x00 0x16 0x00 0x00 0x00 0x9c 0x1b 0x10 0xee
04-22 18:04:37.716 15641  7137 D AlarmsSetRequest: response: 8
04-22 18:04:37.717 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: about to add: 18:04:37: Transaction task: file close with 1 actions
04-22 18:04:37.718 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: About to run action: 22. April, 18:04: WriteAction on characteristic: 3dda0003-957f-7d4a-34a6-74696673696d
04-22 18:04:37.719 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction: writing to characteristic: 3dda0003-957f-7d4a-34a6-74696673696d: 0x04 0x00 0x0a
04-22 18:04:37.760 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic write: 3dda0003-957f-7d4a-34a6-74696673696d (success)
04-22 18:04:37.762 15641  7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x84 0x00 0x0a 0x05
04-22 18:04:37.762 15641  7137 D AlarmsSetRequest: response: 4
04-22 18:04:37.763 15641  7137 I nodomain.freeyourgadget.gadgetbridge.util.GB: error setting alarms
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: errorjava.lang.RuntimeException: wrong closing status: VERIFICATION_FAIL   (5)
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil.file.FilePutRequest.handleResponse(FilePutRequest.java:152) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:478) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:780) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:41) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:472) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:306) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at android.os.Binder.execTransactInternal(Binder.java:1021) ~[na:0.0]
04-22 18:04:37.768 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: 	at android.os.Binder.execTransact(Binder.java:994) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: Error: AlarmsSetRequestjava.lang.RuntimeException: wrong closing status: VERIFICATION_FAIL   (5)
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil.file.FilePutRequest.handleResponse(FilePutRequest.java:152) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:478) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:780) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:41) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:472) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:306) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at android.os.Binder.execTransactInternal(Binder.java:1021) ~[na:0.0]
04-22 18:04:37.774 15641  7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: 	at android.os.Binder.execTransact(Binder.java:994) ~[na:0.0]
04-22 18:04:37.775 15641  7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: AlarmsSetRequest failed
04-22 18:04:37.775 15641  7137 D FossilHRWatchAdapter: AlarmsSetRequest finished
04-22 18:04:37.775 15641  7137 D FossilHRWatchAdapter: requestsQueue empty

I know, that the support is not finished yet, just to let you now.
gadgetbridge from frdroid 0.43.2

On my Fossil HR Collidier set arlarms doesn't work. I always get AlarmSetRequest failed. ``` 04-22 18:04:36.908 15641 15641 D nodomain.freeyourgadget.gadgetbridge.service.DeviceCommunicationService: Service startcommand: nodomain.freeyourgadget.gadgetbridge.devices.action.set_alarms 04-22 18:04:36.909 15641 15641 D FossilHRWatchAdapter: is connected: true 04-22 18:04:36.909 15641 15641 D FossilHRWatchAdapter: is connected: true 04-22 18:04:36.909 15641 15641 D FossilHRWatchAdapter: executing request: AlarmsSetRequest 04-22 18:04:36.909 15641 15641 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: about to add: 18:04:36: Transaction task: with 1 actions 04-22 18:04:36.911 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: About to run action: 22. April, 18:04: WriteAction on characteristic: 3dda0003-957f-7d4a-34a6-74696673696d 04-22 18:04:36.919 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction: writing to characteristic: 3dda0003-957f-7d4a-34a6-74696673696d: 0x03 0x00 0x0a 0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x00 0x16 0x00 0x00 0x00 04-22 18:04:36.921 717 717 D vendor.qti.bluetooth@1.0-ibs_handler: SerialClockVote: vote for UART CLK ON 04-22 18:04:36.922 717 717 D vendor.qti.bluetooth@1.0-wake_lock: Acquire wakelock is acquired 04-22 18:04:36.922 717 717 I vendor.qti.bluetooth@1.0-ibs_handler: DeviceWakeUp: Writing IBS_WAKE_IND 04-22 18:04:36.926 717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_WAKE_ACK: 0xFC 04-22 18:04:37.474 717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_WAKE_IND: 0xFD 04-22 18:04:37.475 717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Writing IBS_WAKE_ACK 04-22 18:04:37.517 717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_SLEEP_IND: 0xFE 04-22 18:04:37.624 717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Received IBS_WAKE_IND: 0xFD 04-22 18:04:37.624 717 29620 I vendor.qti.bluetooth@1.0-ibs_handler: ProcessIbsCmd: Writing IBS_WAKE_ACK 04-22 18:04:37.628 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic write: 3dda0003-957f-7d4a-34a6-74696673696d (success) 04-22 18:04:37.634 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x8a 0x00 0x0a 0x00 0x03 0x30 0x75 0x00 0x00 04-22 18:04:37.634 15641 7137 D AlarmsSetRequest: response: 10 04-22 18:04:37.657 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x83 0x00 0x0a 0x00 0x00 04-22 18:04:37.657 15641 7137 D AlarmsSetRequest: response: 3 04-22 18:04:37.659 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: about to add: 18:04:37: Transaction task: file upload with 1 actions 04-22 18:04:37.662 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: About to run action: 22. April, 18:04: WriteAction on characteristic: 3dda0004-957f-7d4a-34a6-74696673696d 04-22 18:04:37.664 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction: writing to characteristic: 3dda0004-957f-7d4a-34a6-74696673696d: 0x00 0x00 0x0a 0x02 0x00 0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x00 0xf9 0x9e 0x0e 0xff 0x1e 0x06 0x2b 0xc5 0xd3 0x75 04-22 18:04:37.669 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic write: 3dda0004-957f-7d4a-34a6-74696673696d (success) 04-22 18:04:37.715 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x88 0x00 0x0a 0x00 0x16 0x00 0x00 0x00 0x9c 0x1b 0x10 0xee 04-22 18:04:37.716 15641 7137 D AlarmsSetRequest: response: 8 04-22 18:04:37.717 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: about to add: 18:04:37: Transaction task: file close with 1 actions 04-22 18:04:37.718 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: About to run action: 22. April, 18:04: WriteAction on characteristic: 3dda0003-957f-7d4a-34a6-74696673696d 04-22 18:04:37.719 15641 29656 D nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction: writing to characteristic: 3dda0003-957f-7d4a-34a6-74696673696d: 0x04 0x00 0x0a 04-22 18:04:37.760 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic write: 3dda0003-957f-7d4a-34a6-74696673696d (success) 04-22 18:04:37.762 15641 7137 D nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue: characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x84 0x00 0x0a 0x05 04-22 18:04:37.762 15641 7137 D AlarmsSetRequest: response: 4 04-22 18:04:37.763 15641 7137 I nodomain.freeyourgadget.gadgetbridge.util.GB: error setting alarms 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: errorjava.lang.RuntimeException: wrong closing status: VERIFICATION_FAIL (5) 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil.file.FilePutRequest.handleResponse(FilePutRequest.java:152) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:478) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:780) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:41) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:472) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:306) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at android.os.Binder.execTransactInternal(Binder.java:1021) ~[na:0.0] 04-22 18:04:37.768 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: at android.os.Binder.execTransact(Binder.java:994) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: Error: AlarmsSetRequestjava.lang.RuntimeException: wrong closing status: VERIFICATION_FAIL (5) 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil.file.FilePutRequest.handleResponse(FilePutRequest.java:152) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:478) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:780) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:41) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:472) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:306) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at android.os.Binder.execTransactInternal(Binder.java:1021) ~[na:0.0] 04-22 18:04:37.774 15641 7137 E nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport: at android.os.Binder.execTransact(Binder.java:994) ~[na:0.0] 04-22 18:04:37.775 15641 7137 E nodomain.freeyourgadget.gadgetbridge.util.GB: AlarmsSetRequest failed 04-22 18:04:37.775 15641 7137 D FossilHRWatchAdapter: AlarmsSetRequest finished 04-22 18:04:37.775 15641 7137 D FossilHRWatchAdapter: requestsQueue empty ``` I know, that the support is not finished yet, just to let you now. gadgetbridge from frdroid 0.43.2
Owner

@Micha_Btz

This is unexpected, which firmware is that?

@Micha_Btz This is unexpected, which firmware is that?

DN1.0.2.17r.v3 tells me gadgetbridge.

DN1.0.2.17r.v3 tells me gadgetbridge.
Owner

@Micha_Btz

Confirmed.
I can try to downgrade and see if it works on an old version..

@Micha_Btz Confirmed. I can try to downgrade and see if it works on an old version..
Collaborator

Yup, old FW works, new doesn't.

**** me, can Fossil please stop changing formats between firmwares...

Yup, old FW works, new doesn't. **** me, can Fossil please stop changing formats between firmwares...
Owner

@Micha_Btz

Ok I will add a note to the wiki

DN1.0.2.17r.v3 (called v5 on the fossil watch itself for some reason) also disables rejecting call. so DN1.0.2.16 is the recommended version for Gadgetbridge for now.

@Micha_Btz Ok I will add a note to the wiki DN1.0.2.17r.v3 (called v5 on the fossil watch itself for some reason) also disables rejecting call. so DN1.0.2.16 is the recommended version for Gadgetbridge for now.
Collaborator

@ashimokawa the only idea I have is that the alarms file is encrypted, will test that out later.

@ashimokawa the only idea I have is that the alarms file is encrypted, will test that out later.

Version 4.3.0 of the official fossil watch definitely changed the firmware/ble api. The latest firmware is only installed once the phone app is upgraded.
Significantly, if you then re-install the previous 4.2.x phone app, the watch immediately downgrades again (kudos to fossil for building such an automatic firmware check / downgrade process, great foresight)

Version 4.3.0 of the official fossil watch definitely changed the firmware/ble api. The latest firmware is only installed once the phone app is upgraded. Significantly, if you then re-install the previous 4.2.x phone app, the watch immediately downgrades again (kudos to fossil for building such an automatic firmware check / downgrade process, great foresight)
Owner

@andrewleech

Good to know that they officially support that.

I used Gadgetbride to downgrade successfully ;)

@andrewleech Good to know that they officially support that. I used Gadgetbride to downgrade successfully ;)
Collaborator

With the new FW you can give the alarms names and subtitles, which is yet not supported by GB. Easy to patch though. Interesting what else they changed...

With the new FW you can give the alarms names and subtitles, which is yet not supported by GB. Easy to patch though. Interesting what else they changed...
Collaborator

aight, new alarms should work, although labels and messages are not settable yet.

aight, new alarms should work, although labels and messages are not settable yet.

Where can I find firmware files for downgrade?

In the fossil app II have found nothing.

Where can I find firmware files for downgrade? In the fossil app II have found nothing.
Collaborator

@Micha_Btz may I ask why you would want to downgrade? Alarms should work, and I would really appreciate someone else testing out the new firmware.

@Micha_Btz may I ask why you would want to downgrade? Alarms should work, and I would really appreciate someone else testing out the new firmware.

II don't need to. Than II will stay for test purposes.

II don't need to. Than II will stay for test purposes.
Collaborator

@Micha_Btz do alarms work for you now?

@Micha_Btz do alarms work for you now?

No, they didn't. I don't have downgraded. I'm on DN1.0.2.17r.v3

No, they didn't. I don't have downgraded. I'm on DN1.0.2.17r.v3
Collaborator

@Micha_Btz I commited a fix yesterday, could you pull and recompile?

@Micha_Btz I commited a fix yesterday, could you pull and recompile?

/source/Gadgetbridge [master|✔] $ adb install app/build/outputs/apk/debug/app-debug.apk
Performing Streamed Install
adb: failed to install app/build/outputs/apk/debug/app-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package nodomain.freeyourgadget.gadgetbridge signatures do not match previously installed version; ignoring!]

Seems I have to wait for f-droid to push up the relase.

/source/Gadgetbridge [master|✔] $ adb install app/build/outputs/apk/debug/app-debug.apk Performing Streamed Install adb: failed to install app/build/outputs/apk/debug/app-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package nodomain.freeyourgadget.gadgetbridge signatures do not match previously installed version; ignoring!] Seems I have to wait for f-droid to push up the relase.
Collaborator

or you could uninstall the f-droid version

or you could uninstall the f-droid version
Collaborator

after backuping the GB databse of course

after backuping the GB databse of course
Owner

0.43.3 has been released with the fix. Currently waiting for F-Droid to build.

0.43.3 has been released with the fix. Currently waiting for F-Droid to build.
izzy commented 1 year ago

after backuping the GB databse of course

Better "after backuping the GB database and copying that backup to a safe place of course". Else the backup gets removed on uninstall, IIRC.

> after backuping the GB databse of course Better "after backuping the GB database **and copying that backup to a safe place** of course". Else the backup gets removed on uninstall, IIRC.
Collaborator

@andrewleech could you elaborate in which ways the new Firmware changes the protocol?
Beyond the Alarm file I was not able to find any significant changes so far...

@andrewleech could you elaborate in which ways the new Firmware changes the protocol? Beyond the Alarm file I was not able to find any significant changes so far...

@dakhnod sorry I don't actually know of any specific changes, I haven't really investigated the raw ble api code inside the app.
I was basically taking the fact it enforced the downgrade for older apps as indication they themselves considered it a breaking change.

@dakhnod sorry I don't actually know of any specific changes, I haven't really investigated the raw ble api code inside the app. I was basically taking the fact it enforced the downgrade for older apps as indication they themselves considered it a breaking change.

Hey @dakhnod have you seen any kind of raw sensor / accelerometer data from the watch? As in, not just the calculated steps/calories/distance/etc?

I've been hunting though databases, Google fit interfaces and the BLE functional interface ( https://gitlab.com/alelec/fossil_smartwatches_alelec_android/-/blob/master/src/main/java_decomp/com/misfit/frameworks/buttonservice/IButtonConnectivity.java#L3138 ) but haven't found any particularly fine grain days sets.

Hey @dakhnod have you seen any kind of raw sensor / accelerometer data from the watch? As in, not just the calculated steps/calories/distance/etc? I've been hunting though databases, Google fit interfaces and the BLE functional interface ( https://gitlab.com/alelec/fossil_smartwatches_alelec_android/-/blob/master/src/main/java_decomp/com/misfit/frameworks/buttonservice/IButtonConnectivity.java#L3138 ) but haven't found any particularly fine grain days sets.
Collaborator

@andrewleech nope, haven't seen any of that.
Any activity data is indeed calculated on the watch.

There is of course the hardware log i haven't inspected yet. For some reason, Fossil fatches it every time. Never got to reverse engineering that though.
I am not even sure there is any code for deciphering the hardware log locally in the app anyway.

@andrewleech nope, haven't seen any of that. Any activity data is indeed calculated on the watch. There is of course the hardware log i haven't inspected yet. For some reason, Fossil fatches it every time. Never got to reverse engineering that though. I am not even sure there is any code for deciphering the hardware log locally in the app anyway.

@dakhnod cheers yeah I tried tracing where that file comes from, couldn't tell if it was generated in app or directly fetched. Interesting about it being constantly grabbed. I might take another look at the file itself, try to decode what's in it.

I'm hoping to add support for Sleep as Android, but need raw data to achieve this.

@dakhnod cheers yeah I tried tracing where that file comes from, couldn't tell if it was generated in app or directly fetched. Interesting about it being constantly grabbed. I might take another look at the file itself, try to decode what's in it. I'm hoping to add support for Sleep as Android, but need raw data to achieve this.
Collaborator

@andrewleech what do you mean by "sleep as android support"?

If you are talking about sleep data, I think that that is done by some sort of AI or classifier using heart rate and variability thtough the .so .

Everything the original algorithm needs is the activity files, even on the old Q's which did not have a heart rate sensor at all.

@andrewleech what do you mean by "sleep as android support"? If you are talking about sleep data, I think that that is done by some sort of AI or classifier using heart rate and variability thtough the .so . Everything the original algorithm needs is the activity files, even on the old Q's which did not have a heart rate sensor at all.

@dakhnod I mean adding integration with this app: https://sleep.urbandroid.org/
I had it with my last fitness band and quite liked it, but they use their own algorithms to quantify sleep which expect averaged accelerometer data in 10 second increments.
The sleep data as it's shown in the app is held in SleepSession class, in the FitnessData list returned by the BLE getSyncData() function.

https://gitlab.com/alelec/fossil_smartwatches_alelec_android/-/blob/master/src/main/java_decomp/com/fossil/fitness/FitnessData.java

I assumed the calculated fitness and sleep metrics all come directly from the watch

@dakhnod I mean adding integration with this app: https://sleep.urbandroid.org/ I had it with my last fitness band and quite liked it, but they use their own algorithms to quantify sleep which expect averaged accelerometer data in 10 second increments. The sleep data as it's shown in the app is held in SleepSession class, in the FitnessData list returned by the BLE getSyncData() function. https://gitlab.com/alelec/fossil_smartwatches_alelec_android/-/blob/master/src/main/java_decomp/com/fossil/fitness/FitnessData.java I assumed the calculated fitness and sleep metrics all come directly from the watch
Collaborator

@andrewleech I am familiar with the Fossil classes, and while the HR variability, steps and calories are calculated on the watch, the sleep data isn't.

As already stated, I am pretty sure the sleep data is generated through the native algorithm, since there is nothing in the activity file indicating any change in sleep state.

@andrewleech I am familiar with the Fossil classes, and while the HR variability, steps and calories are calculated on the watch, the sleep data isn't. As already stated, I am pretty sure the sleep data is generated through the native algorithm, since there is nothing in the activity file indicating any change in sleep state.

@dakhnod thanks for that info. I'll take a closer look for that, keen to see more about their algorithm. I'd also like to expose HR variability, I hadn't seen that before!

@dakhnod thanks for that info. I'll take a closer look for that, keen to see more about their algorithm. I'd also like to expose HR variability, I hadn't seen that before!
Collaborator

did you see the latest release? I made an algorithm to decode the activity data, it just can't deduce the sleep data.

did you see the latest release? I made an algorithm to decode the activity data, it just can't deduce the sleep data.

Yeah I only just saw the changelog a little earlier today, haven't taken a look at the changeset yet. If I figure out anything useful with the sleep data I'll definitely share here

Yeah I only just saw the changelog a little earlier today, haven't taken a look at the changeset yet. If I figure out anything useful with the sleep data I'll definitely share here

Alarm works with the new version fine.

Alarm works with the new version fine.

Yeah I only just saw the changelog a little earlier today, haven't taken a look at the changeset yet. If I figure out anything useful with the sleep data I'll definitely share here

@andrewleech integrate with sleep as android can be awesome, this is the only thing that I missed while moving from amazfit to fossil. maybe fellas from that thread can help us? https://forum.urbandroid.org/t/fossil-hybrid-hr-support/4134/6

> Yeah I only just saw the changelog a little earlier today, haven't taken a look at the changeset yet. If I figure out anything useful with the sleep data I'll definitely share here @andrewleech integrate with sleep as android can be awesome, this is the only thing that I missed while moving from amazfit to fossil. maybe fellas from that thread can help us? https://forum.urbandroid.org/t/fossil-hybrid-hr-support/4134/6

@dakhnod

If I understand it right, the activities are calculated on the watch itself.
While the heartrate is shown right, the steps are not calculated right.

For me the steps between the watch and gadgetbridge divers around the factor 5-6.
I'm on firmware DN1.0.2.17r.v3. Maybe it differs between firmware version.

@dakhnod If I understand it right, the activities are calculated on the watch itself. While the heartrate is shown right, the steps are not calculated right. For me the steps between the watch and gadgetbridge divers around the factor 5-6. I'm on firmware DN1.0.2.17r.v3. Maybe it differs between firmware version.

I am on the same firmware (DN1.0.2.17r.v3) and use Gadgetbridge 0.43.3.

Alarms work but no heartrate or steps are shown in gadgetbridge. Manual sync on the steps per week tab give a short FileEncryptRequestFailed (or similar, very short) immediately followed by GotConfig.

This is the debug log:

00:19:54.600 [Binder:3717_3] DEBUG n.f.g.s.b.BtLEQueue - characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x88 0x01 0x01 0x00 0x36 0x0a 0x02 0x00 0x62 0x39 0x98 0x6d
00:19:54.607 [Binder:3717_3] ERROR n.f.g.u.GB - error
java.lang.RuntimeException: crc: 2953790105   expected: 1838692706
	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil_hr.file.FileEncryptedGetRequest.handleResponse(FileEncryptedGetRequest.java:152) ~[na:0.0]
	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0]
	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0]
	at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0]
	at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:468) ~[na:0.0]
	at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:770) ~[na:0.0]
	at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:39) ~[na:0.0]
	at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:462) ~[na:0.0]
	at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:185) ~[na:0.0]
	at android.os.Binder.execTransact(Binder.java:731) ~[na:0.0]
00:19:54.612 [Binder:3717_3] ERROR n.f.g.s.d.q.QHybridSupport - Error: FileEncryptedGetRequest
java.lang.RuntimeException: crc: 2953790105   expected: 1838692706
	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil_hr.file.FileEncryptedGetRequest.handleResponse(FileEncryptedGetRequest.java:152) ~[na:0.0]
	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0]
	at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0]
	at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0]
	at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:468) ~[na:0.0]
	at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:770) ~[na:0.0]
	at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:39) ~[na:0.0]
	at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:462) ~[na:0.0]
	at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:185) ~[na:0.0]
	at android.os.Binder.execTransact(Binder.java:731) ~[na:0.0]
00:19:54.614 [Binder:3717_3] ERROR n.f.g.u.GB - FileEncryptedGetRequest failed
00:19:54.614 [Binder:3717_3] DEBUG FossilHRWatchAdapter - FileEncryptedGetRequest finished
00:19:54.614 [Binder:3717_3] DEBUG FossilHRWatchAdapter - is connected: true

Would it be possible to add the second time zone widget?

Regards

I am on the same firmware (DN1.0.2.17r.v3) and use Gadgetbridge 0.43.3. Alarms work but no heartrate or steps are shown in gadgetbridge. Manual sync on the steps per week tab give a short FileEncryptRequestFailed (or similar, very short) immediately followed by GotConfig. This is the debug log: ``` 00:19:54.600 [Binder:3717_3] DEBUG n.f.g.s.b.BtLEQueue - characteristic changed: 3dda0003-957f-7d4a-34a6-74696673696d value: 0x88 0x01 0x01 0x00 0x36 0x0a 0x02 0x00 0x62 0x39 0x98 0x6d 00:19:54.607 [Binder:3717_3] ERROR n.f.g.u.GB - error java.lang.RuntimeException: crc: 2953790105 expected: 1838692706 at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil_hr.file.FileEncryptedGetRequest.handleResponse(FileEncryptedGetRequest.java:152) ~[na:0.0] at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0] at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0] at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0] at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:468) ~[na:0.0] at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:770) ~[na:0.0] at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:39) ~[na:0.0] at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:462) ~[na:0.0] at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:185) ~[na:0.0] at android.os.Binder.execTransact(Binder.java:731) ~[na:0.0] 00:19:54.612 [Binder:3717_3] ERROR n.f.g.s.d.q.QHybridSupport - Error: FileEncryptedGetRequest java.lang.RuntimeException: crc: 2953790105 expected: 1838692706 at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil_hr.file.FileEncryptedGetRequest.handleResponse(FileEncryptedGetRequest.java:152) ~[na:0.0] at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.adapter.fossil.FossilWatchAdapter.onCharacteristicChanged(FossilWatchAdapter.java:496) ~[na:0.0] at nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport.onCharacteristicChanged(QHybridSupport.java:679) ~[na:0.0] at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:611) ~[na:0.0] at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:468) ~[na:0.0] at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:770) ~[na:0.0] at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:39) ~[na:0.0] at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:462) ~[na:0.0] at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:185) ~[na:0.0] at android.os.Binder.execTransact(Binder.java:731) ~[na:0.0] 00:19:54.614 [Binder:3717_3] ERROR n.f.g.u.GB - FileEncryptedGetRequest failed 00:19:54.614 [Binder:3717_3] DEBUG FossilHRWatchAdapter - FileEncryptedGetRequest finished 00:19:54.614 [Binder:3717_3] DEBUG FossilHRWatchAdapter - is connected: true ``` Would it be possible to add the second time zone widget? Regards
Owner

@Micha_Btz

I can confirm that steps do not work unless walking reaaaly sloow.
Judging from the code it cannot work, but I have no idea how to fix it yet.

@Micha_Btz I can confirm that steps do not work unless walking reaaaly sloow. Judging from the code it cannot work, but I have no idea how to fix it yet.
Owner

@Micha_Btz

Gadgetbridge 0.44.0 fixed the problem with steps, at least from my tests.

@Micha_Btz Gadgetbridge 0.44.0 fixed the problem with steps, at least from my tests.

@ashimokawa Step count is now working right. Sadly the past steps are not corrected, but it is not tragic.

@ashimokawa Step count is now working right. Sadly the past steps are not corrected, but it is not tragic.

Can confirm stepare fixed for me to. Thanks

Can confirm stepare fixed for me to. Thanks

..err, rather, steps are fixed for me too.

..err, rather, steps are fixed for me too.

Is there any documentation on custom actions and widgets?
I was hoping to connect this up to Tasker or Easer, both for setting the watch activities texts and for starting tasks from my watch, but sadly i can not get these working.
In particulair, looking at: https://www.reddit.com/r/FossilHybrids/comments/en03r9/q_hr_hacks_and_custom_widgets/

Is there any documentation on custom actions and widgets? I was hoping to connect this up to Tasker or Easer, both for setting the watch activities texts and for starting tasks from my watch, but sadly i can not get these working. In particulair, looking at: https://www.reddit.com/r/FossilHybrids/comments/en03r9/q_hr_hacks_and_custom_widgets/

@controlk this might help with custom actions: #1751

I haven't experimented with custom widgets yet.

@controlk this might help with custom actions: https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/1751#issuecomment-50206 I haven't experimented with custom widgets yet.
Collaborator

@controlk can you at least create a widget that displays a fixed text?
For that you need to create a widget. The name of that widget is only for cosmetic purposes.
Next, that widget needs to have elements. The name of the element is used later to reference that element through intents.

laslty, you need to set the upper/left... widget to your custom widget.

If that works, you can send an intent to change the elements. The extra key looks like EXTRA_WIDGET_ID_widgetidhere
key is the new value.

@controlk can you at least create a widget that displays a fixed text? For that you need to create a widget. The name of that widget is only for cosmetic purposes. Next, that widget needs to have elements. The name of the element is used later to reference that element through intents. laslty, you need to set the upper/left... widget to your custom widget. If that works, you can send an intent to change the elements. The extra key looks like EXTRA_WIDGET_ID_widgetidhere key is the new value.

does anyone know if there is any option to trigger a tasker task when the alarm is on using gadgerbridge on the fossil?

does anyone know if there is any option to trigger a tasker task when the alarm is on using gadgerbridge on the fossil?
Collaborator

@asafb26 nope, I don't think so, although I haven't had a closer look at the latest FW.

@asafb26 nope, I don't think so, although I haven't had a closer look at the latest FW.

I would love some kind of documentation for the widgets. I tried fixed text and it just says "ImageSentRequest Failed" as a toast when setting the custom widget to any cordinal direction.

widget name:
* "House Temp"

elements:
* label: "TEMP"
* temp: "78"
Device Info:
* F-Droid Gadgetbridge (version: 0.44.0)
* Fossil Hybrid HR Collider (firmware: DN1.0.2.17r.v5)
* Pixel 3 (running andrioid 10)

I can't upload the file type log or txt (probably a restricion on new accounts). Here is my log if it is helpful.

I would love some kind of documentation for the widgets. I tried [fixed text](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/1751#issuecomment-58562) and it just says "ImageSentRequest Failed" as a toast when setting the custom widget to any cordinal direction. ``` widget name: * "House Temp" elements: * label: "TEMP" * temp: "78" ``` ``` Device Info: * F-Droid Gadgetbridge (version: 0.44.0) * Fossil Hybrid HR Collider (firmware: DN1.0.2.17r.v5) * Pixel 3 (running andrioid 10) ``` I can't upload the file type log or txt (probably a restricion on new accounts). Here is my [log](https://pastebin.com/UzjG6xb9) if it is helpful.
Collaborator

@Barryngton, yeah, it just randomly starts working. dont't know why yet...

@Barryngton, yeah, it just randomly starts working. dont't know why yet...

Wow, okay, talk about random. It works if I set two or more to custom widgets or spam applying a custom widget to bottom or right. Now that I can get them to show up, I'm trying to send an intent via Tasker, and have the following:

My Custom Widget
- widget name
   * "House Temp"
- elements
   * label: "TMP"
   * temp: "--°F"

Send Intent
- Action: "nodomain.freeyourgadget.gadgetbridge.Q_SET_WIDGET_CONTENT"
- Cat: "Default"
- Mime Type: blank
- Data: blank
- Extra: "EXTRA_WIDGET_ID_temp='78°F'"
- Target: "Activity"

I have no idea what to use as the action as I have never programmed an app for android and have no idea how to interpret intents and things...

Wow, okay, talk about random. It works if I set two or more to custom widgets or spam applying a custom widget to bottom or right. Now that I can get them to show up, I'm trying to send an intent via Tasker, and have the following: ``` My Custom Widget - widget name * "House Temp" - elements * label: "TMP" * temp: "--°F" Send Intent - Action: "nodomain.freeyourgadget.gadgetbridge.Q_SET_WIDGET_CONTENT" - Cat: "Default" - Mime Type: blank - Data: blank - Extra: "EXTRA_WIDGET_ID_temp='78°F'" - Target: "Activity" ``` I have no idea what to use as the action as I have never programmed an app for android and have no idea how to interpret intents and things...
Collaborator

@Barryngton try this as extra:
EXTRA_WIDGET_ID_temp:123 and leave all the other fields empty

@Barryngton try this as extra: EXTRA_WIDGET_ID_temp:123 and leave all the other fields empty

Excellent! Got it working! Feels good. Working settings in Tasker are as follows for anyone interested:

Send Intent
- Action: "nodomain.freeyourgadget.gadgetbridge.Q_SET_WIDGET_CONTENT"
- Cat: "None"
- Mime_Type: blank
- Data: blank
- Extra: "EXTRA_WIDGET_ID_temp:78°F"
- Target: "Broadcast Receiver"

I didn't account for the colon (":") being a split (tried every combo with the equals). Thanks again, sir!

Excellent! Got it working! Feels good. Working settings in Tasker are as follows for anyone interested: ``` Send Intent - Action: "nodomain.freeyourgadget.gadgetbridge.Q_SET_WIDGET_CONTENT" - Cat: "None" - Mime_Type: blank - Data: blank - Extra: "EXTRA_WIDGET_ID_temp:78°F" - Target: "Broadcast Receiver" ``` I didn't account for the colon (":") being a split (tried every combo with the equals). Thanks again, sir!

Thanks @dakhnod and @Barryngton. Got my first custom widget (next appointment) working!

Thanks @dakhnod and @Barryngton. Got my first custom widget (next appointment) working!
Collaborator

I would like to ask everyone here for help.

I noticed that sometimes my contrast on the EInk would be extremely bad, to the point where the text became really unreadable.

Colling down the watch in the freezer for a few minutes verified that the contrast and image quality greatly depends on the temperature of the watch/screen.

Does anyone have similar experiences? If yes, could you please also try to cool down your watch and check then?

I would like to ask everyone here for help. I noticed that sometimes my contrast on the EInk would be extremely bad, to the point where the text became really unreadable. Colling down the watch in the freezer for a few minutes verified that the contrast and image quality greatly depends on the temperature of the watch/screen. Does anyone have similar experiences? If yes, could you please also try to cool down your watch and check then?
Owner

@dakhnod

I did not have that. But I did not go out with the fossil lately.
Do you wear it outside in bright sunlight?

On my watch the display is also not so great. I can see shadows of previously displayed text when the background is black. This effect is normal for epaper, but it seems to be "a bit worse than normal" on the Fossil.

It would be strange if the effect you have is normal, since ebook readers are used outside and I have not read anything about bleaching in sunlight...

Nevertheless, I will wear my watch next time we have a warm >5025°C day and try provoke the effect.

@dakhnod I did not have that. But I did not go out with the fossil lately. Do you wear it outside in bright sunlight? On my watch the display is also not so great. I can see shadows of previously displayed text when the background is black. This effect is normal for epaper, but it seems to be "a bit worse than normal" on the Fossil. It would be strange if the effect you have is normal, since ebook readers are used outside and I have not read anything about bleaching in sunlight... Nevertheless, I will wear my watch next time we have a warm >~~50~~25°C day and try provoke the effect.

I haven't had this issue either. I think this may require a warranty replacement? https://reddit.com/r/FossilHybrids/comments/fxwmb2/i_mentioned_my_watchs_face_was_faded_hard_to_read/

I haven't had this issue either. I think this may require a warranty replacement? https://reddit.com/r/FossilHybrids/comments/fxwmb2/i_mentioned_my_watchs_face_was_faded_hard_to_read/
izzy commented 1 year ago

I will wear my watch next time we have a warm >50°C day and try provoke the effect.

If some digital archeologist dig that up in a few hundred years (provided man-kind still exists then), they think they misjudged the state of climate crisis for 2020 🙊

> I will wear my watch next time we have a warm >50°C day and try provoke the effect. If some digital archeologist dig that up in a few hundred years (provided man-kind still exists then), they think they misjudged the state of climate crisis for 2020 :speak_no_evil:

I wear the watch daily and I don't have such a behavior.

I wear the watch daily and I don't have such a behavior.

Does the watch show the music title to you? Stop, back and forward works.
Depends show title on the music player app? I use Vinyl Music Player from f-droid.

https://www.pctipp.ch/img/1/4/4/8/4/6/8/Fossil_Charter_HR_hybrid_w960_h720.jpg

Does the watch show the music title to you? Stop, back and forward works. Depends show title on the music player app? I use Vinyl Music Player from f-droid. https://www.pctipp.ch/img/1/4/4/8/4/6/8/Fossil_Charter_HR_hybrid_w960_h720.jpg

Is Vinyl in the notification blacklist?

Is Vinyl in the notification blacklist?

@hackoder - you are right, sorry :-()

@hackoder - you are right, sorry :-()

@Micha_Btz ran into the same issue a couple of months ago :)

@Micha_Btz ran into the [same issue](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/1751#issuecomment-53907) a couple of months ago :)

@TinCan Did you solve your problem somehow? I got the same, I cannot see any steps/hr data and always get those FileEncryptRequestFailed notifications.

Has anyone an idea? Did my key get invalidated over time maybe?

@TinCan Did you solve your problem somehow? I got the same, I cannot see any steps/hr data and always get those FileEncryptRequestFailed notifications. Has anyone an idea? Did my key get invalidated over time maybe?
Owner

FYI the latest firmware is not compatible with Gadgetbridge, do not update yet.

FYI the latest firmware is not compatible with Gadgetbridge, do not update yet.

My watch doesn't want to draw anything more. Change the widgets or some other settings doesn't led to redraw. I don't know what to do. The only thing is get a newer firmware.

Which is the last knwon working one? Now I have DN1.0.2.17rv3.

The collection of data works as I see in GB. But incoming calls and notifications aren't send to the watch

My watch doesn't want to draw anything more. Change the widgets or some other settings doesn't led to redraw. I don't know what to do. The only thing is get a newer firmware. Which is the last knwon working one? Now I have DN1.0.2.17rv3. The collection of data works as I see in GB. But incoming calls and notifications aren't send to the watch
Owner

@Micha_Btz

Long press the upper button.

1.0.2.17 should work fine.

Starting from .18 the firmware became modular so you have to flash other files, otherwise you will loose music playback, weather etc. Those are flashable apps, pebble style without SDK.

If you update with the official app it should be safe to update till 1.0.2.19

@Micha_Btz Long press the upper button. 1.0.2.17 should work fine. Starting from .18 the firmware became modular so you have to flash other files, otherwise you will loose music playback, weather etc. Those are flashable apps, pebble style without SDK. If you update with the official app it should be safe to update till 1.0.2.19

Long press the upperbutton works, but I don't know why... :-)
Maybe a function that I dindn't discovered before.

Long press the upperbutton works, but I don't know why... :-) Maybe a function that I dindn't discovered before.

Hi there,

I use GB and my HR to control music and volume while listening. But I can't change volume when I listen to podcasts via AntennaPod.

Did someone know why?

Hi there, I use GB and my HR to control music and volume while listening. But I can't change volume when I listen to podcasts via AntennaPod. Did someone know why?

I'm picking up a Hybrid HR soon and see on the wiki page that later firmwares are more modular and don't work as well, is there an easy way to ensure I end up on DN1.0.2.16r.v9 when setting up the watch for the first time?

Thanks,

I'm picking up a Hybrid HR soon and see on the wiki page that later firmwares are more modular and don't work as well, is there an easy way to ensure I end up on DN1.0.2.16r.v9 when setting up the watch for the first time? Thanks,

Wondering if anyone has tried with the new firmware; seems to have quite a few changes. Watchfaces are more freeform now, and the HR monitor can be turned off if/when not in use.

Wondering if anyone has tried with the new firmware; seems to have quite a few changes. Watchfaces are more freeform now, and the HR monitor can be turned off if/when not in use.
Collaborator

@tomatosoup Currently there is no way of setting up the watch without using the official fossil app, which will upgrade your watch. That should upgrade your watch to 1.0.2.19, which works with GB. All you need is your pairing key. Even if the FW doesn't match after that you can always downgrade using GB.

@hackoder nah, haven't tried yet, but I heard that a few things don't work with GB.
AFAIK you can put stickers and stuff on your watchface, but thats more a feature of the Fossil app then the FW, since nobody was stopping you to upload an arbitary Background using GB...

@tomatosoup Currently there is no way of setting up the watch without using the official fossil app, which will upgrade your watch. That should upgrade your watch to 1.0.2.19, which works with GB. All you need is your pairing key. Even if the FW doesn't match after that you can always downgrade using GB. @hackoder nah, haven't tried yet, but I heard that a few things don't work with GB. AFAIK you can put stickers and stuff on your watchface, but thats more a feature of the Fossil app then the FW, since nobody was stopping you to upload an arbitary Background using GB...

@dakhnod I'm sticking with my older firmware for now. The biggest benefit for me in the newer firmware isn't the new watchfaces but turning the HR monitor off which can extend battery life even further.

What is the currently suggested way of updating the firmware to the latest supported version (1.0.2.19)? Wouldn't updating using the official app bring someone to the latest version with no way to downgrade? AFAIK, no firmware files are available to flash using GB.

One bug that I've noticed (which I think is on the GB side) is that when a notification is dismissed on the phone, there's a refresh on the watch's screen, even if the notification isn't open on the watch. IMO it adds up to a lot of extra refreshes on the watch which presumably take battery life.

@dakhnod I'm sticking with my older firmware for now. The biggest benefit for me in the newer firmware isn't the new watchfaces but turning the HR monitor off which can extend battery life even further. What is the currently suggested way of updating the firmware to the latest supported version (1.0.2.19)? Wouldn't updating using the official app bring someone to the latest version with no way to downgrade? AFAIK, no firmware files are available to flash using GB. One bug that I've noticed (which I think is on the GB side) is that when a notification is dismissed on the phone, there's a refresh on the watch's screen, even if the notification isn't open on the watch. IMO it adds up to a lot of extra refreshes on the watch which presumably take battery life.

Does anyone know what would be the work involved to support the currently latest firmware (1.0.2.20r.v5)? I really want to switch to GB, but I kinda got addicted to the freeform watchfaces. :)
I'd like to help, but I have no idea where to start.

Does anyone know what would be the work involved to support the currently latest firmware (1.0.2.20r.v5)? I really want to switch to GB, but I kinda got addicted to the freeform watchfaces. :) I'd like to help, but I have no idea where to start.

I tried to connect my fully up to date Fossil Collider HR to GadgetBridge 0.51.0 today, but wasn't successful. After copying the key from the modded Fossil app (4.6.0.3), I pasted it in GB and tried to connect. GB responded with just the following message in a toast: "Unable to connect, can't recognize the device type".

After that, I downgraded my watch to DN1.0.2.17r.v5 using modded app 4.3.0.5, because that firmware version is supposed to work. Copied the new key (it changed somewhere along the way), pasted in GB, tried to connect. Sadly, the same error message from GB again.

So it seems that there is a bug somewhere that doesn't allow GB to connect during initial setup. How can I help solve this?

I tried to connect my fully up to date Fossil Collider HR to GadgetBridge 0.51.0 today, but wasn't successful. After copying the key from the modded Fossil app (4.6.0.3), I pasted it in GB and tried to connect. GB responded with just the following message in a toast: "Unable to connect, can't recognize the device type". After that, I downgraded my watch to DN1.0.2.17r.v5 using modded app 4.3.0.5, because that firmware version is supposed to work. Copied the new key (it changed somewhere along the way), pasted in GB, tried to connect. Sadly, the same error message from GB again. So it seems that there is a bug somewhere that doesn't allow GB to connect during initial setup. How can I help solve this?

FYI @dakhnod I upgraded from 0.52 to 0.53 and could no longer connect to my watch (was stuck at 'Connecting'). I suspect it may have something to do with the app enumeration at connect; will confirm once I have a bit more time to test it out.

FYI @dakhnod I upgraded from 0.52 to 0.53 and could no longer connect to my watch (was stuck at 'Connecting'). I suspect it may have something to do with the app enumeration at connect; will confirm once I have a bit more time to test it out.
Collaborator

Everyone, my HR SDK is out, which allows developing apps natively for the watch.
Feel free to open issue/contact me.

@hackoder I also tested 53.1, and could connect successfully...

Everyone, my [HR SDK](https://github.com/dakhnod/Fossil-HR-SDK) is out, which allows developing apps natively for the watch. Feel free to open issue/contact me. @hackoder I also tested 53.1, and could connect successfully...
Collaborator

@arjan5 sorry for being late, did you figure anything out? Please be kind enough to quote me directly when replying, else I don't receive any mails...

@arjan5 sorry for being late, did you figure anything out? Please be kind enough to quote me directly when replying, else I don't receive any mails...

@dakhnod no problem. No, I didn't figure it out, I went back to the (modded) Fossil app after trying the steps in my previous comment. It would be great if you have any clue or pointers to get me started. There doesn't seem to be any information online on how to get this working.

@dakhnod no problem. No, I didn't figure it out, I went back to the (modded) Fossil app after trying the steps in my previous comment. It would be great if you have any clue or pointers to get me started. There doesn't seem to be any information online on how to get this working.

I noticed that I cannot connect to the reccomended v17 firmware but the v19 works OK

I noticed that I cannot connect to the reccomended v17 firmware but the v19 works OK

For me GB stays at connection and don't get one. 2.17v3.

I attatch a log.

For me GB stays at connection and don't get one. 2.17v3. I attatch a log.

I noticed that I cannot connect to the reccomended v17 firmware but the v19 works OK

@Tobie_de_Beer how do you switch between various firmwares?

> I noticed that I cannot connect to the reccomended v17 firmware but the v19 works OK @Tobie_de_Beer how do you switch between various firmwares?

You install different versions of the Android app it then updates the watch to whatever version. Some of that info is in the Wiki. I'm using DN1.0.2.19r.v7 that comes from the app 4.5.0, actually I'm using the modded app from Coronafire on Redit

You install different versions of the Android app it then updates the watch to whatever version. Some of that info is in the Wiki. I'm using DN1.0.2.19r.v7 that comes from the app 4.5.0, actually I'm using the modded app from Coronafire on Redit

Finally! I got GB to connect!
Leaving the details here for others.

GadgetBridge 0.53.0 freshly installed from F-Droid
Fossil Hybrid HR Collider with firmware DN1.0.2.21r.v1

What works:

  • Health data
  • Notifications
  • Accept/decline call
  • Calibration
  • Weather (using instructions from here)
  • Setting physical buttons
  • Setting actions (commute destinations)
  • Music information and control (after whitelisting notifications from music apps)

What doesn't work:

  • Setting background/watchface
  • Setting widgets
  • Sync notification dismissals from phone to watch (edit: fixed in 0.56)
  • Stable connection; after a short time everything that needs a connection stops working and a disconnect/reconnect of the watch is necessary to get it working again (GB still showed "connected" though) (edit: fixed in 0.54)

Note: GB froze everytime while scanning for new devices when a regular Bluetooth Mi band was in range. I tried it today without any other Bluetooth device in range, and scanning and connection to the HR worked perfectly.

Tagging @dakhnod for feedback on what isn't working.

Finally! I got GB to connect! Leaving the details here for others. GadgetBridge 0.53.0 freshly installed from F-Droid Fossil Hybrid HR Collider with firmware DN1.0.2.21r.v1 What works: * Health data * Notifications * Accept/decline call * Calibration * Weather (using instructions from [here](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Weather)) * Setting physical buttons * Setting actions (commute destinations) * Music information and control (after whitelisting notifications from music apps) What doesn't work: * Setting background/watchface * Setting widgets * Sync notification dismissals from phone to watch ***(edit: fixed in 0.56)*** * Stable connection; after a short time everything that needs a connection stops working and a disconnect/reconnect of the watch is necessary to get it working again (GB still showed "connected" though) ***(edit: fixed in 0.54)*** Note: GB froze everytime while scanning for new devices when a regular Bluetooth Mi band was in range. I tried it today without any other Bluetooth device in range, and scanning and connection to the HR worked perfectly. Tagging @dakhnod for feedback on what isn't working.

@dakhnod An addition to my previous comment. I'm pretty certain the connection is very stable, but GB just stops syncing anything right after the first notification is displayed on the watch. It currently needs a reconnect before everything works again.

I'd like to help debug this, but I have zero experience with GB, let alone debugging it. If I can help, please give me some pointers to get started.

Update: this issue seems to be less by running Gadgetbridge 0.54.1 from source.

@dakhnod An addition to my previous comment. I'm pretty certain the connection is very stable, but GB just stops syncing anything right after the first notification is displayed on the watch. It currently needs a reconnect before everything works again. I'd like to help debug this, but I have zero experience with GB, let alone debugging it. If I can help, please give me some pointers to get started. Update: this issue seems to be less by running Gadgetbridge 0.54.1 from source.

@dakhnod Are you or is anyone else working actively on supporting newer firmwares? I did some preparing to get started on it, but I still need help, mainly with these questions:

  • I created and retrieved the bluetooth HCI snoop log containing the traffic of the newest official app and firmware. How do I interpret it, given that the packets are encrypted? Is there a script or Wireshark guide to get to the actual watch commands?
  • Is there some kind of protocol definition or documentation on the exact traffic between the app and the watch? If not, where in the Gadgetbridge source would I find details on it?
@dakhnod Are you or is anyone else working actively on supporting newer firmwares? I did some preparing to get started on it, but I still need help, mainly with these questions: * I created and retrieved the bluetooth HCI snoop log containing the traffic of the newest official app and firmware. How do I interpret it, given that the packets are encrypted? Is there a script or Wireshark guide to get to the actual watch commands? * Is there some kind of protocol definition or documentation on the exact traffic between the app and the watch? If not, where in the Gadgetbridge source would I find details on it?

I have tested version 0.54.1 and completly remove the watch scan and ad again.
Scanning and pairing works, but the watch still doesn't connect.

I have tested version 0.54.1 and completly remove the watch scan and ad again. Scanning and pairing works, but the watch still doesn't connect.

I have tested version 0.54.1 and completly remove the watch scan and ad again.
Scanning and pairing works, but the watch still doesn't connect.

@Micha_Btz Have you entered the secret key, as described on the wiki page?

> I have tested version 0.54.1 and completly remove the watch scan and ad again. > Scanning and pairing works, but the watch still doesn't connect. @Micha_Btz Have you entered the secret key, as described on the [wiki page](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Fossil-Hybrid-HR)?

sure, as mentioned, the pairing works.

sure, as mentioned, the pairing works.

@dakhnod just FYI: I captured and analyzed notification dismissals from phone to watch, and intend to try to implement them in GB soon.
Edit: never mind, it was easy: #2219

@dakhnod just FYI: I captured and analyzed notification dismissals from phone to watch, and intend to try to implement them in GB soon. Edit: never mind, it was easy: [#2219](https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2219)
Owner

@Micha_Btz

"Pairing" and "Connecting" is the same thing in Gadgetbridge when using a preshared key. The only difference is that when pairing there is a bluetooth scan and the device will be put in the database.

Please try to open your android bluetooth settings, scan for new devices and tap on it to pair in android, maybe connecting works then....

The logcat unfortunately did not contain anything from Gadgetbridge

@arjan5

For the new firmware I found out what was breaking it completely with Gadgetbridge for me. It was the "last notification icon widget" when trying to set the icon all communication was broken. I will push code tonight to prevent this and then hopefully have some time to look into supporting the new firmware.

@Micha_Btz "Pairing" and "Connecting" is the same thing in Gadgetbridge when using a preshared key. The only difference is that when pairing there is a bluetooth scan and the device will be put in the database. Please try to open your android bluetooth settings, scan for new devices and tap on it to pair in android, maybe connecting works then.... The logcat unfortunately did not contain anything from Gadgetbridge @arjan5 For the new firmware I found out what was breaking it completely with Gadgetbridge for me. It was the "last notification icon widget" when trying to set the icon all communication was broken. I will push code tonight to prevent this and then hopefully have some time to look into supporting the new firmware.

Hello guys,
I'm using a hybrid HR collider running DN1.0.2.21r.v1 and gadgetbrisge 0.55.0 .

The watch and he app seem to work fine most of the time but unfortunately from time to time I'm noticing some disconnections (most of the time after waking up in the morning) even if the watch and the phone are close and after which gadgetbridge and the phone don't reconnect automatically.
I then have to force a reconnection from gadgetbridge, and that even if the "Reconnect automatically" option is checked in gadgetbridge settings menu.

That's a big issue for me because I've set gadgetbridge to pass some important notifications to, in case, wake me up during the night.

Do you guys know how I could debug the problem?
Thank you!

Hello guys, I'm using a hybrid HR collider running DN1.0.2.21r.v1 and gadgetbrisge 0.55.0 . The watch and he app seem to work fine most of the time but unfortunately from time to time I'm noticing some disconnections (most of the time after waking up in the morning) even if the watch and the phone are close and after which gadgetbridge and the phone don't reconnect automatically. I then have to force a reconnection from gadgetbridge, and that even if the "Reconnect automatically" option is checked in gadgetbridge settings menu. That's a big issue for me because I've set gadgetbridge to pass some important notifications to, in case, wake me up during the night. Do you guys know how I could debug the problem? Thank you!

Hi @mrjumbo

I'm using the same combination of versions, and have not seen disconnects during the night or at other moments. However, I have seen that when the watch gets disconnected from my phone because I went out of range (on another floor or outside for instance), sometimes the automatic reconnect doesn't work. Most of the times it does, though.

So I agree that there seems to be an issue with the automatic reconnect function that prevents it from working 100% of the time.

I'm not sure how to debug it, especially since it's something that doesn't happen a lot for me. I'm happy to take a look at the automatic reconnection code, at least to learn how it's supposed to work.

Hi @mrjumbo I'm using the same combination of versions, and have not seen disconnects during the night or at other moments. However, I have seen that when the watch gets disconnected from my phone because I went out of range (on another floor or outside for instance), sometimes the automatic reconnect doesn't work. Most of the times it does, though. So I agree that there seems to be an issue with the automatic reconnect function that prevents it from working 100% of the time. I'm not sure how to debug it, especially since it's something that doesn't happen a lot for me. I'm happy to take a look at the automatic reconnection code, at least to learn how it's supposed to work.

Android BLE auto-reconnect is a function of the system BLE stack, not really something that an app will be able to influence. If you google connectGatt() auto reconnect problems you find find a lot of references, but basically it works well in lots of devices but is quite unreliable on many more. The combination of hardware versions, software versions and battery saving measures makes for a lot of broken BLE apps and devices. (Fwiw iOS has had far more/worse BLE issues than Android of late, bit that's a different topic). For reconnect issues, make sure you've updated your phone as much as possible, turn off power saving on gadgetbridge and any BLE services in your app list, and reboot your phone. And then ask Google / your phone manufacturer to fix it :-(

Android BLE auto-reconnect is a function of the system BLE stack, not really something that an app will be able to influence. If you google `connectGatt() auto reconnect problems` you find find a lot of references, but basically it works well in lots of devices but is quite unreliable on many more. The combination of hardware versions, software versions and battery saving measures makes for a lot of broken BLE apps and devices. (Fwiw iOS has had far more/worse BLE issues than Android of late, bit that's a different topic). For reconnect issues, make sure you've updated your phone as much as possible, turn off power saving on gadgetbridge and any BLE services in your app list, and reboot your phone. And then ask Google / your phone manufacturer to fix it :-(

Thank you @andrewleech for your explanation. However, it seems that the "automatically reconnect" setting in Gadgetbridge is actually part of a workaround implemented for those issues. Sadly, as far as I understand from the source code, that workaround is currently only implemented for Pebble devices, not others.

Thank you @andrewleech for your explanation. However, it seems that the "automatically reconnect" setting in Gadgetbridge is actually part of a workaround implemented for those issues. Sadly, as far as I understand from the source code, that workaround is currently only implemented for Pebble devices, not others.
Owner

@arjan5
I think it is just implemented for the pebble in a different way since it uses classic bluetooth. It should also work on fossil but it seems not reliably. I can try to debug this.

Anyway, it might also help to turn on companion device pairing and removing the fossil from android bluetooth settings, then pair again.

This way "find lost device" will work an android 10, maybe it also magically fixes something else(?)

@arjan5 I think it is just implemented for the pebble in a different way since it uses classic bluetooth. It should also work on fossil but it seems not reliably. I can try to debug this. Anyway, it might also help to turn on companion device pairing and removing the fossil from android bluetooth settings, then pair again. This way "find lost device" will work an android 10, maybe it also magically fixes something else(?)

Thank you @ashimokawa
I didn't even know about that option yet. I've done that now, and will monitor the results.

@mrjumbo you should try that too. Make sure you follow these steps:

  • unpair in Android
  • disconnect in Gadgetbridge
  • add new device in Gadgetbridge (without removing the 'old' one)
  • when scanning is finished, pair/connect your watch

This will pair with the new method, without removing your existing data or settings.

Thank you @ashimokawa I didn't even know about that option yet. I've done that now, and will monitor the results. @mrjumbo you should try that too. Make sure you follow these steps: - unpair in Android - disconnect in Gadgetbridge - add new device in Gadgetbridge (without removing the 'old' one) - when scanning is finished, pair/connect your watch This will pair with the new method, without removing your existing data or settings.

Okay... The first time I went out of reach and came back, my watch remained disconnected. I had to tap the card in Gadgetbridge to connect to the watch again.

Okay... The first time I went out of reach and came back, my watch remained disconnected. I had to tap the card in Gadgetbridge to connect to the watch again.

Thank you @ashimokawa
I didn't even know about that option yet. I've done that now, and will monitor the results.

@mrjumbo you should try that too. Make sure you follow these steps:

  • unpair in Android
  • disconnect in Gadgetbridge
  • add new device in Gadgetbridge (without removing the 'old' one)
  • when scanning is finished, pair/connect your watch

This will pair with the new method, without removing your existing data or settings.

I did re-pair the watch with the "alternative method" but, sadly, the "find lost device" still doesn't work (I guess the watch is supposed to vibrate?).

I will also keep monitoring the connection to the watch (I'm running android 10 if it helps).
I also have a Lenovo watch 9, and I will try to see how it behaves with the same phone (I've always used with another mobile with android 7.1 and it was warking fine).

But, as when we find watch disconnected we are able to manually connecting to it from the gadgetbridge menu, wouldn't a dirty hack that regularly monitors the connections and, in case, automatically establish it again be enough? Is that what "Reconnect automatically" should do?

Thank you!

> Thank you @ashimokawa > I didn't even know about that option yet. I've done that now, and will monitor the results. > > @mrjumbo you should try that too. Make sure you follow these steps: > - unpair in Android > - disconnect in Gadgetbridge > - add new device in Gadgetbridge (without removing the 'old' one) > - when scanning is finished, pair/connect your watch > > This will pair with the new method, without removing your existing data or settings. I did re-pair the watch with the "alternative method" but, sadly, the "find lost device" still doesn't work (I guess the watch is supposed to vibrate?). I will also keep monitoring the connection to the watch (I'm running android 10 if it helps). I also have a Lenovo watch 9, and I will try to see how it behaves with the same phone (I've always used with another mobile with android 7.1 and it was warking fine). But, as when we find watch disconnected we are able to manually connecting to it from the gadgetbridge menu, wouldn't a dirty hack that regularly monitors the connections and, in case, automatically establish it again be enough? Is that what "Reconnect automatically" should do? Thank you!

Okay... The first time I went out of reach and came back, my watch remained disconnected. I had to tap the card in Gadgetbridge to connect to the watch again.

I also just went out of reach from the phone and once back the watch remained disconnected.
The strange thing is that during the past days in the same situation it was regularly connecting back (I was rather finding the watch disconnected sometime after waking up).

> Okay... The first time I went out of reach and came back, my watch remained disconnected. I had to tap the card in Gadgetbridge to connect to the watch again. I also just went out of reach from the phone and once back the watch remained disconnected. The strange thing is that during the past days in the same situation it was regularly connecting back (I was rather finding the watch disconnected sometime after waking up).

Yeah, it's on and off for me. This morning I went outside for a while without my phone, and it immediately reconnected when I came back inside.
@ashimokawa perhaps the Pebble reconnection implementation wouldn't be so bad here either?

Yeah, it's on and off for me. This morning I went outside for a while without my phone, and it immediately reconnected when I came back inside. @ashimokawa perhaps the Pebble reconnection implementation wouldn't be so bad here either?

@ashimokawa

I have make a clean test with 0.55.0, deinstalled the old version and unpair the watch from android. I can pair the watch, insert the auth code, but the watch didn't connect to GB. I also have created a logcat from this and ask the maintainer from my rom for help.
There is also no error or exception in the log, so I don't have any ideae why this don't work.

Installing my backup via oabdbackupX works, but recreate a connection via 0.52 doesn't work too.

@ashimokawa I have make a clean test with 0.55.0, deinstalled the old version and unpair the watch from android. I can pair the watch, insert the auth code, but the watch didn't connect to GB. I also have created a logcat from this and ask the maintainer from my rom for help. There is also no error or exception in the log, so I don't have any ideae why this don't work. Installing my backup via oabdbackupX works, but recreate a connection via 0.52 doesn't work too.
Owner

@Micha_Btz

So, you say you can connect to when installing your backup of 0.52, but you cannot pair again in 0.52?

Also if you update 0.52 to 0.55 you cannot connect?

There is one thing I can think of: in 0.53.0 Gadgebridge queries the installed apps, on connect, and maybe in older firmwares this does not work.

If you want to debug this you can also contact me directly.

@Micha_Btz So, you say you can connect to when installing your backup of 0.52, but you cannot pair again in 0.52? Also if you update 0.52 to 0.55 you cannot connect? There is one thing I can think of: in 0.53.0 Gadgebridge queries the installed apps, on connect, and maybe in older firmwares this does not work. If you want to debug this you can also contact me directly.

Hi guys, today the watch didn't wake me up (even if I did set a vibrating alarm via gadgetbridge yesterday night).

When I woke up the watch appeared to be still connected to the phone, but the data on gadgetbridge was different (for example the battery of the watch), was not updated. It also did miss all the notifications during the night.

It seems that the watch got disconnected and kept being disconnected even if it was shown as connected on gadgetbridge. This makes me even more unconfortable, because it seems I can't completely rely on it.

I'm looking forward to see how this situation will evolve (I'm also ready to contribute to the testing, if needed). In the meanwhile I'm not sure if to switch to the official modded app, or if to go back to my lenovo watch 9.

Thank you

Hi guys, today the watch didn't wake me up (even if I did set a vibrating alarm via gadgetbridge yesterday night). When I woke up the watch appeared to be still connected to the phone, but the data on gadgetbridge was different (for example the battery of the watch), was not updated. It also did miss all the notifications during the night. It seems that the watch got disconnected and kept being disconnected even if it was shown as connected on gadgetbridge. This makes me even more unconfortable, because it seems I can't completely rely on it. I'm looking forward to see how this situation will evolve (I'm also ready to contribute to the testing, if needed). In the meanwhile I'm not sure if to switch to the official modded app, or if to go back to my lenovo watch 9. Thank you
Owner

@mrjumbo

This happens when Gadgetbridge sends commands to the watch that are not understand, for example when trying to update the widgets which no loger works in recent firmware versions (widgets are now integrated into watchfaces).

In Gadgetbridge 0.56.0 I blocked the ones I am aware of for newer firmwars.
It should show up on F-Droid soon

@mrjumbo This happens when Gadgetbridge sends commands to the watch that are not understand, for example when trying to update the widgets which no loger works in recent firmware versions (widgets are now integrated into watchfaces). In Gadgetbridge 0.56.0 I blocked the ones I am aware of for newer firmwars. It should show up on F-Droid soon

@mrjumbo

This happens when Gadgetbridge sends commands to the watch that are not understand, for example when trying to update the widgets which no loger works in recent firmware versions (widgets are now integrated into watchfaces).

In Gadgetbridge 0.56.0 I blocked the ones I am aware of for newer firmwars.
It should show up on F-Droid soon

great,I'll update as soon as I will be able to.
Thank you very much for sharing the work you are doing.

> @mrjumbo > > This happens when Gadgetbridge sends commands to the watch that are not understand, for example when trying to update the widgets which no loger works in recent firmware versions (widgets are now integrated into watchfaces). > > In Gadgetbridge 0.56.0 I blocked the ones I am aware of for newer firmwars. > It should show up on F-Droid soon great,I'll update as soon as I will be able to. Thank you very much for sharing the work you are doing.

@ashimokawa

how can I contact you?

I have made another test with an old Sony Xperia Z1 Compact runing LOS 18.1.
Has never had contact to the watch. Same problem I can add the key, but the watch didn't connect.

I have create a log from the first step on, maybe here are some usefull.
GB 0.55 from fdroid.

@ashimokawa how can I contact you? I have made another test with an old Sony Xperia Z1 Compact runing LOS 18.1. Has never had contact to the watch. Same problem I can add the key, but the watch didn't connect. I have create a log from the first step on, maybe here are some usefull. GB 0.55 from fdroid.
357 KiB

@Micha_Btz
Your log actually shows that your phone and watch connected successfully. However, it also shows "authentication failed", which means that the auth key you've inserted isn't correct for your watch.

Which method have you used to retrieve your key? If you used the modded Fossil app, have you retrieved the key in a previous version and then upgraded your app or watch? The key changes in version 4.6.0 and higher (if I remember correctly), so you would have to re-retrieve the key with the newest modded app. If you used the mitmproxy way, please make sure you have added "0x" in front of the key.

@Micha_Btz Your log actually shows that your phone and watch connected successfully. However, it also shows "authentication failed", which means that the auth key you've inserted isn't correct for your watch. Which method have you used to retrieve your key? If you used the modded Fossil app, have you retrieved the key in a previous version and then upgraded your app or watch? The key changes in version 4.6.0 and higher (if I remember correctly), so you would have to re-retrieve the key with the newest modded app. If you used the mitmproxy way, please make sure you have added "0x" in front of the key.

This makes no sense, this is the key, that GB use in my working backup.

Hm, I catch the key with the proxy some time ago. I will try to get a new one.

This makes no sense, this is the key, that GB use in my working backup. Hm, I catch the key with the proxy some time ago. I will try to get a new one.

So this is very complicated. I install the fossil fromreddit which are leaks the key.
All tests are performed with a clean GB ( app - clear storage) and unpaired watch from bluetooth setting.-

With the new key I can connet:
FW 1.0.2.21r.v1 to GB 0.56 which tells me the firmware is to new and disabled some featues. Not really usefull.

FW 1.0.2.17r.v5 I can connect to 0.52, but not to 0.54,0.55,0.56 - 0.53 I didn't test it is not more available at fdroid.
So the fact is, a working connection with 0.52 is not more working after update the app.

I have no clue about the problem. Did you change something in the connection above GB0.52?

And if it is working for you, what firmware do you use and from which fossil app version?
If I get some time, I will try to bisect this.

So this is very complicated. I install the fossil fromreddit which are leaks the key. All tests are performed with a clean GB ( app - clear storage) and unpaired watch from bluetooth setting.- With the new key I can connet: FW 1.0.2.21r.v1 to GB 0.56 which tells me the firmware is to new and disabled some featues. Not really usefull. FW 1.0.2.17r.v5 I can connect to 0.52, but not to 0.54,0.55,0.56 - 0.53 I didn't test it is not more available at fdroid. So the fact is, a working connection with 0.52 is not more working after update the app. I have no clue about the problem. Did you change something in the connection above GB0.52? And if it is working for you, what firmware do you use and from which fossil app version? If I get some time, I will try to bisect this.

I'm using firmware 1.0.2.21r.v1 myself, with Gadgetbridge 0.56. The disabled features are "setting watchface background" and "setting widgets", which I both don't need since my watchface from the (modded) official Fossil app just keeps working normally.

I'm using firmware 1.0.2.21r.v1 myself, with Gadgetbridge 0.56. The disabled features are "setting watchface background" and "setting widgets", which I both don't need since my watchface from the (modded) official Fossil app just keeps working normally.
Owner

@Micha_Btz

You can contact me via mail, mastodon (I thought I saw you there) or matrix.

I think that probably the code that queries installed apps on connect breaks everything on t .17 firmware, because it does not have any apps.

This was introduced in 0.53.0 - so it makes sense that it breaks older firmwares. But Micha_Btz said he cannot conntect even to 0.52.0 without his backup. That's why I kept my mouth shut.

b85c1a803b is probably the problem

@Micha_Btz You can contact me via mail, mastodon (I thought I saw you there) or matrix. I think that probably the code that queries installed apps on connect breaks everything on t .17 firmware, because it does not have any apps. This was introduced in 0.53.0 - so it makes sense that it breaks older firmwares. But Micha_Btz said he cannot conntect even to 0.52.0 without his backup. That's why I kept my mouth shut. b85c1a803be1bc6f2336d43423227aa8351d6563 is probably the problem

I asked because I don't know your email :-)
In my last test, connection to 0.52 with fw 17 worked fine.

Just revert the commit doesn't work. To correct this I don't have the skills.

I asked because I don't know your email :-) In my last test, connection to 0.52 with fw 17 worked fine. Just revert the commit doesn't work. To correct this I don't have the skills.
Owner

@Micha_Btz

The <=.17 problem is fixed in git now (thanks @cpfeiffer)

@Micha_Btz The <=.17 problem is fixed in git now (thanks @cpfeiffer)

I will give git tree a test tonight and report.

I will give git tree a test tonight and report.

Tested and worked fine.

Tested and worked fine.
Collaborator

The <=.17 problem is fixed in git now (thanks @cpfeiffer)

We miss you @cpfeiffer :)
Omg, none of my PRs would pass a review 🤔🤣

> The <=.17 problem is fixed in git now (thanks @cpfeiffer) We miss you @cpfeiffer :) Omg, none of my PRs would pass a review 🤔🤣

Hello guys,
I'm using a hybrid HR collider running DN1.0.2.21r.v1 and gadgetbrisge 0.55.0 .

The watch and he app seem to work fine most of the time but unfortunately from time to time I'm noticing some disconnections (most of the time after waking up in the morning) even if the watch and the phone are close and after which gadgetbridge and the phone don't reconnect automatically.
I then have to force a reconnection from gadgetbridge, and that even if the "Reconnect automatically" option is checked in gadgetbridge settings menu.

That's a big issue for me because I've set gadgetbridge to pass some important notifications to, in case, wake me up during the night.

Do you guys know how I could debug the problem?
Thank you!

I'm still experiencing the same problem.
This morning I woke up late because the vibrating alarm that I did set last night didn't work. Gadgetbridge was showing the watch as connected, but the battery level on gadgetbridge was different compared to the one on the watch itselft (and it's still different as of now) but the strange thing is that from time to time I'm still receiving on the watch some notifications (even if they seem not in sync as well).
I'm running gadgetbridge 0.56.0 on the phone and firmware DN1.0.2.21r.v1 on the watch

> Hello guys, > I'm using a hybrid HR collider running DN1.0.2.21r.v1 and gadgetbrisge 0.55.0 . > > The watch and he app seem to work fine most of the time but unfortunately from time to time I'm noticing some disconnections (most of the time after waking up in the morning) even if the watch and the phone are close and after which gadgetbridge and the phone don't reconnect automatically. > I then have to force a reconnection from gadgetbridge, and that even if the "Reconnect automatically" option is checked in gadgetbridge settings menu. > > That's a big issue for me because I've set gadgetbridge to pass some important notifications to, in case, wake me up during the night. > > Do you guys know how I could debug the problem? > Thank you! I'm still experiencing the same problem. This morning I woke up late because the vibrating alarm that I did set last night didn't work. Gadgetbridge was showing the watch as connected, but the battery level on gadgetbridge was different compared to the one on the watch itselft (and it's still different as of now) but the strange thing is that from time to time I'm still receiving on the watch some notifications (even if they seem not in sync as well). I'm running gadgetbridge 0.56.0 on the phone and firmware DN1.0.2.21r.v1 on the watch

On 17rv3, I can now connect with 0.56.1, however none of the button actions work (i.e. custom button assignments; the regular button presses work fine for hiding the complications or going to the menu). Can anyone else confirm?

On 17rv3, I can now connect with 0.56.1, however none of the button actions work (i.e. custom button assignments; the regular button presses work fine for hiding the complications or going to the menu). Can anyone else confirm?

I'm on this firmware. Can you give me an example, than I would test it.

I'm on this firmware. Can you give me an example, than I would test it.

Thanks for offering to test.

On GB, in HR collider settings I set 'Upper button short' to 'Music'. However when I press the upper button on the watch, the Music app doesnt load. Same for any other buttons. This works fine on 0.52.

Thanks for offering to test. On GB, in HR collider settings I set 'Upper button short' to 'Music'. However when I press the upper button on the watch, the Music app doesnt load. Same for any other buttons. This works fine on 0.52.

nothing seems to work

nothing seems to work

Thank you for verifying, I'm seeing the exact same behavior.

Thank you for verifying, I'm seeing the exact same behavior.

have someone the right app from reddit for the 19rx firmware than I would test it too

have someone the right app from reddit for the 19rx firmware than I would test it too

have someone the right app from reddit for the 19rx firmware than I would test it too

app for firmware 17r
app for firmware 19r
app for firmware 21r

> have someone the right app from reddit for the 19rx firmware than I would test it too [app for firmware 17r](https://www.reddit.com/r/FossilHybrids/comments/hixtww/hybrid_smartwatches_enhanced_android_app_v4305/) [app for firmware 19r](https://www.reddit.com/r/FossilHybrids/comments/jd7nbl/unofficial_enhanced_android_app_v4501/) [app for firmware 21r](https://www.reddit.com/r/FossilHybrids/comments/k81kkq/unofficial_enhanced_android_app_based_on_v460/)

I have get the 19er firmware from Andreas and with it, it is working all right. Seems to be an problem with 17rX again.

I have get the 19er firmware from Andreas and with it, it is working all right. Seems to be an problem with 17rX again.

The app you have linked for the fw19 did not work, I have tested it.

The app you have linked for the fw19 did not work, I have tested it.

@Micha_Btz can you confirm if the buttons work with fw19 or not? I can't tell from the last two messages if its working or not. Thanks.

@Micha_Btz can you confirm if the buttons work with fw19 or not? I can't tell from the last two messages if its working or not. Thanks.

yes, on the 19er fw the apps working correct.

yes, on the 19er fw the apps working correct.

Thank you @Micha_Btz for testing the firmwares. I can also confirm that fw19 works well with 0.56.1.

Thank you @Micha_Btz for testing the firmwares. I can also confirm that fw19 works well with 0.56.1.

I updated to the latest version of the firmware (1.0.2.22r.v4) which comes with 4.7.0 version of the app; couldn't resist the toggle for the HR sensor and bigger font for notifications.

Most things seem to work very well. The only downside is you can't customize the watchface anymore; set the watchface and complications from the fossil app before switching. I also noticed that the battery level doesn't show up in GB anymore. Oh, and the long press bottom button action doesn't work either (always shows unread notifications here). Other than these minor issues, its nice to be able to use the latest features 👍

I updated to the latest version of the firmware (1.0.2.22r.v4) which comes with 4.7.0 version of the app; couldn't resist the toggle for the HR sensor and bigger font for notifications. Most things seem to work very well. The only downside is you can't customize the watchface anymore; set the watchface and complications from the fossil app before switching. I also noticed that the battery level doesn't show up in GB anymore. Oh, and the long press bottom button action doesn't work either (always shows unread notifications here). Other than these minor issues, its nice to be able to use the latest features 👍

Thanks for your feedback @hackoder !

Battery level is working correctly for me. Are you using the latest GB version?

I didn't find the button configuration issue before, because the notifications on long press is exactly how I (want to) have it configured. :) But I've confirmed the issue here and will see if I can find out what is the problem.

Watchface customization is a big and complicated project to add to Gadgetbridge. After official app 4.6.0 (firmware DN1.0.2.20r.v1 and later), the watchfaces aren't simple configuration items anymore, they've become full watch apps. So for GB to support customization, it has to be able to build watch apps from scratch. And since we can't redistribute original Fossil files, it needs to be fully open source. I've uploaded an initial version here, but am currently sidetracked with other GB work that needs to be done before adding watchface customization support. I hope to resume working on the watchface in a few weeks though.

Thanks for your feedback @hackoder ! Battery level is working correctly for me. Are you using the latest GB version? I didn't find the button configuration issue before, because the notifications on long press is exactly how I (want to) have it configured. :) But I've confirmed the issue here and will see if I can find out what is the problem. Watchface customization is a big and complicated project to add to Gadgetbridge. After official app 4.6.0 (firmware DN1.0.2.20r.v1 and later), the watchfaces aren't simple configuration items anymore, they've become full watch apps. So for GB to support customization, it has to be able to build watch apps from scratch. And since we can't redistribute original Fossil files, it needs to be fully open source. I've uploaded an [initial version here](https://github.com/arjan-s/fossil-hr-watchface), but am currently sidetracked with other GB work that needs to be done before adding watchface customization support. I hope to resume working on the watchface in a few weeks though.

Thanks @arjan5 for all your work recently. All the improvements make using the Fossil with GB much more convenient.

Yes, latest GB + latest firmware. I do see an error saying 'Authentication failed, limited functionality' when connecting, so I wonder if that is why the battery level isn't working (even though other functionality works fine).

The watchface is a great starting point. Would be nice to have fully configurable watchfaces (like Pebble) down the road!

Thanks @arjan5 for all your work recently. All the improvements make using the Fossil with GB much more convenient. Yes, latest GB + latest firmware. I do see an error saying 'Authentication failed, limited functionality' when connecting, so I wonder if that is why the battery level isn't working (even though other functionality works fine). The watchface is a great starting point. Would be nice to have fully configurable watchfaces (like Pebble) down the road!

Yeah, that is definitely the problem. When you don't have the correct secret key in GB for your HR, it falls back to unauthenticated mode, which means everything works except the following:

  • set the time
  • sync (activity data and battery level)
Yeah, that is definitely the problem. When you don't have the correct secret key in GB for your HR, it falls back to unauthenticated mode, which means everything works except the following: * set the time * sync (activity data and battery level)

Thanks for confirming. Looks like the secret key changed at some point when I updated the firmware using the latest app.

Thanks for confirming. Looks like the secret key changed at some point when I updated the firmware using the latest app.

Yeah, it does that when coming from 4.5.0 or lower. If you retrieve the key with the custom 4.6.0 app and then upgrade with the official 4.7.0 app, it will remain valid. Note that in some cases to get a working key you'll have to delete the watch from your Fossil app and re-add it (in 4.6.0).

Yeah, it does that when coming from 4.5.0 or lower. If you retrieve the key with the custom 4.6.0 app and then upgrade with the official 4.7.0 app, it will remain valid. Note that in some cases to get a working key you'll have to delete the watch from your Fossil app and re-add it (in 4.6.0).
Collaborator

Just as a heads up, there's an app that allows for creating the key without invoking the official app:

https://github.com/dakhnod/FossilHRAuthenticator

Just as a heads up, there's an app that allows for creating the key without invoking the official app: https://github.com/dakhnod/FossilHRAuthenticator
Owner

Also FYI, I also lost my key just by updating the firmware with Gadgetbridge (from .19 to .20 I think) going to .22 did not invalidate the key.

So it is not the app that does that. It is the firmware during update.

Also FYI, I also lost my key just by updating the firmware with Gadgetbridge (from .19 to .20 I think) going to .22 did not invalidate the key. So it is not the app that does that. It is the firmware during update.

Thanks to the tips above, was able to update and connect with the new keys, battery level works again! :)

Thanks to the tips above, was able to update and connect with the new keys, battery level works again! :)

@arjan5 Fantastic work on the watchface designer!

@arjan5 Fantastic work on the watchface designer!
Sign in to join this conversation.
No Milestone
No Assignees
17 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.