Complete
over 5 years ago

WERETECH-9106

We were unable to reproduce this problem-please let us know if this continue to be an issue.

BLE problem with getService() on a Venu (and possibly Vivo4)

I have a data field app here: https://apps.garmin.com/en-US/apps/461743f9-b350-486f-bd87-613c7b0bab90

Source code is here: https://github.com/markdotai/emtb

This will connect via BLE to certain Shimano e-bikes. One of my users has been using this on his Vivoactive 3 Music with his e-bike, and everything has been fine. He then tried the data field on his Vivoactive 4 (it didn't work) and his Venu (also didn't work). We then started debugging the problem on his Venu, and tracked down what was occurring.

Scanning and pairing to the e-bike all seemed to work fine and as expected it is reported as connected. Immediately after this, the app tries to read the MAC address of the e-bike. But whenever getService() is called it always returns null. See line 768 in embtView.mc of the source:  var ds = d.getService(MACServiceUuid);

It seems odd that this would work on the Vivo 3M with exactly the same e-bike (so that BLE service for the MAC address definitely exists), but not the Venu (and possibly also not on the Vivo 4 - we didn't manage to debug that one).

I tried adding some extra test code to the app, which when this occurred would unpair from the e-bike, and then repair again, and try calling getService again. Unfortunately, when the user tested this on this Venu, it hard locked it! He has since returned the Venu to the shop (and is sticking with the Vivo 3M) - so I haven't been able to try any more debugging of this.

Just reporting this, so you are aware of the problem, and in case someone knows what it could be ...

Parents Comment Children
No Data