aboutsummaryrefslogtreecommitdiff
path: root/ROMFS/px4fmu_common/init.d
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-04-26 19:16:55 -0700
committerpx4dev <px4@purgatory.org>2013-04-26 19:16:55 -0700
commit53f6bac327f6a799b9b0dfee368406cce4151a03 (patch)
tree88db3be11f9198a9d8970644fc447c3e2b7429e7 /ROMFS/px4fmu_common/init.d
parent01e427b17c161d8adaa38d6bdb91aecb434451f2 (diff)
parent72aaa0f7f2dee98a572ad812157fd6781a52cc90 (diff)
downloadpx4-firmware-53f6bac327f6a799b9b0dfee368406cce4151a03.tar.gz
px4-firmware-53f6bac327f6a799b9b0dfee368406cce4151a03.tar.bz2
px4-firmware-53f6bac327f6a799b9b0dfee368406cce4151a03.zip
Merge branch 'master' into export-build
Clean up some script trash and update scripts.
Diffstat (limited to 'ROMFS/px4fmu_common/init.d')
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.PX4IO55
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.PX4IOAR29
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.hil68
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.usb14
-rwxr-xr-xROMFS/px4fmu_common/init.d/rcS8
5 files changed, 144 insertions, 30 deletions
diff --git a/ROMFS/px4fmu_common/init.d/rc.PX4IO b/ROMFS/px4fmu_common/init.d/rc.PX4IO
index 1e3963b9a..7ae4a5586 100644
--- a/ROMFS/px4fmu_common/init.d/rc.PX4IO
+++ b/ROMFS/px4fmu_common/init.d/rc.PX4IO
@@ -5,7 +5,7 @@ set USB no
set MODE camflyer
#
-# Start the ORB
+# Start the ORB (first app to start)
#
uorb start
@@ -27,38 +27,65 @@ fi
param set MAV_TYPE 1
#
-# Start the sensors.
+# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
#
-sh /etc/init.d/rc.sensors
+if [ -f /fs/microsd/px4io.bin ]
+then
+ echo "PX4IO Firmware found. Checking Upgrade.."
+ if cmp /fs/microsd/px4io.bin /fs/microsd/px4io.bin.current
+ then
+ echo "No newer version, skipping upgrade."
+ else
+ echo "Loading /fs/microsd/px4io.bin"
+ if px4io update /fs/microsd/px4io.bin > /fs/microsd/px4io_update.log
+ then
+ cp /fs/microsd/px4io.bin /fs/microsd/px4io.bin.current
+ echo "Flashed /fs/microsd/px4io.bin OK" >> /fs/microsd/px4io_update.log
+ else
+ echo "Failed flashing /fs/microsd/px4io.bin" >> /fs/microsd/px4io_update.log
+ echo "Failed to upgrade PX4IO firmware - check if PX4IO is in bootloader mode"
+ fi
+ fi
+fi
#
-# Start MAVLink
+# Start MAVLink (depends on orb)
#
mavlink start -d /dev/ttyS1 -b 57600
usleep 5000
#
-# Start the commander.
+# Start the commander (depends on orb, mavlink)
#
commander start
#
-# Start GPS interface
+# Start PX4IO interface (depends on orb, commander)
#
-gps start
+px4io start
+
+#
+# Allow PX4IO to recover from midair restarts.
+# this is very unlikely, but quite safe and robust.
+px4io recovery
#
-# Start the attitude estimator
+# Start the sensors (depends on orb, px4io)
#
-kalman_demo start
+sh /etc/init.d/rc.sensors
#
-# Start PX4IO interface
+# Start GPS interface (depends on orb)
#
-px4io start
+gps start
+
+#
+# Start the attitude estimator (depends on orb)
+#
+kalman_demo start
#
-# Load mixer and start controllers
+# Load mixer and start controllers (depends on px4io)
#
mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix
control_demo start
@@ -66,8 +93,8 @@ control_demo start
#
# Start logging
#
-sdlog start -s 10
-
+#sdlog start -s 4
+
#
# Start system state
#
diff --git a/ROMFS/px4fmu_common/init.d/rc.PX4IOAR b/ROMFS/px4fmu_common/init.d/rc.PX4IOAR
index 72df68e35..ab29e21c7 100644
--- a/ROMFS/px4fmu_common/init.d/rc.PX4IOAR
+++ b/ROMFS/px4fmu_common/init.d/rc.PX4IOAR
@@ -2,10 +2,10 @@
#
# Flight startup script for PX4FMU on PX4IOAR carrier board.
#
-
+
# Disable the USB interface
set USB no
-
+
# Disable autostarting other apps
set MODE ardrone
@@ -25,13 +25,18 @@ if [ -f /fs/microsd/parameters ]
then
param load /fs/microsd/parameters
fi
-
+
#
# Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
# see https://pixhawk.ethz.ch/mavlink/
#
param set MAV_TYPE 2
+
+#
+# Configure PX4FMU for operation with PX4IOAR
+#
+fmu mode_gpio_serial
#
# Start the sensors.
@@ -55,11 +60,6 @@ commander start
attitude_estimator_ekf start
#
-# Configure PX4FMU for operation with PX4IOAR
-#
-fmu mode_gpio_serial
-
-#
# Fire up the multi rotor attitude controller
#
multirotor_att_control start
@@ -68,11 +68,6 @@ multirotor_att_control start
# Fire up the AR.Drone interface.
#
ardrone_interface start -d /dev/ttyS1
-
-#
-# Start GPS capture
-#
-gps start
#
# Start logging
@@ -80,6 +75,11 @@ gps start
sdlog start -s 10
#
+# Start GPS capture
+#
+gps start
+
+#
# Start system state
#
if blinkm start
@@ -95,4 +95,5 @@ fi
# use the same UART for telemetry
#
echo "[init] startup done"
-exit \ No newline at end of file
+
+exit
diff --git a/ROMFS/px4fmu_common/init.d/rc.hil b/ROMFS/px4fmu_common/init.d/rc.hil
new file mode 100644
index 000000000..980b78edd
--- /dev/null
+++ b/ROMFS/px4fmu_common/init.d/rc.hil
@@ -0,0 +1,68 @@
+#!nsh
+#
+# USB HIL start
+#
+
+echo "[HIL] starting.."
+
+uorb start
+
+# Tell MAVLink that this link is "fast"
+mavlink start -b 230400 -d /dev/console
+
+# Create a fake HIL /dev/pwm_output interface
+hil mode_pwm
+
+#
+# Load microSD params
+#
+echo "[init] loading microSD params"
+param select /fs/microsd/parameters
+if [ -f /fs/microsd/parameters ]
+then
+ param load /fs/microsd/parameters
+fi
+
+#
+# Force some key parameters to sane values
+# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
+# see https://pixhawk.ethz.ch/mavlink/
+#
+param set MAV_TYPE 1
+
+#
+# Start the commander (depends on orb, mavlink)
+#
+commander start
+
+#
+# Check if we got an IO
+#
+if [ px4io start ]
+then
+ echo "IO started"
+else
+ fmu mode_serial
+ echo "FMU started"
+end
+
+#
+# Start the sensors (depends on orb, px4io)
+#
+sh /etc/init.d/rc.sensors
+
+#
+# Start the attitude estimator (depends on orb)
+#
+kalman_demo start
+
+#
+# Load mixer and start controllers (depends on px4io)
+#
+mixer load /dev/pwm_output /etc/mixers/FMU_AET.mix
+control_demo start
+
+echo "[HIL] setup done, running"
+
+# Exit shell to make it available to MAVLink
+exit
diff --git a/ROMFS/px4fmu_common/init.d/rc.usb b/ROMFS/px4fmu_common/init.d/rc.usb
new file mode 100644
index 000000000..31af3991a
--- /dev/null
+++ b/ROMFS/px4fmu_common/init.d/rc.usb
@@ -0,0 +1,14 @@
+#!nsh
+#
+# USB MAVLink start
+#
+
+echo "Starting MAVLink on this USB console"
+
+# Tell MAVLink that this link is "fast"
+mavlink start -b 230400 -d /dev/console
+
+echo "MAVLink started, exiting shell.."
+
+# Exit shell to make it available to MAVLink
+exit
diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS
index 89a767879..c0a70f7dd 100755
--- a/ROMFS/px4fmu_common/init.d/rcS
+++ b/ROMFS/px4fmu_common/init.d/rcS
@@ -21,9 +21,9 @@ set MODE autostart
set USB autoconnect
#
-# Start playing the startup tune
+
#
-tone_alarm start
+
#
# Try to mount the microSD card.
@@ -32,8 +32,12 @@ echo "[init] looking for microSD..."
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
echo "[init] card mounted at /fs/microsd"
+ # Start playing the startup tune
+ tone_alarm start
else
echo "[init] no microSD card found"
+ # Play SOS
+ tone_alarm 2
fi
#