Contribute

Even if you are not a software developer, you can help us collecting data on the transfer protocol, the memory layout and/or verify the correct parsing of the dive profile. You don't need any technical knowledge at all.

Feel free to contact me for questions or further assistance.

Transfer protocol

If your device is not supported yet, you can help us analyze the transfer protocol by doing a transfer with the original software of the manufacturer, and capture the communication between the software and the device.

Most devices are communicating over a serial port (either directly or by means of a built-in serial to usb converter) and you can use a freely available capture application for the job. The procedure is as follows:

Important: PortMon doesn't work on 64-bit Windows 7 (or any 64-bit windows). If you experience problems, try running it with administrator rights and/or Windows XP compatibility mode.

Memory layout

Once your device is supported, you can help us analyze the downloaded data by running one of our test applications, and contribute memory dumps of the device. The procedure is as follows:

Note: On Windows you need to use the special \\.\COMx syntax for standard portnames with a number higher than 9, and all portnames that do not follow the standard COMx naming convention. This syntax is also supported for normal portnames.

All output is written to a logfile and a number of memory dumps that you can send by email.

Parsing

Once downloading the data is working fine, the next step is decoding the dive profiles. Here, you can help us verify whether the dive profiles are parsed correctly. The procedure is as follows:

Download the new "univeral" test application for your platform. We provide binaries for Windows, Linux and Mac OS X. With the right options (see below), this application will download the dives and generate a simple xml file with the profile data. It will look like this:

<dive>
<number>1</number>
<size>573</size>
<fingerprint>072416D7070B12</fingerprint>
<datetime>2007-11-18 07:36:22</datetime>
<sample>
   <time>00:00</time>
   <depth>1.34</depth>
   <pressure tank="0">183.00</pressure>
   <temperature>29.00</temperature>
</sample>
...
</dive>

You should compare this output with the data in the manufacturer's application, and see if there are any errors. And last but not least, don't forget to let me know if your output contains errors or not.

It's again a command line application, that accepts a number of options. The most important ones are:

universal.exe -b <backend> [-m <memorydump>] [-d <xmlfile>] <serialport>

You can start the application without any parameters (or the -h option) to get a little help, and a list with the supported backend names. I think the options are pretty self-explanatory, but let me know if you have questions or need more help. Both the -m option (to output a memory dump) and -d option (to output the dives) are enabled by default, but the transfer will go faster if you enable only the one you actually need.