BLE广播原始数据解码求助:E66手环RawData格式解析需求
Decoding E66 Smart Band RawData (BLE Broadcast)
Got it, let's break down that RawData hex string for your E66 smart band step by step. First, let's lay out the raw data you shared clearly:
{ "TimeStamp":"2020-05-30 16:44:32", "DataFormat":"RawData", "BLEMac(hex)":"E5F604C2EAAE", "RSSI(dBm)":-30, "BLEName":"E67 EAAE", "RawData(hex)":"02010610FF107803E8000000000000640023290009094536372045414145" }
Step 1: Understand BLE Broadcast Packet Structure
BLE RawData is made up of AD (Advertising Data) segments, each following this format:[Length (1 byte)] + [Type (1 byte)] + [Data (Length-1 bytes)]
Let's split your RawData into these segments:
First segment (BLE Flags):
02 01 06- Length:
02(2 bytes of type + data) - Type:
01(BLE Flags) - Data:
06→ Means the device is in general discoverable mode and doesn't support classic Bluetooth. This is standard BLE stuff, no useful sensor data here.
- Length:
Second segment (Manufacturer Custom Data - THE IMPORTANT PART):
10 FF 107803E80000000000006400232900- Length:
10(16 bytes total for type + data) - Type:
FF(Manufacturer Specific Data, where the band's sensor data lives) - Manufacturer Data breakdown:
- First 2 bytes:
10 78→ This is the manufacturer ID (stored in little-endian, so actual ID is0x7810, common for some budget smart bands) - Remaining bytes are the sensor payload:
03 E8 00 00 00 00 00 00 00 64 00 23 29 00 - Let's map these to likely sensor values (based on E-series band common protocols):
03: Frame type (probably real-time monitoring data)E8 00: Steps (little-endian →00E8= 232 steps)00 00: Distance traveled (0 meters)00 00: Calories burned (0 kcal)00 00: Reserved/other metric (maybe sleep data, which is 0 here since it's daytime)64 00: Heart rate (little-endian →0064= 100 bpm)23 29: Likely battery voltage (23 = 35, 29 = 41 → ~3.5V, or battery percentage ~35-41%)00: Status flag (maybe 0 = not in active motion)
- First 2 bytes:
- Length:
Third segment (Device Name):
09 09 4536372045414145- Length:
09(9 bytes total) - Type:
09(Complete Local Name) - Data:
4536372045414145→ Decodes to ASCIIE67 EAAE, which matches yourBLENamefield. No surprises here.
- Length:
Next Steps to Confirm & Refine
Since manufacturer protocols aren't always public, here's how to get more accurate decoding:
- Collect multiple data samples: Capture RawData when the band is resting, during exercise, when heart rate changes, and when battery levels drop. Compare which bytes shift to map them to real-world values.
- Check for official docs/SDK: If the brand has a developer portal, they might publish the exact protocol specs for RawData.
- Look for open-source projects: Search for E66/E67 band decoding code—other developers might have reverse-engineered the protocol already.
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

