Differences between revisions 9 and 10
Revision 9 as of 2006-09-01 08:27:12
Size: 20286
Editor: Jerome
Comment:
Revision 10 as of 2006-09-01 10:05:27
Size: 24174
Editor: Jerome
Comment:
Deletions are marked like this. Additions are marked like this.
Line 420: Line 420:
 * General parameters of the watch (units, ...) are coded on adress ''64 00'' over 11 bytes ==== General parameters of the watch (units, ...) are coded on adress ''64 00'' over 11 bytes ====
Line 439: Line 439:
 * Max altitude is coded on address ''48 0d'' ==== Max altitude is coded on address ''48 0d'' ====
Line 447: Line 447:


== Weather log ==
==== HR+hiking log positions in connect====
{{{
< 05 00 03 c8 0f 30 f7 | get 36 bytes starting from '''c8 0f'''
> 05 00 33 c8 0f 30 |
> 07 | number of log points ???
> 06 08 1f | start date 31st august 2006
> 09 17 | start time 09:23:00
> 0a | sample time ????
> 01 |
> 05 5f 05 5f | total ascent (1375m) / total descent (1375m)
> 00 02 |
> 06 3a 36 | duration 6:56.53
> 00 |
> 03 d4 | 980 (>H) *sample time in sec = 2h43m20
> 03 fc | 1020(>H) *sample time im sec = 2h50m00
> 08 d2 08 1f 0d 13 | Highest point 2258m (>H) reached on 2006/08/31 at 13:19
> 04 5a 08 1f 09 1b | Lowest point 1114m (>H) reached on 2006/08/31 at 09:27
> 3e b3 7c | Lowest/highest/average HR = 62 - 179 124
> a5 1e | alarm on HR : max=165 min=30
> 00 38 | HR over limits : 56*10s * 9mn 20
> 09 93 | HR in limits : (>H) 2451*(sample time) = 24510sec=6h48m30s
> 00 00 | Under limit : 0
> ff ff ff |???
> 4b |Checksum
}}}
 


=== Weather log ===
Line 457: Line 483:
=== HR+hiking log positions in connect===



31/08/2006 9:23:00 HR hiking log 6:58:54 10 1114 2258
mini HR=62
max HR=179
avr HR=124
tot asc=1375
tot des=1375

Suunto X6HR. log data


 General
Wristop model: X6HR.
Wristop serial: 61403760
Log name: HR Hiking Log
Log type: HR Hiking
Start : 31/08/2006 09:23:00
End : 31/08/2006 16:21:54
Duration: 06:58.54
Sample interval: 10 s
Notes:

 Altitude
High point: 2258 m
Time: 31/08/2006 13:19:00
Low point: 1114 m
Time: 31/08/2006 09:27:00
Total ascent: 1375 m
Ascent time: 02:43.20
Average ascent: 0 m/s
Total descent 1375 m
Descent time: 02:50.00
Average descent: 0 m/s

 Heart rate
HR min: 62
HR max : 179
HR average: 124
HR limit high: 165
HR limit low: 30
Over high: 00:09.20
In limits: 06:48.30
Below low: 00:00.00

 Samples
Calendar time Log time Heart rate Altitude (m) Lap Note

31/08/2006 09:27:00 00:04.00 0 1114 00:04.00
31/08/2006 10:21:00 00:58.00 124 1493 00:54.00
31/08/2006 10:34:00 01:11.00 126 1599 00:13.00
31/08/2006 10:35:00 01:12.00 120 1600 00:01.00
31/08/2006 10:54:00 01:31.00 143 1712 00:19.00
31/08/2006 11:36:00 02:13.00 117 2000 00:42.00
31/08/2006 12:34:00 03:11.00 101 2162 00:58.00
31/08/2006 13:19:00 03:56.00 159 2258 00:45.00


< 05 00 03 5d 00 04 59 | ] Y
> 05 00 07 5d 00 04 3d 28 25 3c | ] =(%<
> 55 |Checksum

< 05 00 03 5d 00 04 59 | ] Y
> 05 00 07 5d 00 04 3d 28 25 3c | ] =(%<
> 55 |Checksum

< 05 00 03 b4 0f 14 af |
> 05 00 17 b4 0f 14 01 00 00 00 |
> 00 00 00 00 00 00 00 00 00 00 |
> 00 00 00 00 00 00 ae |

< 05 00 03 c9 19 1e ce |
> 05 00 21 c9 19 1e 01 00 00 00 |
> 00 00 00 00 00 00 00 00 00 00 |
> 00 00 00 00 00 00 00 00 00 00 |
> 00 00 00 00 00 00 cf |

< 05 00 03 fa 0f 31 c4 | 1
> 05 00 34 fa 0f 31 | get 49 bytes (7log of 7bytes)
> 08 1f 0a 15 05 d5 7c | 08/31 10H21 1493m 124HR
> 08 1f 0a 22 06 3f 7e |
> 08 1f 0a 23 06 40 78 |
> 08 1f 0a 36 06 b0 8f |
> 08 1f 0b 24 07 d0 75 |
> 08 1f 0c 22 08 72 65 | date 08/31 ; time 12:34 ; 2162m ; 101HR
> 08 1f 0d 13 08 d2 9f | date 08(B) 31 (B) ;time 13h(B) 19mn(B) ; 2258m (>H) ; 159HR (B)
> fa |chksum
}}}

Suunto X6HR

Presentation de la montre

La montre X6HR est destine a l'entrainement pour les sports de montagne. Elle dispose des fonctions :

  • Heure
  • Chronometre
  • Reveil
  • Boussole
  • Altimetre
  • Barometre
  • Cardiofrequencemetre
  • Enregistrement des variables au cours des entrainements
  • Transfert des information sur ordinateur

Cardiofrequencemetre

La frequence cardiaque est mesuree par une sonde thoracique. La transmission est sans fil (radiofrequence), la montre est compatible avec les ceintures Polar non cryptees (ancienne generation).

Transfers des journaux d'activite

La montre est connectee par une liaison serie (RS232) a l'ordinateur. La connectique cote montre est une simple pince avec 3 contacts : robuste et astucieux.

Le logiciel d'exploitation des donnees fourni par Suunto est <<Activity Manager>>, il ne fonctionne que sous windows (fonctionne en emulation avec VMware sous linux).

Apres avoir contacte Suunto quant au protocole utilise pour communiquer avec la montre, le service technique m'a dit n'offir de support que sous windows. Je suis donc a la recherche de moyen d'intercepter le signal serie (pas trop complique), de le decoder afin de realiser un logiciel de trasfert et d'analyse des donnees qui serait open-source et multi-plateformes (en particulier linux).

Configuration du port serie

Il semblerait que la communication se fasse a 9600 8N1 (9600 baud/s 8 bits de donnees, pas de parite et 1 bit de stop).

La communication entre le PC windows et la montre peut etre intercepte en intercallant une machine linux entre les deux. Les deux ordinateurs etant connectes par un cable RS232 croise (NullModem). Sur la machine linux il faut un programme qui transmette les datagrammes d'un port a l'autre. J'utilise slsniff (http://sourceforge.net/projects/slsnif/)

# slsnif  /dev/ttyS1 -p /dev/ttyS2 -x -i X6HR.log -o PC.log  -s 9600 |tee logfile

Il est egalement possible de capturer directement les trames avec un seul PC en utilisant le logiciel interceptty et l'emulateur VMware (http://www.suspectclass.com/interceptty/) :

# interceptty -s 'is peed 9600 ospeed 9600' -l /dev/ttyS1 @/tmp/sersock 

La communication est visiblement binaire, ce qui complique un peu la tache. Le PC semble toujours envoyer des commandes qui font sept octets de long et il ne semble pas y avoir de << fin de commande >> : {{{05 00 03 5a 00 01 5b #initialisation de la communication "connect" 4 echanges d'initialisation, 3 de terminaison 05 00 03 5d 00 04 59 #demande de telechargement de log Hiking 05 00 03 5d 00 04 59 #demande de telechargement de log Weather }}}

Visiblement la montre s'identifie par son numero de serie mais je n'ai pas encore trouve sous quelle forme. Exemple de l'initialisation de la comminication avec un seul journal de type "temps" disponible

Un seul log 26/08/2006 Weather
start time 12:00:00
duree 48:00:00
Interval: 900
Alt min & max = 0

<  05 00 03 5a 00 01 5b          |    Z  [   
>  05 00 04 5a 00 01 05 5e       |    Z   ^  
<  05 00 03 64 00 0b 6f          |    d  o   
>  05 00 0e 64 00 0b 00 01 00 01 |    d      
>  01 01 02 01 01 01 00 6c       |        l  
<  05 00 03 48 0d 12 57          |    H  W   
>  05 00 15 48 0d 12 06 08 0f 2b |    H     +
>  0a                            |           
>  e8 14 00 00 32 11 00 00 00 06 |     2     
>  ff ff ff 51                   |    Q      
<  05 00 03 b4 0f 14 af          |           
>  05 00 17 b4 0f 14 00 00 00 00 |           
>  00 00 00 00 00 00 00 00 00 00 |           
>  00 00 00 00 00 00 af          |           
<  05 00 03 c9 19 1e ce          |           
>  05 00 21 c9 19 1e 00 00 00 00 |   !       
>  00 00 00 00 00 00 00 00 00 00 |           
>  00 00 00 00 00 00 00 00 00 00 |           
>  00 00 00 00 00 00 ce          |           
<  05 00 03 5d 00 04 59          |    ]  Y   
>  05 00 07 5d 00 04 3d 28 25 3c |    ]  =(%<
>  55                            | U         
<  05 00 03 5a 00 01 5b          |    Z  [   
>  05 00 04 5a 00 01 05 5e       |    Z   ^  
<  05 00 03 5d 00 04 59          |    ]  Y   
>  05 00 07 5d 00 04 3d 28 25 3c |    ]  =(%<

>  55

Voici le resultat du telechargement du journal en question (sortie windows et flux binaire associe :

{{{Suunto X6HR. log data

  • General

Wristop model: X6HR. Wristop serial: 61403760 Log name: Weather Log Log type: Weather Start : 26/08/2006 12:00:00 End : 28/08/2006 12:00:00 Duration: 48:00.00 Sample interval: 900 s Notes:

  • Weather

Max temperature: 28 C Time: 27/08/2006 18:45:00 Min temperature: 25 C Time: 27/08/2006 06:15:00 Max pressure: 1014 hPa Time: 26/08/2006 12:00:00 Min pressure: 1014 hPa Time: 26/08/2006 12:00:00

  • Samples

Calendar time Log time Temperature (C) Air pressure (hPa)

26/08/2006 12:00:00 00:00.00 26 1014 26/08/2006 12:15:00 00:15.00 26 1014 26/08/2006 12:30:00 00:30.00 26 1014 26/08/2006 12:45:00 00:45.00 26 1014 26/08/2006 13:00:00 01:00.00 26 1014 26/08/2006 13:15:00 01:15.00 26 1014 26/08/2006 13:30:00 01:30.00 26 1014 26/08/2006 13:45:00 01:45.00 26 1014 26/08/2006 14:00:00 02:00.00 26 1014 26/08/2006 14:15:00 02:15.00 26 1014 26/08/2006 14:30:00 02:30.00 26 1014 26/08/2006 14:45:00 02:45.00 26 1014 26/08/2006 15:00:00 03:00.00 26 1014 26/08/2006 15:15:00 03:15.00 26 1014 26/08/2006 15:30:00 03:30.00 26 1014 26/08/2006 15:45:00 03:45.00 26 1014 26/08/2006 16:00:00 04:00.00 26 1014 26/08/2006 16:15:00 04:15.00 26 1014 26/08/2006 16:30:00 04:30.00 26 1014 26/08/2006 16:45:00 04:45.00 27 1014 26/08/2006 17:00:00 05:00.00 27 1014 26/08/2006 17:15:00 05:15.00 27 1014 26/08/2006 17:30:00 05:30.00 26 1014 26/08/2006 17:45:00 05:45.00 26 1014 26/08/2006 18:00:00 06:00.00 26 1014 26/08/2006 18:15:00 06:15.00 26 1014 26/08/2006 18:30:00 06:30.00 26 1014 26/08/2006 18:45:00 06:45.00 26 1014 26/08/2006 19:00:00 07:00.00 26 1014 26/08/2006 19:15:00 07:15.00 26 1014 26/08/2006 19:30:00 07:30.00 26 1014 26/08/2006 19:45:00 07:45.00 26 1014 26/08/2006 20:00:00 08:00.00 26 1014 26/08/2006 20:15:00 08:15.00 26 1014 26/08/2006 20:30:00 08:30.00 26 1014 26/08/2006 20:45:00 08:45.00 26 1014 26/08/2006 21:00:00 09:00.00 26 1014 26/08/2006 21:15:00 09:15.00 26 1014 26/08/2006 21:30:00 09:30.00 26 1014 26/08/2006 21:45:00 09:45.00 26 1014 26/08/2006 22:00:00 10:00.00 26 1014 26/08/2006 22:15:00 10:15.00 26 1014 26/08/2006 22:30:00 10:30.00 26 1014 26/08/2006 22:45:00 10:45.00 26 1014 26/08/2006 23:00:00 11:00.00 26 1014 26/08/2006 23:15:00 11:15.00 26 1014 26/08/2006 23:30:00 11:30.00 26 1014 26/08/2006 23:45:00 11:45.00 26 1014 27/08/2006 12:00.00 26 1014 27/08/2006 00:15:00 12:15.00 26 1014 27/08/2006 00:30:00 12:30.00 26 1014 27/08/2006 00:45:00 12:45.00 26 1014 27/08/2006 01:00:00 13:00.00 26 1014 27/08/2006 01:15:00 13:15.00 26 1014 27/08/2006 01:30:00 13:30.00 26 1014 27/08/2006 01:45:00 13:45.00 26 1014 27/08/2006 02:00:00 14:00.00 26 1014 27/08/2006 02:15:00 14:15.00 26 1014 27/08/2006 02:30:00 14:30.00 26 1014 27/08/2006 02:45:00 14:45.00 26 1014 27/08/2006 03:00:00 15:00.00 26 1014 27/08/2006 03:15:00 15:15.00 26 1014 27/08/2006 03:30:00 15:30.00 26 1014 27/08/2006 03:45:00 15:45.00 26 1014 27/08/2006 04:00:00 16:00.00 26 1014 27/08/2006 04:15:00 16:15.00 26 1014 27/08/2006 04:30:00 16:30.00 26 1014 27/08/2006 04:45:00 16:45.00 26 1014 27/08/2006 05:00:00 17:00.00 26 1014 27/08/2006 05:15:00 17:15.00 26 1014 27/08/2006 05:30:00 17:30.00 26 1014 27/08/2006 05:45:00 17:45.00 26 1014 27/08/2006 06:00:00 18:00.00 26 1014 27/08/2006 06:15:00 18:15.00 25 1014 27/08/2006 06:30:00 18:30.00 25 1014 27/08/2006 06:45:00 18:45.00 25 1014 27/08/2006 07:00:00 19:00.00 25 1014 27/08/2006 07:15:00 19:15.00 25 1014 27/08/2006 07:30:00 19:30.00 25 1014 27/08/2006 07:45:00 19:45.00 25 1014 27/08/2006 08:00:00 20:00.00 25 1014 27/08/2006 08:15:00 20:15.00 25 1014 27/08/2006 08:30:00 20:30.00 25 1014 27/08/2006 08:45:00 20:45.00 25 1014 27/08/2006 09:00:00 21:00.00 25 1014 27/08/2006 09:15:00 21:15.00 26 1014 27/08/2006 09:30:00 21:30.00 26 1014 27/08/2006 09:45:00 21:45.00 26 1014 27/08/2006 10:00:00 22:00.00 26 1014 27/08/2006 10:15:00 22:15.00 26 1014 27/08/2006 10:30:00 22:30.00 26 1014 27/08/2006 10:45:00 22:45.00 26 1014 27/08/2006 11:00:00 23:00.00 26 1014 27/08/2006 11:15:00 23:15.00 26 1014 27/08/2006 11:30:00 23:30.00 26 1014 27/08/2006 11:45:00 23:45.00 26 1014 27/08/2006 12:00:00 24:00.00 26 1014 27/08/2006 12:15:00 24:15.00 26 1014 27/08/2006 12:30:00 24:30.00 26 1014 27/08/2006 12:45:00 24:45.00 26 1014 27/08/2006 13:00:00 25:00.00 26 1014 27/08/2006 13:15:00 25:15.00 26 1014 27/08/2006 13:30:00 25:30.00 26 1014 27/08/2006 13:45:00 25:45.00 26 1014 27/08/2006 14:00:00 26:00.00 26 1014 27/08/2006 14:15:00 26:15.00 26 1014 27/08/2006 14:30:00 26:30.00 26 1014 27/08/2006 14:45:00 26:45.00 26 1014 27/08/2006 15:00:00 27:00.00 26 1014 27/08/2006 15:15:00 27:15.00 26 1014 27/08/2006 15:30:00 27:30.00 27 1014 27/08/2006 15:45:00 27:45.00 27 1014 27/08/2006 16:00:00 28:00.00 27 1014 27/08/2006 16:15:00 28:15.00 27 1014 27/08/2006 16:30:00 28:30.00 27 1014 27/08/2006 16:45:00 28:45.00 27 1014 27/08/2006 17:00:00 29:00.00 27 1014 27/08/2006 17:15:00 29:15.00 27 1014 27/08/2006 17:30:00 29:30.00 27 1014 27/08/2006 17:45:00 29:45.00 27 1014 27/08/2006 18:00:00 30:00.00 27 1014 27/08/2006 18:15:00 30:15.00 27 1014 27/08/2006 18:30:00 30:30.00 27 1014 27/08/2006 18:45:00 30:45.00 28 1014 27/08/2006 19:00:00 31:00.00 28 1014 27/08/2006 19:15:00 31:15.00 28 1014 27/08/2006 19:30:00 31:30.00 27 1014 27/08/2006 19:45:00 31:45.00 27 1014 27/08/2006 20:00:00 32:00.00 27 1014 27/08/2006 20:15:00 32:15.00 27 1014 27/08/2006 20:30:00 32:30.00 27 1014 27/08/2006 20:45:00 32:45.00 27 1014 27/08/2006 21:00:00 33:00.00 27 1014 27/08/2006 21:15:00 33:15.00 27 1014 27/08/2006 21:30:00 33:30.00 27 1014 27/08/2006 21:45:00 33:45.00 27 1014 27/08/2006 22:00:00 34:00.00 27 1014 27/08/2006 22:15:00 34:15.00 27 1014 27/08/2006 22:30:00 34:30.00 26 1014 27/08/2006 22:45:00 34:45.00 26 1014 27/08/2006 23:00:00 35:00.00 26 1014 27/08/2006 23:15:00 35:15.00 26 1014 27/08/2006 23:30:00 35:30.00 26 1014 27/08/2006 23:45:00 35:45.00 26 1014 28/08/2006 36:00.00 26 1014 28/08/2006 00:15:00 36:15.00 26 1014 28/08/2006 00:30:00 36:30.00 26 1014 28/08/2006 00:45:00 36:45.00 26 1014 28/08/2006 01:00:00 37:00.00 26 1014 28/08/2006 01:15:00 37:15.00 26 1014 28/08/2006 01:30:00 37:30.00 26 1014 28/08/2006 01:45:00 37:45.00 26 1014 28/08/2006 02:00:00 38:00.00 26 1014 28/08/2006 02:15:00 38:15.00 26 1014 28/08/2006 02:30:00 38:30.00 26 1014 28/08/2006 02:45:00 38:45.00 26 1014 28/08/2006 03:00:00 39:00.00 26 1014 28/08/2006 03:15:00 39:15.00 26 1014 28/08/2006 03:30:00 39:30.00 26 1014 28/08/2006 03:45:00 39:45.00 26 1014 28/08/2006 04:00:00 40:00.00 26 1014 28/08/2006 04:15:00 40:15.00 26 1014 28/08/2006 04:30:00 40:30.00 26 1014 28/08/2006 04:45:00 40:45.00 26 1014 28/08/2006 05:00:00 41:00.00 26 1014 28/08/2006 05:15:00 41:15.00 26 1014 28/08/2006 05:30:00 41:30.00 26 1014 28/08/2006 05:45:00 41:45.00 26 1014 28/08/2006 06:00:00 42:00.00 26 1014 28/08/2006 06:15:00 42:15.00 26 1014 28/08/2006 06:30:00 42:30.00 26 1014 28/08/2006 06:45:00 42:45.00 26 1014 28/08/2006 07:00:00 43:00.00 26 1014 28/08/2006 07:15:00 43:15.00 26 1014 28/08/2006 07:30:00 43:30.00 26 1014 28/08/2006 07:45:00 43:45.00 26 1014 28/08/2006 08:00:00 44:00.00 27 1014 28/08/2006 08:15:00 44:15.00 27 1014 28/08/2006 08:30:00 44:30.00 27 1014 28/08/2006 08:45:00 44:45.00 27 1014 28/08/2006 09:00:00 45:00.00 27 1014 28/08/2006 09:15:00 45:15.00 27 1014 28/08/2006 09:30:00 45:30.00 27 1014 28/08/2006 09:45:00 45:45.00 27 1014 28/08/2006 10:00:00 46:00.00 27 1014 28/08/2006 10:15:00 46:15.00 27 1014 28/08/2006 10:30:00 46:30.00 27 1014 28/08/2006 10:45:00 46:45.00 27 1014 28/08/2006 11:00:00 47:00.00 27 1014 28/08/2006 11:15:00 47:15.00 27 1014 28/08/2006 11:30:00 47:30.00 27 1014 28/08/2006 11:45:00 47:45.00 27 1014 28/08/2006 12:00:00 48:00.00 27 1014

< 05 00 03 5d 00 04 59 | ] Y > 05 00 07 5d 00 04 3d 28 25 3c | ] =(%< > 55 | U < 05 00 03 5d 00 04 59 | ] Y > 05 00 07 5d 00 04 3d 28 25 3c | ] =(%< > 55 | U < 05 00 03 b4 0f 14 af | > 05 00 17 b4 0f 14 00 00 00 00 | > 00 00 00 00 00 00 00 00 00 00 | > 00 00 00 00 00 00 af | < 05 00 03 c9 19 1e ce | > 05 00 21 c9 19 1e 00 00 00 00 | ! > 00 00 00 00 00 00 00 00 00 00 | > 00 00 00 00 00 00 00 00 00 00 | > 00 00 00 00 00 00 ce | < 05 00 03 70 0d 32 4f | p 2O > 05 00 35 70 0d 32 ac 03 f6 1b | 5p 2 > 03 f6 1b 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 e0 | < 05 00 03 a2 0d 32 9d | 2 > 05 00 35 a2 0d 32 f6 1a 03 f6 | 5 2 > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 71 | q < 05 00 03 d4 0d 32 eb | 2 > 05 00 35 d4 0d 32 03 f6 1a 03 | 5 2 > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1e | < 05 00 03 06 0e 32 3a | 2: > 05 00 35 06 0e 32 1a 03 f6 1a | 5 2 > 03 f6 1a 03 f6 1a 03 f6 19 03 | > f6 19 03 f6 19 03 f6 19 03 f6 | > 19 03 f6 19 03 f6 19 03 f6 19 | > 03 f6 19 03 f6 19 03 f6 19 03 | > f6 19 03 f6 1a 03 23 | # < 05 00 03 38 0e 32 04 | 8 2 > 05 00 35 38 0e 32 f6 1a 03 f6 | 58 2 > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a e8 | < 05 00 03 6a 0e 32 56 | j 2V > 05 00 35 6a 0e 32 03 f6 1a 03 | 5j 2 > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1b | > 03 f6 1b 03 f6 1b 03 f6 1b 03 | > f6 1b 03 f6 1b 03 f6 1b 03 f6 | > 1b 03 f6 1b 03 f6 a2 | < 05 00 03 9c 0e 32 a0 | 2 > 05 00 35 9c 0e 32 1b 03 f6 1b | 5 2 > 03 f6 1b 03 f6 1b 03 f6 1c 03 | > f6 1c 03 f6 1c 03 f6 1b 03 f6 | > 1b 03 f6 1b 03 f6 1b 03 f6 1b | > 03 f6 1b 03 f6 1b 03 f6 1b 03 | > f6 1b 03 f6 1b 03 bf | < 05 00 03 ce 0e 32 f2 | 2 > 05 00 35 ce 0e 32 f6 1b 03 f6 | 5 2 > 1b 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 1e | < 05 00 03 00 0f 32 3d | 2= > 05 00 35 00 0f 32 03 f6 1a 03 | 5 2 > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 c8 | < 05 00 03 32 0f 32 0f | 2 2 > 05 00 35 32 0f 32 1a 03 f6 1a | 52 2 > 03 f6 1a 03 f6 1a 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1b 03 f6 | > 1b 03 f6 1b 03 f6 1b 03 f6 1b | > 03 f6 1b 03 f6 1b 03 f6 1b 03 | > f6 1b 03 f6 1b 03 16 | < 05 00 03 64 0f 32 59 | d 2Y > 05 00 35 64 0f 32 f6 1b 03 f6 | 5d 2 > 1b 03 f6 1b 03 f6 1b 03 f6 1b | > 03 f6 1b 03 f6 1b 03 f6 1a 03 | > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a | > 03 f6 1a 03 f6 1a b4 | < 05 00 03 96 0f 1e 87 | > 05 00 21 96 0f 1e 03 f6 1a 03 | ! > f6 1a 03 f6 1a 03 f6 1a 03 f6 | > 1a 03 f6 1a 03 f6 1a 03 f6 1a |

}}}

Hypotheses sur le protocole de communication

Le premier octet correspond au type de commande 05 correspond a la lecture, 06 a l'ecriture (jamais teste). Le second et le troisieme octets definisent la longueur de la trame (avant le checksum). Le dernier correspond au checksum.

Si la trame provient de la montre : le checksum s'obtient en effectuant un Xor entre les bits des octets 2 a 2 recursivement entre le 4eme et l'avant dernier octet de la trame. Si la trame provient du PC, le checksum s'applique sur la totalite de la trame a l'exception du dernier octet (le checksum). Il est calcule comme precedement mais ne commence pas avec un octet nul mais avec 0x06.

Lors de l'operation de lecture (05) envoyee par le PC, octets 4 et 5 definissent la position dans la memoire et l'octet 6 la longueur de la trame a lire.

Identified memory addresses

Memory address are 16 bits (2 bytes) little endian(?) meaning that the most significant byte is the second one.

General parameters of the watch (units, ...) are coded on adress ''64 00'' over 11 bytes

  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18
<05 00 03 64 00 0b 6f 
>05 00 0e 64 00 0b 00 01 00 01 00 01 02 01 01 ff 00 93 

Meaning of byte number :

  • 7 : bip off(00) / on(01)
  • 8 : icon off(00) / on(01)
  • 9 : light normal(00) / off (01) / Night (02?)
  • 10: 12h (00) / 24h (01)
  • 11: date ? MM.DD(00) / DD.MM(01) / Day(02)
  • 12: altitude ft(00) / m(01)
  • 13: ascentional speed m/s(00) / m/mn(01) / m/h(02) / ft/s(03) / ft/mn(04) / ft/h(05)
  • 14: pression inHg(00) / hPa(01)
  • 15: temperature F(00) / C (01)

byte 16 et 17 ??

Max altitude is coded on address ''48 0d''

<  05 00 03 48 0d 12 57
>  05 00 15 48 0d 12 06 08 0f 2b 0a 

Max altitude was reached on (20)06/08/15 and the value is 2b 0a as a short integer (16 bits little endian) meening 2603m

==== HR+hiking log positions in connect====

<  05 00 03 c8 0f 30 f7 | get 36 bytes starting from '''c8 0f'''
>  05 00 33 c8 0f 30    |
>  07                   | number of log points ??? 
>  06 08 1f             | start date 31st august 2006
>  09 17                | start time 09:23:00 
>  0a                   | sample time ????
>  01                   | 
>  05 5f 05 5f          | total ascent (1375m) / total descent (1375m)
>  00 02                |
>  06 3a 36             | duration 6:56.53
>  00                   |
>  03 d4                | 980 (>H) *sample time in sec = 2h43m20  
>  03 fc                | 1020(>H) *sample time im sec = 2h50m00
>  08 d2 08 1f 0d 13    | Highest point 2258m (>H) reached on 2006/08/31 at 13:19
>  04 5a 08 1f 09 1b    | Lowest point 1114m (>H) reached on 2006/08/31 at 09:27 
>  3e b3 7c             | Lowest/highest/average HR = 62 - 179 124
>  a5 1e                | alarm on HR : max=165 min=30
>  00 38                | HR over limits : 56*10s * 9mn 20 
>  09 93                | HR in limits : (>H) 2451*(sample time) = 24510sec=6h48m30s
>  00 00                | Under limit : 0
>  ff ff ff             |??? 
>  4b                   |Checksum

Weather log

Weather log are 2 day long, one data point every 15mn, so 193 data

The SAM software reads 11 blocks of 50 bytes (0x32) starting from 07 0d to 64 0f (ending at 1e 0f), then 30 bytes from 1e 0f to b4 of. 580 byte were read, making 3 byte per log-point. one byte is dedicated to the temerature (1a or 1b in this log (26 or 27C) and 2 bytes for pression (in big endian short integer)

il ne reste plus beaucoup d'informations non comprises : "28 25 3c".

=== HR+hiking log positions in connect===

31/08/2006 9:23:00 HR hiking log 6:58:54 10 1114 2258 mini HR=62 max HR=179 avr HR=124 tot asc=1375 tot des=1375

Suunto X6HR. log data

  • General

Wristop model: X6HR. Wristop serial: 61403760 Log name: HR Hiking Log Log type: HR Hiking Start : 31/08/2006 09:23:00 End : 31/08/2006 16:21:54 Duration: 06:58.54 Sample interval: 10 s Notes:

  • Altitude

High point: 2258 m Time: 31/08/2006 13:19:00 Low point: 1114 m Time: 31/08/2006 09:27:00 Total ascent: 1375 m Ascent time: 02:43.20 Average ascent: 0 m/s Total descent 1375 m Descent time: 02:50.00 Average descent: 0 m/s

  • Heart rate

HR min: 62 HR max : 179 HR average: 124 HR limit high: 165 HR limit low: 30 Over high: 00:09.20 In limits: 06:48.30 Below low: 00:00.00

  • Samples

Calendar time Log time Heart rate Altitude (m) Lap Note

31/08/2006 09:27:00 00:04.00 0 1114 00:04.00 31/08/2006 10:21:00 00:58.00 124 1493 00:54.00 31/08/2006 10:34:00 01:11.00 126 1599 00:13.00 31/08/2006 10:35:00 01:12.00 120 1600 00:01.00 31/08/2006 10:54:00 01:31.00 143 1712 00:19.00 31/08/2006 11:36:00 02:13.00 117 2000 00:42.00 31/08/2006 12:34:00 03:11.00 101 2162 00:58.00 31/08/2006 13:19:00 03:56.00 159 2258 00:45.00

< 05 00 03 5d 00 04 59 | ] Y > 05 00 07 5d 00 04 3d 28 25 3c | ] =(%< > 55 |Checksum

< 05 00 03 5d 00 04 59 | ] Y > 05 00 07 5d 00 04 3d 28 25 3c | ] =(%< > 55 |Checksum

< 05 00 03 b4 0f 14 af | > 05 00 17 b4 0f 14 01 00 00 00 | > 00 00 00 00 00 00 00 00 00 00 | > 00 00 00 00 00 00 ae |

< 05 00 03 c9 19 1e ce | > 05 00 21 c9 19 1e 01 00 00 00 | > 00 00 00 00 00 00 00 00 00 00 | > 00 00 00 00 00 00 00 00 00 00 | > 00 00 00 00 00 00 cf |

< 05 00 03 fa 0f 31 c4 | 1 > 05 00 34 fa 0f 31 | get 49 bytes (7log of 7bytes) > 08 1f 0a 15 05 d5 7c | 08/31 10H21 1493m 124HR > 08 1f 0a 22 06 3f 7e | > 08 1f 0a 23 06 40 78 | > 08 1f 0a 36 06 b0 8f | > 08 1f 0b 24 07 d0 75 | > 08 1f 0c 22 08 72 65 | date 08/31 ; time 12:34 ; 2162m ; 101HR > 08 1f 0d 13 08 d2 9f | date 08(B) 31 (B) ;time 13h(B) 19mn(B) ; 2258m (>H) ; 159HR (B) > fa |chksum }}}

Conclusion

Si vous etes interesse par ce projet, vous pouvez me contacter par courier electronique a jerome AT terre-adelie POINT org

Terre-Adélie: SuuntoX6HR (last edited 2009-06-07 13:30:12 by localhost)