Forking Subsurface
  |   Source

So, after some discussion on the Subsurface forum, during which it was made clear that the developers have no intention to support the Aqualung i330R and Apex DSX dive computer, given their peculiar bluetooh pairing scheme I decided to try to fork Subsurface and try to maintain a version with the suppoer available.

The problem (thanks Aqualung)

The problem with these two dive computer is that they have a "proprietary" pairing mechanism for the bluetooh connection that require a PIN, which while really uncommon it is not that really proprietary. KDE has an option to add a PIN to the pairing of bluetooth devices and I am old enough to remember that an old Compaq Ipaq 1440 did ask a PIN while connecting to a GPS receiver.

Anyway, the real big problem is that this do not work on Windows, and that to keep it updated on all the OS and platform supported by Subsurface is a pain.

I fully understand the reasons that make them to decide to not support these devices, even if the underlying library Libdivecomputer fully support them.

But since I own an i330R and the the DiveLog+ app and their DiveCloud are that nice, to be gentle, and the only real alternative is to buy their desktop app (DiveLog) which seems to be able to synch via WiFi with the DiveLog+ app on the phone, I decidese to give the fork a try.

The solution

Starting from the work and then help of Jef Driesen which built an experimental version of SubSurface which support the devices, I forked the code and after porting to the current release the needed changes, which are just a couple of commits to add the dialog and the code needed to handle it, I finally have a build that can download the dives without the use of their app.

Then using the Github Actions I set up the pipeline to create a release every time push on master is done.

The goal is to support at least Linux and Mac (for which there are experimental version from Jef) and eventually also Android and iOS on iPhone, but I don't really have access to these devices (well, just an Android phone). I will give a try to Windows, but I doubt it will work.

The version number will not change, I use their building versioning, I will just rename the result to made clear that it is not the official Subsurface release.

The repository is on my GitHub and I am currently working on building an semi-automated way to keep it in sync with the upstream, which means to run only the required actions every time the repository is synched.

Comments powered by Disqus