Skip to content

Xiaomi protobuf watches

The following list includes all implemented features for Xiaomi protobuf devices. These are called protobuf devices because they use protobuf for the protocol, unlike other Huami devices. The actual supported features can vary for each device.

Experimental

Support for these devices is recent, and still experimental. This page is also still a work in progress and not complete.

List of supported Xiaomi gadgets by Gadgetbridge which use protobuf:

Implemented features

These features are supported by Gadgetbridge and apply to all Xiaomi watch models included in this page. Note that actual available features per device depends on the device capabilities.

List of features supported by Gadgetbridge
  • Authentication / Encryption
  • Set time (date, time, timezone offset, dst offset, 12h/24h)
  • Device info (firmware, model, serial)
  • Device state (battery, sleep, wearing)
  • Music (info, state, media buttons from watch)
  • Notifications
    • Apps, calls, custom icons, open on phone, dismiss on phone and watch
    • Ignore and reject calls
    • Reject calls with SMS
    • Configure canned messages for calls
    • Emoji
  • Contacts upload to watch
  • Alarms
  • Reminders
  • Flashing (watchface, firmware)
  • Watchface management
  • Workouts
    • Start fitness app on phone
    • Send GPS to watch
  • Find phone and watch
  • Calendar events sync
  • Activity sync (partial, see below)
  • Settings
    • Language
    • Wearing Mode (band / pebble / necklace)
    • User Info (height, weight, birthday, gender)
    • Goals (calories, steps, standing time, active time)
    • Goal notification (enabled, secondary goal)
    • Vitality score settings (7 day reminder, daily reminder)
    • Heart rate (sleep detection, sleep breathing quality, interval, high and low alerts)
    • SpO2 (all-day, low alert)
    • Stress (enable, relaxation reminder)
    • Standing reminder (start and end times, dnd period)
    • Sleep mode schedule
    • Screen on on notifications
    • Camera remote
    • Password
    • Display items
  • Realtime stats (steps, heart rate)
  • Weather (multiple locations)
  • Phone silent mode from watch
  • Widgets

Activity Sync

Activity sync is very experimental. It was mainly tested on the Mi Band 8, and may present issues on other devices.

Implemented:

  • Heart rate, steps
  • SpO2
  • Stress
  • Vitality Score (equivalent to PAI)
  • Sleep times and sleep stages
  • Skin temperature (Watch S1 Pro)

Missing:

  • Calories (fetched, but no UI)
  • Moving time
  • Standing time (fetched, but no UI)
  • VO2 Max
  • Blood pressure
  • Body temperature (Watch S1 Pro) (fetched, but no UI)
  • Training load (fetched, but no UI)
  • Sleep respiratory rate
  • Heart rate stats (resting, min, max, average - fetched, but no UI)
  • SpO2 stats (min, max, average - fetched, but no UI)
  • Workouts (partially implemented)

Known issues

Open issues

Do not forget to check any other open issues in the project repository.

  • Wearing mode must be changed at least once from the watch for the preference to show in Gadgetbridge
  • A toast about an error syncing calendar database sometimes appears
  • Sleep stages do not work for all devices

Missing features

  • Some settings:
    • Change the app layout
    • Raise to wake sensitivity and schedule
    • Manage Workouts
    • Vibration patterns
    • DND Sync
    • World Clocks
  • Firmware parsing (they can be installed, but must be set in the code)
  • Cycles
  • Send phone alarms to watch
  • 3rd party realtime heart rate access is not support, even with the vendor app. This means that other apps such as OpenTracks will not be able to use these devices for heart rate measurement

Multiple connection types

Some Xiaomi devices support both Bluetooth LE and Classic, depending on the firmware version. Right now, Gadgetbridge is unable to determine which connection type the device supports, so pairing or connecting to the device might fail.

If you face any issues during pairing or connecting, please attempt the following steps:

  1. Pair the device in Android bluetooth settings
  2. In Gadgetbridge, go to the Debug menu
  3. Click "Add test device manually"
  4. Select the device type and input the mac address
  5. Add the device
  6. Click the ⚙️ button on the device card
  7. Go to the "Authentication" page, set the auth key
  8. Go to the "Connection" page, and try to force the connection type to "Bluetooth Classic"

Connecting to the device should now work. If you are still facing issues, please open an issue or reach out on Matrix.