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

Convert CTRL to custom matrix lite to fix double-presses #13467

Closed
wants to merge 1 commit into from

Conversation

rrevans
Copy link

@rrevans rrevans commented Jul 6, 2021

Description

Convert Massdrop (aka Drop) CTRL to the custom matrix lite API.

Notably this replaces the custom debounce with the common debounce API
which in turn resolves key double-pressing issues.

The original debounce sets a timer when any key changes then stops all
scanning until the timer expires. Since it is not scanning, the code
cannot suppress long bounces or multiple keys bouncing at once.

As a result, those events cause unwanted double presses.

This fix could have patched the buggy debounce or integrated the
debounce API, but converting to the lite API is simpler and reduces the
amount of custom code to maintain.

In theory this board doesn't strictly need any custom matrix code at all
except that this platform lacks proper library support (see #11119).

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout/userspace (addition or update)
  • Documentation

Issues Fixed or Closed by This PR

None known

Checklist

Tested successfully on actual keyboard. After patching I have observed no double-press events.

I acknowledge that I've read the coding conventions, but deliberately choose to follow existing style in this file.

Notably this replaces the custom debounce with the common debounce API
which in turn resolves key double-pressing issues.

The original debounce sets a timer when any key changes then stops all
scanning until the timer expires. Since it is not scanning, the code
cannot suppress long bounces or multiple keys bouncing at once.

As a result, those events cause unwanted double presses.

This fix could have patched the buggy debounce or integrated the
debounce API, but converting to the lite API is simpler and reduces the
amount of custom code to maintain.

In theory this board doesn't strictly need any custom matrix code at all
except that this platform lacks proper library support (see qmk#11119).
@zvecr
Copy link
Member

zvecr commented Jul 6, 2021

Always awesome to see the community trying to solve these issues, but as I've been working with Drop on this issue, I'm going to close it in favour of #13468. (Given the current processes, it will allow the fixes to land sooner.)

@zvecr zvecr closed this Jul 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants