subsurface/libdc

Unexpected payload size (11) with Cressi Donatello

yannpub opened this issue ยท 12 comments

When trying to connect the Donatello via an USB Modem-IrDA interface (MacOS 14.6.1 on Macbook Pro M1), I get the following error:

Subsurface: v6.0.5214.0, built with libdivecomputer v0.9.0-devel-Subsurface-NG (9641883)
[94.525817] INFO: Open: name=/dev/tty.usbmodem1101
[94.539488] INFO: Configure: baudrate=115200, databits=8, parity=0, stopbits=0, flowcontrol=0
[94.551308] INFO: Timeout: value=3000
[94.551311] INFO: RTS: value=0
[94.553296] INFO: DTR: value=0
[94.555302] INFO: Sleep: value=100
[94.660366] INFO: Purge: direction=3
[94.660471] INFO: Sleep: value=100
[94.765809] INFO: Write: size=8, data=AAAAAA0000000055
[94.767455] INFO: Read: size=4, data=AAAAAA0B
[94.767523] ERROR: Unexpected payload size (11). [in src/cressi_goa.c:139 (cressi_goa_device_receive)]
[94.767563] ERROR: Failed to read the version information. [in src/cressi_goa.c:396 (cressi_goa_device_foreach)]

Seems the Donatello answer is not the proper size/content.

Computer is a new Donatello, Firmware is 300.

I have same issue with watch I bought on Amazon some months ago. Seems payload has now 1 byte extra in current models.

Can you test with this build of the libdivecomputer command-line client:

https://libdivecomputer.org/builds/experimental/windows/nepto.exe (windows)
https://libdivecomputer.org/builds/experimental/linux/nepto (linux)

And run it with these options:

nepto.exe -vv -l goa.log -f goa download -o dive.%n.bin -f raw COMx (Windows)
./nepto -vv -l goa.log -f goa download -o dive.%n.bin -f raw /dev/ttyX (Linux)

Replace COMx/ttyX with the correct serial port. When finished send me the goa.log and the *.bin files.

I attached the zipped files.

donatello.zip

Your donatello seems to use the same new data format as the Leonardo 2.0. I'm already working on that.

Sorry, I wasn't much available the last 2 weeks.

Thanks @piezza for the files.

@jefdriesen do you need additional zip files, or did the ones provided enough? I saw in libdivecomputer/libdivecomputer#33 that you had no data on freediving. I have both air dives and freedives in the computer, let me know if that can help.

I still have no data from freedives, so I can still use such data.

Here are the files
Donatello_new.zip
I think there may be a scubadive that we recorded as freedive if you find one the dive profile inconsistent ;-)

Had the same issue with my recently purchased Donatello. After connecting to the IoS application from Cressi went through a firmware upgrade (now at x012d or 301).
And Subsurface could not connect with same above error message as Yann
logDonatellox301.zip
.
Did the nepto.exe capture as well with a few pool test dives... adding my log files in case it helps you !
Cheers!

@yannpub Can you export your freedives out of the cressi app in some human readable format (csv, XML, SQLite, etc), or if that's not possible make some screenshots. I would to see the expected profile and the basic values like max depth, dive time, temperature, etc so I can find those more easily in the data.

Unfortunately, I am not using the Cressi IR-BT adapter, but an infrared-to-USB transceiver (the one Daniel has created here: https://groups.google.com/g/subsurface-divelog/c/ku56SSlCtZU/m/kquwh2HKAQAJ).
Cressi software only works with the BT adapter, thus I can't use their software to import the dives and get a human readable format. But if you have any suggestions of a workaround, I would be happy to try.

You could make some photos of the dive computer, but let's try something different. I attached the output of the libdivecomputer parser: freedives.xml.gz. Can you check if the values are correct? For the profile graph, you can open the xml into subsurface, but for the other fields (max depth, dive time, etc) you need to check manually because subsurface calculates some of them from the profile.

Thank you for your help !

All the informations (depth, dive time) look correct. I couldn't find the water temperature, but may be it is not included in the payload, or not read by subsurface ?