Show full Tutte-Coxeter scanning matrix

This commit is contained in:
Peter Cock 2025-07-18 09:20:49 +01:00 committed by GitHub
commit a67ac6e075
Failed to generate hash of commit

View file

@ -8,23 +8,31 @@ This is firmware for a Raspberry Pi Pico PR2040 controller monoblock 36 key desi
[Tutte-Coxeter](https://en.wikipedia.org/wiki/Tutte%E2%80%93Coxeter_graph) graph
(using only 26 vertices or GPIO pins, with 36 edges or keys - see this
[blog post](https://astrobeano.blogspot.com/2025/05/ergo-mech-keyboard-wiring-using-tutte-coxeter-graph.html)
for background, although the final pin selection and trace routing changed):
for background, although the final pin selection and trace routing changed).
| GP | 11 | 10 | 3 | 4 | 7 | 26 | 27 | 28 | 15 | 21 | 19 | 20 | 16 |
|------|----|----|---|---|---|----|----|----|----|----|----|----|----|
| GP12 | / | | | | | | F | | | | | | |
| GP8 | P | L | | | | | | | | | | A | |
| GP9 | | . | , | | | | | | | | | | |
| GP1 | | | K | I | | | | | | E | | | |
| GP6 | | | | M | H | | | | | | | | |
| GP2 | | U | | | Y | T | | | | | | | |
| GP22 | | | | | | G | B | | | | | | L3 |
| GP0 | | | O | | | | W | R | | | | | |
| GP13 | | | | | N | | | D | R2 | | | | |
| GP14 | ; | | | | | | | | R1 | S | | | |
| GP18 | | | | | | B | | | | X | L2 | | |
| GP17 | | | | | | | | C | | | L1 | Z | |
| GP5 | | | | J | | | | | | | | Q | R3 |
This matrix shows the full 15×15 Tutte-Coxeter bipartite scanning matrix with the
two unused rows and columns last (❌), and the further 9 keys this would allow (⭕)
if using 30 GPIOs rather than just 26 for a 13×13 scanning matrix. The allocation
of keys to matrix elements and scanning matrix rows and columns to GPIO pins was
arbitrary and down to how best to layout the PCB traces:
| GP | 11 | 10 | 3 | 4 | 7 | 26 | 27 | 28 | 15 | 21 | 19 | 20 | 16 | ❌ | ❌ |
|---:|:--:|:--:|:-:|:-:|:-:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
| 12 | / | | | | | | F | | | | | | | | ⭕ |
| 8 | P | L | | | | | | | | | | A | | | |
| 9 | | . | , | | | | | | | | | | | ⭕ | |
| 1 | | | K | I | | | | | | E | | | | | |
| 6 | | | | M | H | | | | | | | | | | ⭕ |
| 2 | | U | | | Y | T | | | | | | | | | |
| 22 | | | | | | G | B | | | | | | L3 | | |
| 0 | | | O | | | | W | R | | | | | | | |
| 13 | | | | | N | | | D | R2 | | | | | | |
| 14 | ; | | | | | | | | R1 | S | | | | | |
| 18 | | | | | | B | | | | X | L2 | | | | |
| 17 | | | | | | | | C | | | L1 | Z | | | |
| 5 | | | | J | | | | | | | | Q | R3 | | |
| ❌ | | | | | | | | | ⭕ | | | | ⭕ | ⭕ | |
| ❌ | | | | | | | | | | | ⭕ | | | ⭕ | ⭕ |
The keys here are labeled as per Qwerty, with L1, L2, L3, R3, R2, and R1 for the thumbs: