04-17-2021 05:43
04-17-2021 05:43
The Sense and Versa 3 have very weak hardware vibration compared to older Versas. Compounded by the fact that it deteriorates rapidly with decreasing battery levels.
Does anyone know how to compensate for this?
Eg. A standard coding technique for making a strong vibration and a way to increase it as the battery levels decline?
There seems no way to enhance the vibration.
Author | ch, passion for improvement.
Answered! Go to the Best Answer.
08-26-2021 15:03
08-26-2021 15:03
I've tested the code below, and it works for what you suggested, @Guy_. I had to think through the maths, but it really wasn't that tricky. The code delivers two one-second bursts of alert, with a 0.1-second wait between them. You can change the variables to whatever you want.
That said, I haven't noticed that the vibration strength feels much different than the one I suggested above. I didn't try it with the "ring" vibration, as Jon indicates that it is no longer supported.
Anyway, let me know if this helps.
const milliseconds = 1;
const vibe_delay = 5 * milliseconds
const seconds = 1000 * milliseconds;
const minutes = seconds * 60;
const hours = minutes * 60;
const days = hours * 24;
let vibe_repeat = 2; let vibe_length=1.0*seconds; let vibe_pause=0.1*seconds;
for(let i=0; i<vibe_repeat; i++) {
setTimeout(() => vibration.start("alert"), vibe_length*i + vibe_pause*i);
setTimeout(() => vibration.stop(), vibe_length*(i + 1) + vibe_pause*i);
}
04-30-2021 06:11
04-30-2021 06:11
Unfortunately there's no way to control the strength of vibration with the SDK.
04-30-2021 06:53
04-30-2021 06:53
Hi Jon, but is there a sequence that produces a more noticeable effect.
For instance, how does the standard watch alarm to wake up in the morning produce a noticeable vibrate when vibration.start("nudge"); is barely detectable.
There must a sequence commands or technique that simulates a strong vibrate.
Author | ch, passion for improvement.
04-30-2021 07:49
04-30-2021 07:49
You'll just need to experiment with the available options and see which you prefer, perhaps nudge-max?
"alert"
"bump"
"confirmation"
"confirmation-max"
"nudge"
"nudge-max"
"ping"
"ring"
04-30-2021 09:19
04-30-2021 09:19
I tried all those and none were any good on the Sense - however do you have access to the code and method used for the alarm to wake up.
Even standard notifications are barely detectable, the only standard vibrate that actually produces enough vibration is this alarm one.
In one of your posts I saw a mention of a call format such as vibration.start("nudge-max",5,100,7);
Is this operational? or does only the short version with no additional parameters work?
Author | ch, passion for improvement.
08-08-2021 16:59
08-08-2021 16:59
I don't know if you found an answer since April, but I, too, have found all the provided watch vibrations to be crap. Each vibration only lasts for one-tenth of a second, and it's hard to notice anything in that short amount of time.
I'm experimenting with the following routine and feel that it's good enough for my purposes. The vibration patterns this makes are unpredictable, but at the very least, the results are noticeable.
for(let i=0;i<10;i++) {
setTimeout(() => vibration.start("nudge-max"), 150*i)
}
This is supposed to launch ten "nudge-max" vibrations in a row, separated by one-twentieth of a second. It doesn't really do that. Sometimes I'll usually feel two or three sub-vibrations. Sometimes I'll feel a randomish vibration pattern. But, the point is, I always notice some kind of vibration, which is really all I want.
If someone tweaks this to make it work better, would you mind posting it here?
08-09-2021 00:13
08-09-2021 00:13
@CluelessExpertThanks for your input.
A couple of things to bear in mind.
1) As the battery level on the Sense and Versa 3 decline the vibrate gets even worse, so you may want longer or more vibrates
2) Not sure but think a vibration.start when vibration is busy is ignored. It will require some testing to see how long a pause is necessary or to issue a vibration.stop.
Did find a reference to this:
The available patterns from the documentation are:
"alert" "bump" "confirmation" "confirmation-max" "nudge" "nudge-max" "ping" "ring"
The calling structure seems to be
vibration.start(Name, Repeat, Time, Strength, Ramp);
where:
Name (A pattern name), Repeat (0-6, 7=infinite), Time (ms) (5ms granularity), Strength (1-7, 0=off), Ramp "yes" to ramp to next point |
Not sure how valid that is, it may not apply on OS 5.0, or at all, but from some initial tests the results were inconclusive.
Rather than reinventing the wheel, was hoping that someone had come up with a sure working model to cater for battery level and repeat or alternating sequences to equal how an original Versa reacts, which is fine, a vibration is always detected.
Author | ch, passion for improvement.
08-25-2021 06:15
08-25-2021 06:15
@CluelessExpert - This vibration analysis you might find useful.
Author | ch, passion for improvement.
08-25-2021 07:18
08-25-2021 07:18
@Guy_ I discovered your response this morning and I'm already testing it. I think it's going to be great. Thanks!
08-25-2021 07:46 - edited 08-25-2021 07:49
08-25-2021 07:46 - edited 08-25-2021 07:49
@Guy_ It works beautifully. I'm using the following code on a Versa 3:
const milliseconds = 1;
const vibe_delay = 5 * milliseconds
const seconds = 1000 * milliseconds;
const minutes = seconds * 60;
const hours = minutes * 60;
const days = hours * 24;
let vibe_repeat = 5;
for(let i=0; i<vibe_repeat; i++) {
setTimeout(() => vibration.start("ping"), 60*vibe_delay*i);
}
I'm laying this out so that people can use the results of your app directly in their code. The value of 60 gives me exactly the delay I need for a "ping" with five perfect repeats.
08-25-2021 10:57
08-25-2021 10:57
Thanks @CluelessExpert - your code gave me an idea though.
It is still weak on the poor model 3 watches.
How about a vibrate alert or ring with vibrate.stop after N ms. That seems stronger and you can define the length and the interval for firing?
Therefore using short partial bursts of alert is possibly stronger and more alerting than any builtin native patterns?
Author | ch, passion for improvement.
08-26-2021 15:03
08-26-2021 15:03
I've tested the code below, and it works for what you suggested, @Guy_. I had to think through the maths, but it really wasn't that tricky. The code delivers two one-second bursts of alert, with a 0.1-second wait between them. You can change the variables to whatever you want.
That said, I haven't noticed that the vibration strength feels much different than the one I suggested above. I didn't try it with the "ring" vibration, as Jon indicates that it is no longer supported.
Anyway, let me know if this helps.
const milliseconds = 1;
const vibe_delay = 5 * milliseconds
const seconds = 1000 * milliseconds;
const minutes = seconds * 60;
const hours = minutes * 60;
const days = hours * 24;
let vibe_repeat = 2; let vibe_length=1.0*seconds; let vibe_pause=0.1*seconds;
for(let i=0; i<vibe_repeat; i++) {
setTimeout(() => vibration.start("alert"), vibe_length*i + vibe_pause*i);
setTimeout(() => vibration.stop(), vibe_length*(i + 1) + vibe_pause*i);
}
08-27-2021 03:48
08-27-2021 03:48
@CluelessExpert- Thanks for your time and sample code. That may be the foundation of the answer. I'm trying it with different values to find the right combination.
"ring" is a valid pattern still.
Author | ch, passion for improvement.
09-20-2022 05:48 - edited 09-20-2022 05:48
09-20-2022 05:48 - edited 09-20-2022 05:48
@JonFitbit Would you mind being a bit more specific in regards to the behavior of the following vibrations? I cannot find my actual Versa and have just been testing on the simulator, which does not replicate vibrations.
@JonFitbit wrote:You'll just need to experiment with the available options and see which you prefer, perhaps nudge-max?
"alert"
"bump"
"confirmation"
"confirmation-max"
"nudge"
"nudge-max"
"ping"
"ring"
09-20-2022 06:46
09-20-2022 06:46
Hi @Sagrawal8 - you can test vibrations and see the accompanying documentation using the SimpleVibrate app.
Author | ch, passion for improvement.
09-20-2022 06:58
09-20-2022 06:58
@Guy_ wrote:Hi @Sagrawal8 - you can test vibrations and see the accompanying documentation using the SimpleVibrate app.
@Guy_ It appears that you did not read my entire post. I do not know where my physical Versa is onto which I can download the app. I would simply like to know the nature of the vibrations i.e. how long each one lasts and/or the pattern of the vibration.
09-20-2022 07:05
09-20-2022 07:05
@Sagrawal8 - as given in my post, the details you want are in the documentation of the app, search for the app and consult the description and the associated documentation.
Either use Google or the gallery in the Fitbit App to locate it.
Author | ch, passion for improvement.
09-20-2022 08:16
09-20-2022 08:16
@Guy_ I found the documentation and while it is helpful in terms of the ms time of each vibration, what is the difference between ping and nudge? Also, nudge-max and confirmation-max are simply more prominent versions of nudge and confirmation, respectively, right?
09-20-2022 13:50
09-20-2022 13:50
This might help.
09-20-2022 14:14