aboutsummaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
* enable the watchdog driver for ppc4xxImre Kaloz2009-08-022-2/+2
* resync kernel configurationFlorian Fainelli2009-08-021-7/+2
* refresh 2.6.30 patchesFlorian Fainelli2009-08-023-10/+8
* fix sysupgradeGabor Juhos2009-08-021-0/+2
* install libiptc/libipulog from iptables (#5549)Florian Fainelli2009-08-011-0/+2
* prevent error messages on the requesting of the GPIO buttonsFlorian Fainelli2009-08-011-0/+32
* update ebtables to 2.0.9-1, fixes #5001Florian Fainelli2009-08-011-4/+4
* madwifi: fix a race condition in the ap2ap wds setupFelix Fietkau2009-08-011-11/+33
* madwifi: disable debug by default in the source tree instead of only relying ...Felix Fietkau2009-08-011-3/+5
* madwifi: remove the get_arch.mk build failure when the 'detected' arch doesn'...Felix Fietkau2009-08-011-1/+6
* ixp4xx: add support for jumbo frames to the ethernet driverFelix Fietkau2009-08-012-0/+162
* add -L$(TOOLCHAIN_DIR)/lib to the LIBGCC_S variable, if necessaryFelix Fietkau2009-08-011-1/+1
* add experimental support for 2.6.30.4Florian Fainelli2009-08-0113-0/+907
* also use openwrt-specific lzma options in gen_initramfs_list.shFlorian Fainelli2009-08-011-0/+33
* fix patchLars-Peter Clausen2009-08-011-26/+18
* Add glamo gpiolib support.Lars-Peter Clausen2009-08-011-27/+246
* do not set anything in DISABLE_IPV6 when set, let the package pick up the def...Florian Fainelli2009-08-011-1/+1
* force iptables to be configured with ipv6 enabled (#5586)Florian Fainelli2009-08-011-0/+1
* revert 17050 this was not the right way to fix thisFlorian Fainelli2009-08-011-3/+3
* update profile to include the rtc driverFlorian Fainelli2009-08-011-2/+2
* add RTC RV5C386A packageFlorian Fainelli2009-08-014-0/+810
* prevent rebuild issues on creation of lib64 with 64-bits targetsFlorian Fainelli2009-08-011-2/+2
* ASoC: jack: Fix race in snd_soc_jack_add_gpiosLars-Peter Clausen2009-07-311-0/+43
* Replace gta02 keyboard driver with generic gpio keyboard.Lars-Peter Clausen2009-07-313-334/+22
* Move headset detection to the sound driver using the jack framework.Lars-Peter Clausen2009-07-312-167/+64
* more bcm6345 fixes and definitions, thanks to AndyIFlorian Fainelli2009-07-315-2/+81
* disable warnings as error in the gdb configuration (#5602)Florian Fainelli2009-07-311-0/+1
* use board names instead of arch in packagesImre Kaloz2009-07-312-2/+2
* update to 2.6.30.4Florian Fainelli2009-07-3117-18/+18
* refresh 2.6.27 patchesFlorian Fainelli2009-07-314-16/+18
* update to 2.6.27.29Florian Fainelli2009-07-314-5/+5
* disable fuse kernel compilation module, all versions that we have have it mai...Florian Fainelli2009-07-311-17/+6
* generate images for RTA1025W_16-based routers (#5594)Florian Fainelli2009-07-311-0/+2
* add ethernet suppor for the WRT160NL (thanks to Christian Daniel)Gabor Juhos2009-07-311-1/+14
* It's to late...Lars-Peter Clausen2009-07-301-9/+0
* Post cleanup cleanupLars-Peter Clausen2009-07-303-14/+11
* add experimental support for 2.6.28.10, tested on bcm6338Florian Fainelli2009-07-3016-1/+1018
* Replace gta02 led driver with generic gpio led driver.Lars-Peter Clausen2009-07-303-205/+32
* Get rid of gpio shadowing.Lars-Peter Clausen2009-07-3010-149/+22
* glamo: The cell can rely on being a child of the core. Use it for passing pla...Lars-Peter Clausen2009-07-303-64/+57
* move the global ipv6 option to the very bottom of the options passed to confi...Florian Fainelli2009-07-301-3/+3
* revert changes to gta02_wm8753.c in previous commit. They should not have bee...Lars-Peter Clausen2009-07-301-35/+13
* glamo: Implement gpiolib for the glamo. Get rid of glamo-spi-gpio and use the...Lars-Peter Clausen2009-07-3010-480/+122
* glamo-mmc: Limit clock rate.Lars-Peter Clausen2009-07-301-15/+89
* use 2.4.37.4 for brcm-2.4Florian Fainelli2009-07-291-3/+3
* fix isdn symbols for 2.4 kernelsFlorian Fainelli2009-07-291-2/+10
* fix the lzma patch after r16944 and r16939, thanks agbFlorian Fainelli2009-07-291-220/+0
* oops, fix typoImre Kaloz2009-07-291-1/+1
* move some PPC symbols to the generic configImre Kaloz2009-07-292-8/+10
* ppc4xx optimizationsImre Kaloz2009-07-295-4/+36
a diode is connected to an intersection, it is judged to be left. If you add the following definition, it will be judged to be right. ```c #define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT ``` #### 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. To enable this method, add the following to your `config.h` file: ```c #define EE_HANDS ``` However, you'll have to flash the EEPROM files for the correct hand to each controller. You can do this manually, or there are targets for avrdude and dfu to do this, while flashing the firmware: * `:avrdude-split-left` * `:avrdude-split-right` * `:dfu-split-left` * `:dfu-split-right` * `:dfu-util-split-left` * `:dfu-util-split-right` This setting is not changed when re-initializing the EEPROM using the `EEP_RST` key, or using the `eeconfig_init()` function. However, if you reset the EEPROM outside of the firmware's built in options (such as flashing a file that overwrites the `EEPROM`, like how the [QMK Toolbox]()'s "Reset EEPROM" button works), you'll need to re-flash the controller with the `EEPROM` files. You can find the `EEPROM` files in the QMK firmware repo, [here](https://github.com/qmk/qmk_firmware/tree/master/quantum/split_common). #### Handedness by `#define` You can set the handedness at compile time. This is done by adding the following to your `config.h` file: ```c #define MASTER_RIGHT ``` or ```c #define MASTER_LEFT ``` If neither are defined, the handedness defaults to `MASTER_LEFT`. ### Communication Options Because not every split keyboard is identical, there are a number of additional options that can be configured in your `config.h` file. ```c #define USE_I2C ``` This enables I<sup>2</sup>C support for split keyboards. This isn't strictly for communication, but can be used for OLED or other I<sup>2</sup>C-based devices. ```c #define SOFT_SERIAL_PIN D0 ``` This sets the pin to be used for serial communication. If you're not using serial, you shouldn't need to define this. However, if you are using serial and I<sup>2</sup>C on the board, you will need to set this, and to something other than D0 and D1 (as these are used for I<sup>2</sup>C communication). ```c #define SELECT_SOFT_SERIAL_SPEED {#}` ``` If you're having issues with serial communication, you can change this value, as it controls the communication speed for serial. The default is 1, and the possible values are: * **`0`**: about 189kbps (Experimental only) * **`1`**: about 137kbps (default) * **`2`**: about 75kbps * **`3`**: about 39kbps * **`4`**: about 26kbps * **`5`**: about 20kbps ### Hardware Configuration Options There are some settings that you may need to configure, based on how the hardware is set up. ```c #define MATRIX_ROW_PINS_RIGHT { <row pins> } #define MATRIX_COL_PINS_RIGHT { <col pins> } ``` This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency). ```c #define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } } ``` This allows you to specify a different set of direct pins for the right side. ```c #define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a } #define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b } ``` This allows you to specify a different set of encoder pins for the right side. ```c #define RGBLIGHT_SPLIT ``` This option enables synchronization of the RGB Light modes between the controllers of the split keyboard. This is for keyboards that have RGB LEDs that are directly wired to the controller (that is, they are not using the "extra data" option on the TRRS cable). ```c #define RGBLED_SPLIT { 6, 6 } ``` This sets how many LEDs are directly connected to each controller. The first number is the left side, and the second number is the right side. ?> This setting implies that `RGBLIGHT_SPLIT` is enabled, and will forcibly enable it, if it's not. ```c #define SPLIT_USB_DETECT ``` This option changes the startup behavior to detect an active USB connection when delegating master/slave. If this operation times out, then the half is assume to be a slave. This is the default behavior for ARM, and required for AVR Teensy boards (due to hardware limitations). ?> This setting will stop the ability to demo using battery packs. ```c #define SPLIT_USB_TIMEOUT 2000 ``` This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`. ```c #define SPLIT_USB_TIMEOUT_POLL 10 ``` This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` ## Additional Resources Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information. However, the RGB Light section is out of date, as it was written long before the RGB Split code was added to QMK Firmware. Instead, wire each strip up directly to the controller. <!-- I may port this information later, but for now ... it's very nice, and covers everything -->