More Mobile Software

Exporting your Dives to PDF in iOS

We were recently made aware of a feature in the iOS printing system that can be used to export a PDF version of a Dive Log dive. This is not something that we explicitly added to Dive Log but, like the macOS printing system, there is a way to generate a PDF when you “print” a dive rather than actually printing it. The resulting PDF can be exchanged via any number of built in Apps, services, or 3rd party Apps that you have installed on your iOS device. Examples include Mail, Messages, iCloud Drive, Dropbox and PDF Expert.

You can use this trick even if you don’t have access to an AirPrint printer and would simply like to share a more detailed version of your dive, or you would like to keep a PDF record of your dives. The basic steps are as follows:

1) While viewing a dive on your iPhone, scroll to the bottom and tap on “Share dive details”. On the iPad you can tap on the “Share” icon (the box with an upward arrow coming out of it next to the "delete” button) in the toolbar for the Dive Details screen.

2) Tap on the “or Print Dive” item in the sheet that is presented.

3) When the print "Printer Options" screen is displayed you will see a preview of what the print of your dive will look like. If you have an iPhone 6s or later you can “3D Tap” on this preview. On other iPhones and iPad you can use the “pinch out” gesture (i.e. start with two fingersr close together on the preview image and spread them apart).

4) You should now see a full screen preview of the print preview with another “Share” icon. Tap on that icon.

5) You will be presented with the various Apps and Actions available on your device that can accept the PDF file. Tap on the item you’d like to use and the PDF file will be transfered to that App or service.

6) You can then cancel out of the Print dialog.

There are a couple of caveats and tricks to be aware of with this technique.

The printing system on iOS generates the print preview (and therefore the PDF) based on the paper characteristics of the selected printer on the Printer Options page. If you don't have access to any printers on your network, you'll get the default page characteristics defined by iOS. These characteristics may include bigger top and bottom margins or a different paper size than you might like. If you do have a printer on your network you can select that printer (and it may have different paper tray options or different paper sizes) before you 3D tap or "pinch out" on the preview image, those characteristics will be applied to the resulting PDF. (Be sure to give the print preview a chance to re-render itself). You can also play with any other options (like page range) to control the PDF that is generated.

The first time that you use this technique you *may* find that it claims to work but does not produce a PDF in the App or location you picked. It's not clear why this is, but once it works once (Dropbox was the first location that worked for me) then it seemed to work reliably with all the Apps and services after that. This may be specific to certain iOS versions or a particular device. Again, I’m not sure of the reason.

Hopefully this will be helpful to those of you looking for PDF versions of your logbook.

Print your Dive using Dive Log for iOS

ScubaPro Bluetooth Downloads

Dive Log 2.5 and DiveLogDT 4.4.36 were both recently released, with each one adding support for downloading the ScubaPro Galileo 2 (G2) and the ScubaPro Aladin Sport Matrix.
ScubaPro G2
Dive Log supports downloading via Bluetooth Low Energy (BLE), also known as "Smart Bluetooth" and requires an In-App Purchase to add this functionality. User's report that it's great to be able to download their dives while still on the boat.

DiveLogDT can support downloading both models either via the USB cable, or using BLE. Simply select your desired method using the drop down menu. You will find that downloading via the USB connection is much faster. But you might find downloading via BLE a little more convenient.

As part of developing this functionality, we noticed some "idiosyncrasies" with the Bluetooth functionality. As a user, knowing about them in advance may save you some time. There are 3 distinct phases when using BLE - Scanning, Connecting, and then Connected.

Scanning for the device in iOS is very quick. You'll see the information about the device show up on the Download page right away. Scanning in macOS is very slow. It can take up to 30 seconds for the device to show up so you'll need to be more patient.

The first time you connect your iOS or macOS device to the dive computer, you will need to "pair" with it. Both iOS and macOS have this functionality built in so that the first time you try it, you'll get a popup from the OS to enter the PIN number shown on the dive computer. Now the 2 devices are "paired", ie: they know about each other. This step, technically, only needs to be done once, the very first time you try to connect.

Now your iOS or macOS device is finally connecting to the dive computer. If all goes according to plan, it get's connected and then starts downloading the dive data.

If you have previously been connected to the dive computer and successfully downloaded dive data in the past, but now find that you can't go from "Connecting" to "Connected", it's likely that one or the other side of the devices has gotten confused, and no further connectivity will be possible until old connection parameters are "cleared out". This means that you need to "re-pair". Open the Bluetooth Preferences (under Settings -> Bluetooth in iOS and under System Preferences -> Bluetooth in macOS), and REMOVE the infomation about your dive computer. In iOS, touch the small 'i' next to the name (eg: G2) and then touch "Forget This Device". In macOS, click the small 'x' next to the name in the list of known Bluetooth devices.

Now, then next time you try to connect to your dive computer you will receive another popup to enter the pairing code, but it should complete without issue as the "out-of-date" information is now gone.

As always, contact us if you have any issues or questions. Happy Diving!

Import, Export and Synchronization via Cloud Services

Import, Export and Synchronization via Cloud Services (including iCloud Drive) in Dive Log on iOS.
(Some detailed background and analysis)


The most resent version of Dive Log for iOS (2.3, release July 2017) adds support for Importing, Exporting and Synchronizing logbook data via Cloud services such as iCloud Drive, Dropbox, GoogleDrive, OneDrive and Box. This new support depends on an iOS feature called “File Provider Extensions” and may require a bit more explanation to fully take advantage of the capabilities. It is also important to understand that this support is different from the “iCloud Synchronization” that has been available in Dive Log on iOS for a number of years.

The existing “iCloud Synchronization” has been relabeled “iOS iCloud Synchronization”. This is exactly the same as what you may have been using for some time now and has no other changes. This feature can use iCloud Drive OR the older iCloud Documents & Data service depending on how your Apple ID is configured. However, when iCloud Drive is used as the underlying file mechanism you will not be able to see these files except from within Dive Log on iOS devices signed in with your Apple ID. These files are stored in a private area of iCloud Drive (or Documents & Data if you are still using that service) and due to Apple’s security mechanisms can not be exposed in any other way.

The new features added in the 2.3 release of Dive Log allows you to expose your logbook data via iCloud Drive (or other File Provider Extensions installed on your device) so that you can exchange those files with other devices and potentially other users.

By default, most iOS devices are configured to support iCloud Drive (it is possible to turn this off so if you do not have iCloud Drive available you should look in your device’s settings under iCloud to enable it). If you want to use any of the other Cloud services that have File Provider Extension support, all you need to do is install the app from that service (Dropbox, GoogleDrive, Box, OneDrive, etc.) on your device. If the service implements the File Provider Extension, then it will (or should be) available from within Dive Log. Note that all File Provider Extension implementations are not created equally and do not necessarily support all the possible modes that Dive Log can take advantage of. Further, some of the implementations have significant bugs that can cause them to not work properly. However, the advantage to using the File Provider Extension support from within Dive Log is that as these 3rd party implementations increase and improve, Dive Log will automatically be able to take advantage of the improvements without us issuing a new version of Dive Log.

Not surprisingly, the best implementation of the File Provider Extension is iCloud Drive itself. So for the best experience, it is suggested that you use iCloud Drive to store and interact with your logbook files. That said, the other services do work as well and I’ll detail the limitations later in this post.

In general, this new support includes the ability to:

  • Export complete Dive Log format logbooks and DAN DL7 format files,
  • Import a Dive Log formatted logbook (either replacing the active logbook or possibly merging chnages into the active logbook if the remote Dive Log formatted logbook shares an ancestry with the active logbook) and Import dives from a DAN DL7 formatted file into the active logbook,
  • Synchronize the active logbook with the selected remote Dive Log formatted logbook file (provided that it shares a common ancestry)

via installed “File Provider Extensions”. This will enable you to interact with the Cloud Synchronization features in DiveLogDT or Dive Log Manager on the Mac as well as with Diving Log 6.0 on a Windows PC via the supported Cloud services as well as exchange files between iOS devices. One thing to keep in mind though is that synchronizing data via this mechanism (vs using the WiFi Synchronization support) does require internet access and will not work until both devices can interact with the internet.

In order to synchronize between Dive Log on iOS and Dive Log on other iOS devices or applications on Macs or PCs you generally need to follow these steps:

  1. Upload an initial copy of the logbook to the Cloud service (in Dive Log this is accomplished via the new “Export” feature. You would typically start with the device that has your most complete logbook as you will be using this as the basis for all future logbooks.
  2. Load that initial logbook from the Cloud service onto the other devices that want to participate in Synchronization (in Dive Log this would be accomplished via the new “Import” feature.
  3. As you make changes on any device, Synchronize those changes with the copy of the logbook in the Cloud service, and then synchronize each device in turn with that logbook in the Cloud service (in Dive Log this is accomplished using the “Synchronize Dive Log Logbook” feature).

When you Synchronize logbooks via this mechanism, Dive Log will work with the File Provider Extension to resolve any conflicts *IF* the File Provider Extension supports conflict resolution (as of right now, iCloud Drive is the only service that exposes conflict files to Dive Log to be resolved). Conflicts can arise when data is sent to the server from multiple devices or if the internet was not available at the time a file was submitted. Other services use other mechanisms local to their servers to resolve conflict … this usually means that they “pick the winner” based on some timestamp mechanism and Dive Log only ever sees this “winner” so no record by record conflict resolution is possible). Also, not all services implement the features required to support this bi-directional synchronization.

The File Provider Extension provides for two types of services: “Copy” and “Open”. In the case of “Copy”, the requesting app (Dive Log in this case) is provided a “Copy” of the Cloud file to work with but can not write the remote version of the file. Dropbox, for example, only supports the “Copy” service so it is not possible to do the bi-directional synchronization with Dropbox using a single file (note you can “Import with Sync” and then “Export” the resulting logbook file back to Dropbox to get a similar effect but it will not be able to replace the existing file in Dropbox unless you delete it first). In the case of “Open”, Dive Log is given access to a writable copy of the remote file so that it can upload any changes that it makes via the Synchronization process. This service is supported by iCloud Drive, Box, OneDrive and GoogleDrive *BUT*, as things currently stand, only iCloud Drive and Box implement this service without bugs (this can change with each update to the File Provider Extension apps so you may find that other services start working properly in the future).

In summary, as things stand as of this writing:

  • iCloud Drive supports “Copy” and “Open” semantics. Conflict resolution is supported.
  • Box supports “Copy” and “Open” semantics. Conflict resolution is done before Dive Log gets access to the file so no conflict resolution is done by Dive Log.
  • OneDrive supports “Copy” and “Open” semantics. No conflict resolution is available to Dive Log and bugs may prevent the remote file from being updated.
  • Google Drive supports “Copy” semantics and reports that it supports “Open” semantics, but bugs in their implementation prevent synchronization from working properly (Import works with some limitations and Export seems to work).
  • Dropbox only support “Copy” semantics so Import and Export both are available but not Synchronization.

Hopefully this provides some background to help you take advantage of the new facilities. You can (and should) make backups of your logbooks before doing any synchronization operations. Dive Log will maintain the most recent logbook that was in place before an operation locally so that you can revert to it if needed. You can also use the “Export” feature to make a backup of any Dive Log logbook and you can use the Cloud service provider (i.e. File Provider Extension) apps to make backups of your files in their respective services.

Dive Log, DCbuddy and the Suunto Vyper Novo and Zoop Novo

The current shipping version of Dive Log for iOS contains support for downloading Suunto’s latest dive computers using DCbuddy. You can download the Vyper Novo and the Zoop Novo by choosing the Manufacturer “Suunto” and the Model “DX” on the DCbuddy download screen. Dive Log will automatically detect that you are talking to a Vyper Novo or Zoop Novo and will parse the downloaded data appropriately. The next update to Dive Log will add the Vyper Novo and the Zoop Novo to the list of Models on the DCbuddy downloads page.

The Vyper Novo and the Zoop Novo use the “DCbuddy - Suunto D” connectors rather than the “DCbuddy - Suunto Z” connectors used by previous Vyper and Zoop models. If you already have a DCbuddy and just require just the pigtail connector those are available from the DiveNav Inc. website (https://www.divenavstore.com/interfaces).

Dive Log also recently added support for the Oceanic DataMask and the Aeris CompuMask. These computers use the "DCbuddy - Pelagic V” connectors.

Dive Log 2.1 released with Download support for Petrel 2

petrel-2We are so excited to announce that the latest release of Dive Log, version 2.1, now has an In-App purchase option for Downloading the Shearwater Petrel 2 dive computer. The Petrel 2 includes Bluetooth LE support and so any iOS device that supports Bluetooth LE and can run Dive Log will work.
This functionality was announced and demo'd at DEMA last November and we have been Beta testing it since then. Although the core functionality has been working for some time, the last 10% of the details as usual took 90% of the time. For example, what do you do if there are *2* Petrel 2's on the same boat? This dive computer is very popular and so things like this need to be handled correctly and tested.
Shearwater has done a press release announcing their new desktop software and the Dive Log support. You can read more about it.
Our own desktop software will of course also download the Predator, Petrel, and Petrel 2 via regular Bluetooth and it will also import from the Shearwater Desktop software logbook format. So we're Shearwater ready!

New Blog area on our Website!

Welcome to our new website and Blog area!

We have switched website technologies and will be publishing our Blog entries here in the future so stay tuned.

But, so our old entries don't get lost, here is a link to the original Blog and our original posts.