S610i file format

20 views
Skip to first unread message

Nikke

unread,
Mar 19, 2008, 8:41:14 AM3/19/08
to s710
Hi
I have made some adjustments on the s610i fileformat since the one
provided by the s710i source didn't fit that well with my recordings
in interval mode.
I think that I also have discovered how to enterpret byte 25, 27, 34,
35, 36 and 64, and I have some thoughts on recoveryhr error
enterpretation.
/Niklas

Byte Meaning
--------------------------------------------------------------------------------------------------------------
0 Bytes in file (LSB)
1 Bytes in file (MSB)

2 Exercise number (0 to 5) [MM]

3 Exercise label (byte 0) [MM]
4 Exercise label (byte 1) [MM]
5 Exercise label (byte 2) [MM]
6 Exercise label (byte 3) [MM]
7 Exercise label (byte 4) [MM]
8 Exercise label (byte 5) [MM]
9 Exercise label (byte 6) [MM]

10 File date (seconds) (BCD)
11 File date (minutes) (BCD)

12 File date (hours) (BCD)

13 bit 7 - UNKNOWN
bits 6-0: File date (day of month) (BCD)

14 File date (year, offset from 2000)

15 L: File date (month, jan = 1)
U: Exercise duration (tenths of a second) OK

16 Exercise duration (seconds) (BCD) OK
17 Exercise duration (minutes) (BCD) OK
18 Exercise Duration (hours) (BCD) OK

19 Avg HR OK
20 Max HR OK
21 Total number of laps recorded (interval+user recorded)
22 Number of user recorded laps - the laps recorded as intervals
23 User ID (BCD, 0-99) [MM] OK
24 bit 1: Units (0 = metric, 1 = english)

25 bit 7: Interval mode (0 = on, 1 = off)
bit 6: unknown
bit 5: unknown
bit 4: unknown
bit 3: unknown
bit 2: recovery mode (0 = on, 1 = off)
bit 1: unknown
bit 0: unknown

26 Recording interval (0 = 5s, 1 = 15s, 2 = 60s) OK

27 bit 7 : unknown 0
bit 6 : unknown 0
bit 5 : unknown 0
bit 4 : recovery (0 = timer, 1 = HR)
bit 3 : unknown 0
bit 2 : unknown 0
bit 1,0: interval (0 = manual, 1 = timer, 2 = HR)

-- note on bit 27: these are settings, it does not tell you
if recovery/interval mode is enabled.

28 Limits 1 (Low) OK
29 Limits 1 (High) OK
30 Limits 2 (Low) OK
31 Limits 2 (High) OK
32 Limits 3 (Low) OK
33 Limits 3 (High) OK

34 recovery sec (bcd) OK
35 recovery min (bcd) OK
36 HR decrease during recovery


37 Below Zone 1, sec (BCD) OK
38 Below Zone 1, min (BCD) OK
39 Below Zone 1, hour (BCD) OK
40 Within Zone 1, sec (BCD) OK
41 Within Zone 1, min (BCD) OK
42 Within Zone 1, hour (BCD) OK
43 Above Zone 1, sec (BCD) OK
44 Above Zone 1, min (BCD) OK
45 Above Zone 1, hour (BCD) OK

46 Below Zone 2, sec (BCD) OK
47 Below Zone 2, min (BCD) OK
48 Below Zone 2, hour (BCD) OK
49 Within Zone 2, sec (BCD) OK
50 Within Zone 2, min (BCD) OK
51 Within Zone 2, hour (BCD) OK
52 Above Zone 2, sec (BCD) OK
53 Above Zone 2, min (BCD) OK
54 Above Zone 2, hour (BCD) OK

55 Below Zone 3, sec (BCD) OK
56 Below Zone 3, min (BCD) OK
57 Below Zone 3, hour (BCD) OK
58 Within Zone 3, sec (BCD) OK
59 Within Zone 3, min (BCD) OK
60 Within Zone 3, hour (BCD) OK
61 Above Zone 3, sec (BCD) OK
62 Above Zone 3, min (BCD) OK
63 Above Zone 3, hour (BCD) OK

64 Best Lap nr

65 [U]: UNKNOWN (6)
[L]: Best lap tenths of a second (BCD) OK
66 Best lap seconds (BCD) OK
67 Best lap minutes (BCD) OK
68 Best lap hours (BCD) OK

69 Energy * 10 (BCD) (lower 2 digits) OK
70 Energy * 10 (BCD) (next higher 2 digits)OK
71 Energy * 10 (BCD) (highest 2 digits) OK

Energy = ((BCD(b69) + BCD(b70)*100 + BCD(b71)*10000)/10.0

72 Total energy (BCD) (lower 2 digits) OK
73 Total energy (BCD) (next higher 2 digits) OK
74 Total energy (BCD) (highest 2 digits) OK

Total energy = (BCD(b72) + BCD(b73)*100 + BCD(b74)*10000


75 Cumulative workout time (hours) (BCD) OK
76 Cumulative workout time (hundreds of hours) (BCD) OK
77 Cumulative workout time (minuts) (BCD)

[Lap data]

n = Total number of laps recorded --byte 21

if(interval mode) --bit 7 byte 25
offset = 10
SWHR(offset)
[83 + (lap n) * offset] recovery time sec (BCD) --same as byte 34
[84 + (lap n) * offset] recovery time min (BCD) --same as byte 35
[85 + (lap n) * offset] HR decrease during recovery --same as byte 36
[86 + (lap n) * offset] lap numbering, more on that below
else
offset = 6
SWHR(offset)

where

SWHR(offset) =
[77 + (lap n) * offset] t1t0ssssss
[78 + (lap n) * offset] t3t2mmmmmm
[79 + (lap n) * offset] hhhhhhhh
--stop watch hhhhhhhh 00mmmmmm 00ssssss 0000t3t2t1t0
[80 + (lap n) * offset] lap HR
[81 + (lap n) * offset] avg HR for the lap
[82 + (lap n) * offset] max HR for the lap

Lap numbering:
bit 7 : unknown
bit 6,5 : 0 0 lap
0 1 zone 1 --warmup
1 0 zone 2 --interval
1 1 zone 3 --cooldown
bit 4-0 : number in zone.
The last interval-recording lapnumber equals previous interval-
regording lapnumber. This recording is (might
be) an summation of the intervals.
Cooldown number is (might be) the number of intervals recorded (really
strange, but that is what it looks like).

HR decrease:
0xfb: not recorded
0xfc: negative decrease ?
0xfe: negative decrease (increase HR might be the value at the
recovery minut position)
0xff: not recorded

It might be the case that the numbers above tell you how to enterpret
the value of the previous two bytes (minute and second recovery.)

Nikke

unread,
Mar 20, 2008, 11:33:01 AM3/20/08
to s710
I must correct my self on byte 25, 1=on 0=off
> 25 bit 7: Interval mode (1 = on, 0 = off)
> bit 6: unknown
> bit 5: unknown
> bit 4: unknown
> bit 3: unknown
> bit 2: recovery mode (1 = on, 0 = off)
Reply all
Reply to author
Forward
0 new messages