Bluetooth fails on mobile
jef at libdivecomputer.org
Thu Apr 12 06:11:45 PDT 2018
On 2018-04-10 16:42, Davide DB wrote:
> On 10 April 2018 at 16:10, Willem Ferguson
> <willemferguson at zoology.up.ac.za> wrote:
>> On a Samsung S6 (Android 7.0) the phone sees my Petrel 2 and pairs to
>> However, when downloading dives, the phone only sees a BTLE device and
>> apparently cannot handle the BTLE mode (error 133). Have no idea why
>> doesn't also see an ordinary BT device. Therefore no downloads.
> Yes but how to save partial downloads?
> If my Petrel has 100 dives on it and I miss just the last three of
> them on my logbook why I have to download 100 dives.
Recovering from a partial download is tricky!
To be able to download only the new dives (which is the most common
use-case), libdivecomputer downloads the dives in reverse order (e.g.
newest first). Thus after a partial download, you have the newest dives,
but not the oldest dives. But if you try to download again, in an
attempt to get those old dives as well, there are two problems:
(1) When the download only new dives logic sees the newest dive again,
it will abort the download. So you need to disable it and force it to
download all dives.
(2) There is no way to skip dives you already have. So you'll be
downloading those dives again before reaching the old dives you're
interested in. This is inefficient, but the worse part is that if you
encounter again an error before reaching those old dives, then you're
still stuck. If the error is due to some unreliable connection, then you
may need many attempts, which is of course very annoying.
Note that subsurface also has another related problem. When there is an
error during the parsing of a dive, the download is aborted. And thus
you won't be able to download any of the older dives before the
> Even the plain libdivecomputer utility has a lot of problem downloading
Have you already tried with the new bluetooth transport? The native
bluetooth transport appears to be a lot more reliable than the serial
port emulation. I'm not sure what is going on, but it's certainly not
something specific to the Shearwater dive computers, because I've seen
similar reports with other brands.
You can download a pre-build binary here:
Instead of specifying the name of the virtual serial port, you pass the
bluetooth mac address, along with the '-t bluetooth' option to enable
the bluetooth transport:
dctool -v -l petrel.log -f petrel download -o petrel.xml -t bluetooth
More information about the subsurface