Can't download dives from Shearwater Perdix (Non AI)

720 views
Skip to first unread message

Alvaro Aguilera

unread,
Sep 2, 2019, 12:08:13 PM9/2/19
to Subsurface Divelog
Dear list,

I recently had to reinstall my laptop and thus also Subsurface. Since
there are no native packages for OpenSUSE 15.1, I took
4.9.1-x86_64.AppImage. Now I'm not able to download dives anymore :-(

This is what I get in the terminal:

Starting download from  BT
downloading only new dives
Linux Bluez connecting to Uuid "{00001101-0000-1000-8000-00805f9b34fb}"
Starting Bluetooth Socket discovery
UUID filter ("{00001101-0000-1000-8000-00805f9b34fb}")
Discovery on:  "00:13:43:20:BA:B3" Mode:
QBluetoothServiceDiscoveryAgent::DiscoveryMode(FullDiscovery)
SDP search failed for "00:13:43:20:BA:B3"
Socket discovery finished
Didn't find any
Cannot find sdpscanner: ""
Failed to connect to device  00:13:43:20:BA:B3 . Device state
QBluetoothSocket::UnconnectedState . Error:
QBluetoothSocket::ServiceNotFoundError
Enabling GATT request timeout behavior 20000
qt_ble_open( 00:13:43:20:BA:B3 )
Creating default GAP/GATT services
addresstypeToUse: "Random"
No settings found for peer device.
HCI event triggered, type: e
HCI event triggered, type: e
timeout while trying to connect to the controller 00:13:43:20:BA:B3
Finishing download thread: "Unable to open 00:13:43:20:BA:B3 Shearwater
(Perdix)"


I already tried joining the dialout-group, changing the permissions of
the tty device, but that didn't help...

Any idea how to get this running?


Thanks
Alvaro

pd. btw. the Android-App doesn't download the dives either :(

Dirk Hohndel

unread,
Sep 2, 2019, 1:40:58 PM9/2/19
to subsurfac...@googlegroups.com

> On Sep 2, 2019, at 9:08 AM, Alvaro Aguilera wrote:
>
> Dear list,
>
> I recently had to reinstall my laptop and thus also Subsurface. Since there are no native packages for OpenSUSE 15.1, I took 4.9.1-x86_64.AppImage. Now I'm not able to download dives anymore :-(
>
> This is what I get in the terminal:
>
> Starting download from BT
> downloading only new dives
> Linux Bluez connecting to Uuid "{00001101-0000-1000-8000-00805f9b34fb}"
> Starting Bluetooth Socket discovery
> UUID filter ("{00001101-0000-1000-8000-00805f9b34fb}")
> Discovery on: "00:13:43:20:BA:B3" Mode: QBluetoothServiceDiscoveryAgent::DiscoveryMode(FullDiscovery)
> SDP search failed for "00:13:43:20:BA:B3"
> Socket discovery finished
> Didn't find any
> Cannot find sdpscanner: ""
> Failed to connect to device 00:13:43:20:BA:B3 . Device state QBluetoothSocket::UnconnectedState . Error: QBluetoothSocket::ServiceNotFoundError
> Enabling GATT request timeout behavior 20000
> qt_ble_open( 00:13:43:20:BA:B3 )
> Creating default GAP/GATT services
> addresstypeToUse: "Random"
> No settings found for peer device.
> HCI event triggered, type: e
> HCI event triggered, type: e
> timeout while trying to connect to the controller 00:13:43:20:BA:B3
> Finishing download thread: "Unable to open 00:13:43:20:BA:B3 Shearwater (Perdix)"

Maybe Linus can tell us what's going wrong - the AppImage right now is based on a very old Qt version.
I am quite literally right now working on fixing that - but the new AppImage isn't quite ready, yet.

> I already tried joining the dialout-group, changing the permissions of the tty device, but that didn't help...

That shouldn't be the problem with BLE communication.

> pd. btw. the Android-App doesn't download the dives either :(

That should work, but the problem is that Shearwater dive computers are known to do rather strange
things when you try to use them with multiple devices.
Strange as this may sound, can you take the Android device and the Shearwater far away from all other
computers and devices? Out in the back yard or something. Just to make sure that the Android device is
the ONLY device that the Shearwater sees? Turn on Bluetooth on the Shearwater, THEN start
Subsurface-mobile on the Android device and after maybe 15 seconds go to the Download screen.
Try to download (you should see the Perdix as an option in the drop down for connections).

If that fails, right after the download attempt go to the About screen, tap the button to copy the logs and
send us those logs.

Hope this helps!

/D

Alvaro Aguilera

unread,
Sep 2, 2019, 1:59:14 PM9/2/19
to subsurfac...@googlegroups.com
Hi Dirk, 

unfortunately the app backyard-sync didn't work. Here is the log:

---------- subsurface.log ----------
"0.004: Successfully opened logfile /storage/emulated/0/subsurface.log at Mo. Sept. 2 19:52:10 2019"
"0.004: Starting Subsurface-mobile:2.2.0(4.9.1.18):Android  (9.0):arm64:de-DE"
"0.004: built with libdivecomputer v0.7.0-devel-Subsurface-NG (ffbb47297539b873a1bc49d71ebd739639876b65)"
"0.004: built with Qt Version 5.12.4, runtime from Qt Version 5.12.4"
"0.004: built with libgit2 0.26.0"
BTDiscoveryReDiscover: localBtDevice.isValid() true
"BTDiscoveryReDiscover: localDevice Galaxy S8+ is powered on, starting discovery"
paired BT classic device type 3 with address "00:13:43:20:BA:B3"
paired BLE device type 3 with address "LE:00:13:43:20:BA:B3"
paired BT classic device type 1 with address "00:13:43:39:E9:FC"
paired BLE device type 2 with address "LE:D2:52:57:16:C2:BE"
paired BT classic device type 1 with address "00:11:67:11:14:3B"
paired BT classic device type 1 with address "3E:19:06:24:04:86"
paired BLE device type 2 with address "LE:00:22:D0:2A:98:30"
paired BT classic device type 1 with address "EC:55:F9:F5:C4:7A"
paired BT classic device type 3 with address "B8:69:C2:69:B6:62"
paired BLE device type 3 with address "LE:B8:69:C2:69:B6:62"
paired BT classic device type 1 with address "C9:5C:FD:27:06:21"
paired BT classic device type 1 with address "E3:28:E9:20:DC:30"
Found new device: "Perdix" "00:13:43:20:BA:B3"
"this could be a Shearwater Perdix"
Found new device: "Perdix" "LE:00:13:43:20:BA:B3"
"this could be a Shearwater Perdix"
Found new device: "DistoX-4328" "00:13:43:39:E9:FC"
Not recognized as dive computer
Found new device: "Forerunner 235" "LE:D2:52:57:16:C2:BE"
Not recognized as dive computer
Found new device: "Alesis TransAct" "00:11:67:11:14:3B"
Not recognized as dive computer
Found new device: "T8-L" "3E:19:06:24:04:86"
Not recognized as dive computer
Found new device: "Polar H7 2A9830" "LE:00:22:D0:2A:98:30"
Not recognized as dive computer
Found new device: "trantor" "EC:55:F9:F5:C4:7A"
Not recognized as dive computer
Found new device: "JBL Flip 3" "B8:69:C2:69:B6:62"
Not recognized as dive computer
Found new device: "JBL Flip 3" "LE:B8:69:C2:69:B6:62"
Not recognized as dive computer
Found new device: "Tribit XSound Go" "C9:5C:FD:27:06:21"
Not recognized as dive computer
Found new device: "TaoTronics TT-BH07" "E3:28:E9:20:DC:30"
Not recognized as dive computer
Paired = "Perdix" "00:13:43:20:BA:B3"
Paired = "Perdix" "LE:00:13:43:20:BA:B3"
Paired = "DistoX-4328" "00:13:43:39:E9:FC"
Paired = "Forerunner 235" "LE:D2:52:57:16:C2:BE"
Paired = "Alesis TransAct" "00:11:67:11:14:3B"
Paired = "T8-L" "3E:19:06:24:04:86"
Paired = "Polar H7 2A9830" "LE:00:22:D0:2A:98:30"
Paired = "trantor" "EC:55:F9:F5:C4:7A"
Paired = "JBL Flip 3" "B8:69:C2:69:B6:62"
Paired = "JBL Flip 3" "LE:B8:69:C2:69:B6:62"
Paired = "Tribit XSound Go" "C9:5C:FD:27:06:21"
Paired = "TaoTronics TT-BH07" "E3:28:E9:20:DC:30"
"Created position source android"
"0.032: Created position source android"
"Set GPS service update interval to 300 s"
"0.032: Set GPS service update interval to 300 s"
"0.032: location service is available"
qrc:/org/kde/kirigami/Page.qml:276:5: QML Loader: Binding loop detected for property "active"
QQmlExpression: Expression qrc:/qml/DownloadFromDiveComputer.qml:334:5 depends on non-NOTIFYable properties:
    QMLManager::DC_forceDownload
Model size of -1 is less than 0
Both point size and pixel size set. Using pixel size.
"0.638: Datendatei wird synchronisiert"
"0.642: Lade Tauchgänge aus dem lokalen Zwischenspeicher"
"0.703: Tauchdaten erfolgreich geöffnet"
"0.728: AppState changed to active with save ongoing and no unsaved changes"
"0.732: 291 dives loaded from cache"
"0.733: have cloud credentials, but user asked not to connect to network"
checkPendingIntents 
Using the following font: Roboto at 12pt with mobile_scale: 1
qqwindow devicePixelRatio 2.6259 2.6259
Supported dive computers:
"Aeris: 500 AI (SERIAL), A300 (SERIAL), A300 AI (SERIAL), A300CS (SERIAL), Atmos 2 (SERIAL), Atmos AI (SERIAL), Atmos AI 2 (SERIAL), Compumask (SERIAL), Elite (SERIAL), Elite T3 (SERIAL), Epic (SERIAL), F10 (SERIAL), F11 (SERIAL), Manta (SERIAL), XR-1 NX (SERIAL), XR-2 (SERIAL)"
"Aqualung: i200 (SERIAL), i300 (SERIAL), i300C (SERIAL, BLE), i450T (SERIAL), i550 (SERIAL), i550C (SERIAL, BLE), i750TC (SERIAL, BT), i770R (SERIAL, BLE)"
"Atomic Aquatics: Cobalt (USB), Cobalt 2 (USB)"
"Beuchat: Mundial 2 (SERIAL), Mundial 3 (SERIAL), Voyager 2G (SERIAL)"
"Cochran: Commander I (SERIAL), Commander II (SERIAL), Commander TM (SERIAL), EMC-14 (SERIAL), EMC-16 (SERIAL), EMC-20H (SERIAL)"
"Cressi: Cartesio (SERIAL), Drake (SERIAL), Giotto (SERIAL), Goa (SERIAL), Leonardo (SERIAL), Newton (SERIAL)"
"Garmin: Descent Mk1 (USBSTORAGE)"
"Genesis: React Pro (SERIAL), React Pro White (SERIAL)"
"Heinrichs Weikamp: Frog (SERIAL, BT), OSTC (SERIAL), OSTC 2 (SERIAL, BT, BLE), OSTC 2 TR (SERIAL, BT, BLE), OSTC 2C (SERIAL), OSTC 2N (SERIAL), OSTC 3 (SERIAL), OSTC 4 (SERIAL, BT, BLE), OSTC Mk2 (SERIAL), OSTC Plus (SERIAL, BT, BLE), OSTC Sport (SERIAL, BT, BLE), OSTC cR (SERIAL)"
"Hollis: DG02 (SERIAL), DG03 (SERIAL), TX1 (SERIAL)"
"Mares: Genius (SERIAL, BLE), Puck Pro (SERIAL, BLE), Quad (SERIAL, BLE), Quad Air (SERIAL, BLE), Smart (SERIAL, BLE), Smart Air (SERIAL, BLE), Smart Apnea (SERIAL, BLE)"
"Oceanic: Atom 1.0 (SERIAL), Atom 2.0 (SERIAL), Atom 3.0 (SERIAL), Atom 3.1 (SERIAL), Datamask (SERIAL), F10 (SERIAL), F11 (SERIAL), Geo (SERIAL), Geo 2.0 (SERIAL), Geo 4.0 (SERIAL, BLE), OC1 (SERIAL), OCS (SERIAL), OCi (SERIAL), Pro Plus 2 (SERIAL), Pro Plus 2.1 (SERIAL), Pro Plus 3 (SERIAL), Pro Plus X (SERIAL, BLE), VT 4.1 (SERIAL), VT Pro (SERIAL), VT3 (SERIAL), VT4 (SERIAL), VTX (SERIAL), Veo 1.0 (SERIAL), Veo 180 (SERIAL), Veo 2.0 (SERIAL), Veo 200 (SERIAL), Veo 250 (SERIAL), Veo 3.0 (SERIAL), Versa Pro (SERIAL)"
"Ratio: iX3M GPS Deep (SERIAL, BT), iX3M GPS Easy (SERIAL, BT), iX3M GPS Fancy (SERIAL, BT), iX3M GPS Pro  (SERIAL, BT), iX3M GPS Reb (SERIAL, BT), iX3M GPS Tech+ (SERIAL, BT)"
"Scubapro: Aladin H Matrix (BLE), Aladin Sport Matrix (BLE), Aladin Square (USBHID), G2 (USBHID, BLE), G2 Console (USBHID, BLE), G2 HUD (USBHID, BLE)"
"Seemann: XP5 (SERIAL)"
"Shearwater: Nerd (SERIAL, BT), Nerd 2 (BLE), Perdix (SERIAL, BT, BLE), Perdix AI (BLE), Petrel (SERIAL, BT), Petrel 2 (SERIAL, BT, BLE), Predator (SERIAL, BT), Teric (BLE)"
"Sherwood: Amphos (SERIAL), Amphos Air (SERIAL), Insight (SERIAL), Insight 2 (SERIAL), Vision (SERIAL), Wisdom (SERIAL), Wisdom 2 (SERIAL), Wisdom 3 (SERIAL)"
"Subgear: XP-Air (SERIAL)"
"Suunto: Cobra (SERIAL), Cobra 2 (SERIAL), Cobra 3 (SERIAL), D3 (SERIAL), D4 (SERIAL), D4f (SERIAL), D4i (SERIAL), D5 (USBHID, BLE), D6 (SERIAL), D6i (SERIAL), D9 (SERIAL), D9tx (SERIAL), DX (SERIAL), EON Core (USBHID, BLE), EON Steel (USBHID, BLE), Eon (SERIAL), Gekko (SERIAL), HelO2 (SERIAL), Mosquito (SERIAL), Solution (SERIAL), Solution Alpha (SERIAL), Solution Nitrox (SERIAL), Spyder (SERIAL), Stinger (SERIAL), Vyper (SERIAL), Vyper 2 (SERIAL), Vyper Air (SERIAL), Vyper Novo (SERIAL), Vytec (SERIAL), Zoop (SERIAL), Zoop Novo (SERIAL)"
"Tecdiving: DiveComputer.eu (SERIAL, BT)"
"Tusa: Element II (IQ-750) (SERIAL), Zen (IQ-900) (SERIAL), Zen Air (IQ-950) (SERIAL)"
"Uwatec: Aladin Air Twin (SERIAL), Aladin Air Z (SERIAL), Aladin Air Z Nitrox (SERIAL), Aladin Air Z O2 (SERIAL), Aladin Pro (SERIAL), Aladin Pro Ultra (SERIAL), Aladin Sport Plus (SERIAL), Memomouse (SERIAL)"
qqwindow screen has ldpi/pdpi 71.9754 149.544
qrc:/org/kde/kirigami/GlobalDrawer.qml:258: TypeError: Cannot read property 'length' of undefined
qrc:/org/kde/kirigami/GlobalDrawer.qml:293: TypeError: Cannot read property 'length' of undefined
qrc:/org/kde/kirigami/GlobalDrawer.qml:292: TypeError: Cannot read property 'length' of undefined
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
compare "00:13:43:20:BA:B3" "00:13:43:20:BA:B3"
compare "00:13:43:20:BA:B3" "LE:00:13:43:20:BA:B3"
"5.510: setting btName to Perdix"
"5.510: DCDownloadThread started for Shearwater Perdix on 00:13:43:20:BA:B3 downloading only new dives"
Starting download from  BT
downloading only new dives
connecting to Uuid "{00001101-0000-1000-8000-00805f9b34fb}"
connectToServiceHelper() "00:13:43:20:BA:B3" "{00001101-0000-1000-8000-00805f9b34fb}"
Connnecting via insecure rfcomm
Connecting socket
"LocalDeviceBroadcastReceiver::onReceive() - event: android.bluetooth.device.action.ACL_CONNECTED"
Falling back to reverse uuid workaround.
Connnecting via insecure rfcomm
Connecting socket
The connection step took more than expected. Wait another 20 seconds
Socket connect via workaround failed.
Failed to connect to device  00:13:43:20:BA:B3 . Device state  QBluetoothSocket::UnconnectedState . Error:  QBluetoothSocket::ServiceNotFoundError
"LocalDeviceBroadcastReceiver::onReceive() - event: android.bluetooth.device.action.ACL_DISCONNECTED"
Creating Android Central/Client support for BTLE
qt_ble_open( 00:13:43:20:BA:B3 )
Connection updated: error: QLowEnergyController::Error(133) oldState: QLowEnergyController::ConnectingState newState: QLowEnergyController::UnconnectedState
failed to connect to the controller  00:13:43:20:BA:B3 with error "Error occurred trying to connect to remote device."
Finishing download thread: "Fehler beim Öffnen von 00:13:43:20:BA:B3 Shearwater (Perdix)"
"12.855: Failed to connect to 00:13:43:20:BA:B3: 'Error occurred trying to connect to remote device.'"
"12.856: Unsupported operation"
no new dives downloaded
"12.859: DCDownloadThread finished"
"18.119: AppState changed to inactive with no save ongoing and no unsaved changes"
"19.329: AppState changed to suspended with no save ongoing and no unsaved changes"
"20.762: AppState changed to active with no save ongoing and no unsaved changes"
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.



---------- libdivecomputer.log ----------
Subsurface: v4.9.1-18-g5714979753d2, built with libdivecomputer v0.7.0-devel-Subsurface-NG (ffbb47297539b873a1bc49d71ebd739639876b65)
---------- finish ----------



--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-dive...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/subsurface-divelog/F576768D-BF70-4ABA-A9B6-9832EE936610%40hohndel.org.

Linus Torvalds

unread,
Sep 2, 2019, 2:02:22 PM9/2/19
to Subsurface Divelog
On Mon, Sep 2, 2019 at 10:40 AM Dirk Hohndel <di...@hohndel.org> wrote:
>
> > On Sep 2, 2019, at 9:08 AM, Alvaro Aguilera wrote:
> >
> > qt_ble_open( 00:13:43:20:BA:B3 )
> > Creating default GAP/GATT services
> > addresstypeToUse: "Random"
> > No settings found for peer device.
> > HCI event triggered, type: e
> > HCI event triggered, type: e
> > timeout while trying to connect to the controller 00:13:43:20:BA:B3
> > Finishing download thread: "Unable to open 00:13:43:20:BA:B3 Shearwater (Perdix)"
>
> Maybe Linus can tell us what's going wrong - the AppImage right now is based on a very old Qt version.

That's the pattern for "doesn't answer/connect". We never get to any
of the interesting stuff, because it never even gets to enumerate
resources or anything like that, because the initial connect already
failed.

This smells like the usual "the odd shearwater bluetooth stack is very
picky". In particular, if the dive computer still remembers the
previous device it connected to (eg if it was used with a phone and
the Shearwater software), it will sometimes simply not connect to a
new device at all.

I never figured out the root cause, but what _tends_ to help:

(a) make sure no devices that the shearwater has connected to in the
past have their bluetooth on anywhere nearby

(b) make sure the shearwater has actually turned off since connecting
to another device

Note that (a) is easy enough - put any other devices into airplane
mode or whatever.

But (b) can be the tricky one. If you haven't been diving for a while,
it's enough to just turn the shearwater off. It will actually power
off. But if you're withing a few days of your last dives, telling the
Perdix to power off really seems to just turn the screen off - it will
remain in a standby mode where it's still presumably doing deco
calculations etc, but it won't be _entirely_ off. And it will remember
the last bluetooth device it connected to, and getting it to talk to a
new device can be tricky.

As mentioned, I don't know what the real pattern is. *Sometimes* you
can just switch from one device to another, and the Perdix doesn't
mind at all. But sometimes it can be pretty tricky to connect to it,
but _usually_ once you've connected to it from one device, future
connections tend to work fine. Notice the "tends".

There's probably some timing issue in there too. Or just the exact
packet sequence. The Shearwater dive computers really don't seem to
have a "real" bluetooth stack, they have a hacked-up one so that you
can only connect to it _once_ per bluetooth session, for example. If
you have two different things trying to connect to it (and the two
different things can be on the same device - like a "system pairing
agent" in addition to subsurface, for example), the other connection
will fail.

Newer versions of Qt do seem to have made things easier and more
reliable to connect to these things, so the Qt version does seem to
make a difference, but it might be more of that "random timing or
packet ordering" thing than anything else.

The whole "newer builds of Windows 10 connect aggressively to any
device it has ever paired to in the past" issue seems to be more of
this same saga, and helps mess up the issue even more.

Linus

Dirk Hohndel

unread,
Sep 2, 2019, 3:44:49 PM9/2/19
to subsurfac...@googlegroups.com
Yeah, one of the weird dual stack Shearwater dive computers. They didn't make a lot of them.
This weird thing has TWO Bluetooth chips, one for classic Bluetooth, one for BLE, and they do
really weird things.

And your Android device reports that it is paired with both of them.
And the annoying thing is that when the Shearwater detects a connection to one of the two of them,
it shuts down the other one.

> Not recognized as dive computer
> Paired = "Perdix" "00:13:43:20:BA:B3"
> Paired = "Perdix" "LE:00:13:43:20:BA:B3"
> compare "00:13:43:20:BA:B3" "00:13:43:20:BA:B3"
> compare "00:13:43:20:BA:B3" "LE:00:13:43:20:BA:B3"
> "5.510: setting btName to Perdix"
> "5.510: DCDownloadThread started for Shearwater Perdix on 00:13:43:20:BA:B3 downloading only new dives"
> Starting download from BT

So you are trying the download from the BT address - and I consistently had problems doing that with mine.
Can you try again making sure that you pick "Perdix (LE:00:13:43:20:BA:B3)" as address, forcing the BLE download?



> downloading only new dives
> connecting to Uuid "{00001101-0000-1000-8000-00805f9b34fb}"
> connectToServiceHelper() "00:13:43:20:BA:B3" "{00001101-0000-1000-8000-00805f9b34fb}"
> Connnecting via insecure rfcomm
> Connecting socket
> "LocalDeviceBroadcastReceiver::onReceive() - event: android.bluetooth.device.action.ACL_CONNECTED"
> Falling back to reverse uuid workaround.
> Connnecting via insecure rfcomm
> Connecting socket
> The connection step took more than expected. Wait another 20 seconds
> Socket connect via workaround failed.
> Failed to connect to device 00:13:43:20:BA:B3 . Device state QBluetoothSocket::UnconnectedState . Error: QBluetoothSocket::ServiceNotFoundError

Because the connection to the BT classic device failed.

> "LocalDeviceBroadcastReceiver::onReceive() - event: android.bluetooth.device.action.ACL_DISCONNECTED"
> Creating Android Central/Client support for BTLE
> qt_ble_open( 00:13:43:20:BA:B3 )
> Connection updated: error: QLowEnergyController::Error(133) oldState: QLowEnergyController::ConnectingState newState: QLowEnergyController::UnconnectedState
> failed to connect to the controller 00:13:43:20:BA:B3 with error "Error occurred trying to connect to remote device."

And then a connection afterwards to BLE fails as well.

/D

Michael Werle

unread,
Sep 3, 2019, 9:14:39 PM9/3/19
to Subsurface Divelog
On Tuesday, 3 September 2019 04:44:49 UTC+9, Dirk wrote:

Yeah, one of the weird dual stack Shearwater dive computers. They didn't make a lot of them.
This weird thing has TWO Bluetooth chips, one for classic Bluetooth, one for BLE, and they do
really weird things.

Hi Dirk,
Sorry to jump in on this (also having LOTS of hassles trying to get my new Perdix AI to sync) but do you have a link to further information on this?

Haven't generated detailed logs yet, but based on various outputs from the official Shearwater apps I suspect my Perdix is also dual-stacked.  When you claim "they didn't make a lot of them" do you mean models, or individual units? And is there some way (other than actually trying to connect) to tell which ones are dual-stack and which aren't?

Many thanks,
 - Micha.

Alvaro Aguilera

unread,
Sep 10, 2019, 6:02:15 AM9/10/19
to Subsurface Divelog
just a follow-up that the app started syncing with my Perdix mid-way through my diving vacation.
Probably it turned itself off at some point, like Dirk suggested, who knows.

Regards
Alvaro
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-dive...@googlegroups.com.

Dirk Hohndel

unread,
Sep 10, 2019, 6:13:09 AM9/10/19
to subsurfac...@googlegroups.com
On Mon, Sep 09, 2019 at 12:52:22PM +0200, Alvaro Aguilera wrote:
> just a follow-up that the app started syncing with my Perdix mid-way through
> my diving vacation.
> Probably it turned itself off at some point, like Dirk suggested, who knows.

So happy to hear that. Typically once it works it works rather reliably...

/D

Pierre-D O

unread,
Sep 9, 2020, 6:19:09 AM9/9/20
to Subsurface Divelog
FYI, Shearwater just released an update that seems to be targetting exactly this issue:

Fixed issue that prevented Bluetooth connection to some third-party log software (e.g. libdivecomputer/Subsurface).

Haven't tested it, but hopefully it ends up fixing this sync problem.

Michael Werle

unread,
Sep 9, 2020, 6:41:54 AM9/9/20
to Subsurface Divelog
On Wed, 9 Sep 2020 at 19:19, Pierre-D O <oua...@gmail.com> wrote:
FYI, Shearwater just released an update that seems to be targetting exactly this issue:

Fixed issue that prevented Bluetooth connection to some third-party log software (e.g. libdivecomputer/Subsurface).

Haven't tested it, but hopefully it ends up fixing this sync problem.

Just tested it and could connect and download dives using both a Peregrine and a Perdix AI both updated to FW81 (using a self-compiled version of Subsurface on Debian GNU/Linux).

On a PC which has lots of issues with the computers connecting to Shearwater Cloud under Windows 10. 

Prior to this FW update I couldn't connect the Peregrine at all using Subsurface let alone download dives from it and the Perdix was hit-and-miss. (Single test run so might have just "gotten lucky")

--
 - Micha

"The Glass is neither half-empty nor half-full; it is twice as big as it needs to be!"

Dirk Hohndel

unread,
Sep 9, 2020, 2:16:44 PM9/9/20
to subsurfac...@googlegroups.com
I haven't talked to the Shearwater engineers about anything else that might be fixed in v81, but I do know that it includes a specific fix for the Peregrine so that will now work with the development version of Subsurface (but not 4.9.6 - I need to release 4.9.7 relatively soon).

I am not aware of anything that would likely fix the problems with the older Perdix. There we believe that often the only thing that will fix it is to keep using exactly one device for it to talk to. Get it to talk to your phone, and never, ever, EVER connect it to anything else.
It is known that the dive computer turning fully off will also reset the state - but that only happens several days after all tissues have cleared. Or if the battery is completely depleted (which can cause other issues, of course).

/D

andrew.tr...@gmail.com

unread,
Sep 9, 2020, 9:26:05 PM9/9/20
to Subsurface Divelog
I was hoping that v81 would help me with the issues I'm having loading dives from my Perdix AI to my MacBook Pro but alas they are still there.

It was working but stopped a week or so ago.

Screen Shot 2020-09-10 at 11.17.28 am.png
IMG_6793.jpeg

I will try rebooting later to see if that helps.

andrew.tr...@gmail.com

unread,
Sep 9, 2020, 11:14:15 PM9/9/20
to Subsurface Divelog
Rebooting didn't help.  Here is the libdivecomputer logfile.
subsurface2.log

Dirk Hohndel

unread,
Sep 9, 2020, 11:36:18 PM9/9/20
to Subsurface Divelog
That log file shows a successful connection, and then things time out.
Is your battery charged? Can you try again, maybe during a different phase of the moon? Or while hopping on one food and chanting?

Seriously - the timeouts are really frustrating and not something that we have a handle on handling...

/D
subsurface2.log

andrew.tr...@gmail.com

unread,
Sep 9, 2020, 11:42:27 PM9/9/20
to Subsurface Divelog


Is your battery charged?
Yeah... showing as 3.96V (for a 3.7V Li-Ion) 

Seriously - the timeouts are really frustrating and not something that we have a handle on handling...

I have seen similar issues with my Mac Mini but it seems to work fine using Subsurface Mobile on my phone.
 

Dirk Hohndel

unread,
Sep 10, 2020, 12:44:39 PM9/10/20
to Subsurface Divelog
One of the consistent things that we have found throughout our BLE "journey" is that generally Android and iOS are far better that Linux/Mac/Windows.
The BLE stacks on the mobile platforms simply get so much more testing... sadly, testing and bug fixing remotely with BLE devices is incredibly hard.

/D

Linus Torvalds

unread,
Sep 10, 2020, 1:22:29 PM9/10/20
to Subsurface Divelog
On Wed, Sep 9, 2020 at 8:42 PM andrew.tr...@gmail.com
<andrew.tr...@gmail.com> wrote:
>
> I have seen similar issues with my Mac Mini but it seems to work fine using Subsurface Mobile on my phone.

Yeah, as Dirk says, usually the mobile clients work better.

That's due to them getting much more test coverage and attention on
both the hw and sw side. On the desktop clients, the bluetooth chip is
usually almost an afterthought - sometimes it just comes with the WiFi
chip (and that's the part that got all the attention), and sometimes
it's a USB dongle with a chipset from 5+ years ago.

In the phones, bluetooth has been an integral part of the design, is
often a _much_ more recent hw design than on the desktops, and it's
gotten a lot more testing too because of various heartrate sensors,
headphones, smartwatches etc etc.

So even when the codebase is supposedly the same (iOS vs OS X or
Android vs Linux), there are huge differences both in the hardware
choices and in the sw stack. And invariably the mobile parts are the
much better tested ones.

(This is true on all levels - not just "sw vs hardware", but also the
levels of sw: firmware, OS, system, Qt..)

And honestly, the reason Shearwater then works particularly badly is
that their bluetooth stack is really not very good at all. It's a
lovely dive computer, but they really don't have the greatest
bluetooth. The reason the latest Peregrine didn't work at all was that
the breakage was major and immediate, but their older hardware has had
other problems, just not quite as obviously bad.

But hey, at least it's not as bad as the Mares Bluelink dongle.

Usually the way to avoid problems with Shearwater is:

- don't switch between downloading devices

- try to do the download in a "quiet" area where there is little to
no other bluetooth traffic

- pray

Linus

andrew.tr...@gmail.com

unread,
Sep 10, 2020, 11:29:15 PM9/10/20
to Subsurface Divelog
On Friday, 11 September 2020 at 03:22:29 UTC+10 Linus Torvalds wrote:
- try to do the download in a "quiet" area where there is little to
no other bluetooth traffic

Thanks! This worked.  I took the laptop out the back away from other computers and I was able to download the last three dives.  I didn't even have to pray!

Now I can compare the differences I get with tank pressures between phone and laptop (that was another thread). 

T.J. Esposito

unread,
Mar 26, 2021, 11:28:36 AM3/26/21
to Subsurface Divelog
Just wanted to add a follow-up re: Bluetooth for anyone else struggling with Shearwarer/Windows BLE.  I always have issues in Windows, sometimes my voodoo process of un-pairing via the "Metro" BT panel and then re-pairing in the OG Control Panel works fine, sometimes it does not. No rhyme or reason that I can tell.
Solution: As Dirk advised, use a mobile version (dives transfer faster than in Windows anyway) and then sync from mobile / refresh on Windows.  Voila, in half the time and quarter of the frustration you have your dives saved. 

rick.warren4

unread,
Mar 26, 2021, 2:01:25 PM3/26/21
to subsurfac...@googlegroups.com
I always have issues with my Petral 2. I have to kill the connection in Windows, re-pair and then open Subsurface.  Sometimes I even have to have Subsurface forget the connections and re-establish them.

I think there is an issue in the underlying drivers though because I have the same problems when I use other Dive log software as well because I think the leverage the same open source libraries.

Rick
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-dive...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages