aboutsummaryrefslogtreecommitdiff
path: root/ports/stm32/autoflash
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm32/autoflash')
-rwxr-xr-xports/stm32/autoflash44
1 files changed, 44 insertions, 0 deletions
diff --git a/ports/stm32/autoflash b/ports/stm32/autoflash
new file mode 100755
index 000000000..d2240ccb5
--- /dev/null
+++ b/ports/stm32/autoflash
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# This script loops doing the following:
+# - wait for DFU device
+# - flash DFU device
+# - wait for DFU to exit
+# - wait for serial port to appear
+# - run a terminal
+
+SERIAL=/dev/ttyACM0
+DEVICE=0483:df11
+
+while true; do
+ echo "waiting for DFU device..."
+ while true; do
+ if lsusb | grep -q DFU; then
+ break
+ fi
+ sleep 1s
+ done
+
+ echo "found DFU device, flashing"
+ dfu-util -a 0 -d $DEVICE -D build/flash.dfu
+
+ echo "waiting for DFU to exit..."
+ while true; do
+ if lsusb | grep -q DFU; then
+ sleep 1s
+ continue
+ fi
+ break
+ done
+
+ echo "waiting for $SERIAL..."
+ while true; do
+ if ls /dev/tty* | grep -q $SERIAL; then
+ break
+ fi
+ sleep 1s
+ continue
+ done
+ sleep 1s
+ picocom $SERIAL
+done