aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2013-09-12 08:30:00 +1000
committerLorenz Meier <lm@inf.ethz.ch>2013-09-12 00:47:08 +0200
commit1f19a27e3cd5d0686dd65ecad6a171d025058b7c (patch)
tree86962b14be921d053bbed31fa087492404e164fd
parent0308f399d98f53a634206705c57eed208f5ad8a3 (diff)
downloadpx4-firmware-1f19a27e3cd5d0686dd65ecad6a171d025058b7c.tar.gz
px4-firmware-1f19a27e3cd5d0686dd65ecad6a171d025058b7c.tar.bz2
px4-firmware-1f19a27e3cd5d0686dd65ecad6a171d025058b7c.zip
make upload on Linux much more reliable
Upload on Linux now only tries usb-3D_Robotics boards. This should also make it handle more ports on MacOS
-rwxr-xr-xTools/px_uploader.py14
-rw-r--r--makefiles/upload.mk4
2 files changed, 15 insertions, 3 deletions
diff --git a/Tools/px_uploader.py b/Tools/px_uploader.py
index 52d089360..64af672a3 100755
--- a/Tools/px_uploader.py
+++ b/Tools/px_uploader.py
@@ -400,7 +400,19 @@ print("Loaded firmware for %x,%x, waiting for the bootloader..." % (fw.property(
# Spin waiting for a device to show up
while True:
- for port in args.port.split(","):
+ portlist = []
+ patterns = args.port.split(",")
+ # on unix-like platforms use glob to support wildcard ports. This allows
+ # the use of /dev/serial/by-id/usb-3D_Robotics on Linux, which prevents the upload from
+ # causing modem hangups etc
+ if "linux" in _platform or "darwin" in _platform:
+ import glob
+ for pattern in patterns:
+ portlist += glob.glob(pattern)
+ else:
+ portlist = patterns
+
+ for port in portlist:
#print("Trying %s" % port)
diff --git a/makefiles/upload.mk b/makefiles/upload.mk
index 470ddfdf1..bc26d743d 100644
--- a/makefiles/upload.mk
+++ b/makefiles/upload.mk
@@ -12,10 +12,10 @@ SYSTYPE := $(shell uname -s)
# XXX The uploader should be smarter than this.
#
ifeq ($(SYSTYPE),Darwin)
-SERIAL_PORTS ?= "/dev/tty.usbmodemPX1,/dev/tty.usbmodemPX2,/dev/tty.usbmodemPX3,/dev/tty.usbmodemPX4,/dev/tty.usbmodem1,/dev/tty.usbmodem2,/dev/tty.usbmodem3,/dev/tty.usbmodem4"
+SERIAL_PORTS ?= "/dev/tty.usbmodemPX*,/dev/tty.usbmodem*"
endif
ifeq ($(SYSTYPE),Linux)
-SERIAL_PORTS ?= "/dev/ttyACM5,/dev/ttyACM4,/dev/ttyACM3,/dev/ttyACM2,/dev/ttyACM1,/dev/ttyACM0"
+SERIAL_PORTS ?= "/dev/serial/by-id/usb-3D_Robotics*"
endif
ifeq ($(SERIAL_PORTS),)
SERIAL_PORTS = "COM32,COM31,COM30,COM29,COM28,COM27,COM26,COM25,COM24,COM23,COM22,COM21,COM20,COM19,COM18,COM17,COM16,COM15,COM14,COM13,COM12,COM11,COM10,COM9,COM8,COM7,COM6,COM5,COM4,COM3,COM2,COM1,COM0"