diff options
Diffstat (limited to 'keyboards/lets_split/readme.md')
| -rw-r--r-- | keyboards/lets_split/readme.md | 86 |
1 files changed, 72 insertions, 14 deletions
diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index a63ce5907..ecce3f415 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md | |||
| @@ -6,9 +6,45 @@ This readme and most of the code are from https://github.com/ahtn/tmk_keyboard/ | |||
| 6 | Split keyboard firmware for Arduino Pro Micro or other ATmega32u4 | 6 | Split keyboard firmware for Arduino Pro Micro or other ATmega32u4 |
| 7 | based boards. | 7 | based boards. |
| 8 | 8 | ||
| 9 | |||
| 10 | ## First Time Setup | ||
| 11 | |||
| 12 | Download or clone the whole firmware and navigate to the keyboards/lets_split directory. Once your dev env is setup, you'll be able to generate the default .hex using: | ||
| 13 | |||
| 14 | ``` | ||
| 15 | $ make rev2 | ||
| 16 | ``` | ||
| 17 | |||
| 18 | You will see a lot of output and if everything worked correctly you will see the built hex files: | ||
| 19 | |||
| 20 | ``` | ||
| 21 | lets_split_rev2_serial.hex | ||
| 22 | lets_split_rev2_i2c.hex | ||
| 23 | ``` | ||
| 24 | |||
| 25 | If you would like to use one of the alternative keymaps, or create your own, copy one of the existing [keymaps](keymaps/) and run make like so: | ||
| 26 | |||
| 27 | |||
| 28 | ``` | ||
| 29 | $ make rev2-YOUR_KEYMAP_NAME | ||
| 30 | ``` | ||
| 31 | |||
| 32 | If everything worked correctly you will see a file: | ||
| 33 | |||
| 34 | ``` | ||
| 35 | lets_split_rev2_YOUR_KEYMAP_NAME.hex | ||
| 36 | ``` | ||
| 37 | |||
| 38 | For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/readme.md##customizing-your-keymap) in the main readme.md. | ||
| 39 | |||
| 40 | ### Let's split 1.0 | ||
| 41 | If you have a first generation Let's Split you will need to use the revision 1 code. To do so, use `rev1` in all your commands instead. | ||
| 42 | |||
| 9 | Features | 43 | Features |
| 10 | -------- | 44 | -------- |
| 11 | 45 | ||
| 46 | For the full Quantum Mechanical Keyboard feature list, see [the parent readme.md](/readme.md). | ||
| 47 | |||
| 12 | Some features supported by the firmware: | 48 | Some features supported by the firmware: |
| 13 | 49 | ||
| 14 | * Either half can connect to the computer via USB, or both halves can be used | 50 | * Either half can connect to the computer via USB, or both halves can be used |
| @@ -62,7 +98,7 @@ unnecessary in simple use cases. | |||
| 62 | Notes on Software Configuration | 98 | Notes on Software Configuration |
| 63 | ------------------------------- | 99 | ------------------------------- |
| 64 | 100 | ||
| 65 | Configuring the firmware is similar to any other TMK project. One thing | 101 | Configuring the firmware is similar to any other QMK project. One thing |
| 66 | to note is that `MATIX_ROWS` in `config.h` is the total number of rows between | 102 | to note is that `MATIX_ROWS` in `config.h` is the total number of rows between |
| 67 | the two halves, i.e. if your split keyboard has 4 rows in each half, then | 103 | the two halves, i.e. if your split keyboard has 4 rows in each half, then |
| 68 | `MATRIX_ROWS=8`. | 104 | `MATRIX_ROWS=8`. |
| @@ -70,37 +106,59 @@ the two halves, i.e. if your split keyboard has 4 rows in each half, then | |||
| 70 | Also the current implementation assumes a maximum of 8 columns, but it would | 106 | Also the current implementation assumes a maximum of 8 columns, but it would |
| 71 | not be very difficult to adapt it to support more if required. | 107 | not be very difficult to adapt it to support more if required. |
| 72 | 108 | ||
| 73 | |||
| 74 | Flashing | 109 | Flashing |
| 110 | ------- | ||
| 111 | From the keymap directory run `make SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing. | ||
| 112 | Example: `make rev2-serial-avrdude` | ||
| 113 | |||
| 114 | |||
| 115 | Choosing which board to plug the USB cable into (choosing Master) | ||
| 75 | -------- | 116 | -------- |
| 117 | Because the two boards are identical, the firmware has logic to differentiate the left and right board. | ||
| 76 | 118 | ||
| 77 | From the keymap directory run `make SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing. | 119 | It uses two strategies to figure things out: look at the EEPROM (memory on the chip) or looks if the current board has the usb cable. |
| 78 | 120 | ||
| 79 | Example: `make rev2-serial-avrdude` | 121 | The EEPROM approach requires additional setup (flashing the eeeprom) but allows you to swap the usb cable to either side. |
| 122 | |||
| 123 | The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra. | ||
| 80 | 124 | ||
| 125 | ### Setting the left hand as master | ||
| 126 | If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set. | ||
| 127 | |||
| 128 | ### Setting the right hand as master | ||
| 129 | If you always plug the usb cable into the right board, add an extra flag to your `config.h` | ||
| 130 | ``` | ||
| 131 | #define MASTER_RIGHT | ||
| 132 | ``` | ||
| 133 | |||
| 134 | ### Setting EE_hands to use either hands as master | ||
| 81 | If you define `EE_HANDS` in your `config.h`, you will need to set the | 135 | If you define `EE_HANDS` in your `config.h`, you will need to set the |
| 82 | EEPROM for the left and right halves. The EEPROM is used to store whether the | 136 | EEPROM for the left and right halves. |
| 137 | |||
| 138 | The EEPROM is used to store whether the | ||
| 83 | half is left handed or right handed. This makes it so that the same firmware | 139 | half is left handed or right handed. This makes it so that the same firmware |
| 84 | file will run on both hands instead of having to flash left and right handed | 140 | file will run on both hands instead of having to flash left and right handed |
| 85 | versions of the firmware to each half. To flash the EEPROM file for the left | 141 | versions of the firmware to each half. To flash the EEPROM file for the left |
| 86 | half run: | 142 | half run: |
| 87 | ``` | 143 | ``` |
| 88 | make eeprom-left | 144 | avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep |
| 145 | // or the equivalent in dfu-programmer | ||
| 146 | |||
| 89 | ``` | 147 | ``` |
| 90 | and similarly for right half | 148 | and similarly for right half |
| 91 | ``` | 149 | ``` |
| 92 | make eeprom-right | 150 | avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep |
| 151 | // or the equivalent in dfu-programmer | ||
| 93 | ``` | 152 | ``` |
| 94 | 153 | ||
| 95 | After you have flashed the EEPROM for the first time, you then need to program | 154 | NOTE: replace `$(COM_PORT)` with the port of your device (e.g. `/dev/ttyACM0`) |
| 96 | the flash memory: | 155 | |
| 97 | ``` | 156 | After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash. |
| 98 | make program | 157 | |
| 99 | ``` | ||
| 100 | Note that you need to program both halves, but you have the option of using | 158 | Note that you need to program both halves, but you have the option of using |
| 101 | different keymaps for each half. You could program the left half with a QWERTY | 159 | different keymaps for each half. You could program the left half with a QWERTY |
| 102 | layout and the right half with a Colemak layout. Then if you connect the left | 160 | layout and the right half with a Colemak layout using bootmagic's default layout option. |
| 103 | half to a computer by USB the keyboard will use QWERTY and Colemak when the | 161 | Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the |
| 104 | right half is connected. | 162 | right half is connected. |
| 105 | 163 | ||
| 106 | 164 | ||
