diff options
| author | Danny <nooges@users.noreply.github.com> | 2018-12-28 16:02:53 -0500 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2018-12-28 13:02:53 -0800 |
| commit | c0859ac096f1e4251351bb0a5a04b3ae4a9451f4 (patch) | |
| tree | f206fc2a87fc26b8fbe0bd523713aab9f9714ff1 | |
| parent | 93b004c943a4b13bd640fc83000e910b72cb4640 (diff) | |
| download | qmk_firmware-c0859ac096f1e4251351bb0a5a04b3ae4a9451f4.tar.gz qmk_firmware-c0859ac096f1e4251351bb0a5a04b3ae4a9451f4.zip | |
Update split keyboard docs (#4735)
* Remove unused I2C_MASTER_RIGHT setting
* Update documentation about split keyboard options
| -rw-r--r-- | docs/config_options.md | 37 | ||||
| -rw-r--r-- | quantum/split_common/serial.c | 2 | ||||
| -rw-r--r-- | quantum/split_common/split_util.c | 3 |
3 files changed, 37 insertions, 5 deletions
diff --git a/docs/config_options.md b/docs/config_options.md index 4bbc5debd..085ab3ee5 100644 --- a/docs/config_options.md +++ b/docs/config_options.md | |||
| @@ -197,8 +197,27 @@ If you define these options you will enable the associated feature, which may in | |||
| 197 | 197 | ||
| 198 | Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk | 198 | Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk |
| 199 | 199 | ||
| 200 | * `#define SPLIT_HAND_PIN B7` | 200 | ### Setting Handedness |
| 201 | * For using high/low pin to determine handedness, low = right hand, high = left hand. Replace 'B7' with the pin you are using. This is optional and you can still use the EEHANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses. | 201 | |
| 202 | One thing to remember, the side that the USB port is plugged into is always the master half. The side not plugged into USB is the slave. | ||
| 203 | |||
| 204 | There are a few different ways to set handedness for split keyboards (listed in order of precedence): | ||
| 205 | |||
| 206 | 1. Set `SPLIT_HAND_PIN`: Reads a pin to determine handedness. If pin is high, it's the left side, if low, the half is determined to be the right side | ||
| 207 | 2. Set `EE_HANDS` and flash `eeprom-lefthand.eep`/`eeprom-righthand.eep` to each half | ||
| 208 | 3. Set `MASTER_RIGHT`: Half that is plugged into the USB port is determined to be the master and right half (inverse of the default) | ||
| 209 | 4. Default: The side that is plugged into the USB port is the master half and is assumed to be the left half. The slave side is the right half | ||
| 210 | |||
| 211 | * `#define SPLIT_HAND_PIN B7` | ||
| 212 | * For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses. | ||
| 213 | |||
| 214 | * `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` is not defined) | ||
| 215 | * Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves. | ||
| 216 | |||
| 217 | * `#define MASTER_RIGHT` | ||
| 218 | * Master half is defined to be the right half. | ||
| 219 | |||
| 220 | ### Other Options | ||
| 202 | 221 | ||
| 203 | * `#define USE_I2C` | 222 | * `#define USE_I2C` |
| 204 | * For using I2C instead of Serial (defaults to serial) | 223 | * For using I2C instead of Serial (defaults to serial) |
| @@ -206,6 +225,20 @@ Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in yo | |||
| 206 | * `#define SOFT_SERIAL_PIN D0` | 225 | * `#define SOFT_SERIAL_PIN D0` |
| 207 | * When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`. | 226 | * When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`. |
| 208 | 227 | ||
| 228 | * `#define MATRIX_ROW_PINS_RIGHT { <row pins> }` | ||
| 229 | * `#define MATRIX_COL_PINS_RIGHT { <col pins> }` | ||
| 230 | * If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns. | ||
| 231 | |||
| 232 | * `#define SELECT_SOFT_SERIAL_SPEED <speed>` (default speed is 1) | ||
| 233 | * Sets the protocol speed when using serial communication | ||
| 234 | * Speeds: | ||
| 235 | * 0: about 189kbps (Experimental only) | ||
| 236 | * 1: about 137kbps (default) | ||
| 237 | * 2: about 75kbps | ||
| 238 | * 3: about 39kbps | ||
| 239 | * 4: about 26kbps | ||
| 240 | * 5: about 20kbps | ||
| 241 | |||
| 209 | # The `rules.mk` File | 242 | # The `rules.mk` File |
| 210 | 243 | ||
| 211 | This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. | 244 | This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. |
diff --git a/quantum/split_common/serial.c b/quantum/split_common/serial.c index 4df8d103b..1315377a3 100644 --- a/quantum/split_common/serial.c +++ b/quantum/split_common/serial.c | |||
| @@ -90,7 +90,7 @@ | |||
| 90 | 90 | ||
| 91 | #ifndef SELECT_SOFT_SERIAL_SPEED | 91 | #ifndef SELECT_SOFT_SERIAL_SPEED |
| 92 | #define SELECT_SOFT_SERIAL_SPEED 1 | 92 | #define SELECT_SOFT_SERIAL_SPEED 1 |
| 93 | // 0: about 189kbps (Experiment only) | 93 | // 0: about 189kbps (Experimental only) |
| 94 | // 1: about 137kbps (default) | 94 | // 1: about 137kbps (default) |
| 95 | // 2: about 75kbps | 95 | // 2: about 75kbps |
| 96 | // 3: about 39kbps | 96 | // 3: about 39kbps |
diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index e4475c535..da04c8d3f 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c | |||
| @@ -36,8 +36,7 @@ static void setup_handedness(void) { | |||
| 36 | #ifdef EE_HANDS | 36 | #ifdef EE_HANDS |
| 37 | isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); | 37 | isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); |
| 38 | #else | 38 | #else |
| 39 | // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c | 39 | #ifdef(MASTER_RIGHT) |
| 40 | #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT) | ||
| 41 | isLeftHand = !has_usb(); | 40 | isLeftHand = !has_usb(); |
| 42 | #else | 41 | #else |
| 43 | isLeftHand = has_usb(); | 42 | isLeftHand = has_usb(); |
