Bluetooth fails on mobile

Jef Driesen jef at
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> wrote:
>> On a Samsung S6 (Android 7.0)  the phone sees my Petrel 2 and pairs to 
>> it.
>> However, when downloading dives, the phone only sees a BTLE device and
>> apparently cannot handle the BTLE mode (error 133). Have no idea why 
>> it
>> 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 
problematic dive!

> Even the plain libdivecomputer utility has a lot of problem downloading 
> them.

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 mailing list