0.9.13+
| Type | Default | Algorithm | RAM usage | w/ Matrix scan | w/ Direct scan |
|---|---|---|---|---|---|
| :per_row | Yes | Symmetric eager debounce per row | Small | ✔ | 🙅 |
| :per_key | No | Symmetric eager debounce per key | Big | ✔ | ✔ |
| :none | No | No debounce | Almost zero | ✔ | ✔ |
:per_keyis the most recommended one unless your firmware causes an "Out of Memory" error:per_rowwill not work well with:directscan mode while it's the default one. Use:per_keyinstead. See [[Keyscan matrix]] abount scan modes- If you are confident your switches never bounce mechanically and you are a PC game enthusiast, use
:nonewhich doesn't cancel any bounce and performs maximum
kbd = Keyboard.new
kbd.set_debounce(:per_key)
kbd.set_debounce_threshold(70) # Optional. 40(ms) by default- If you didn't call
set_debounce,:per_rowdebouncer will be used by default - When you'll call
set_debounce_threshold, you should callset_debouncein advance even if you use the default:per_rowalgorithm
See QMK's document: https://docs.qmk.fm/#/feature_debounce_type