Delay less than 20us can cause false key detection in some situations.
With week internal pull-up takes time to charge stray capacitance of
trace between ground fill(and fingers), perhaps?
In particular, when testing Alps64 PCB without diodes tweezer is used
to close a key and this makes trace longer, more capacitance in result.
{
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
select_row(i);
- _delay_us(1); // delay for settling
+ _delay_us(30); // delay for settling
matrix_row_t cols = read_cols();
if (matrix_debouncing[i] != cols) {
if (debouncing) {