Subsurface 2.1 User Manual ========================== Jacco_van_Koll_and_Dirk_Hohndel v0.1.1, October 2012 :Author Initials: JKO & DH :toc: :icons: :numbered: :website: http://subsurface.hohndel.org Scope of this document is the usage of the program. Please read the build manual for instructions how to build the software and (if needed) its dependencies. Audience: Fun Divers, Tec Divers, Professional Divers [[S_Introduction]] Introduction: ------------- Subsurface was started because of a lack of viable dive log software on Linux. It turns out that the resulting software was easily ported to Windows and Mac, but it clearly is a native Linux program first. The program is under active development and at version 3.0 it is already very usable for divers with supported dive-computers. In this manual the Suunto Vyper will be used for all examples. [[S_Requirements]] Requirements ------------ Before you are able to import information from your divecomputer into Subsurface, you need some preparation. Do you have the following: 1. Your Divecomputer - Compatible with libdivecomputer (see list in <>) 2. Communication interface - Cable to connect your divecomputer to your PC/Laptop/Netbook 3. Working installation of Subsurface 4. If needed, the manual of your divecomputer [[S_StartUsing]] Start using the program ----------------------- When you start the program for the first time, it shows no information at all. This is because the program doesn't have any information available. If you have used the program before and saved the data, the program will automatically load the already available dive-log files. There is a menu, containing 'File', 'Log', 'Filter', 'Planner' and 'Help'. The screen is divided in 3 area's: - Area with 4 tabs: Dive Notes, Equipment, Dive Info, and Stats - Area next to the 4 tabs which will contain the dive profile - Area with the dives (usually called dive list) which can be sorted by number, date, etc. [[S_ImportNewDives]] Import new dives from your divecomputer --------------------------------------- Before you start fiddling around with your divecomputer, note that there are divecomputers that consume more power when they are in the PC-Communication mode. This could drain your battery. Therefor, ensure if your computer is recharging when connecting to the USB port. The Suunto Viper does not recharge trough the USB connection. Please consult the manual of your divecomputer if you are unsure if it will be recharged when connected to the USB port. Now it is time to hook up your divecomputer to your PC: - Make sure that your OS has the required drivers installed * On Linux this means you need to have the correct kernel module loaded. Most distributions will do this automatically for you. * On Windows, the OS should offer to download the correct driver when you connect to the USB port. * On a Mac you at times have to manually hunt for the correct driver. For example the correct driver for the Mares Puck devices can be found as Mac_OSX_VCP_Driver.zip at http://www.silabs.com/support/pages/support.aspx?ProductFamily=USB+Bridges - Connect your interface cable to a free USB port - Put your divecomputer into PC Communication mode. (For Suunto Viper, press Mode - 1 Memory - 3 TR-PC) (You should consult the manual of your specific divecomputer for your brand and type) - Go in Subsurface to 'Log - Download From Dive Computer' * Within the pop-up, under Dive computer, choose your brand and type. Here we choose Suunto Vyper. * Change the device name under which your interface is connected. ** On Linux, default is /dev/ttyUSB0 ** On Windows, default is COM3 ** On Mac, default is ... specific to the dive computer * Click the 'OK' button. - Now watch how your data is retrieved from your divecomputer! Depending on your type of computer and/or number of dives, this could take some time. Please be patient. [[S_ImportUemis]] Import new dives from a Uemis Zurich ------------------------------------ Things are very similar when downloading dives from a Uemis Zurich divecomputer (which certainly is one of the ones that DO recharge when connected to the USB port). The main difference is that you don't enter a device name, but instead the location where the UEMISSDA file system is mounted once you connect the divecomputer. On Windows this is a drive letter (often 'E:' or 'F:'), on a Mac this is '/Volumes/UEMISSDA' and on Linux systems this differs depending on the distribution that you use. On Fedora it usually is '/var/run/media//UEMISSDA'. So once you have selected this as device name you can download the dives from the Uemis Zurich. One current issue is that you cannot download more than about 40-50 dives without running out of memory on the SDA. This will usually only happen the very first time you download dives from the Uemis Zurich - normally when downloading at the end of a day or even after a dive trip, the capacity is sufficient. If Subsurface displays and error that the divecomputer ran out of space the solution is straight forward. Disconnect the SDA, turn it off and on again, and reconnect it. You can now start a new download session and it will continue where it stopped the last time you tried. You may have to do this more than once, depending on how many dives you have stored on your divecomputer. At this point Subsurface doesn't download all the information that is stored on the SDA. Information about dive spots, buddies, and equipment is not yet downloaded. [[S_ViewingLogs]] Viewing and completing your logs -------------------------------- When all data from your divecomputer is transferred, you will see a listing of your dives in Area 3. An example: On Sunday Oct 23, 2011 you made a dive. In the log line of this dive, you see the following information: [width="70%",cols="<5%,10%,<20%,<65%",grid="none",frame="none",style="monospaced"] |=============================================================================== || # | 12 | Dive number || Date | Sun, Oct 23, 2011 10:50 | Date and time of your dive || * | | Your rating (none at this time) || m | 12.8 | Your maximum depth in meters || min | 31:20 | Your dive-time in minutes and seconds || Deg. C | 13.0 | Lowest water temperature during your dive || kg | | Weight carried (none at this time) || Suit | | Exposure protection suit worn (none at this time) || Cyl | | Your used cylinder (none at this time) || O2% | air | What type of mixture || SAC | | SAC (none at this time) || Location | | Where you performed your dive (empty) |=============================================================================== As you can see, some information is already there because it is retrieved from your divecomputer. Some information is waiting for you to be added. By double clicking on this dive, you can view and complete the log. The different types of information shown in this list may differ depending on the settings. More about that in <>. [[S_EditDiveInfo]] Edit the dive info ------------------ When you double click on the dive log line, the editor window opens. Now you can add information that is missing. Let start with completing the example: You double clicked on dive #12, as described in <>. The Dive Info window pops up and you will see the following: [horizontal] *Location*:: An input where you can enter your new location, or you can choose with the pull-down previous locations *GPS (WGS84 or GPS format)*:: An input where your can enter geographic coordinates of the dive site *Pick on map*:: A button you can click on to display an interactive map on which you can select the location of the dive site *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 *Buddy*:: An input where you can enter the name of you Buddy, or you can choose with the pull-down a previous name *Rating*:: A pull-down where you can rate your dive *Suit*:: An input where you can track the exposure protection suit you were wearing *Visibility*:: A pulldown where you can rate the visibility underwater *Air Temp in deg. C*:: An input where you can enter the air temperature *Notes*:: A free input where you can enter information about your dive. What you've seen, etc. In this example we use the following information: [horizontal] *Location*:: Oostvoornse Meer *Dive Master*:: S. de Vries *Buddy*:: S. de Vries *Rating*:: 3 stars *Suit*:: 7mm wet *Notes*:: First dive here. Good visibility. Did see the concrete poles, some crab and fish. Very nice and easy dive. + Made movie with headcam. Now don't press OK yet! [[S_EditEquipmentInfo]] Edit equipment info ------------------- You also want to edit your Cylinder information. And in the <>, this was not edited. There is still another item to edit in the Dive Info screen: - Cylinder: A double-click field set. Here you can edit your Cylinder information So, when you double click on the cylinder info, you get another pop-up. This pop-up gives you the following: - Cylinder: Pull-down where you can choose your Cylinder, or add your own - Size: The volume if not `filled' - Pressure: The maximum pressure of this Cylinder - Optional: * Start Pressure: What was the pressure starting the dive * End Pressure: What was the pressure ending the dive * Gasmix: What was the percentage O2 and He of the blend Now we are going to enter the data: - Cylinder: 15.0 l - Size: 15.0 - Pressure: 220 Now tick the option for Start & End pressure - Start Pressure: 180 - End Pressure: 60 - Press OK In very much the same way you can enter the weight you were carrying on the dive. Subsurface tracks the following: - Type: Specific type of weight system, like weight belt, integrated pockets - Weight: Amount of weight (by default in kg, but can be switched to use lbs) Enter the following data: - Type: Integrated - weight: 13kg - Press OK Now your dive information for this dive is complete. You can now press OK in the Dive Info screen and view the results. [[S_AddingEquipment]] Adding equipment info --------------------- In Area with the 3 tabs there is the tab Equipment. With this tab, you can add Cylinders and Weight Systems (just like in the previous dialog). We are going to add an additional Cylinder: - In the main screen, click on the Equipment tab. This shows your Cylinder you added in 7. - Now press the Add button and the Cylinder pop-up comes back. - Just like you added your Cylinder information in 7. Edit equipment info, you add your cylinder information for the second Cylinder. Fill in all the information about this Cylinder and press OK. [[S_ViewInfoStats]] View info & Stats ----------------- After adding all the information, you can use the tab Dive Info and the Stats tab. These tabs will provide you with all the (statistical and calculated) information regarding your dive. The information contains: - Dive Info: ** Date: Date and time of your dive ** Dive Time: Duration of your dive ** Surf Intv: Interval between previous dive and this dive ** Max Depth: Maximum depth of this dive ** Avg Depth: The average depth of this dive ** Water Temp: Lowest temperature of the water ** SAC: The amount of Surface Air Consumption liters per minute ** OTU: The Oxygen Toxicity Units of this dive ** O2/He: Amount of Oxygen/Helium ** Gas Used: The total volume of gas used during this dive - Statistics: ** Dive: Number of dives covered (usually one, unless you select more dives) ** Max/Min/Avg Temp: Corresponding temperature of the dives covered ** Total time: Total time of the covered dives together, calculated ** Avg/Long/Short Time: The average / longest / shortest dive time of the covered dives, calculated ** Max/Min/Avg Depth: The maximum / minimum / average depth of the covered dives ** Max SAC: Highest / lowest / average Surface Air Consumption of your covered dives [[S_SettingUpPreferences]] Setting up preferences ---------------------- Subsurface has the ability to modify the preferences you want. By using menu 'File - Preferences' you will be presented a pop-up with the 'Units'. You are free to choose what is your preference, with other words, use Metric or Imperial. You can set the following options: - Depth: Your diving depth in Meters or Feet - Pressure: The pressure of your tank(s) in Bar/Ato or PSI (Pressure Square Inch) - Volume: The volume of your tank(s) in Liter or CuFt (Cubic Feet) (At sea-level pressure) - Temperature: The temperature of the water in Celsius or Fahrenheit - Weight: The weight of your weight system in kg or lbs In the main screen, you did see in Area 3, some information. In the Columns options, you can enable/disable options you would like to show there: - Show Temp: Shows the temperature of your dive - Show Cyl: Shows the cylinder(s) of your dive - Show O2%: Shows the O2% of your dive - Show SAC: Shows the SAC of your dive (Surface Air Consumption) - Show OTU: Shows the OTU of your dive (Oxygen Toxicity Units) - Show Weight: Shows the total weight carried - Show Suit: Shows the suit you were wearing You can also change the default setting whether your dives are grouped by dive trips (the algorithm makes educated guesses) or whether you'd prefer to do any grouping of dive trips manually And, you can change the font used in the dive list, I will give an example here: I am a diver in The Netherlands, using the Metric System. Therefor, I go to the menu File, choose Preferences here. In the Units section, I use the following: - Depth: Meter - Pressure: Bar - Volume: Liter - Temperature: Celsius - Weight: kg I would like to see the: - Temperature - Show Cyl - Show O2% - Show SAC As a beginning diver, I don't need to track my OTUs. So I leave this one not enabled. Clicking OK on the dialog stores these settings. [[S_HowFindDeviceName]] How to find the Device Name --------------------------- When you connect your divecomputer by using an USB connector, most of the time, the default of '/dev/ttyUSB0' should work. But if you have other Serial to USB devices, this can be different because '/dev/ttyUSB0' is already in use. One of the ways to find out what your dive name is: - Disconnect your USB cable of your dive computer - Open a terminal - Type the command: 'dmesg' and press enter - Plug in your USB cable of your divecomputer - Type the command: 'dmesg' and press enter Within your terminal you should see a message similar to this one: usb 2-1.1: new full speed USB device number 14 using ehci_hcd usbcore: registered new interface driver usbserial USB Serial support registered for generic usbcore: registered new interface driver usbserial_generic usbserial: USB Serial Driver core USB Serial support registered for FTDI USB Serial Device ftdi_sio 2-1.1:1.0: FTDI USB Serial Device converter detected usb 2-1.1: Detected FT232BM usb 2-1.1: Number of endpoints 2 usb 2-1.1: Endpoint 1 MaxPacketSize 64 usb 2-1.1: Endpoint 2 MaxPacketSize 64 usb 2-1.1: Setting MaxPacketSize 64 usb 2-1.1: FTDI USB Serial Device converter now attached to ttyUSB3 usbcore: registered new interface driver ftdi_sio ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver You see that in the third line from the bottom, the USB adapter is detected and is connected to 'ttyUSB3'. Now you use this information in the import settings as '/dev/ttyUSB3'. Your divecomputer interface is connected and you should be able to import your dives. [[S_ImportingDivesJDivelog]] Importing dives from JDivelog ----------------------------- Maybe you have been using JDivelog and you have a lot of dives logged in this program. You don't have to type all information by hand into Subsurface, because you can import your divelogs from JDivelog. JDivelog stores its information into files with the extension of .jlb. These .jlb contain all the information that has been stored, except your images in xml format. By using the menu 'File - Import XML File(s)' you get a popup asking for the filename. To import your JDivelog file(s) do the following: - Open 'File - Import XML Files(s)' on the menu - Browse your directories to the location where your *.jlb file is - Select your existing *.jlb file and click 'open' - Click the OK button in the popup After a few moments, you see your existing logs in Subsurface. Now you can edit your dives like explained in <>. Information that is imported from JDivelog into the location field: - Extended dive location information Information that is merged into the location or notes field: - Used amount of weight - Used type of suit - Used type of gloves - Type of dive - Dive activity Alternatively, you can start subsurface with the --import command line which will have the same effect: subsurface MyDives.xml --import JDivelogDives.jlb will open your divelog (assuming that's called MyDives.xml) and then import the dives from JdivelogDives.jlb. You can now save the combined divelog back as MyDives.xml. Subsurface will similarly import xml exports from DivingLog as well as Suunto DiveManager. When importing dives subsurface tries to detect multiple records for the same dive and merges the information as best as it can. So as long as there are no time zone issues (or other reasons that would cause the beginning time of the dives to be substantially different) subsurface will not create duplicate entries. [[S_ImportingDivesSuunto]] Importing dives from Suunto Divemanager 3.* ------------------------------------------- Before you can start importing dives from Suunto Divemanager, you first have to export the dives you want to import. Subsurface does not import directly from the Suunto Divemanager log files. The following procedures unpacking instructions for Linux and Windows. Export from Suunto Divemanager ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Start Suunto Divemanager and login with the name containing the logs - Do not start the import wizard to import dives from your computer. - In the navigation tree on the left side of the program-window, select your dives. - Within the list of dives, select the dives you would like to import later: * To select certain dives: hold ctrl and point & click the dive * To select all dives: Select the first dive, hold down shift and select the last dive - With the dives marked, use the program menu 'File - Export' - The export pop-up will show - Within this pop-up, there is one field called Export Path. * Click the button browse next to the field Export Path ** A file-manager like window pops up ** Navigate to the directory where you want to store the Divelog.SDE file ** Optional change the name of the file you want to save ** Click 'Save' * You are back in the Export pop-up. Press the button 'Export' - Your dives are now exported to the file Divelogs.SDE. Reading Suunto Divemanager Export in Subsurface ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The file Divelogs.SDE can now be opened (or imported) in Subsurface. Different from earlier versions of Subsurface, no manual unpacking of the .SDE file is needed anymore. [[S_Menu]] The menu and sub-menus ---------------------- Within Subsurface, there are several menu and sub-menu options. All of those will be described here with their function. The file menu ~~~~~~~~~~~~~ The file menu is used for the following menu options: - New:: Close your current divelog (saving if necessary) and start a new empty dive list - Open:: Open your saved Subsurface xml file(s) - Save:: Save your current divelogs or changes you made to your divelogs - Save As:: Save your current divelogs or changes you made to your divelogs under a different name - Close:: Close your current divelog, saving as necessary - Import XML File(s):: Import your dives from files exported by other divelogs - Print:: Print your current divelog profiles and information about the dive - Preferences:: Set your preferences as described in <> - Quit:: Quit the program The Log menu ~~~~~~~~~~~~ Within the Log menu, you will find the following sub-items: - Download From Dive Computer:: Allows you to download dive information from your dive computer - Add Dive:: Manually add a dive that you cannot download from an existing computer - Renumber:: This option provides you with a pop-up. Within this pop-up you can choose what the first number of your dives should be for this set of dives. - Autogroup:: Toggle the auto group setting (see the discussion in the <>) - Toggle Zoom:: The dive profile tries to convey some first glance information about the depth of a dive - so the vertical scaling of the profile always show a minimum of 30m / 90ft. This can be changed to be only 10m / 30ft. - Yearly Statistics: Contrary to the Statistics in the main display, these are purely calendar based. - View:: This is a submenu containing: * List:: Show only the list of dives you have made * Profile:: Show only the dive profile of the selected dive * Info:: Show only the 3 tab information screen * Three:: Show the 'default' 3 screen setup The Filter menu ~~~~~~~~~~~~~~~ This menu gives you the choice to enable or disable Events for the selected divelog(s). At this time, you can enable or disable ascent. When you enable ascent for your dives, within the dive profile, a yellow marker with exclamation sign (!) will show on the points where you have ascended. The Help menu ~~~~~~~~~~~~~ The Help menu shows only the About, which contains the version and author information and License button. [[AppendixA]] Appendix A: Supported Dive Computers ------------------------------------ The use of libdivecomputer provides the support for divecomputers. Within the list of computers in the 'File - import' menu, you will see a listing of divecomputers. This list is covering a compatible set. Please check your users manual to check if your computer will be supported. Supported divecomputers:: Atomics:: Cobalt Cressi:: Edi Mares:: Icon HD Nemo Puck Air Oceanic:: Veo250 VT Pro OSTC:: DR5 2N Reefnet:: Sensus Sensus Pro Sensus Ultra Suunto:: Cobra 2 3 D3 D9 D4 D4i D6 D6i D9tx Eon Gekko HelO2 Mosquito Solution Alpha Nitrox/Vario Stinger Vyper 2 Air Vytec DS Zoop Uemis:: Zurich Uwatec:: Aladin Memo Mouse Smart Zeagle:: N2iTiON 3 * OSTC computers are listed in the pull-down menu as OSTC. All 3 types are supported. [[AppendixB]] Appendix B: Mac OSX Driver Installation --------------------------------------- Working out which driver to use for a Mac requires for a particular dive computer can require some experimentation. The libdivecomputer website provides a useful point from which to start: http://www.divesoftware.org/libdc/drivers.html. It lists a number of sites for manufacturers of the serial to usb chips which provide the necessary conversions. Here you have two alternatives. Either you try each of the major drivers in turn until you find the right one, or you follow some further steps to try and identify the right driver up front. To determine the required driver up front, first attach the usd to device connector cable. Next open a terminal window and run the command: system_profiler SPUSBDataType > usb.txt you should end up with a file (usb.txt in this example) which contains the VID/PID information which can then be used with the url above to narrow the field. Just open the text file and compare the information with the table in the drivers section of the web page. This should point you to the relevant driver manufacturer. Typically, one then needs to navigate to the relevant sub page for "drivers" and then the one for "VCP drivers." VCP stands for Virtual Com Port. You want VCP rather than D2XX drivers, for example. Make sure to download the correct version for your particular version of OS X. These can be downloaded to the Mac and installed in the usual way. Details on how to install on OS X 10.8 differ from earlier versions due to the new security functions. Put simply, unless the driver has been digitally signed in an approved way OS X will block the installation. You can either make some changes to your system security settings or manually override the block. The latter seems more sensible and only involves control-clicking the installation package and answering some standard dialogs. The sequence goes like this: - download the driver .dmg package to your downloads folder - right click the downloads folder an navigate to the new dmg package - control-click the package: a dialog will open stating that the package has not been signed and is from an unknown developer and asking whether you really want to proceed - if happy, you accept the dialog and the package opens and may show you one or more versions - select the relevant version, click the package installer and that should be it. You can find a high-level explanation of the new security features from apple here: https://www.apple.com/osx/what-is/security.html. Until you have the correct driver installed, subsurface will not connect to your dive computer. If you try one VCP driver and it still doesn't work, try the next manufacturer until it does. If you run out of drivers and still can't get things working perhaps it is time to contact us via the subsurface mail lists.