Skip to content

Improve MotorController flexibility - #2454

Open
mark9064 wants to merge 2 commits into
InfiniTimeOrg:mainfrom
mark9064:adaptive-vibration
Open

Improve MotorController flexibility#2454
mark9064 wants to merge 2 commits into
InfiniTimeOrg:mainfrom
mark9064:adaptive-vibration

Conversation

@mark9064

Copy link
Copy Markdown
Member

Refactors motor controller to:

  • Support ringing any number of times, with any period between rings
  • Adaptively change the vibration strength based on how much the watch is moving
  • Use predefined strength values (light/medium/strong) rather than arbitrary numbers across the codebase

Other changes:

  • Chime is now implemented as 2 rings 200ms apart. This sets it nicely apart from normal notifications

Internal changes:

  • Only one timer is used for ringing
  • State machine (Idle, Buzz, RingOn (ringing with motor on), RingOff (ringing with motor off))

Would be interested to hear what people make of the adaptive vibration strength. I think it's definitely led to me missing fewer notifications when on the move

@mark9064 mark9064 added enhancement Enhancement to an existing app/feature maintenance Background work labels Jul 19, 2026
@github-actions

github-actions Bot commented Jul 19, 2026

Copy link
Copy Markdown

Build size and comparison to main:

Section Size Difference
text 380288B 284B
data 936B 0B
bss 22968B 32B

Run in InfiniEmu

@mark9064

Copy link
Copy Markdown
Member Author

10.3 is too stupid to build this apparently...

@mark9064
mark9064 force-pushed the adaptive-vibration branch from a1c0d23 to 4693d69 Compare August 19, 2026 21:56
@mark9064

Copy link
Copy Markdown
Member Author

Oh, this compiles with LTO, but not without

@mark9064

Copy link
Copy Markdown
Member Author

Should be possible to try now :)

@tituscmd

Copy link
Copy Markdown
Contributor

Adaptively change the vibration strength based on how much the watch is moving

Could this same idea be applied to the frequency of heart rate background measurements, as a sort of "Dynamic Mode" option?

@mark9064

Copy link
Copy Markdown
Member Author

In theory, yes. But I'm not sure this will have the intended effect since during motion is when heart rate measurement is least reliable

I think an exercise mode which is triggered by motion / walking might work better? Though only on a watch where the sensor can actually work well under motion - maybe one for the PT Pro?

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 maintenance Background work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants