Last active
July 11, 2020 11:17
-
-
Save zerog2k/f830c5722c4686c327e2850406cb9377 to your computer and use it in GitHub Desktop.
ID115 ble command set exploration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ID115 | |
settings write on uuid 0x0af6 to device: | |
responses read on uuid 0x0af7 (notify?) | |
------ | |
startup - scan: | |
> 0204 | |
< Value: 0204f2fc581240a6 | |
> Value: 0202 | |
< Value: 02025b0a8f01076d6b050f06 | |
bind: | |
> Value: 0401f10101010b01 (multiple) | |
< Value: 040100000000 | |
> Value: 0204 | |
< Value: 0204f2fc581240a6 | |
> Value: 0202 | |
< Value: 02025b0a8f01076d6b050f06 | |
> Value: 063000000000 - (multiple) | |
< Value: 0630 | |
> Value: 030300803801000c00 (multiple) | |
< Value: 0303 | |
> Value: 0328aa03000000173b | |
< Value: 032800 | |
> Value: 032b01 | |
< Value: 032b | |
> Value: 03295517000700 | |
< Value: 0329 | |
> Value: 030200aa0000000000 | |
< Value: 0302 | |
> Value: 0201 | |
< Value: 020129021b0100560100 | |
> Value: 03110202014e020262f4 | |
ack | |
> Value: 030201aa0000000000 | |
ack | |
> Value: 0301e2070205121b1500 | |
ack | |
> Value: 030202aa0000000000 | |
ack | |
(af1, af2): | |
> Value: 08010100 | |
< Value: 0801000000000000 | |
> Value: 030203aa0000000000 | |
ack | |
> Value: 0803010000 | |
< Value: 08030110e207020500000f602200 | |
< Value: 0803021000000000000000000000000000000000 | |
> Value: 030204aa0000000000 | |
> Value: 0803030f00000000000000000000000000000000 | |
> Value: 0803040f00000000000000000000000000000000 | |
some stuff... | |
... | |
(af6, af7): | |
> Value: 02a0 (multiple) | |
< Value: 02a00000000000000000000000000000000005 | |
(af1, af2): | |
> Value: 080200 | |
ack | |
... | |
------- | |
af6: Value: 030300102700000800 - step target 10000, sleep target 8:00 | |
af6: Value: 030300803801000c00 - steps: 80000(0x13880), sleep 12h | |
[UUID: Unknown (0x0af6)]: Value: 0320090014000f00f500 | |
Value: 0320090014000f00f400 - sedentary alert off | |
Value: 0320090014000f004100 - sed alert on, 900 am - 800p, sat | |
Value: 0320090014000f006100 - sed alert on, 900 am - 800p, fri, sat | |
Value: 0320090014000f00ff00 - "" 7 days | |
Value: 0320090014000f000100 - "" 0 days | |
Value: 0320090014000f000000 - "" off | |
Value: 0320090014000f00ff00 - 7 days, on | |
Value: 0320090014000f00fe00 - 7days, off | |
Value: 0201, Value: 020129021b0100590100 | |
after app idle, open up: | |
> af6: Value: 02a0 | |
< af7: Value: 02a00000000000000000000000000f00000005 | |
> af6: Value: 0201 | |
< af7: Value: 020129021b0100590100 | |
> af6: Value: 0201 | |
< af7: Value: 020129021b0100590100 | |
open camera: | |
> af6: Value: 060200000000 | |
< af7: Value: 0602 | |
< af7: Value: 070106000000 - cam button press (same each time) | |
... | |
> Value: 0201 | |
< Value: 020129021b0100580100 | |
exit camera: | |
> Value: 060201000000 | |
< Value: 0602 | |
"lift wrist bright screen" | |
off | |
> Value: 03285503000000173b | |
< Value: 032800 | |
on: | |
> Value: 0328aa03000000173b | |
< Value: 032800 | |
off: | |
> Value: 03285503000000173b | |
on: | |
> Value: 0328aa03000000173b | |
in the example, | |
0328aa03000000173b format is: | |
cccceesssshhmmhhmm | |
cccc = command | |
ee = enabled (aa: on, 55: off) | |
ssss = seconds for screen to stay active, LSB (e.g. 0500 = 5 seconds) | |
hhmm = active times start and stop (where hh and mm are hex value) | |
language: | |
> Value: 03110202014e02026242 - follow system | |
< 0311 | |
> Value: 03110202014e02026200 - english | |
> Value: 03110202014e01026200 - chinese | |
> Value: 03110202014e02026242 - follow system | |
display: | |
> Value: 032b01 - landscape | |
< Value: 032b | |
> Value: 032b02 - vertical | |
find my phone: | |
> Value: 0326aa000000 - on | |
> Value: 032655000000 - off | |
.. later when find my phone is pressed on watch, | |
< value: 0702000f | |
antilost alert? | |
> Value: 032103 - on ? (multiple tx) | |
> Value: 032100 - off | |
dnd: | |
> Value: 0329aa17000700 - on, start 1100p, finish 0700am | |
> Value: 03295517000700 - off | |
------ | |
reboot: (tx: af1, rx: af2) | |
> af1: Value: 08010100 | |
< af2: Value: 0801000000000000 | |
> Value: 0803010000 - dump something? | |
< Value: 08030110e207020500000f602200 | |
< Value: 080302100000000000000000000000000f000000 | |
< Value: 0803030f00000000000000000000000000000000 | |
< Value: 0803040f00000000000000000000000000000000 | |
< Value: 0803050f00000000000000000000000000000000 | |
< Value: 0803060f00000000000000000000000000000000 | |
... (continues til 220 ?) | |
< Value: 0803220f00000000000000000000000000000000 | |
< Value: 08ee00000000 | |
> Value: 080302 (crc?) | |
< Value: 08ee00000000 | |
> Value: 080302 | |
< Value: 080302000000 | |
(delay - rebooted?) | |
> Value: 0804010000 | |
< Value: 0804011000000000000000000002 | |
< Value: 0804021000000000000000000804 | |
< Value: 08ee02000000 | |
> Value: 080402 | |
< Value: 080402000000 | |
> Value: 080200 | |
< Value: 0802 | |
>af6: Value: f001 | |
<af7: Value: f001 | |
------ | |
0201 - get status? | |
Value: 020129021b0100580100 | |
id115 | |
data synced at 18/02/05, PM 05:18 | |
fw ver: v27 (0x1b) | |
app v: 2.3.0 | |
remain batt = 88% (0x58) | |
format: ccccxxxxvvyyggbbzz | |
cccc: command | |
xxxx: unknown (2902 is notify uuid, not sure if coincidence?) | |
vv: fw ver | |
yy: ? | |
gg: charge status (01 usb charging) | |
bb: battery percentage remaining | |
zz: ? | |
---- | |
0204 - get bt mac addr | |
----- | |
playing around: | |
> 02a0 (query counters?) | |
< Value: 02a025000000020000001c0000001100000005 | |
rpt | |
> Value: 02a025000000020000001c0000001100000005 | |
> Value: 02a025000000020000001c0000001100000005 | |
Value: 02a039000000020000001c0000001a00000005 | |
shaking 10x | |
Value: 02a025000000020000001c0000001e00000005 | |
shaking 10x | |
Value: 02a025000000020000001c0000002800000005 | |
(0x28 - 0x1e = 10 dec) | |
------- | |
(during pair) | |
(time/date set): | |
> af6: Value: 0301e207020512343000 | |
Arrival Time: Feb 5, 2018 18:52:48.165858000 CST | |
2018 = 0x07e2 | |
18 = 0x12, 52 = 0x34, 48 = 0x30 | |
------- | |
alarm set: | |
> Value: 0302015500071eff03 - 1, (every day, 0730am: 0x07 0x1e) on | |
ack | |
> Value: 0201 | |
< Value: 020129021b0100560100 | |
> Value: 0302015500071efe03 - 1, off | |
> Value: 0302015501071efe03 - 1, changed alert type from 1 -> 2 | |
> Value: 0302015501071ed403 - 1, changed to every other day | |
> Value: 0302015501071ef403 | |
> Value: 0302015501071e8003 - only sunday | |
> Value: 03020255000809ff03 - 2, 0809am, type 0, enabled, everyday | |
> Value: 03020255020809bf03 - 2: type 3 (exercise), no saturday | |
> Value: 03020255020809ef03 - 2: no thurs | |
> Value: 030202550208097f03 - "" no sun | |
> Value: 03020255020809fd03 - "" no mon | |
------- | |
change units: | |
> Value: 03110101014e0202629e - metric | |
> Value: 03110202024e0202629e - imperial | |
> Value: 03110202024e020262b4 - m -> f | |
f->m | |
> Value: 0310bca02800b8070101 | |
> Value: 03110202024e020262fc | |
m->f | |
> Value: 03246087a0000000287cf6 | |
> Value: 0310bca02801b8070101 | |
> Value: 03110202024e02026201 | |
> Value: 0310bca02801b8070203 - height cm, weight (kg/100), gender, birthday (yyyy,mm/dd) | |
> Value: 0310bc102701b8070203 - | |
> 2106 (repeatedly, dump out diagnostic) | |
Value: 210655534e3a4646464646464646000000000000 | |
Value: 2106aac007000000000000000000000000000000 | |
Value: 21065571643d302c63713d300000000000000000 | |
Value: 210655736a3d302c676a3d302c64783d31000000 | |
----------------- | |
activity counters: | |
steps = 191 (0xbf) | |
miles = 0.09 = 144.841 m (0x94 = 148m = 0.0919629 mi) | |
fire = 12 (0x0c) | |
move time = 2min ? (120 = 0x78) | |
02a0bf0000000c000000940000007800000005 | |
02a0 bf000000 0c000000 94000000 78000000 05 | |
steps fires? meters move sec ?? | |
time/date query: | |
0203 e007 01 01 00 06 38 04 | |
2016 01 01, 00:07 | |
some queries from 0201-0206 | |
---------------- | |
05xx commands - notification to device | |
0CMD uu vv aa bb cccccccc... | |
0501 0001 | |
CMD = 501 | |
uu = 00 buzzer off | |
uu = 01 buzzer on | |
(uu wrong!!) | |
vv = 00 handset icon center | |
vv = 01, phone icon left, with text | |
aa = char pos start | |
bb = char pos stop | |
cc... = ascii message | |
0501010100000000000000000000000000000000 | |
0501 0101 0000 0000 0000 0000 0000 0000 0000 0000 | |
050101010132333435363738 - left tel sym, scrolling numbers (4567...) | |
050100000132333435363738 - center tel sym | |
050101010102033435363738 - left tel, sym, (45) | |
050101010104003435363738 - lef tel sym, (4567) | |
050101010109003435363738395152535455 - 456789QRS (no scroll) | |
050102010109003435363738395152535455 - " no diff? | |
050100010109003435363738395152535455 - ? | |
050100020109003435363738395152535455 - phone icon center | |
0501 0001 01 0900 34353637383951525354555600 | |
05010001010f0034353637383951525354555600 - diplay, with buzz | |
0501 01 01 01 0f 00 34353637383951525354555600 - display, buzzing | |
0501 00 01 01 0f 00 34353637383951525354555600 - display buzz | |
0501 00 01 00 0f 00 34353637383951525354555600 - display buzz | |
0501 00 01 01 05 00 34353637383951525354555600 - display, buzz, 5 chars | |
0501 00 01 00 05 00 34353637383951525354555600 - 4, 5, 6, 7 | |
0501 00 01 00 05 3334353637383951525354555600 | |
05010201010f0034353637383951525354555600 - nothing | |
05010100010f0034353637383951525354555600 - no display | |
05010000010f0034353637383951525354555600 - handset icon, center, buzzing | |
05010100010f0034353637383951525354555600 - no display ? | |
0501 00 00 11 0F 353637383951525354555600 - handset icon, center, buzzing | |
0501 00 01 01 02 03 353637383951525354555600 - left icon, buzz, no text | |
----- | |
502 command ?? | |
maybe cancel 0501 notification ? | |
------------------- | |
message notification: | |
0503 00 01 01 00 00 09 313233343536373839 | |
0cmd aa bb cc dd ee ff ggggggggggggggg... | |
0503 = command | |
aa = msg id? | |
bb = msg enable? | |
cc = msg type (icon?), {1, 3, 4, 6, 7, 8, 9, a, b } (!! DO NOT EXCEED b - will cause reset) | |
dd = post-string space length for scrolling | |
ee = startpos | |
ff = endpos (max: 0xA) | |
gg... = char string (max 12 chars) | |
0503 00 01 01 00 00 09 31323334353637383940 | |
0503 00 01 01 00 00 05 33343536373839404142 | |
----- | |
mysteries: | |
> 0401 ? | |
> 0402 ? | |
> 0101 reboots into some OTA mode | |
For the TIme Set
af6: Value: 0301e207020512343000
That last byte is the Weekday. 0..6 is Mon..Sun
Thank you, I can now set the time on my ID115Plus HR
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
As you mentioned above, 02 a0 queries counters. The format of the response is:
02 a0 AA AA AA AA BB BB BB BB CC CC CC CC DD DD DD DD EE
AA AA AA AA = stepcounter
BB BB BB BB = kcal counter
CC CC CC CC = distance
DD DD DD DD = active time (in seconds)
EE = current heart rate
EE works only if you are in HR monitor mode or during an exercise. Otherwise it is always 00.