libdivecomputer / libdivecomputer

Libdivecomputer is a cross-platform and open source library for communication with dive computers from various manufacturers.
GNU Lesser General Public License v2.1
83 stars 30 forks source link

Suunto Vyper Novo - memory layout #25

Open tomas-kucera opened 1 year ago

tomas-kucera commented 1 year ago

Hi there, I am trying to pull data out of my Suunto Vyper Novo.

I came across these articles: https://sarnau.info/pc-protocol-of-suunto-spyder/ https://sarnau.info/pc-protocol-of-suunto-d9/

But after I dumped the memory and looked, it does not match. Does anyone have the memory layout for Suunto Vyper Novo?

Thanks in advance!

jefdriesen commented 1 year ago

There is no public documentation for the newer models. Most of the info I have is used in the libdivecomputer source code.

What do you need the documentation for? If you use libdivecomputer to download your dives, it will handle all those details for you. So I guess you're trying to do something else?

tomas-kucera commented 1 year ago

Well, not really. I am playing with Subsurface but the SW does not read the computer's settings (such as version, serial number, diver's name, units, etc.). So I started looking into it and possible help with some analysis and decoding things.

jefdriesen commented 1 year ago

The memory layout of the Vyper Novo is as follows:

0000-0199: Header
019A-EBEF: Profile ringbuffer
EBF0-FFFF: Unknown

The header area (containing the settings, etc) is most likely very similar to the D9, but there might be some differences. I never really looked into this, except for the few things libdivecomputer needs (serial number, ringbuffer pointers, etc).

The libdivecomputer api supports reading/writing to those memory areas (also available from the command-line dctool client), but of course you need to know where and how the settings are stored. The easiest method is to capture the communication from the Suunto application and see where it tries to read/write. With the old Suunto applications you could use the simulator for that purpose, but unfortunately the latest ones are much harder to trick into connecting to the simulator.

tomas-kucera commented 1 year ago

Sorry for late reaction. And thanks for the response!

I did some research and it looks like the memory layout for the D9 /as posted here https://sarnau.info/pc-protocol-of-suunto-d9/) is different from my Suunto Vyper Novo, VPRN: V1.0.7, IMD: V1.6. Even the serial number does not match.

I will try to map it more when I have some time.