From 7a0a7d8950e75fafbf9a8524dc0de6c40cf8c93f Mon Sep 17 00:00:00 2001
From: zvecr <git@zvecr.com>
Date: Sat, 23 Oct 2021 20:36:49 +0100
Subject: [PATCH] Align usbasp flashing behaviour

---
 platforms/avr/flash.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk
index 985cb60e52d1..6d50e72534e1 100644
--- a/platforms/avr/flash.mk
+++ b/platforms/avr/flash.mk
@@ -130,6 +130,15 @@ avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
 	$(call EXEC_AVRDUDE,eeprom-righthand.eep)
 
 define EXEC_USBASP
+	if $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | grep -q "could not find USB device with"; then \
+		printf "$(MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY)" ;\
+		sleep $(BOOTLOADER_RETRY_TIME) ;\
+		until $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | (! grep -q "could not find USB device with"); do\
+			printf "." ;\
+			sleep $(BOOTLOADER_RETRY_TIME) ;\
+		done ;\
+		printf "\n" ;\
+	fi
 	$(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp -U flash:w:$(BUILD_DIR)/$(TARGET).hex
 endef