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,
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.
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).
Tested with 1S, same problem.
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?
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.
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.
AFAICS, this issue is more a request for a bugfix than an enhancement: make sure that the vibration profiles actually work as intended.
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?
Using MiBand2, I feel no difference between vibration profiles!
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?
I know how to do this on mi2, if someone wants to implement it i can tell how to do it.
@ashimokawa I would be willing to implement it, if you do tell how :)
I tried with 0.26.5. Vibration patterns are now different. Issue solved!
I feel no difference with mi band 3
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.
Btw, I read that Xiaomi recently shipped a firmware update that allowed different vibration patterns natively.
Yes I will try do do that. Bluetooth logs while running mi fit (and only mi fit) are welcome
I just got the Mi band 4, all the notifications are the same: 2 short vibrations. Changing settings on gadget bridge has no effect.
Most helpful comment
Using MiBand2, I feel no difference between vibration profiles!