1 Subsurface 1.2 User Manual
2 ==========================
3 Jacco van Koll <jko@haringstad.com>
8 :website: http://subsurface.hohndel.org
12 Autor documentation: Jacco van Koll <jko@haringstad.com>
14 Scope of this document is the usage of the program.
15 Please read the build manual for instructions how to build the
16 software and (if needed) its dependencies.
18 Audience: Fun Divers, Tec Divers, Professional Divers
24 Subsurface was started because of a lack of viable dive log software
25 on Linux. It turns out that the resulting software was easily ported
26 to Windows and Mac, but it clearly is a native Linux program first.
27 Right now, the program is under development and from version 1.1 it is
28 already very usable for divers with supported dive-computers.
30 In this manual the Suunto Viper will be used for all examples.
36 Before you are able to import information from your divecomputer into
37 Subsurface, you need some preparation. Do you have the following:
39 1. Your Divecomputer - Compatible with libdivecomputer (see list in Appendix A)
40 2. Communication interface - Cable to connect your divecomputer to your PC/Laptop/Netbook
41 3. Working installation of Subsurface
42 4. If needed, the manual of your divecomputer
45 Start using the program
46 -----------------------
48 When you start the program for the first time, it shows no information
49 at all. This is because the program does not automatically load the
50 already available dive-log files.
52 There is a menu, containing 'File', 'Log', 'Filter' and Help.
54 The screen is devided in 3 area's:
56 - Area with 3 tabs: Dive Notes, Equipment, Info & Stats
57 - Area next to the 3 tabs which will contain the dive profile
58 - Area with the dives (usually called dive list) which can be sorted by number, date, etc.
61 Import new dives from your divecomputer
62 ---------------------------------------
64 Before you start fiddeling around with your divecomputer, note that
65 there are divecomputers that consume more power when they are in the
66 PC-Communication mode. This could drain your battery. Therefor, ensure
67 if your computer is recharging when connecting to the USB port. The
68 Suunto Viper does not recharge trough the USB connection. Please
69 consult the manual of your divecomputer if you are unsure if it will
70 be recharged when connected to the USB port.
72 Now it is time to hook up your divecomputer to your Linux system:
74 - Make sure that your OS has the required drivers installed
76 * On Linux this means you need to have the correct kernel
77 module loaded. Most distributions will do this automatically
80 * On Windows, the OS should offer to download the correct
81 driver when you connect to the USB port.
83 * On a Mac you at times have to manually hunt for the correct
84 driver. For example the correct driver for the Mares Puck
85 devices can be found as Mac_OSX_VCP_Driver.zip at
86 http://www.silabs.com/support/pages/support.aspx?ProductFamily=USB+Bridges
88 - Connect your interface cable to a free USB port
90 - Put your divecomputer into PC Communication mode. (For Suunto Viper, press Mode - 1 Memory - 3 TR-PC)
91 (You should consult the manual of your specific divecomputer for your brand and type)
93 - Go in Subsurface to 'File - Import'
94 * Within the popup, under Dive computer, choose your brand and type. Here we choose Suunto Vyper.
95 * Change the devicename under which your interface is connected.
96 ** On Linux, default is /dev/ttyUSB0
97 ** On Windows, default is COM3
98 ** On Mac, default is ... specific to the dive computer
100 * Click the 'OK' button.
102 - Now watch how your data is retrieved from your divecomputer!
103 Depending on your type of computer and/or number of dives, this
104 could take some time. Please be patient.
107 Viewing and completing your logs
108 --------------------------------
110 When all data from your divecomputer is transferred, you will see a
111 listing of your dives in Area 3.
115 On Sunday Oct 23, 2011 you made a dive.
116 In the log line of this dive, you see the following information:
121 Sun, Oct 23, 2011 10:50 Date and time of your dive
123 Your rating (none at this time)
125 12.8 Your maximum depth in meters
127 31:20 Your dive-time in minutes and seconds
129 13.0 Lowest water temperature during your dive
131 Your used cylinder (none at this time)
133 air What type of mixture
135 SAC (none at this time)
137 Where you performed your dive (empty)
139 As you can see, some information is already there because it is
140 retrieved from your divecomputer. Some information is waiting for
141 you to be added. By double clicking on this dive, you can view and
148 When you double click on the dive log line, the editor window
149 opens. Now you can add information that is missing. Let start with
150 completing the example:
152 You double clicked on dive #12, as described in 5. Viewing and
153 completing your logs. The Dive Info window pops up and you will see
156 - Location: An input where you can enter your new location, or you can choose with the pull-down previous locations
157 - Dive Master: An input where you can enter the name of your Dive Master, or you can choose with the pull-down a previous name
158 - Buddy: An input where you can enter het name of you Buddy, or you can choose with the pull-down a previous name
159 - Rating: A pull-down where you can rate your dive.
160 - Notes: A free input where you can enter information about your dive. What you've seen, etc.
162 In this example we use the following information:
164 - Location: Oostvoornse Meer
165 - Dive Master: S. de Vries
168 - Notes: First dive here. Good visibility. Did see the concrete poles, some crab and fish. Very nice and easy dive.
169 Made movie with 'headcam'.
171 Now don't press ok yet!
177 You also want to edit your Cylinder information. And in the previous
178 chapter, this was not edited. There is still another item to edit in
179 the Dive Info screen:
181 - Cylinder: A double-click fieldset. Here you can edit your Cylinder information
183 So, when you double click on the cylinder info, you get another
184 popup. This popup gives you the following:
186 - Cylinder: Pull-down where you can choose your Cylinder, or add your own
187 - Size: The volume if not 'filled'
188 - Pressure: The maximum pressure of this Cylinder
190 * Start Pressure: What was the pressure starting the dive
191 * End Pressure: What was the pressure ending the dive
192 * Nitrox: What was the percentage of blend
194 Now we are going to enter the data:
200 Now tick the option for Start & End pressure
202 - Start Pressure: 180
206 Now your dive information for this dive is complete. You can now press
207 ok in the Dive Info screen and view the results.
210 Adding equipment info
211 ---------------------
213 In Area with the 3 tabs there is the tab Equipment. With this tab, you
214 can add Cylinders. We are going to add an additional Cylinder:
216 - In the main screen, click on the Equipment tab. This shows your
217 Cylinder you added in 7.
219 - Now press the Add button and the Cylinder popup comes back.
221 - Just like you added your Cylinder information in 7. Edit equipment
222 info, you add your cylinder information for the second Cylinder.
223 Fill in all the information about this Cylinder and press OK.
229 After adding all the information, you can use the tab Info &
230 Stats. This tab will provide you with all the (statistical and
231 calculated) information regarding your dive.
233 The information contains:
237 ** Date: Date and time of your dive
238 ** Dive Time: Duration of your dive
239 ** Surf Intv: Interval between previous dive and this dive
240 ** Max Depth: Maximum depth of this dive
241 ** Avg Depth: The average depth of this dive
242 ** Water Temp: Lowest temperature of the water
243 ** SAC: The amount of Surface Air Consumption liters per minute
244 ** OTU: The Oxygen Toxicity Units of this dive
245 ** O2/He: Amount of Oxygen/Helium
246 ** Gas Used: The total volume of gas used during this dive
250 ** Total time: Total time of all your dives together, calculated
251 ** Avg Time: The average divetime of your dives, calculated
252 ** Max Depth: The maximum depth of all your dives
253 ** Avg Depth: The average depth of all your dives, calculated
254 ** Max SAC: Highest of Surface Air Consumption of all your dives
255 ** Min SAC: Lowest of Surface Air Consumption of all your dives
256 ** Avg SAC: Average Surface Air Consuption of all your dives, calculated
259 Setting up preferences
260 ----------------------
262 Subsurface has the ability to modify the preferences you want. By
263 using menu 'File - Preferences' you will be presented a popup with the
264 'Units'. You are free to choose what is your preference, with other
265 words, use Metric or Imperial.
267 You can set the following options:
268 - Depth: Your diving depth in Meters or Feet
269 - Pressure: The pressure of your tank(s) in Bar/Ato or PSI (Pressure Square Inch)
270 - Volume: The volume of your tank(s) in Liter or CuFt (Cubic Feet) (At sea-level pressure)
271 - Temperature: The temperature of the water in Celcius or Fahrenheit
273 In the main screen, you did see in Area 3, some information. In the
274 Columns options, you can enable/disable options you would like to show
276 - Show Temp: Shows the temperature of your dive
277 - Show Cyl: Shows the cylinder(s) of your dive
278 - Show O2%: Shows the O2% of your dive
279 - Show SAC: Shows the SAC of your dive (Surface Air Consumption)
280 - Show OTU: Shows the OTU of your dive (Oxygen Toxicity Units)
282 And, you can change the font usage of the program.
284 I will give an example here:
286 I am a diver in The Netherlands, using the Metric System. Therefor, I
287 go to the menu File, choose Preferences here. In the Units section, I
293 - Temperature: Celcius
295 I would like to see the:
302 As a beginning diver, I don't need to track my OTUs. So I leave this
305 Clicking OK on the dialog stores these settings.
308 How to find the Device Name
309 ---------------------------
311 When you connect your divecomputer by using an USB connector, most of the
312 time, the default of '/dev/ttyUSB0' should work. But if you have other
313 Serial to USB devices, this can be different because '/dev/ttyUSB0' is
316 One of the ways to find out what your dive name is:
318 - Disconnect your usb cable of your dive computer
320 - Type the command: 'dmesg' and press enter
321 - Plug in your usb cable of your divecomputer
322 - Type the command: 'dmesg' and press enter
324 Within your terminal you should see a message similair to this one:
326 usb 2-1.1: new full speed USB device number 14 using ehci_hcd
327 usbcore: registered new interface driver usbserial
328 USB Serial support registered for generic
329 usbcore: registered new interface driver usbserial_generic
330 usbserial: USB Serial Driver core
331 USB Serial support registered for FTDI USB Serial Device
332 ftdi_sio 2-1.1:1.0: FTDI USB Serial Device converter detected
333 usb 2-1.1: Detected FT232BM
334 usb 2-1.1: Number of endpoints 2
335 usb 2-1.1: Endpoint 1 MaxPacketSize 64
336 usb 2-1.1: Endpoint 2 MaxPacketSize 64
337 usb 2-1.1: Setting MaxPacketSize 64
338 usb 2-1.1: FTDI USB Serial Device converter now attached to ttyUSB3
339 usbcore: registered new interface driver ftdi_sio
340 ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
342 You see that in the third line from the bottom, the usb adapter is
343 detected and is connected to 'ttyUSB3'. Now you use this information in
344 the import settings as '/dev/ttyUSB3'. Your divecomputer interface is
345 connected and you should be able to import your dives.
348 Importing dives from JDivelog
349 -----------------------------
351 Maybe you have been using JDivelog and you have a lot of dives logged in
352 this program. You don't have to type all information by hand into
353 Subsurface, because you can import your divelogs from JDivelog.
355 JDivelog stores its information into files with the extention of .jlb.
356 These .jlb contain all the information that has been stored, except your
357 images in xml format.
359 By using the menu 'File - Import' you get the popup, like described in
360 chapter 4, Importing new dives. Within this popup there is the option
361 to import existing files which are already on your computer. To import
362 your JDivelog file(s) do the following:
364 - Open 'File - Import' on the menu
365 - Use the file locator under XML file name
366 - Browse your directories to the location where your *.jlb file is
367 - Select your existing *.jlb file and click 'open'
368 - Click the OK button in the popup
370 After a few moments, you see your existing logs in Subsurface. Now you can
371 edit your dives like explained in chapter 6.
373 Information that is imported from JDivelog into the location field:
375 - Extended dive location information
377 Information that is merged into the location or notes field:
379 - Used amount of weight
381 - Used type of gloves
385 Alternatively, you can start subsurface with the --import comand line
386 which will have the same effect:
388 subsurface MyDives.xml --import JDivelogDives.jlb
390 will open your divelog (assuming that's called MyDives.xml) and then
391 import the dives from JdivelogDives.jlb. You can now save the combined
392 divelog back as MyDives.xml.
394 Subsurface will similarly import xml exports from DivingLog as well as
397 When importing dives subsurface tries to detect multiple records for
398 the same dive and merges the information as best as it can. So as long
399 as there are no time zone issues (or other reasons that would cause the
400 beginning time of the dives to be substantially different) subsurface
401 will not create duplicate entries.
404 Importing dives from Suunto Divemanager 3.*
405 -------------------------------------------
407 Before you can start importing dives from Suunto Divemanager, you first
408 have to export the dives you want to import. Subsurface does not import
409 directly from the Suunto Divemanager log files. The following procedures
410 unpacking instructions for Linux and Windows.
412 Export from Suunto Divemanager
413 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
415 - Start Suunto Divemanager and login with the name containing the logs
416 - Do not start the import wizard to import dives from your computer.
417 - In the navigation tree on the left side of the program-window, select your dives.
418 - Within the list of dives, select the dives you would like to import later:
419 * To select certain dives: hold ctrl and point & click the dive
420 * To select all dives: Select the first dive, hold down shift and select the last dive
421 - With the dives marked, use the program menu 'File - Export'
422 - The export popup will show
423 - Within this popup, there is one field called Export Path.
424 * Click the button browse next to the field Export Path
425 ** A file-manager like window pops up
426 ** Navigate to the directory where you want to store the Divelog.SDE file
427 ** Optional change the name of the file you want to save
429 * You are back in the Export popup. Press the button 'Export'
430 - Your dives are now exported to the file Divelogs.SDE.
432 Unpacking the Divelogs.SDE on Windows
433 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
435 Renaming your file to a .zip:
437 - Use the filemanager (explorer) and navigate to your Divelogs.SDE file
438 - Right click on the Divelogs.SDE file and choose 'Rename'
439 * Change the name into Divelogs.SDE.zip
440 * Press enter when done. A warning popup shows:
442 The file could be unusable when changing the extension. Are you sure:
445 * Your filemanager will show now the filename Divelogs.SDE.zip
447 When you double click your Divelogs.SDE.zip file, your preferred archiving
448 tool will start and show you the list of xml files that are in the zip
449 archive. Select all the xml files and extract them to a place where you
450 can find them later in the process.
452 Unpacking the Divelogs.SDE on Linux
453 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
455 The assumption is that you have exported your Divelogs.SDE on a Windows
456 system. You have to transfer the file to a location where you can read it
457 from within your Linux environment. You can use file-tranfer, shared
458 storage or an USB storage device to do this.
459 The example uses an USB storage:
461 - Insert your USB storage into your Windows computer
462 - Use the filemanager (explorer) to navigate to the location where your Divelogs.SDE file is located
463 - Copy the file to your USB storage:
464 * Select the file by 1 click
466 * Navigate to your USB Storage
468 - Disconnect your USB storage by right clicking your USB storage in the explorer and choose Eject
469 - Insert your USB storage into your Linux computer
470 - Use your favourite filemanager to navigate to your USB storage
471 - Copy the file to /tmp by:
472 * Right click on the file
475 * press Ctrl+v or use the menu 'Edit - Paste'
476 - The file is now transfered to /tmp
478 Now the file is in /tmp, we can extract the xml files from it. You can do
479 this by hand, or use the example script in Appendix B.
481 To extract the xml files, we need to open a terminal and use the following
487 unzip ../Divelogs.SDE
489 Your divelogs have now been extracted from the Divelogs.SDE file and you
490 can import them with the command:
494 And with the menu 'File - Save' you can save your dives into the
498 The menu and sub-menus
499 ----------------------
501 Within Subsurface, there are several menu and sub-menu options. All of
502 those will be described here with their function.
507 The file menu is used for the following menu options:
509 - Open:: Open your saved Subsurface xml file(s)
510 - Save:: Save your current divelogs or changes you made to your divelogs
511 - Print:: Print your current divelog profiles and information about the dive
512 - Import:: Import your dives from your divecomputer, JDivelogs or Suunto Divemanager
513 - Preferences:: Set your preferences as described in chapter 10
514 - Quit:: Quit the program
519 Within the Log menu, there are only 2 sub-items:
521 - Renumber:: This option provides you with a popup. Within this
522 popup you can choose what the first number of your dives should be
523 for this set of dives.
524 - View:: This is a submenu containing:
525 * List:: Show only the list of dives you have made
526 * Profile:: Show only the dive profile of the selected dive
527 * Info:: Show only the 3 tab information screen
528 * Three:: Show the 'default' 3 screen setup
533 This menu gives you the choice to enable or disable Events for the
534 selected divelog(s). At this time, you can enable or disable ascent.
535 When you enable ascent for your dives, within the dive profile, a yellow
536 marker with exclamation sign (!) will show on the points where you have
542 The Help menu shows only the About, which contains the version and author
543 information and License button.
549 The use of libdivecomputer provides the support for divecomputers. Within
550 the list of computers in the 'File - import' menu, you will see a listing
551 of divecomputers. This list is covering a compatible set. Please check
552 your users manual to check if your computer will be supported.
554 Supported divecomputers::
615 * OSTC computers are listed in the pull-down menu as OSTC. All 3 types are supported.
623 # Small basic example script to unpack Suunto Export files
624 # for the use with Subsurface
627 echo -n "Enter the directory where you stored your Suunto Divemanager export file: "
630 echo -n "Enter the name of your Suunto Divemanager export file: "
631 read SuuntoExportFile
633 echo "You have entered: $SuuntoExportDir/$SuuntoExportFile"
637 if [ -e ./$SuuntoExportFile ]; then
640 unzip ../$SuuntoExportFile
643 echo "Nothing found! Try again!"