Giter Club home page Giter Club logo

bluetooth's Introduction

Bluetooth/BLE

General information on how BLE is used in Xiaomi's devices.

General context

Xiaomi (and it's many, many sub-brands) uses several wireless protocols for their devices, mainly zigbee (aqara devices), BLE (many "standalone" devices and smartbands/smartwatches from huami and amazfit), and wifi (usually their "biggest" devices such as the vacuum cleaner, and some yeelight devices, basically, what's guaranteed to have enough power at all times)

Xiaomi is known to share it's logistics division with it's sub-OEMs, and also it's "Mi Home" ecosystem. They also seems to share some proprietary protocols, especially in BLE and zigbee.

BLE notes

  • Almost every devices implement a similar (if not the same) firmware upgrade logic, there seems to have differences as some uses Nordic semiconductors' DFU service, and other seems to only mimic parts of it. I guess they started by using Nordic microchips and then expanded, and did reproduce the Nordic's DFU mode to their other devices so they still can share most of the code.
  • Some devices implement authentication, even if it's "optional" as you can still talk to the device for some time (around a minute) before it drops the connection. The authentication is encrypted using a custom JNI, "libblecipher.so". These devices seems to include the Flora plant monitor, the Soocare toothbrush, and the temperature sensor, it isn't excluded that they use the same mechanism in other devices such as the mi bands.
  • Xiaomi does have 3 16b UUIDs, but i've only seen fe95 being used so far.
  • Huami have 2 16b UUIDs used by the mi bands: 0xFEE0 and 0xFEE1

Devices covered (Aka. what's coming sooner or later)

If you have a xiaomi ecosystem device and did reverse engineer it, feel free to contribute. For now, for obvious reasons, i'll focus on some devices i already own:

Device name Device ID Documentation Status
Mi Body Composition Scale huami.health.scale2* Doc Done
Mi toothbrush soocare.toothbrush.m1 Doc Done
Yeelight Bedside lamp yeelink.light.ble1 Doc TODO
Mi LED Desk lamp yeelink.light.lamp1 Doc TODO
Yeelight Candela yeelink.light.mb2grp Doc TODO
Mi Kettle V1 yunmi.kettle.v1 Doc TODO
Temperature/Humidity sensor cleargrass.sensor_ht.dk1 Doc WIP
Flora plant monitor hhcc.plantmonitor.v1 Doc TODO
Mi Band 1 xiaomi.watch.band1 Doc TODO
Mi Band 2 xiaomi.watch.band2 Doc TODO
iHealth Track Blood Pressure Monitor ihealth.bp.550bt Doc WIP

* Guesstimate, it isn't in mi home, but in some other app, of the ecosysteme or OEM's one

And for other protocols?

bluetooth's People

Contributors

prototux avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.