summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2019-08-24 16:35:11 +0100
committerFlorian Didron <fdidron@users.noreply.github.com>2019-09-05 16:15:42 +0900
commit4040654edf22d7d9b8c3735a3fc0f5ef0de059fb (patch)
treecaf8e9e4fef4701ca4675d9ce9fee96285122f29
parentd4a6178b89da11b0ce9626f6ea5c004162653359 (diff)
Add 'bootloadHID' flash target (#5587)
* Add 'bootloadHID' flash target * Prep for flash target * Add :flash support * Align bootloader wait messages Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update template to suggest use of :flash
-rw-r--r--quantum/template/ps2avrgb/readme.md33
-rw-r--r--tmk_core/avr.mk15
2 files changed, 20 insertions, 28 deletions
diff --git a/quantum/template/ps2avrgb/readme.md b/quantum/template/ps2avrgb/readme.md
index feec722a52..c01e7bca52 100644
--- a/quantum/template/ps2avrgb/readme.md
+++ b/quantum/template/ps2avrgb/readme.md
@@ -12,33 +12,10 @@ Make example for this keyboard (after setting up your build environment):
make %KEYBOARD%:default
-Flashing
-
-ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods.
-
-Windows:
-1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
-2. Place your keyboard into reset.
-3. Press the `Find Device` button and ensure that your keyboard is found.
-4. Press the `Open .hex File` button and locate the `.hex` file you created.
-5. Press the `Flash Device` button and wait for the process to complete.
-
-macOS:
-1. Install homebrew by typing the following:
- ```
- /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- ```
-2. Install `crosspack-avr`.
- ```
- brew cask install crosspack-avr
- ```
-3. Install the following packages:
- ```
- brew install python
- brew install pyusb
- brew install --HEAD`https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
-
-4. Place your keyboard into reset.
-5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
+Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](flashing_bootloadhid.md))
+
+ make %KEYBOARD%:default:flash
+
+**Reset Key**: Hold down the key located at *LOCATION*, commonly programmed as *KEY* while plugging in the keyboard.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk
index e5443418b9..bdda14a070 100644
--- a/tmk_core/avr.mk
+++ b/tmk_core/avr.mk
@@ -246,6 +246,19 @@ endef
usbasp: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
$(call EXEC_USBASP)
+BOOTLOADHID_PROGRAMMER ?= bootloadHID
+
+define EXEC_BOOTLOADHID
+ # bootloadHid executable has no cross platform detect methods
+ # so keep running bootloadHid if the output contains "The specified device was not found"
+ until $(BOOTLOADHID_PROGRAMMER) -r $(BUILD_DIR)/$(TARGET).hex 2>&1 | tee /dev/stderr | grep -v "device was not found"; do\
+ echo "Error: Bootloader not found. Trying again in 5s." ;\
+ sleep 5 ;\
+ done
+endef
+
+bootloadHID: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
+ $(call EXEC_BOOTLOADHID)
# Convert hex to bin.
bin: $(BUILD_DIR)/$(TARGET).hex
@@ -331,6 +344,8 @@ else ifeq (dfu,$(findstring dfu,$(BOOTLOADER)))
$(call EXEC_DFU)
else ifeq ($(strip $(BOOTLOADER)), USBasp)
$(call EXEC_USBASP)
+else ifeq ($(strip $(BOOTLOADER)), bootloadHID)
+ $(call EXEC_BOOTLOADHID)
else
$(PRINT_OK); $(SILENT) || printf "&(MSG_FLASH_BOOTLOADER)"
endif