[BLE] Windows 10 status update

Lubomir I. Ivanov neolit123 at gmail.com
Mon Oct 8 18:33:18 PDT 2018


observations after testing the Shearwater Perdix AI on Windows 1010.0.17134
https://en.wikipedia.org/wiki/Windows_10_version_history#Version_1803_(April_2018_Update)

- i think i found a way to pair and connect the device consistently,
so that i can initialize a download for dives. it simply requires a
lot of trial and error and pairing / unpairing, due to flakyness. once
looking at the list of Bluetooth devices in the Control Panel - the
device has to be in "connected" state for it to receive GATT
operations otherwise it would just fail with a GATT operation timeout.

- i'm observing a random 20 / 30 / 40 second disconnect of the device
once the "Start Bluetooth" screen from the device was started. this
drops the download of dives or any other operations as the device
simply disconnects for no apparent reason.

- the same disconnect is not observable on the OSTC+. for the OSTC+
once the "Start Bluetooth" screen is entered from the device it stays
connected until the screen is Exited or until and error or the FF
command is received.

- i have tried both official software packages that Shearwater distributes:
     - Shearwater Desktop - completely fails to discover the device.
does not matter if it's paired, connected or unpaired.
     - Shearwater Cloud - this software discovers the DC and connects
to it, but then fails for the same X seconds disconnect reason while
downloading the dives.

- found a related issue:
https://social.msdn.microsoft.com/Forums/en-US/a60e63cb-1a78-4791-9702-f79c01700ffd/windows-10-creators-update-disconnects-ble-connection-after-2030-seconds-for-no-reason?forum=wdk
the solution that the user suggests is to get a BLE dongle. not a good
option for the end user.

- i have tried googling further for this thinking about power saving
settings and such, trying to find something that is causing the device
to disconnect, to no avail. the laptop is always connected to power
while testing.

- i have tried writing a custom application that tries to "keep-alive"
the connection by having a worker thread running that consistently
enumerates the list of characteristics for the service of interest.
wrote the same app in C++, C# and UWP form with the same results.
tried googling for similar solutions, to no avail.

- tried connecting to the device using by Android phone and nRF
Connect. the result is that the device does not auto disconnect while
the timer is still running, which makes it clear that the device is
working.

this leaves me in a bit of a checkmate situation.
i did notice great improvements in discovery and pairing after the
1010.0.17134 update, but i cannot update this version of Windows
further to see if the latest fixes the issues.

** options left to try:

- i've noticed that toggling the notifications via the descriptor does
reset the timer, so i can try having that in a worker thread to
keep-alive the connect, but it might simply not prevent the
disconnect, or it might even reset the download or cause it to error
in a case where a characteristic does not receive a packet properly.
quite skeptical about this one.

- update Windows...

- contact Shearwater support...

lubomir
--


More information about the subsurface mailing list