Discussion:
[BLE] Windows 10 status update
Lubomir I. Ivanov
2018-10-09 01:33:18 UTC
Permalink
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
--
Linus Torvalds
2018-10-09 02:19:38 UTC
Permalink
Post by Lubomir I. Ivanov
the solution that the user suggests is to get a BLE dongle. not a good
option for the end user.
Actually, it's probably a reasonable option.

iirc, the Shearwater actually *came* with a dongle, exactly because
Windows bluetooth is so flaky. I suspect Dirk just didn't think to
bring it with him.

See for example

https://www.shearwater.com/bluetooth-quick-start/

also, bluetooth dongles are actually pretty cheap. You can find ones
that do BLE for $6.99 on Amazon, and a few slightly better ones for
not much more (I have the Plugable one, for example, which sells for
$12.95).

The biggest problem is to make sure the dongle really does BLE and has
a good driver, because there are some low-end things that only do
traditional BT, and apparently a number of garbage things that have
bad drivers.

Also, range for the dongles seems to be pretty pitiful.

But for people with thousand-dollar dive computers that do bluetooth,
having to buy a $10 dongle is probably pretty acceptable.

Linus
Lubomir I. Ivanov
2018-10-09 02:26:27 UTC
Permalink
On Tue, 9 Oct 2018 at 05:19, Linus Torvalds
Post by Linus Torvalds
Post by Lubomir I. Ivanov
the solution that the user suggests is to get a BLE dongle. not a good
option for the end user.
Actually, it's probably a reasonable option.
iirc, the Shearwater actually *came* with a dongle, exactly because
Windows bluetooth is so flaky. I suspect Dirk just didn't think to
bring it with him.
See for example
https://www.shearwater.com/bluetooth-quick-start/
also, bluetooth dongles are actually pretty cheap. You can find ones
that do BLE for $6.99 on Amazon, and a few slightly better ones for
not much more (I have the Plugable one, for example, which sells for
$12.95).
The biggest problem is to make sure the dongle really does BLE and has
a good driver, because there are some low-end things that only do
traditional BT, and apparently a number of garbage things that have
bad drivers.
Also, range for the dongles seems to be pretty pitiful.
But for people with thousand-dollar dive computers that do bluetooth,
having to buy a $10 dongle is probably pretty acceptable.
thanks, i will try getting a BLE dongle.

lubomir
--
Lubomir I. Ivanov
2018-10-09 13:43:10 UTC
Permalink
Post by Lubomir I. Ivanov
- update Windows...
- contact Shearwater support...
so Windows updated again for me with a small patch they released, but
this didn't solve the issue.

something i forgot to do is update the Dell drivers on this machine.
this is something that i didn't want to do because last time the
driver update *broke BT completely* and i had to trial and error until
i get the driver working by installing / uninstalling manually.
this time the BT driver fixed the Shearwater Perdix AI for good instead...

- Windows version
10.0.17134.320
this newer versions fixed the flakyness when discovering BTLE devices.
right now it just works 9/10 times from Start menu -> Bluetooth and
other... -> [ + ] Add ...

- BT driver:
Intel(R) Wireless Bluetooth(R) 20.10.0.5
this fixed the random disconnects while being connected and
downloading dives from the Perdix after ~20 seconds.

log + image attached.

so how should we proceed now?
i'd say the Qt stack and Subsurface are ready for a public test build
at least. everything else is user end related - e.g. drivers, BT
dongles, Windows updates.
and we don't have control over those.

one thing we can improve is the UX related to pairing, but this will
require bundling a C# helper app with Subsurface.

Dirk, when you have some time, could you please try downloading from
the Teric device after updating drivers and Windows?
hopefully we get this one working too as TMK it's one of the devices
that is BLE only.

thanks
lubomir
--

Loading...