summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Tittelbach <bernhard@tittelbach.org>2016-06-12 06:37:30 +0200
committerBernhard Tittelbach <bernhard@tittelbach.org>2016-06-12 06:37:30 +0200
commit585e0bcb012a6008af7d4a5ce6c694f78b936092 (patch)
treed438798ac46c68cc35a92bdd225f92c694e45c59
parentArduinoProMicro (diff)
better lufa detect and reset
-rwxr-xr-xtools/detect_lufa_cdc9
-rwxr-xr-xtools/reset_lufa_cdc17
2 files changed, 18 insertions, 8 deletions
diff --git a/tools/detect_lufa_cdc b/tools/detect_lufa_cdc
new file mode 100755
index 0000000..2308ceb
--- /dev/null
+++ b/tools/detect_lufa_cdc
@@ -0,0 +1,9 @@
+#!/bin/zsh
+#(c) Bernhard Tittelbach
+
+LUFA_USB_SYSFS=( /sys/bus/usb/devices/*/idVendor(e:'grep -q 03eb $REPLY'::h) )
+LUFA_CDC_DEVS=( ${^LUFA_USB_SYSFS}/*/tty/ttyACM*(:t) )
+
+[[ -n $1 ]] && print /dev/${LUFA_CDC_DEVS[$1]} || print /dev/${^LUFA_CDC_DEVS}
+
+exit 0
diff --git a/tools/reset_lufa_cdc b/tools/reset_lufa_cdc
index 09cc8cb..6529884 100755
--- a/tools/reset_lufa_cdc
+++ b/tools/reset_lufa_cdc
@@ -1,15 +1,16 @@
-#!/bin/bash
+#!/bin/zsh --multios
+#(c) Bernhard Tittelbach
-DEVICE_FILE="/dev/ttyACM0"
+LUFA_CDC_DEVS=($(${0:h}/detect_lufa_cdc))
-if [ -c $DEVICE_FILE ]; then
- echo "resetting device .."
- echo $1 > /dev/ttyACM0
+if [[ ${#LUFA_CDC_DEVS} -gt 0 ]]; then
+ echo "resetting device(s) $LUFA_CDC_DEVS ..."
+ echo $1 > ${LUFA_CDC_DEVS}
- echo "waiting for device to enumerate .."
- sleep 4
+ echo "waiting for device to enumerate .."
+ sleep 3
else
- echo "'$DEVICE_FILE' not found ... device is probably already in bootloader mode - doing nothing"
+ echo "LUFA ttyACMs not found ... device is probably already in bootloader mode - doing nothing"
fi
exit 0