73 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Tutte Coxeter 36k
 | 
						||
 | 
						||

 | 
						||
 | 
						||
This is firmware for a Raspberry Pi Pico PR2040 controller monoblock 36 key design
 | 
						||
(split 3x5_3 - three rows of five, and three thumb keys, for each hand). This is a
 | 
						||
*diode-free* design with a sparse 13 by 13 scanning matrix designed using a partial
 | 
						||
[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).
 | 
						||
 | 
						||
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:
 | 
						||
 | 
						||
| Q | W |  E |  R |  T |   |  Y |  I |  O | U | P |
 | 
						||
|:-:|:-:|:--:|:--:|:--:|:-:|:--:|:--:|:--:|:-:|:-:|
 | 
						||
| A | S |  D |  F |  G |   |  H |  J |  K | L | ; |
 | 
						||
| Z | X |  C |  V |  B |   |  N |  M |  , | . | / |
 | 
						||
|   |   | L1 | L2 | L3 |   | R3 | R2 | R1 |   |   |
 | 
						||
 | 
						||
The firmware follows the `LAYOUT_split_3x5_3` QMK community layout convention, making it much
 | 
						||
easier to use with an existing layout like Miryoku.
 | 
						||
 | 
						||
The first physical PCB for this was designed using the [Gamma Omega
 | 
						||
keyboard](https://github.com/unspecworks/gamma-omega) footprint from Ergogen.
 | 
						||
That is intended for use with the same Raspberry Pi Pico YD-RP2040 microcontroller
 | 
						||
board in order to fit the same 3D printed case, including reset button placement.
 | 
						||
 | 
						||
* Keyboard Maintainer: [Peter J. A. Cock](https://github.com/peterjc)
 | 
						||
* Hardware Supported: Tutte Coxeter 36k (single PCB) with Raspberry Pi Pico
 | 
						||
* Hardware Availability: https://github.com/unspecworks/gamma-omega/tree/main/tc36k
 | 
						||
 | 
						||
Make example for this keyboard (after setting up your build environment):
 | 
						||
 | 
						||
    make tutte_coxeter_36k:default
 | 
						||
 | 
						||
Flashing example for this keyboard:
 | 
						||
 | 
						||
    make tutte_coxetter_36k:default:flash
 | 
						||
 | 
						||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
						||
 | 
						||
## Bootloader
 | 
						||
 | 
						||
Enter the bootloader in 3 ways:
 | 
						||
 | 
						||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (bottom right key, Qwerty `/`) and plug in the keyboard
 | 
						||
* **Physical reset button**: Briefly press the button on the back of the controller (if physically accessible)
 | 
						||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
 |