Skip to content

Navigation Menu

Sign in
Sign up

Bluetooth DMM 10 Byte Data Protocol

ludwich66 edited this page Jan 18, 2023 · 41 revisions

OLD
moved to

Description (Typ = Multimeter (2)):
BT-DMM Display (2)

Description (Typ = Multimeter (3)):
Display Typ (3)

The 10 bytes of the Bluetooth handle 0009 are decrypted byte by byte with an XOR Operation (only the first 11 bytes used(?)).
The binary byteorder must be changed to Big Endian (LSBMSB), after the flip it is simpler to decode.
The binary information represents individual display elements.

1. Gatttool to read the payload from the Bluetooth-Multimeter

Replace FC:58:FA:xx:yy:zz with your BT-MAC

gatttool -b FC:58:FA:xx:yy:zz --char-read --listen -a 9 
Characteristic value/descriptor: 
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 9f fc 66 2a

2. Generate the Payload with ab Bytewyse XOR operation

<— scroll —>
Example from Type (1)

Example 10 Byte from Bluetooth-DMM hex 1b 84 71 55 a2 61 9f fc 66 2a
key for xor Operation hex 41 21 73 55 a2 c1 32 71 66 aa 3b d0 e2 a8 33 14 20 21 aa bb
Result to Decode hex 5a a5 02 00 00 a0 ad 8d 00 80

3. Flip Byteorder to Big Endian:

MSB (xAB) flip to
<76543210< >01234567>
10101011 11010101

4. Build the 80 Bit Datastream:

<— scroll —>

Byte 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9
Bit LSBMSB 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Bitsnr 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
Example Value Flip 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Example Value Flip2 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Display Element p p p p p p p p r r r r r r r r Typ Typ e e e e e e ? HOLD Flash BUZ Minus D1e D1b D1a D1g D1f D1d D1c DP2 D2e D2b D2a D2g D2f D2d D2c DP3 D3e D3b D3a D3g D3f D3d D3c DP4 D4e D4b D4a D4g D4f D4d D4c nano V DC AC F Diode A μ(F) Ω kilo milli M(Ω) Hz °F °C

5. Result Example "1b 84 70 b1 49 6a 9f 3c 66 aa" == CHECKEN??" 22" "°C"

Typ 11=(1)Multimeter/11Byte 10=(2)Small-Multimeter/10Byte 01=(3)Clamp-Multimeter/10Byte

LED
IO-Symbol ?
High-Voltage Flash (U > xx VAC, xx VDC)
DPx = DecimalPoint(2,3,4)
BUZ = Buzzer (R<50Ω)
0-15 Präambel to Syncronize

Segmentorder Digit
(Dyx D=Digit y=1-4 x=a-g)

aaa
b c
ddd
e f
ggg

TESTDATA ANENG V05B 18-07-2021
_ = non symbol
*


Notification handle = 0x0009 value: 1b 84 71 55 e8 4f 68 ff 66 a9 # 147.4 kiloOhm
Notification handle = 0x0009 value: 1b 84 71 bd 59 ca 98 fc 66 a9 # 0.012 Ohm, buzzer , LED
Notification handle = 0x0009 value: 1b 84 71 5d a2 6b cf fe 66 ab # _12.8 Ohm, buzzer, LED
Notification handle = 0x0009 value: 1b 84 71 f5 bf 2b dd fa 66 a3 # 2.180 megaOhm
Notification handle = 0x0009 value: 1b 84 71 f5 5f 46 98 fc 44 aa # 2.674, V, Diode, 
Notification handle = 0x0009 value: 1b 84 71 5d 52 aa 33 f1 44 aa # V, Diode, buzzer _.OL_
Notification handle = 0x0009 value: 1b 84 71 f5 0f cc 28 fb f6 aa # 221.1 microFarad
Notification handle = 0x0009 value: 1b 84 71 d5 bd 6b df fa 76 ae # 3.131 milliFarad
Notification handle = 0x0009 value: 1b 84 71 95 2d 9b 9c fc 77 aa # 97,42 nanoFarad
Notification handle = 0x0009 value: 1b 84 71 b5 59 2a d9 fa 66 8a # 0.000 Hz
Notification handle = 0x0009 value: 1b 84 71 95 45 3a 79 ff 66 8a # 50.04 Hz
Notification handle = 0x0009 value: 1b 84 71 95 45 3a 39 fb 66 8a # 50.01 Hz
Notification handle = 0x0009 value: 1b 84 71 f1 2f 4e ad fe 6c aa # 233.3 V AC ,Blitz, true rms
Notification handle = 0x0009 value: 1b 84 71 f1 2f 4e cd fa 6c aa # 233.0 V AC ,Blitz, true rms
Notification handle = 0x0009 value: 1b 84 71 15 5c 6a 9f fc 60 aa # 4.022 V DC
Notification handle = 0x0009 value: 1b 84 71 05 5c 6a bf fe 60 aa # -4.023 V DC
Notification handle = 0x0009 value: 1b 84 71 55 38 0e d5 fe 60 aa # 1.358 V DC
Notification handle = 0x0009 value: 1b 84 71 45 38 0e f5 fe 60 aa # -1.359 V DC
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 df fe 66 2a # __28 °C (without zeros!) 
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 bf fb 66 2a # __27 °C
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 df f6 66 2a # __26 °C
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 ff f6 66 2a # __25 °C
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 7f ff 66 2a # __24 °C
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 bf fe 66 2a # __23 °C
Notification handle = 0x0009 value: 1b 84 71 55 a2 61 9f fc 66 2a # __22 °C
Notification handle = 0x0009 value: 1b 84 71 55 a2 41 d8 f6 66 ea # __76 °F
Notification handle = 0x0009 value: 1b 84 71 55 a2 41 78 ff 66 ea # __74? °F
Notification handle = 0x0009 value: 1b 84 71 55 a2 41 b8 fe 66 ea # __73 °F
Notification handle = 0x0009 value: 1b 84 71 55 48 2a c9 fe 22 ae # 100.8 mA DC
Notification handle = 0x0009 value: 1b 84 71 55 48 6e cf fa 22 ae # 182.0 mA DC
Notification handle = 0x0009 value: 1b 84 71 55 58 0a d5 fe 22 aa # 1.058 A DC
Notification handle = 0x0009 value: 1b 84 71 55 a8 1b dd fe 6c aa # 11.98 V AC true_rms

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /