Ratio Computers loves your work!

Linus Torvalds torvalds at linux-foundation.org
Fri May 25 10:17:12 PDT 2018

Hi Riccardo,
   I suspect Dirk will want to say more (and more authoratively), but I'll
put in a few early comments.

On Fri, May 25, 2018 at 7:59 AM Riccardo Brama <
riccardo.b at ratio-computers.com> wrote:

> Since January I've been hired at Ratio Computers as their new CoE
> and I like so much your work I'd love to see our dive computers
> completely supported.

We love seeing involvement from the dive computer manufacturer, it tends to
make many things easier for us too.

>      We would love to tell our customers the application we sponsor for
> PC interface is Subsurface instead of our current, and outdated,
> Divelogger 4 application (running only for Windows and Mac).

So just on a practical side, if you do that I do think you need to have one
engineer in-house that at least part time maintains a subsurface binaries
for  you.

I say that simply because you'll want to have your own "official"
subsurface binaries that you either ship with the dive computer, or that
you simply link to in documentation etc. And while hopefully the normal
subsurface releases "just work(tm)" for that, you really want the first
customer experience to be with a binary that *you* guys provide and that
has been Q&A'd and tested with the dive computer you ship.

Now, the above doesn't necessarily take a lot of actual engineering: it's
mostly making sure you have your own binary, and that you've done basic
testing and quality assurance on it. You'll want to ship a basic manual
etc, and again, we have one, but you'd want to make sure that you ship your
own version if only to make sure it's available from
http://www.ratio-computers.com, and maybe have somebody go over it.

We obviously try to not break our binaries, and we obviously do have
manuals etc that we provide, but I really think that if you want to replace
your old binary, you'll want to make sure that the details are right for
you. Maybe you want to customize the dive downloader to pick the Ratio dive
computers by default, maybe you want to check that the Italian translation
is up-to-date and good (it hopefully is, but you would want to verify).

I assume the above is all obvious and you've already discussed it as part
of the whole "if we do this, we need to ..." internally, but I wanted to
just state it explicitly. We do *development*, but there's that step
between development and productization that you'd need to be in charge of.

That said, I'd hope the productization work also ends up resulting in some
development that we'll take back, so it's obviously not one-sided.

Also, practically speaking, you'd want to distribute a few of your current
dive computers to some people. Most notably to Jef Driesen who does
libdivecomputer, but it would probably be a good idea to send a couple to
core subsurface developers too, just to make sure that they get more
testing during development. That said, I think (again) that as part of
productization, you should have somebody in-house also keeping up with the
development tree (even if you may ship some older version to customers) to
just again have some actual in-house tracking that things are going well
for you in the development version too, and notice if something you rely on

> Nevertheless up to now Divelogger is the only application allowing to
> update our dive computers firmware, a thing we would love to see in
> Subsurface too.

Right now we support firmware updates only on a very small set of dive
computers (some OSTC models), and it needs both libdivecomputer and
subsurface support to add, and it needs a *lot* of documentation. It also
really needs some way to test, which isn't just hardware, but two firmware
images that you can switch between to test updating over and over again (so
if you have some check for "only update to a newer firmware" in the dive
computer itself, there would need to be some way to override that).

>     Unfortunately, due basically to lack of free time, I
> cannot add that feature to your code by myself: I need someone who would
> like to do that. So don't hesitate to let me know if there around
> someone is willing to implement additional features to support all the
> Ratio Computers features. I'll share with him/her all the information
> he/she needs.

Note that due to being open source, the firmware update mechanism itself
will inevitably be public. Documentation on how it works, and things like
keys to maybe *generate* firmware updates (which might be needed as part of
the "some way to override that" above) can be private, of course. Although
hopefully as much of it as possible can be public.

I'm not sure who would be able to do the work. Most of the core developers
have real jobs not really connected to subsurface and are doing subsurface
stuff on the side with not necessarily time for specific feature unless
they are personally motivated.

The obvious person to ask would be Anton Lundin who did the OSTC firmware
code, but I'm not at all sure he'd have time or be motivated.

> P.S. I've not seen any way to sponsor the Subsurface Project with
> donations... haven't you thought about it?

Dirk has at least historically felt that donations are more pain than they
are worth, and that actual patches and engineering resources and
documentation - and access to hardware for testing - would be more
appreciated.  Part of it is probably that he (and I) have real jobs that
pay well, and part of it is simply that this is a hobby and the main
concern hasn't been money, but lack of time and resources.

The subsurface page has a link to

But it's certainly very possible that somebody in the community would
appreciate being paid as a consultant to do the firmware update thing, for


More information about the subsurface mailing list