diff options
author | Danny <nooges@users.noreply.github.com> | 2019-03-15 22:05:50 +0100 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2019-03-15 22:05:50 +0100 |
commit | 3c257c1c6e1685a2ce37951c26d13bcb8fad749d (patch) | |
tree | 3b5636c1488b032e162ac9f98c12c1ca2d9d0a43 | |
parent | 9c4424ae2cd86002cd2f4140eff7108212ef884e (diff) | |
download | qmk_firmware-3c257c1c6e1685a2ce37951c26d13bcb8fad749d.tar.gz qmk_firmware-3c257c1c6e1685a2ce37951c26d13bcb8fad749d.tar.xz |
Add avrdude split EE_HANDS flash commands (#5414)
* Add EEPROM avrdude flashing commands for setting handedness
* Update docs with info on flashing EEPROM handedness files with commands
-rw-r--r-- | docs/config_options.md | 4 | ||||
-rw-r--r-- | tmk_core/avr.mk | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/docs/config_options.md b/docs/config_options.md index 336feee8f..a8a106459 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -208,9 +208,13 @@ There are a few different ways to set handedness for split keyboards (listed in 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 2. Set `EE_HANDS` and flash `eeprom-lefthand.eep`/`eeprom-righthand.eep` to each half + * For boards with DFU bootloader you can use `:dfu-split-left`/`:dfu-split-right` to flash these EEPROM files + * For boards with Caterina bootloader (like stock Pro Micros), use `:avrdude-split-left`/`:avrdude-split-right` 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) 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 +#### Defines for handedness + * `#define SPLIT_HAND_PIN B7` * 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. diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 79fdf4de5..bf3e269fd 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -223,7 +223,11 @@ define EXEC_AVRDUDE printf "Waiting for $$USB to become writable."; \ while [ ! -w "$$USB" ]; do sleep 0.5; printf "."; done; echo ""; \ fi; \ - avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex; \ + if [ -z "$(1)" ]; then \ + avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex; \ + else \ + avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex -U eeprom:w:$(QUANTUM_PATH)/split_common/$(1); \ + fi \ fi endef @@ -232,9 +236,15 @@ avrdude: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware avrdude-loop: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware while true; do \ - $(call EXEC_AVRDUDE) ; \ + $(call EXEC_AVRDUDE) ; \ done +avrdude-split-left: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware + $(call EXEC_AVRDUDE,eeprom-lefthand.eep) + +avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware + $(call EXEC_AVRDUDE,eeprom-righthand.eep) + # Convert hex to bin. bin: $(BUILD_DIR)/$(TARGET).hex $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin |