Skip to content

Conversation

@vkareh
Copy link
Contributor

@vkareh vkareh commented Jan 15, 2024

The timer app currently issues a short buzz once and then disappears. There is no trace left that the timer finished or how long ago. This change makes the motor start ringing and presents a timer counter. The motor will continue the ringing pattern for 10 seconds and the timer counter will finally reset after 60 seconds.

@github-actions
Copy link

github-actions bot commented Jan 15, 2024

Build size and comparison to main:

Section Size Difference
text 382236B 320B
data 944B 0B
bss 22624B 8B

Run in InfiniEmu

@FintasticMan FintasticMan added enhancement Enhancement to an existing app/feature UI/UX User interface/User experience labels Jan 17, 2024
@vkareh vkareh force-pushed the timer-ringing branch 2 times, most recently from 0033e6c to 9136594 Compare January 24, 2024 15:35
@vkareh vkareh force-pushed the timer-ringing branch 4 times, most recently from 6bd64b5 to ebc5b50 Compare February 19, 2024 01:11
@mark9064
Copy link
Member

Works great, huge usability improvement for the timer. Been running this for a while and it makes me a more consistent cook for sure!

I think it would be nice if the alarm and timer had different vibration patterns, but vibration needs to be overhauled anyway so this is good to go for now IMO

Copy link
Member

@mark9064 mark9064 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see why you changed this (count up after ringing), but we probably want to avoid relying on UB

@rnwgnr
Copy link

rnwgnr commented Aug 15, 2024

Tested this today while cooking and this is indeed a great usability improvement for the timer.

Until now i missed a lot of the alarms, the vibration is just too short. Great work.

@vkareh vkareh force-pushed the timer-ringing branch 2 times, most recently from 4ba3e90 to b3a6d74 Compare August 22, 2024 15:53
@vkareh vkareh force-pushed the timer-ringing branch 4 times, most recently from 9de08c1 to 6930303 Compare September 23, 2024 19:00
@JustScott
Copy link
Contributor

@vkareh I fixed the infinite buzzing issue I raised above in a PR on your fork here. It just creates a wake lock while the exipred timer is less than 11 seconds and the motorController is buzzing, and releases it after.

@mark9064
Copy link
Member

mark9064 commented Nov 4, 2025

It's a bit hidden so just in case I responded to the timer method semantics problem here: https://github.com/InfiniTimeOrg/InfiniTime/pull/1971/files#r2492311746

Would be super great to get this in for 1.16 which we're hoping to release in the next few days :)

vkareh and others added 3 commits November 7, 2025 15:42
The timer app issues a short buzz once and then disappears. There is no
trace left that the timer finished or how long ago. This change makes
the motor start ringing and presents a timer counter.

The timer stops buzzing after 10 seconds, and finally resets after
1 minute.
This prevents the motorController from buzzing infinitely while the
watch is sleeping.
The timer was calling xTimerGetExpiryTime() after the FreeRTOS timer had
expired, which results in undefined behavior according to the FreeRTOS
documentation.

This change captures the expiry time in the TimerCallback when the timer
expires, using xTaskGetTickCount() instead of the undefined
xTimerGetExpiryTime() on a stopped timer. The expiry time is now
captured before the timer stops running.
@JF002
Copy link
Collaborator

JF002 commented Nov 9, 2025

I've just tested this PR and it looks very good, thanks @vkareh !
One thing I noticed : when the timer reaches 00:00, it looks like it stays on that value for 2 seconds before showing 00:01. It's not a big deal, but I think it makes the "elapsed for xx seconds" value off by one second.

See this video : https://github.com/user-attachments/assets/2d6ba5c3-43c0-42fa-92e8-1779267c42b2

@mark9064
Copy link
Member

mark9064 commented Nov 9, 2025

I think this is the correct behaviour since the time always rounds to zero.

actual | shown
 5.00 | 5
 4.99 | 4
 4.00 | 4
...
 1.00 | 1
 0.99 | 0
 0.00 | 0
-0.99 | 0
-1.00 | 1
-1.99 | 1
-2.00 | 2

so you should expect it to show 0 for 2 seconds (from time +1 to -1)

@JF002
Copy link
Collaborator

JF002 commented Nov 9, 2025

@mark9064 Good point, that makes sense! 👍

@mark9064
Copy link
Member

mark9064 commented Nov 9, 2025

@vkareh #2365 is in :) let me know if it all works ok when you get around to rebasing on to it

@DavisNT
Copy link
Contributor

DavisNT commented Nov 10, 2025

Could it be possible to add an option to ring indefinitely (in many cases people will not notice the 10 seconds ringing, especially if the timer is used during physical activity/sports)?

@mark9064
Copy link
Member

mark9064 commented Nov 10, 2025

I totally get where you're coming from but I think it'd be best to choose one sensible default here. At least how I've been using the timer 10s ringing has felt good to me, even if I'm moving about I definitely notice it before it stops. I'm not sure if you've had the chance to try this PR yet, but if not maybe give it a go and see how you find 10s? Maybe it's more noticeable than you'd think :)

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 UI/UX User interface/User experience

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants