+ if (!code) return 0;
+
+ debug_hex(code); debug(" ");
+
+ switch (code) {
+ case 0x7E: // reset fail
+ case 0xFE: // layout
+ case 0xFF: // reset success
+ _delay_ms(500);
+ // ignore response byte
+ debug("(response ignored:");
+ while ((code = serial_recv())) { debug(" "); debug_hex(code); }
+ debug(") ");
+ // FALL THROUGH
+ case 0x7F:
+ // all keys up
+ for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
+ return 0;