master
rgb_matrix
planck_rev6
error_log_cleanup
info_json_docs
info_json_updates
keycode_versioning
readme-update
cb2x1800
new_project_fix
moxygen
clueboard_hotswap
handwire
twi2c
arm_audio_fixes
xmega_support
audio_out
gb_port
clueboard_1
info_json_populate
pjrc_hid
subvendor_ids
stm32l476
docs
matrix_update
ps2avrgb
travis_phases
dz_support
make_autocomplete
hid_api
clueboard_arm
sid
keyboards_json
keyboard_identifiers
pp_definitions
teensy_lc_synth
eeprom_update
process_keycode_update
b6_b7_audio
example_keyboards
preonic-1.0
planck-4.0
preonic-2.0
planck-5.0
planck-4.2
planck-4.1
ergodox_ez-161205
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.20
0.6.2
0.6.19
0.6.18
0.6.17
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.1
0.6.0
0.5.99
0.5.98
0.5.97
0.5.96
0.5.95
0.5.94
0.5.93
0.5.92
0.5.91
0.5.90
0.5.9
0.5.89
0.5.88
0.5.87
0.5.86
0.5.85
0.5.84
0.5.83
0.5.82
0.5.81
0.5.80
0.5.8
0.5.79
0.5.78
0.5.77
0.5.76
0.5.75
0.5.74
0.5.73
0.5.72
0.5.71
0.5.70
0.5.7
0.5.69
0.5.68
0.5.67
0.5.66
0.5.65
0.5.64
0.5.63
0.5.62
0.5.61
0.5.60
0.5.6
0.5.59
0.5.58
0.5.57
0.5.56
0.5.55
0.5.54
0.5.53
0.5.52
0.5.51
0.5.50
0.5.5
0.5.49
0.5.48
0.5.47
0.5.46
0.5.45
0.5.44
0.5.43
0.5.42
0.5.41
0.5.40
0.5.4
0.5.39
0.5.38
0.5.37
0.5.36
0.5.35
0.5.34
0.5.33
0.5.32
0.5.31
0.5.30
0.5.3
0.5.29
0.5.28
0.5.27
0.5.264
0.5.263
0.5.262
0.5.261
0.5.260
0.5.26
0.5.259
0.5.258
0.5.257
0.5.256
0.5.255
0.5.254
0.5.253
0.5.252
0.5.251
0.5.250
0.5.25
0.5.249
0.5.248
0.5.247
0.5.246
0.5.245
0.5.244
0.5.243
0.5.242
0.5.241
0.5.240
0.5.24
0.5.239
0.5.238
0.5.237
0.5.236
0.5.235
0.5.234
0.5.233
0.5.232
0.5.231
0.5.230
0.5.23
0.5.229
0.5.228
0.5.227
0.5.226
0.5.225
0.5.224
0.5.223
0.5.222
0.5.221
0.5.220
0.5.22
0.5.219
0.5.218
0.5.217
0.5.216
0.5.215
0.5.214
0.5.213
0.5.212
0.5.211
0.5.210
0.5.21
0.5.209
0.5.208
0.5.207
0.5.206
0.5.205
0.5.204
0.5.203
0.5.202
0.5.201
0.5.200
0.5.20
0.5.2
0.5.199
0.5.198
0.5.197
0.5.196
0.5.195
0.5.194
0.5.193
0.5.192
0.5.191
0.5.190
0.5.189
0.5.188
0.5.187
0.5.186
0.5.185
0.5.184
0.5.183
0.5.182
0.5.181
0.5.180
0.5.179
0.5.178
0.5.177
0.5.176
0.5.175
0.5.174
0.5.173
0.5.172
0.5.171
0.5.170
0.5.17
0.5.169
0.5.168
0.5.167
0.5.166
0.5.165
0.5.164
0.5.163
0.5.162
0.5.161
0.5.160
0.5.16
0.5.159
0.5.158
0.5.157
0.5.156
0.5.155
0.5.154
0.5.153
0.5.152
0.5.151
0.5.150
0.5.15
0.5.149
0.5.148
0.5.147
0.5.146
0.5.145
0.5.144
0.5.143
0.5.142
0.5.141
0.5.140
0.5.14
0.5.139
0.5.138
0.5.137
0.5.136
0.5.135
0.5.134
0.5.133
0.5.132
0.5.131
0.5.130
0.5.13
0.5.129
0.5.128
0.5.127
0.5.126
0.5.125
0.5.124
0.5.123
0.5.122
0.5.121
0.5.120
0.5.12
0.5.119
0.5.118
0.5.117
0.5.116
0.5.115
0.5.114
0.5.113
0.5.112
0.5.111
0.5.110
0.5.11
0.5.109
0.5.108
0.5.107
0.5.106
0.5.105
0.5.104
0.5.103
0.5.102
0.5.101
0.5.100
0.5.10
0.5.1
0.5.0
${ noResults }
3 Commits (8705ac408da2133b60304bb64e21d4f7f605b470)
Author | SHA1 | Message | Date |
---|---|---|---|
Andrew Pritchard | cd30a60d0e |
Change to per-key eager debouncing for ErgoDox EZ.
Empirically, waiting for N consecutive identical scans as a debouncing strategy doesn't work very well for the ErgoDox EZ where scans are very slow compared to most keyboards. Instead, debounce the signals by eagerly reporting a change as soon as one scan observes it, but then ignoring further changes from that key for the next N scans. This is implemented by keeping an extra matrix of uint8 countdowns, such that only keys whose countdown is currently zero are eligible to change. When we do observe a change, we bump that key's countdown to DEBOUNCE. During each scan, every nonzero countdown is decremented. With this approach to debouncing, much higher debounce constants are tolerable, because latency does not increase with the constant, and debounce countdowns on one key do not interfere with events on other keys. The only negative effect of increasing the constant is that the minimum duration of a keypress increases. Perhaps I'm just extremely unlucky w.r.t. key switch quality, but I saw occasional bounces even with DEBOUNCE=10; with 15, I've seen none so far. That's around 47ms, which seems like an absolutely insane amount of time for a key to be bouncy, but at least it works. |
8 years ago |
Jack Humbert | e9f7487518 | mostly working | 8 years ago |
Fred Sundvik | 9af995c59b |
Initial structure for Ergodox as subprojects
Only the EZ default keymaps compiles at the moment though. |
9 years ago |