Subsurface-mobile with BT and BLE support [was Re: updates to libdc with ABI change]

Dirk Hohndel dirk at
Tue Jun 27 22:19:37 PDT 2017

On Thu, Jun 22, 2017 at 06:53:21PM -0700, Dirk Hohndel wrote:
> Next time you pull to build from source, please make sure you pull BOTH
> Subsurface and the Subsurface-branch of libdivecomputer, otherwise you'll
> lose functionality (most importantly, native BT support).
> Linus has rewritten our custom serial handling into a custom io layer
> which deals with packetization as well.
> I took the opportunity to warn when building against an older version of
> our branch or against upstream libdivecomputer.
> Let us know if this broke things in more ways than we anticipated :-)

And because this was so much fun, I talked Linus into doing it again.
Please pull BOTH Subsurface and the Subsurface-branch of libdivecomputer
to get the latest and greatest.

One side effect of the changes to the custom_io code is that Subsurface no
longer builds with upstream libdivecomputer - but given that that really
would cause us a massive loss in functionality, I consider that

Given that getting this to work from your own binaries is non-trivial at
this point, here is the latest Android APK ready for testing:

This brings BLE support for the Suunto EON Steel, Shearwater (newer)
Petrel 2, Perdix and Perdix AI, and Scubapro G2. It continues to have BT
support for OSTC and Shearwater dive computers, both on Linux (with a
patched Qt - as discussed by Linus before) and on Android.

I would love to hear about other BT or BLE dive computers that you have
played with and that you can test on.

Additionally, I switched the default action on the dive list to be
"download from dive computer" (and yes, that button icon is lame - I
really would like something better; either from the breeze set, or drawn
by someone with more visual design talent than I have).

I'm hoping to soon be able to make test binaries available to a broader
audience. There are a few more things that someone needs to fix (I'll work
on them, but if I'm the only one doing this, this will take time)

a) disable reachability (Marco promised to add an API to Kirigami for that)
b) decide if we really want to disable pull down to refresh (or if we can
fix it)
c) allow a "reset to cloud state" option that undoes local changes (I have
some initial code for that but ran out of time)
d) update the user manual to at least have a stub section about all the
new features (eventually we'll need new screen shots)
e) figure out why the dive list gets confused if you start to manually add
dives and abort that a couple of times
f) the logic how we show dive computers is completely insane right now -
that needs to be reworked (and first, I think, we need to figure out how
we want that to work...)

And I'm sure there are many more (basically I need to go through the
issues again to make sure I don't skip any major ideas / bugs that have
been reported).

In the meantime, I'd love to hear success stories of people able to
download from the dive computers on their phone or tablet.


More information about the subsurface mailing list