USB Digital Tester (BT) Protocol

Hi there,
I bought a small "TFT USB Digital Tester" with Bluetooth. Model J7-c.
It shows f.g. voltage, current, resistance and calculates capacity.

grafik

There are apps for iOS in the store and several versions for Android somewhere on a cloud storage...
And I didn´t want to install one of these!
This device has Bluetooth LE and classic Bluetooth SPP at the same time. Whatever you will use, data will be transferred constantly.
The data is in Hexadecimal and looks like that:
00 CD FF 55 01 03 00 01 FB 00 00 07 00 00 13 00 00 00 09 00 8C 00 EC 00 1F 00 00 0F 15 3C 0D AC 01 2C 03 20

A dataset consists of 36 bytes. There is a little delay between those datasets.
On my testing, the last 7 bytes remain the same:

Byte Pos. Hex Char Description
30 0x3C < Smaller than
31 0x0D CR Carriage Return
32 0xAC ¬ ?
33 0x01 SOH Start of Header
34 0x2C , Comma
35 0x03 ETX End of transmission
36 0x20 Space

At the beginning there are also several bytes not changing (except second):

Byte Pos. Hex Char Description
1 0x00 Zero
3 0xFF Int 255 (mostly "null")
4 0x55 U
5 0x01 SOH Start of Header
6 0x03 ETX End of transmission

SOH and ETX does not make any sense to me there. Maybe none-static values, which just does not change on my test.

Which seem to be the data bytes:

Byte Pos. Hex Value
10 00 00 07 0.07A
13 00 00 13 0000.13Wh
16 00 00 00 09 ?
20 00 8C ?
22 00 EC ?
24 00 1F 31° C

The display changes constantly, so does the data. So it´s hard to capture the matching Hex values to the display. But this was what I saw at the time:

No. 01
5.09V
0.07A
00020mAh
0.36W
075.7 Ohm
0000:20:01 Time (20min 1 sec)
CPU 31°C

There are also the USB Datalines, which went crazy a lot, so I use min and max values.

V+: 5.09V (similar to main Voltage)
V-: 0V
D+: 0.72V - 2.18V
D-: 0.10V - 1.53V

That´s it for now. I´ll try again tomorrow with more data and screenshots.
Maybe you also got one of these or are just curious to findout more about the protocol. Feel free to participate :slight_smile:

It goes on!

Display (did two screenshots during the data recording):

Vol: 4,73V
Cur: 1.09A
Pwr: 5.14W
004.4Ohm
Ene: 0003.67Wh
CPU 31°C
Cap:00776mAh
088°F
Time 0000:44:13
NO.01

Vol: 4,73V
Cur: 1.07A
Pwr: 5.07W
004.4Ohm
Ene: 0003.67Wh
CPU 31°C
Cap:00776mAh
088°F
Time 0000:44:16
NO.01

Raw data

00 F5 FF 55 01 03 00 01 D9 00 00 6C 00 03 07 00 00 01 6E 00 4B 00 4B 00 1F 00 00 2C 0D 3C 0D AC 01 2C 03 20
00 7C FF 55 01 03 00 01 D9 00 00 6A 00 03 07 00 00 01 6E 00 4A 00 4B 00 1F 00 00 2C 0E 3C 0D AC 01 2C 03 20
00 E7 FF 55 01 03 00 01 D9 00 00 6A 00 03 08 00 00 01 6E 00 4B 00 4B 00 1E 00 00 2C 0F 3C 0D AC 01 2C 03 20
00 54 FF 55 01 03 00 01 D9 00 00 6B 00 03 08 00 00 01 6F 00 4B 00 4B 00 1F 00 00 2C 10 3C 0D AC 01 2C 03 20
00 C5 FF 55 01 03 00 01 D9 00 00 6B 00 03 08 00 00 01 6F 00 4B 00 4B 00 1F 00 00 2C 11 3C 0D AC 01 2C 03 20
00 B7 FF 55 01 03 00 01 D9 00 00 6B 00 03 09 00 00 01 6F 00 4B 00 4B 00 1F 00 00 2C 12 3C 0D AC 01 2C 03 20
00 A3 FF 55 01 03 00 01 D9 00 00 6A 00 03 09 00 00 01 6F 00 4B 00 4B 00 1F 00 00 2C 13 3C 0D AC 01 2C 03 20
Byte Pos. Hex value Char/Value Description
1 0x00 Zero ? (Constant)
2 0xA5 165 ? (Seen a range from 9 to 165)
3 0xFF Int 255 / null ? (Constant)
4 0x55 U ? (Constant)
5 0x01 SOH ? Start of Header (Constant)
6 0x03 ETX ? End of transmission (Constant)
7 00 01 D0 473 4.73V
10 00 00 6C 108 1.08A
13 00 03 07 776 00776mAh
16 00 00 01 6E 367 0003.67Wh
20 00 4B 0.75V D+
22 00 4B 0.75V D-
24 00 1F 31° C CPU
26 00 00 0F 15 15:21 Min:Sec
30 0x3C < ? Direction
31 0D AC 3500 >35V (Setup)
33 01 2C 300 <3.00V (Setup)
35 03 20 800 >8.00A (Setup)

For now it seems that I got all important information, except Watts. But this can be calculated easily by Voltage * Current.

Enough for today :nerd_face:

Tested my Notebook today.
The direction was the other way around, so was the orientation (by Setup). But nothing changed on the first 6 bytes. Also the 30th was as constant as it was before.

On the display Fast Charge was stated and the 19,8V. With my smartphone it was QC2 (Quick Charge)

Raw Data

00 45 FF 55 01 03 00 07 BC 00 00 48 00 00 31 00 00 00 31 00 09 00 09 00 1E 00 00 24 36 3C 0D AC 01 2C 03 20 
00 01 FF 55 01 03 00 07 BD 00 00 30 00 00 31 00 00 00 31 00 09 00 09 00 1E 00 00 24 37 3C 0D AC 01 2C 03 20 
00 1A FF 55 01 03 00 07 C0 00 00 39 00 00 32 00 00 00 31 00 09 00 09 00 1F 00 00 24 38 3C 0D AC 01 2C 03 20 
00 C2 FF 55 01 03 00 07 C0 00 00 39 00 00 32 00 00 00 32 00 09 00 09 00 1F 00 00 24 39 3C 0D AC 01 2C 03 20 
00 74 FF 55 01 03 00 07 B7 00 00 3B 00 00 32 00 00 00 32 00 09 00 09 00 1E 00 00 24 3A 3C 0D AC 01 2C 03 20 
00 9F FF 55 01 03 00 07 C2 00 00 29 00 00 32 00 00 00 32 00 09 00 09 00 1F 00 00 24 3B 3C 0D AC 01 2C 03 20

So I guess I´ll end up here. Maybe I´ll write an Arduino Sketch to transfer the data readable to my PC via serial. Or directly build a .Net application, which gets it´s data directly via bluetooth.