Give example of SPLIT_HAND_MATRIX_GRID usage and wiring

This commit is contained in:
bluedrink9 2024-02-25 16:01:51 +13:00
parent 260e9a546e
commit f812051086

View File

@ -139,6 +139,28 @@ Note that adding a diode at a previously unused intersection will effectively te
While `MATRIX_MASKED` isn't necessary to use `SPLIT_HAND_MATRIX_GRID` successfully, without it you may experience issues trying to suspend your computer with your keyboard attached as the matrix will always report at least one key-press. While `MATRIX_MASKED` isn't necessary to use `SPLIT_HAND_MATRIX_GRID` successfully, without it you may experience issues trying to suspend your computer with your keyboard attached as the matrix will always report at least one key-press.
For example, suppose you have the following keyboard.
```c
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
```
<img alt="IMG_4592" width="1389" src="https://private-user-images.githubusercontent.com/2170248/302690105-8172daba-ce51-44bf-87e8-3003b9dfdf57.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDg4MzAwOTgsIm5iZiI6MTcwODgyOTc5OCwicGF0aCI6Ii8yMTcwMjQ4LzMwMjY5MDEwNS04MTcyZGFiYS1jZTUxLTQ0YmYtODdlOC0zMDAzYjlkZmRmNTcuUE5HP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDIyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDAyMjVUMDI1NjM4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWQzZTBmOTdhOWM5OGI1NjdlMmU1NTBjY2NiODU1ZmYzZmYwMDA3NGQ4M2FkNDkzNTIwMTk3NTJmNGRiMDhlMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.FHPKAjiecrzeVfnqJ7NUlA08M4Xus4oJ_vp6iD2B7IM">
You can add a diode to the circuit as below and further configuration as below.
<img alt="IMG_4593" width="1389" src="https://private-user-images.githubusercontent.com/2170248/302690284-109ea260-0633-4404-901f-7931384d3782.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDg4MzAwOTgsIm5iZiI6MTcwODgyOTc5OCwicGF0aCI6Ii8yMTcwMjQ4LzMwMjY5MDI4NC0xMDllYTI2MC0wNjMzLTQ0MDQtOTAxZi03OTMxMzg0ZDM3ODIuUE5HP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDIyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDAyMjVUMDI1NjM4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MTRlOGYxYTlkNWNlZTFhYmE5N2VhZjQzMTljOGRiYzdmYTYzZTMyZDJiNmU5NDYzMTYwYzkzODdiOTQ1YTdhYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.OGFeGDN5wNomA5J4-YSkaz0ubzbOHp5ZW8A_Fnwfu1E">
```c
/* Split hand configration */
#define SPLIT_HAND_MATRIX_GRID D4,B2
```
#### Handedness by EEPROM #### Handedness by EEPROM
This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout. This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout.