Custom vibrations for MiBand #402

Open
by renno-bih opened 5 years ago · 18 comments
renno-bih commented 5 years ago (Migrated from github.com)
Owner

Hi, I was wondering if there is possibility to implement more options for generating custom vibrations for Xiaomi MiBand wristbands. To be more specific, I need solution to generate only one vibration.
All current solutions are really buggy, there is no way produce reliable vibration.

If there could be solution to define duration and repetition of vibration it would be great,

Hi, I was wondering if there is possibility to implement more options for generating custom vibrations for Xiaomi MiBand wristbands. To be more specific, I need solution to generate only one vibration. All current solutions are really buggy, there is no way produce reliable vibration. If there could be solution to define duration and repetition of vibration it would be great,
Owner

What do you mean with current solutions? Gadgetbridge has support for some hardcoded vibration profiles

One could easily change that to add a single vibration. The number of repetitions is already configurable.

What do you mean with current solutions? Gadgetbridge has support for some hardcoded [vibration profiles](https://github.com/Freeyourgadget/Gadgetbridge/blob/master/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/VibrationProfile.java) One could easily change that to add a single vibration. The number of repetitions is already configurable.
renno-bih commented 5 years ago (Migrated from github.com)
Poster
Owner

No matter what vibration or number of repetitions I choose I cannot get only one vibration. Two vibrations are minimum that I can produce. That is what I tested on MiBand 1A (white LED version).

No matter what vibration or number of repetitions I choose I cannot get only one vibration. Two vibrations are minimum that I can produce. That is what I tested on MiBand 1A (white LED version).
renno-bih commented 5 years ago (Migrated from github.com)
Poster
Owner

Tested with 1S, same problem.

Tested with 1S, same problem.
rplevka commented 5 years ago (Migrated from github.com)
Owner

tested on my myband 1S, FW: 4.16.4.22 and here's the output for various vibration profiles and 1 repetition:
Settings for generic notifications and tested via debug->generic notification test

Profile Vibration
Staccato - -
Short - or -.
Medium --
Long --
Waterdrop - or -.
Ring -- --
Alarm Clock -- -. or - -- or -. -- (seems pretty random)

Also, every now and then on updating the settings and testing the notification, i lost connection to band and had to restart the app to get connected again, not sure, why. Perhaps miband got rebooted?

tested on my `myband 1S, FW: 4.16.4.22` and here's the output for various vibration profiles and 1 repetition: Settings for generic notifications and tested via debug->generic notification test | Profile | Vibration | | --- | --- | | Staccato | \- - | | Short | \- or -. | | Medium | -- | | Long | -- | | Waterdrop | \- or -. | | Ring | -- -- | | Alarm Clock | -- -. or - -- or -. -- (seems pretty random) | Also, every now and then on updating the settings and testing the notification, i lost connection to band and had to restart the app to get connected again, not sure, why. Perhaps miband got rebooted?
Owner

The '.' is unfortunately out of our control. The only vibration supported by current firmware versions is '- -'. We try to cut off the second '-' by sending a "no vibration" command after a few ms, but the band sometimes honors it and sometimes not.

The '.' is unfortunately out of our control. The only vibration supported by current firmware versions is '- -'. We try to cut off the second '-' by sending a "no vibration" command after a few ms, but the band sometimes honors it and sometimes not.
Owner

So it seems to be a Bluetooth latency problem. When I enable low latency mode, the vibration is a little better, and I definitely get just a single vibration (because our off command arrives in time).

Unfortunately entering low latency mode takes a little while, so the notification would be delayed by around 5-8s. And we cannot enable low latency mode in general because it consumes more battery.

So it seems to be a Bluetooth latency problem. When I enable low latency mode, the vibration is a little better, and I definitely get just a single vibration (because our off command arrives in time). Unfortunately entering low latency mode takes a little while, so the notification would be delayed by around 5-8s. And we cannot enable low latency mode in general because it consumes more battery.
Owner

AFAICS, this issue is more a request for a bugfix than an enhancement: make sure that the vibration profiles actually work as intended.

AFAICS, this issue is more a request for a bugfix than an enhancement: make sure that the vibration profiles actually work as intended.
renno-bih commented 5 years ago (Migrated from github.com)
Poster
Owner

I'm wondering how they implemented vibrations in "Mi Band Control" application.
They managed to implement short, medium and long vibrations and works great, any way to do reverse engineering and see how they managed it?

I'm wondering how they implemented vibrations in "Mi Band Control" application. They managed to implement short, medium and long vibrations and works great, any way to do reverse engineering and see how they managed it?
Vebryn commented 5 years ago (Migrated from github.com)
Owner

Using MiBand2, I feel no difference between vibration profiles!

Using MiBand2, I feel no difference between vibration profiles!
NotAFile commented 4 years ago (Migrated from github.com)
Owner

Same, I don't feel any either. Is this intended (the mi2 simply can't do multiple patterns) or is this just a bug somewhere?

Same, I don't feel any either. Is this intended (the mi2 simply can't do multiple patterns) or is this just a bug somewhere?
Owner

I know how to do this on mi2, if someone wants to implement it i can tell how to do it.

I know how to do this on mi2, if someone wants to implement it i can tell how to do it.
joserebelo commented 4 years ago (Migrated from github.com)
Owner

@ashimokawa I would be willing to implement it, if you do tell how :)

@ashimokawa I would be willing to implement it, if you do tell how :)
Vebryn commented 4 years ago (Migrated from github.com)
Owner

I tried with 0.26.5. Vibration patterns are now different. Issue solved!

I tried with 0.26.5. Vibration patterns are now different. Issue solved!
MarcoIeni commented 3 years ago (Migrated from github.com)
Owner

I feel no difference with mi band 3

I feel no difference with mi band 3
avanc commented 3 years ago (Migrated from github.com)
Owner

Just unpacked my Mi Band 3 and played with the vibration option. Unfortunately, there are also no differences. Just two short (and weak) vibrations. I'm afraid I won't feel them in the daily live.

Just unpacked my Mi Band 3 and played with the vibration option. Unfortunately, there are also no differences. Just two short (and weak) vibrations. I'm afraid I won't feel them in the daily live.
NotAFile commented 2 years ago (Migrated from github.com)
Owner

Btw, I read that Xiaomi recently shipped a firmware update that allowed different vibration patterns natively.

Btw, I read that Xiaomi recently shipped a firmware update that allowed different vibration patterns natively.
Owner

Yes I will try do do that. Bluetooth logs while running mi fit (and only mi fit) are welcome

Yes I will try do do that. Bluetooth logs while running mi fit (and only mi fit) are welcome
JPFrancoia commented 2 years ago (Migrated from github.com)
Owner

I just got the Mi band 4, all the notifications are the same: 2 short vibrations. Changing settings on gadget bridge has no effect.

I just got the Mi band 4, all the notifications are the same: 2 short vibrations. Changing settings on gadget bridge has no effect.
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.