Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chime vibration patterns and 15 minute option #2227

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

zischknall
Copy link

@zischknall zischknall commented Jan 15, 2025

To combat my own time blindness I needed the option to have it vibrate every 15 minutes and additionally somehow indicate the time of the hour via the vibrations.

So I added an option for 15 minutes which was very straight-forward in the first commit and I think it has the highest chance of being merge-able. For the vibrations I changed the duration of motor activation as 35ms was very little and added a pattern of vibrations and pauses. So full hour is 4, first quarter hour is 1, half hour is 2 and 3 quarter hours is 3 vibrations.

It is still pretty archaically implemented. I think we should make it a bit more generic and make the vibration pattern (or if you don't want a pattern) configurable. But for me it's enough at the moment.

So if there is interest in something like this being added I will improve the implementation.

Copy link

github-actions bot commented Jan 15, 2025

Build checks have not completed. Possible reasons for this are:

  1. The checks need to be approved by a maintainer
  2. The branch has conflicts
  3. The firmware build has failed

@zischknall zischknall force-pushed the chime-vibration-patterns branch from 319311a to ac5a3cf Compare January 15, 2025 21:33
@zischknall zischknall force-pushed the chime-vibration-patterns branch from ac5a3cf to 5621869 Compare January 15, 2025 22:02
@marigoldfish
Copy link

Oh, I really like this. I have time blindness problems myself, and the half hour chimes have been valuable. I have previously wished for 15min intervals and a distinction between the half hour and hour chimes.

I will give this a run for a while and see how it works out for me!

@mark9064 mark9064 added the enhancement Enhancement to an existing app/feature label Jan 16, 2025
@mark9064
Copy link
Member

mark9064 commented Feb 9, 2025

This PR is definitely an improvement, thanks! Sorry for the slow review- the main reason is that this PR highlights a wider problem with the way access to the vibration motor is handled. One such problem with this implementation is that doing vTaskDelay inside DisplayApp blocks the event loop stopping rendering and message processing

Reworking the motor controller is going to be challenging as there quite a few things that should probably be implemented:

  • Non-blocking motor access (probably by usage of the timer task)
  • Vibration patterns
  • Motor intensity control through PWM (this allows running the vibration motor at half speed for example)

TLDR I think the functionality change here is very welcome here in InfiniTime, but unfortunately there's some tough maintenance work that needs to be done first

@marigoldfish
Copy link

marigoldfish commented Feb 9, 2025

Chiming in (heh) to say that I've found the functionality of this PR very helpful over the last couple of weeks. I've definitely been zoning out less and the only occasions I've "lost track of time" for an extended period, my watch has been in sleep mode or not on my wrist.

I did notice one minor bug, which may be part of the larger reconfiguring @mark9064 brought up: when the chime goes off, the time does not update until it is finished. So, in the most extreme scenario, if I have not woken my watch since the previous chime (for example 3:45), then it will still display that time on the watch until the vibrations of the current chime is ended (at 4:00, the watch shows 3:45 while the four chimes go off, then updates to 4:00 when chiming is complete).

But! This is a very small thing and is not in any way a deal breaker for me. This feature is very helpful for me and I hope that y'all also think it's worth doing the work to implement fully.

@zischknall
Copy link
Author

Thanks for your comments love to see people discussing this and also finding it useful. Fully agree with the motor controller needing to be reworked for this to work better. Did also not yet find the time to add a setting toggling between vibration behaviors.

@zischknall
Copy link
Author

For the first couple of weeks this worked great. But now it seems like sometimes it does not trigger. At first I thought I might just have gotten used to it but I can confirm that they have gotten unreliable after a while. Really strange...

@Perdellian
Copy link

* Vibration patterns

* Motor intensity control through PWM (this allows running the vibration motor at half speed for example)

Westminster chimes buzzes like an old grandfather clock?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement to an existing app/feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants