Scuba dive with FOSS? There's an app for that

Looking to try a new summer activity? Marco Fioretti highlights some open source software that helps scuba divers keep track of their vital dive data.

Most of the time, people use or promote Free Software for work, study or gaming. Free Software, however, can follow and assist you in almost any activity. To prove this point, in this post and next week, I'll introduce you to some little known, but quite handy sports/fitness assistants for Linux. All of them have a FOSS license and are specifically developed for helping you to succeed in your favourite sport, stay safe, and keep a detailed record of your training sessions. For IT pros who tend to be sedentary at work and who deal with a lot of stress, there's no better way to blow off steam than to get involved in a sport or fitness program, and FOSS can add a geeky side-benefit.

This week, I am going to focus on one activity in which both keeping complete records of what you do, and getting your numbers straight, is vital: scuba diving.

Normally, I don't present software that hasn't seen new releases in a long time, but this time I'll do some exceptions for one specific reason. Dive computers keep track of every possible parameter of your activities in real time. They're great underwater, of course, but that's not their main feature, as far as we are concerned here. Geek-wise, what's great in these tools is their ability to interact with desktop computers, to upload track maps, and download data after each training session.

These gadgets have been around for a while now. Owners of old, but still perfectly working dive computers may suddenly find themselves with a paperweight, if the proprietary interfaces provided by their vendors stopped working after a Mac or Windows upgrade. In that case, the applications listed below (some of which are multiplatform!) may be the only way to keep those devices afloat (pun intended), just because they were developed with support for devices, which may have been ignored by developers of newer programs. All these applications have a graphical interface, but (at least those written in Python and Java) should also be relatively easy to hack.

So let's dive! Safely, of course. And openly!

Diving is a dangerous sport, in which you must keep several health and technical parameters under constant control to avoid really serious troubles. That's probably why this seems the sport for which there is the greatest choice of FOSS assistants. Incidentally, open source in diving isn't limited to software. The OSTC is an Open Source dive computer that you can adapt to your unique requirements and preferences, sharing these changes with other users.

Apart from Open Source, the first thing to do when looking for diving-related software is support for the Universal Dive Data Format UDDF, which is used (together with its UDDF predecessor) by many dive computers to program dives and record their data.

The scuba dive logging application for GNOME Gdivelog, which also runs on Mac OS X, is probably the simplest program of this kind for Linux. Gdivelog can organize all your dives in categories, in which you can rearrange and merge as you please, in any moment, already inserted dive profiles. Several plugins let you import data from dive computers and similar software applications.

The Dive Log Book is another easy to use scuba dive logger for Linux, Mac and Windows. Besides basic data, it lets you store notes, pictures, and weather conditions for each dive. The program also calculates simple, but important statistics like cumulative diving time, dives per year and more. You can browse the full reports produced by Dive Log Book in full-screen mode, or export them to plain text, PDF or interactive HTML pages.

JDiveLog can calculate dive statistics, supports several dive computers (including the OSTC!) and knows how to import dive profile data in UDCF format. You can enjoy only the pictures in slideshow mode, or view complete reports of each dive. These reports can also be saved as themeable HTML pages, and there's a function to automatically upload them to your Website via scp. There's also a search function to quickly find dives with certain characteristics.

JDiveLog requires version 6.0 of the JDK to work. The website is mostly in German, but installation instructions are also available in English.

I'll finish this brief overview of FOSS scuba diving assistants with the one which may be, for a Linux expert user, the most interesting. Kenozooid has a nice graphical interface, but draws most of its power by the integration with the GNU R environment for statistical computing and graphics. Like JDivelog, Kenozooid is compatible with OSTC and many other models of dive computers. UDDF is the native data format.

Kenozooid is ready to store or calculate, and then plot, all the main statistics and variables that matter in diving: PPO2 (Partial Pressure of Oxygen), MOD (Maximum Operating Depth), EAD (Equivalent Air Depth and so on.

From the graphical interface you can generate multiple plots in one graph, with configurable legends, in PDF, PNG or SVG format.

Finally, Kenozooid has something that no aspiring geek can do without: you can also use it at the prompt or in a shell script. There is also a dummy device driver to print information to standard output!