Accessing Dive Info on the UEMIS SDA

Please register or login

Welcome to ScubaBoard, the world's largest scuba diving community. Registration is not required to read the forums, but we encourage you to join. Joining has its benefits and enables you to participate in the discussions.

Benefits of registering include

  • Ability to post and comment on topics and discussions.
  • A Free photo gallery to share your dive photos with the world.
  • You can make this box go away

Joining is quick and easy. Log in or Register now!

Cool :) . I think you are far aheard most of us regarding accessing the unit so your infos are going to be very appreciated.

It's kinda weird that we've been waiting for monthes for UEMIS to release a way to download data without the portal and now they're gone, leaving us clueless about the fate of their web services, a bunch of people on scubaboard are making more progress in several weeks than the manufacturer to deliver what we have wanted for monthes...
 
  • Like
Reactions: BB1
Well I think we should all say congrats to Fabian (aka nicklesshead) as this is the first piece of software to access the SDA without the portal and it works great

I managed to download some dives from my computer without going through the web interface using some command line.

For the 'non windows' people, you have to type: java -jar myuemis.jar [ -f DIRECTORY ] [ -o FILE ] -s NUM
For the 'windows' people, you have to type: java -jar myuemis.jar -f=\[yourdriveletter]:\ -s [num] -o [output file]
-f DIRECTORY UEMIS SDA Directory. Default: /Volumes/UEMISSDA
-o FILE Output file for divelog. Default: No output to file
-s NUM Start download at this dive. 1 is the first dive with your SDA - even if you named that dive to 100 in the SDAs logbook. So if you want to download all your dives, use 1.

When you do so, the unit switch to sync mode and goes back to normal when it's done.

So you get an xml file with for each dive some straightforward headings until an ugly part <bin format="base64">. Using a base64 decoder you don't see much more but I guess we might have the dive data encoded.

An interesting information is that if you 'officially' delete a dive from the unit, it is still downloaded through this program...

I've attached the data for one dive. And you can download the XMLs here:
http://www.eocean.fr/uemis/en/sda_logbook/data_src/logs/dive1081
http://www.eocean.fr/uemis/en/sda_logbook/data_src/logs/divelog1081

View attachment dive1081.txt
 
looking at the decoded binary file, it seems like there is an header and then a repetitive stream of data with 25 bytes + a byte at &hFF + 10 bytes + another byte at &hFF and so one and then at the end of the dive something else.
 
That's becoming exciting: I had a look at bunch of bytes by comparing the hex values to the xml file generated by the web portal and I find some corresponding values:

On my xml divelog I have

<dive_time>26</dive_time>
<water_pressure>478</water_pressure>
<dive_temperature>167</dive_temperature>
<ascent_speed>0</ascent_speed>
<work_fact>23</work_fact>
<cold_fact>0</cold_fact>
<bubble_fact>0</bubble_fact>
<ascent_time>1</ascent_time>
<ascent_time_opt>0</ascent_time_opt>
<p_amb_tol>536</p_amb_tol>
<satt>255</satt>
<hold_depth>405</hold_depth>
<hold_time>99</hold_time>
<active_tank>0</active_tank>
<tank_pressure>20292</tank_pressure>
<consumption>9</consumption>
<rgt>255</rgt>
<cns>0</cns>
<warning_1>234881025</warning_1>
<warning_2>0</warning_2>

That would show up in HEX as:

<dive_time>1A</dive_time>
<water_pressure>01 DE or DE 01</water_pressure>
<dive_temperature>00 A7 or A7 00</dive_temperature>
<ascent_speed>00</ascent_speed>
<work_fact>17</work_fact>
<cold_fact>00</cold_fact>
<bubble_fact>00</bubble_fact>
<ascent_time>01</ascent_time>
<ascent_time_opt>00</ascent_time_opt>
<p_amb_tol>02 18 or 18 02</p_amb_tol>
<satt>FF</satt>
<hold_depth>01 95 or 95 01</hold_depth>
<hold_time>63</hold_time>
<active_tank>00 00</active_tank>
<tank_pressure>4F 44 or 44 4F</tank_pressure>
<consumption>09</consumption>
<rgt>FF</rgt>
<cns>00</cns>
<warning_1>0E 00 00 01 or 01 00 00 0E</warning_1>
<warning_2>00</warning_2>

And guess what ? There's a sequence in the binary file that looks exactly the same !
1A 00 DE 01 A7 00 00 17 00 00 01 00 00 18 02 00 FF 95 01 63 00 00 44 4F 09 FF 00 01 00 00 0E and then 3 times 00 00 00 and the next sequences

There's still lots of work to do to decipher the whole binary file but it seems like we have a good start :)
 
Don't want to discourage you, but I think TnT has most of this figured out already. He posted here yesterday looking for more examples so he can fine-tune his code..

The parsing of the binaries is really not that hard once you have the matching XML file... so before you spend TOO much time on this it might be easier to start from what he has.

That's becoming exciting: I had a look at bunch of bytes by comparing the hex values to the xml file generated by the web portal and I find some corresponding values:

On my xml divelog I have

<...>

And guess what ? There's a sequence in the binary file that looks exactly the same !
1A 00 DE 01 A7 00 00 17 00 00 01 00 00 18 02 00 FF 95 01 63 00 00 44 4F 09 FF 00 01 00 00 0E and then 3 times 00 00 00 and the next sequences

There's still lots of work to do to decipher the whole binary file but it seems like we have a good start :)
 
Yesterday TnT was looking for some xml and binaries to do the correspondance... so it was not exactly - to my understanding - about fine tuning at this point.

Anyway, I am interested to get more info about the format as I still plan to store my dives online on my own website. We have the tool now to download the files from the SDA. I already host the myUEMIS profile screen on my website and my previous xml divelogs from the uemis website. Therefore I just need to figure out a little more about the format to make my own script to generate from the binaries a similar xml file than those from the UEMIS website and all will be fine on my side.
 
Last edited:
Should came here MONTHS ago asking for someone to write trimix software :wink:

Don't I wish.

I so hope that someone can buy the software assets out of bankruptcy. Both the dive planning code and the TriMix code that they were working on (plus the ability to create firmware updates) would be extremely useful to have...
 
Yesterday TnT was looking for some xml and binaries to do the correspondance... so it was not exactly - to my understanding - about fine tuning at this point.
I'll let him respond to that :)

Anyway, I am interested to get more info about the format as I still plan to store my dives online on my own website. We have the tool now to download the files from the SDA. I already host the myUEMIS profile screen on my website and my previous xml divelogs from the uemis website. Therefore I just need to figure out a little more about the format to make my own script to generate from the binaries a similar xml file than those from the UEMIS website and all will be fine on my side.
That makes perfect sense. I like the idea of the personal website to host your dives...

BTW: divinglog is now able to import those xml files - so if you can transform the binary data correctly into xml then you have solved the complete offline import issue. So please keep us posted on your progress.
 
https://www.shearwater.com/products/peregrine/

Back
Top Bottom