aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny <nooges@users.noreply.github.com>2018-12-28 16:02:53 -0500
committerDrashna Jaelre <drashna@live.com>2018-12-28 13:02:53 -0800
commitc0859ac096f1e4251351bb0a5a04b3ae4a9451f4 (patch)
treef206fc2a87fc26b8fbe0bd523713aab9f9714ff1
parent93b004c943a4b13bd640fc83000e910b72cb4640 (diff)
downloadqmk_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.md37
-rw-r--r--quantum/split_common/serial.c2
-rw-r--r--quantum/split_common/split_util.c3
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
198Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk 198Split 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
202One 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
204There are a few different ways to set handedness for split keyboards (listed in order of precedence):
205
2061. 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
2072. Set `EE_HANDS` and flash `eeprom-lefthand.eep`/`eeprom-righthand.eep` to each half
2083. Set `MASTER_RIGHT`: Half that is plugged into the USB port is determined to be the master and right half (inverse of the default)
2094. 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
211This 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. 244This 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();