
IoT project for wearable devices with non-standard BLE protocol
Challenge
We have developed a mobile application for a fitness bracelet, overcoming problems with a non-working SDK and a non-standard communication protocol. This allowed the customer to verify the device's performance and launch the product.
Task:
Create a cross-platform app (iOS/Android) for a fitness bracelet. The main difficulty is that the manufacturer provided only an outdated SDK with errors and documentation in Chinese, which made it unusable.
We have developed a mobile application for a fitness bracelet, overcoming problems with a non-working SDK and a non-standard communication protocol. This allowed the customer to verify the device's performance and launch the product.
Task:
Create a cross-platform app (iOS/Android) for a fitness bracelet. The main difficulty is that the manufacturer provided only an outdated SDK with errors and documentation in Chinese, which made it unusable.
Solution
- SDK analysis and rejection: After studying the low-quality SDK (Java/Objective-C code with Chinese comments), we decided to connect to the device directly.
- Protocol recovery: Non-standard BLE logic was detected (all data went through two fields). We decompiled the closed iOS library in Ghidra to understand the binary query format.
- Prototype development: We wrote a basic application on Flutter that stably connects to the wristband, generates correct queries and decrypts data.
- SDK analysis and rejection: After studying the low-quality SDK (Java/Objective-C code with Chinese comments), we decided to connect to the device directly.
- Protocol recovery: Non-standard BLE logic was detected (all data went through two fields). We decompiled the closed iOS library in Ghidra to understand the binary query format.
- Prototype development: We wrote a basic application on Flutter that stably connects to the wristband, generates correct queries and decrypts data.
Results
- A fully working prototype that connects to the wristband and receives data: pulse, steps, sleep, battery charge.
- The customer made sure that the device was working properly and started purchasing a batch.
- The "black box" has been turned into a controlled system.
Technologies
Flutter, BLE (Bluetooth Low Energy), Ghidra.
- A fully working prototype that connects to the wristband and receives data: pulse, steps, sleep, battery charge.
- The customer made sure that the device was working properly and started purchasing a batch.
- The "black box" has been turned into a controlled system.
Technologies
Flutter, BLE (Bluetooth Low Energy), Ghidra.
