Discussion:
more help needed: Android + FTDI, Cobalt, Suunot EON Steel/Core, Scubapro G2/Aladin Square
Dietrich Meyer
2018-08-09 06:41:41 UTC
Permalink
Hi Dirk,

Phone: Samsung Galaxy S7 Edge, LineageOS 14.1
DC: Suunto Vyper 2
FTDI cable: NoName...
Subsurface 4.8.1.156
Start Subsurface-mobile (I need to poke at this a little more in order for
it to work correctly when Subsurface-mobile gets started because you
plugged in a dive computer)
On my phone, subsurface always gets started automatically, when I connect the
FTDI cable - this did work already for the last year - nothing new here....
Once Subsurface-mobile is running, plug in your dive computer. Android
should ask you if you want to connect the device with Subsurface-mobile.
If it doesn't ask, I want to know more about your dive computer and cable
in order to be able to fix this. Right now I think it should ask for all
the dive computers referenced in the Subject line of this email.
Didn't get any request, but I think that is because somehow the Android on my
phone already had the connection between the FTDI cable and subsurface (I
vaguely remember having seen such dialogue when I first used subsurface-mobile
to download from my DC.
Once you accept the request, Subsurface-mobile should switch to the
Download page, and depending on your specific situation, some / most / all
of the information for the three comboboxes should be filled in.
This is indeed new: It does now switch automatically to the download page.
However: It does only do this when subsurface was already running.
If I did not start subsurface previously but let it start by inserting the
FTDI cable, then it does not switch to the download page.
Please note which options were selected for vendor / product / connection
Vendor: Empty
Product: Empty
Connection: FTDI

Since my FTDI cable does not provide any more information, this makes sense...
When I manually open the download page, then the vendor (Suunto) and product
(Vyper2) are preselected - remembered from previous downloads. But the
connection field is empty.
Now go to the About page, copy the logs and send all the information
(which dive computer, which cable, did this all work, which v/p/c was
selected when the download page opened) plus of course the logs to the
mailing list.
---------- subsurface.log ----------
Empty filename passed to function
"0.014: Successfully opened logfile /storage/emulated/0/subsurface.log at Do.
Aug. 9 08:28:19 2018"
"0.015: Starting Subsurface-mobile:2.1.1(4.8.1.156):Android Nougat
(7.1):arm:de-DE"
"0.016: built with libdivecomputer v0.7.0-devel-Subsurface-NG
(bb985eedbb3e686e5a71bf2aa234fb49f8cab653)"
"0.016: built with Qt Version 5.11.1, runtime from Qt Version 5.11.1"
"0.016: built with libgit2 0.26.0"
localBtDevice isn't valid or not connectable
"Created position source android"
"0.037: Created position source android"
"Set GPS service update interval to 300 s"
"0.038: Set GPS service update interval to 300 s"
"0.038: location service is available"
"0.648: Datendatei wird synchronisiert"
"0.651: Lade Tauchgänge aus dem lokalen Zwischenspeicher"
"0.890: Tauchdaten erfolgreich geöffnet"
"0.914: AppState changed to active with save ongoing and no unsaved changes"
"0.916: 344 dives loaded from cache"
"0.918: have cloud credentials, trying to connect"
"0.918: Have credentials, let's see if they are valid"
Completed connection with cloud storage backend, response "[OK]"
"Set GPS service update interval to 300 s"
"2.403: Set GPS service update interval to 300 s"
Using the following font: Roboto
qqwindow devicePixelRatio 3.50285 3.50285
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), i450T (SERIAL), i550 (SERIAL), i750TC
(SERIAL, BT)"
"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: Drake (SERIAL), Giotto (SERIAL), Leonardo (SERIAL), Newton (SERIAL)"
"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: Puck Pro (SERIAL, BLE), Quad (SERIAL, BLE), Quad Air (SERIAL, BLE),
Smart (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), OC1 (SERIAL), OCS (SERIAL), OCi (SERIAL), Pro Plus 2 (SERIAL), Pro
Plus 2.1 (SERIAL), Pro Plus 3 (SERIAL), 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)"
"Scubapro: Aladin Sport Matrix (BLE), Aladin Square (USBHID), G2 (USBHID,
BLE), G2 Console (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)"
"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), 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.9414 152.856
"8.239: Datendatei wird synchronisiert"
"8.259: Mit Cloud-Speicher synchronisieren"
"9.224: Warte auf den Cloud Service (1 Sekunde vergangen)"
"9.295: Erfolgreiche Cloud-Verbindung, hole Daten"
"10.362: Synchronisierung mit Cloud erfolgreich"
"10.382: Cloud sync shows local cache was current"
"26.372: UsbDevice[mName=/dev/bus/usb/
001/003,mVendorId=1027,mProductId=24577,mClass=0,mSubclass=0,mProtocol=0,mManufacturerName=Smartinterface,mProductName=USB
<-> Serial
Cable,mVersion=2.0,mSerialNumber=null,mConfigurations=[\nUsbConfiguration[mId=1,mName=null,mAttributes=160,mMaxPower=250,mInterfaces=[\nUsbInterface[mId=0,mAlternateSetting=0,mName=USB
<-> Serial
Cable,mClass=255,mSubclass=255,mProtocol=255,mEndpoints=[\nUsbEndpoint[mAddress=129,mAttributes=2,mMaxPacketSize=64,mInterval=0]
\nUsbEndpoint[mAddress=2,mAttributes=2,mMaxPacketSize=64,mInterval=0]]]]"
"26.393: AppState changed to active with no save ongoing and no unsaved
changes"
"26.397: AppState changed to inactive with no save ongoing and no unsaved
changes"
Show download page for device -1;-1;0
done showing download page
"54.556: AppState changed to inactive with no save ongoing and no unsaved
changes"
"54.585: AppState changed to suspended with no save ongoing and no unsaved
changes"
"116.194: AppState changed to active with no save ongoing and no unsaved
changes"
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
QObject::startTimer: Timers cannot be started from another thread
---------- finish ----------
Dirk Hohndel
2018-08-09 12:55:24 UTC
Permalink
Post by Dietrich Meyer
Hi Dirk,
Phone: Samsung Galaxy S7 Edge, LineageOS 14.1
DC: Suunto Vyper 2
FTDI cable: NoName...
Subsurface 4.8.1.156
Start Subsurface-mobile (I need to poke at this a little more in order for
it to work correctly when Subsurface-mobile gets started because you
plugged in a dive computer)
On my phone, subsurface always gets started automatically, when I connect the
FTDI cable - this did work already for the last year - nothing new here....
Yes, that had worked in the past - I explained this poorly in my post.
What's new is that we try to open the download page and populate some of
the information based on the information that Android gives us.
Post by Dietrich Meyer
Once Subsurface-mobile is running, plug in your dive computer. Android
should ask you if you want to connect the device with Subsurface-mobile.
If it doesn't ask, I want to know more about your dive computer and cable
in order to be able to fix this. Right now I think it should ask for all
the dive computers referenced in the Subject line of this email.
Didn't get any request, but I think that is because somehow the Android on my
phone already had the connection between the FTDI cable and subsurface (I
vaguely remember having seen such dialogue when I first used subsurface-mobile
to download from my DC.
Yes, you can tell Android not to ask you anymore and to just start the app
whenever that device is plugged in.
Post by Dietrich Meyer
Once you accept the request, Subsurface-mobile should switch to the
Download page, and depending on your specific situation, some / most / all
of the information for the three comboboxes should be filled in.
This is indeed new: It does now switch automatically to the download page.
However: It does only do this when subsurface was already running.
If I did not start subsurface previously but let it start by inserting the
FTDI cable, then it does not switch to the download page.
See my response to Matt a moment ago. There's a bit more code that I need
to write in order for that to work.
Post by Dietrich Meyer
Please note which options were selected for vendor / product / connection
Vendor: Empty
Product: Empty
Connection: FTDI
Since my FTDI cable does not provide any more information, this makes sense...
Yep
Post by Dietrich Meyer
When I manually open the download page, then the vendor (Suunto) and product
(Vyper2) are preselected - remembered from previous downloads. But the
connection field is empty.
The goal is to get you the best of both worlds. The information it
remembered plus what it can learn from the cable plugged in. Also code
that is not complete, yet.
Post by Dietrich Meyer
"26.372: UsbDevice[mName=/dev/bus/usb/
001/003,mVendorId=1027,mProductId=24577,mClass=0,mSubclass=0,mProtocol=0,mManufacturerName=Smartinterface,mProductName=USB
<-> Serial
Cable,mVersion=2.0,mSerialNumber=null,mConfigurations=[\nUsbConfiguration[mId=1,mName=null,mAttributes=160,mMaxPower=250,mInterfaces=[\nUsbInterface[mId=0,mAlternateSetting=0,mName=USB
<-> Serial
Cable,mClass=255,mSubclass=255,mProtocol=255,mEndpoints=[\nUsbEndpoint[mAddress=129,mAttributes=2,mMaxPacketSize=64,mInterval=0]
\nUsbEndpoint[mAddress=2,mAttributes=2,mMaxPacketSize=64,mInterval=0]]]]"
Yes, the best we can do here is guess that this is an FTDI device.

/D

Loading...