-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Make rotary encoder long press move to next screen #9070
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
base: develop
Are you sure you want to change the base?
Conversation
|
Shouldn't rotary encoder up/down change frames and then Press open the action menu? Help me understand why long-press is needed to change frames. |
|
I don't know what the design intention was, but currently, up/down immediately activates and moves through the canned message menu, no matter which frame is current. |
|
I couldn't find much documentation on BaseUI using a rotary encoder, but it's clear this hasn't been tested much, given that long press doesn't work and thus, capital letters can't be selected in free text. See #9039. If someone will let me know how BaseUI is supposed to work with a rotary encoder, I can probably make it work that way. |
|
If you want to match other devices like TLora Pager, it would be CW turn is next frame, CCW is previous frame. Depressing the encoder will activate the Action Menus. That would be the limit at the moment; again similar to TLora Pager. |
|
There are special, combined left/up and down/right events that the encoder should fire. |
There are different rotary encoder implementations and each can be configured what action should be applied to up/down GPIOs. I assume those defined actions are the root cause of your issue. I suggest you try setting the encoder GPIO input events of the canned message module (using phone app or CLI) to 28, 29: See also c0f8437. |
Thanks! Yes, this makes it mostly usable except when entering free text the longer beep generated by USER_PRESS and ALT_PRESS greatly slow down input vs the shorter beep of UP/DOWN. Note, that even when configured for UP/DOWN, rotary events are slowed down by the beep. Usability would be much improved by a shorter "click" or, buffered input events. Or, perhaps the buzzer feedback can be disabled for these events when entering free text. The advantage of the rotary encoder is supposed to be rapid intuitive movement in long lists like free text via spinning the dial, but that advantage is not realized yet. I may as well have used buttons. Note, I had to use the CLI to set this as the android app does not offer "user press" or "alt press" as options for input events in the canned message module. My bug fix PR #9039 still is being ignored, so upper case letters still can't be entered via my rotary encoder. |
With this trivial improvement, a single rotary encoder is sufficient to fully use the BaseUI. Without this change, I could find no way to access the many available information screens.
🤝 Attestations
Tested on DIY NRF52 Promicro E22 board