Skip to content

Commit

Permalink
Add 'bootloadHID' flash target (qmk#5587)
Browse files Browse the repository at this point in the history
* Add 'bootloadHID' flash target

* Prep for flash target

* Add :flash support

* Align bootloader wait messages

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update template to suggest use of :flash
  • Loading branch information
zvecr authored and drashna committed Aug 27, 2019
1 parent 92acca4 commit 9a87441
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 28 deletions.
33 changes: 5 additions & 28 deletions quantum/template/ps2avrgb/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
15 changes: 15 additions & 0 deletions tmk_core/avr.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

0 comments on commit 9a87441

Please sign in to comment.