aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2013-08-25 19:27:11 +0200
committerAnton Babushkin <anton.babushkin@me.com>2013-08-25 19:27:11 +0200
commit557d3f22de25a392995f2803363f32fdbc6ce843 (patch)
treeb7e2e353e46b69280cd2b23e4cd284fc31d9f411
parent41dfdfb1a4b974b5d32788852768513d0dac7a67 (diff)
downloadpx4-firmware-557d3f22de25a392995f2803363f32fdbc6ce843.tar.gz
px4-firmware-557d3f22de25a392995f2803363f32fdbc6ce843.tar.bz2
px4-firmware-557d3f22de25a392995f2803363f32fdbc6ce843.zip
Startup scripts major cleanup
-rw-r--r--ROMFS/px4fmu_common/init.d/01_fmu_quad_x52
-rw-r--r--ROMFS/px4fmu_common/init.d/02_io_quad_x88
-rw-r--r--ROMFS/px4fmu_common/init.d/08_ardrone73
-rw-r--r--ROMFS/px4fmu_common/init.d/09_ardrone_flow67
-rw-r--r--ROMFS/px4fmu_common/init.d/10_io_f33080
-rw-r--r--ROMFS/px4fmu_common/init.d/15_io_tbs91
-rw-r--r--ROMFS/px4fmu_common/init.d/30_io_camflyer64
-rw-r--r--ROMFS/px4fmu_common/init.d/31_io_phantom93
-rw-r--r--ROMFS/px4fmu_common/init.d/40_io_segway82
-rw-r--r--ROMFS/px4fmu_common/init.d/666_fmu_q_x550 (renamed from ROMFS/px4fmu_common/init.d/666_fmu_quad_x550)78
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.io23
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.logging7
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.multirotor10
-rwxr-xr-xROMFS/px4fmu_common/init.d/rcS287
14 files changed, 315 insertions, 780 deletions
diff --git a/ROMFS/px4fmu_common/init.d/01_fmu_quad_x b/ROMFS/px4fmu_common/init.d/01_fmu_quad_x
index 8223b3ea5..f57e4bd68 100644
--- a/ROMFS/px4fmu_common/init.d/01_fmu_quad_x
+++ b/ROMFS/px4fmu_common/init.d/01_fmu_quad_x
@@ -1,28 +1,6 @@
#!nsh
-#
-# Flight startup script for PX4FMU with PWM outputs.
-#
-
-# disable USB and autostart
-set USB no
-set MODE custom
-
-echo "[init] doing PX4FMU Quad startup..."
-
-#
-# Start the ORB
-#
-uorb start
-
-#
-# Load microSD params
-#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
-then
- param load /fs/microsd/params
-fi
+
+echo "[init] 01_fmu_quad_x: PX4FMU Quad X with PWM outputs"
#
# Load default params for this platform
@@ -52,11 +30,10 @@ fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 2 = quadrotor
#
param set MAV_TYPE 2
-
+
#
# Start MAVLink
#
@@ -64,19 +41,24 @@ mavlink start -d /dev/ttyS0 -b 57600
usleep 5000
#
-# Start common for all multirotors apps
+# Start PWM output
#
-sh /etc/init.d/rc.multirotor
+fmu mode_pwm
#
-# Start PWM output
+# Load mixer
#
-fmu mode_pwm
mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
+
+#
+# Set PWM output frequency
+#
pwm -u 400 -m 0xff
-
-# Try to get an USB console
-nshterm /dev/ttyACM0 &
+#
+# Start common for all multirotors apps
+#
+sh /etc/init.d/rc.multirotor
+
# Exit, because /dev/ttyS0 is needed for MAVLink
-#exit
+exit
diff --git a/ROMFS/px4fmu_common/init.d/02_io_quad_x b/ROMFS/px4fmu_common/init.d/02_io_quad_x
index 49483d14f..a37c26ad1 100644
--- a/ROMFS/px4fmu_common/init.d/02_io_quad_x
+++ b/ROMFS/px4fmu_common/init.d/02_io_quad_x
@@ -1,26 +1,6 @@
#!nsh
-#
-# Flight startup script for PX4FMU+PX4IO
-#
-
-# disable USB and autostart
-set USB no
-set MODE custom
-
-#
-# Start the ORB (first app to start)
-#
-uorb start
-
-#
-# Load microSD params
-#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
-then
- param load /fs/microsd/params
-fi
+
+echo "[init] 02_io_quad_x: PX4FMU+PX4IO Quad X with PWM outputs"
#
# Load default params for this platform
@@ -28,74 +8,40 @@ fi
if param compare SYS_AUTOCONFIG 1
then
# Set all params here, then disable autoconfig
+ # TODO
+
param set SYS_AUTOCONFIG 0
param save /fs/microsd/params
fi
-
+
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 2 = quadrotor
#
param set MAV_TYPE 2
#
-# Start MAVLink (depends on orb)
+# Start MAVLink
#
mavlink start -d /dev/ttyS1 -b 57600
usleep 5000
-
-#
-# Start the commander (depends on orb, mavlink)
-#
-commander start
-
-#
-# Start PX4IO interface (depends on orb, commander)
-#
-px4io start
-
-#
-# Allow PX4IO to recover from midair restarts.
-# this is very unlikely, but quite safe and robust.
-px4io recovery
#
-# Disable px4io topic limiting
-#
-px4io limit 200
-
-#
-# Start the sensors (depends on orb, px4io)
-#
-sh /etc/init.d/rc.sensors
-
-#
-# Start GPS interface (depends on orb)
-#
-gps start
-
-#
-# Start the attitude estimator (depends on orb)
+# Start and configure PX4IO interface
#
-attitude_estimator_ekf start
-
+sh /etc/init.d/rc.io
+
#
-# Load mixer and start controllers (depends on px4io)
+# Load mixer
#
mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
-pwm -u 400 -m 0xff
-multirotor_att_control start
-
+
#
-# Start logging once armed
+# Set PWM output frequency
#
-sdlog2 start -r 50 -a -b 14
-
+pwm -u 400 -m 0xff
+
#
-# Start system state
+# Start common for all multirotors apps
#
-if blinkm start
-then
- blinkm systemstate
-fi
+sh /etc/init.d/rc.multirotor
diff --git a/ROMFS/px4fmu_common/init.d/08_ardrone b/ROMFS/px4fmu_common/init.d/08_ardrone
index 5bb1491e9..eb9f82f77 100644
--- a/ROMFS/px4fmu_common/init.d/08_ardrone
+++ b/ROMFS/px4fmu_common/init.d/08_ardrone
@@ -1,86 +1,45 @@
#!nsh
-#
-# Flight startup script for PX4FMU on PX4IOAR carrier board.
-#
-
-echo "[init] doing PX4IOAR startup..."
-
-#
-# Start the ORB
-#
-uorb start
+
+echo "[init] 08_ardrone: PX4FMU on PX4IOAR carrier board"
#
-# Load microSD params
+# Load default params for this platform
#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
+if param compare SYS_AUTOCONFIG 1
then
- param load /fs/microsd/params
+ # Set all params here, then disable autoconfig
+ # TODO
+
+ param set SYS_AUTOCONFIG 0
+ param save /fs/microsd/params
fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 2 = quadrotor
#
param set MAV_TYPE 2
#
-# Configure PX4FMU for operation with PX4IOAR
-#
-fmu mode_gpio_serial
-
-#
-# Start the sensors.
-#
-sh /etc/init.d/rc.sensors
-
-#
# Start MAVLink
#
mavlink start -d /dev/ttyS0 -b 57600
usleep 5000
-
-#
-# Start the commander.
-#
-commander start
-
-#
-# Start the attitude estimator
-#
-attitude_estimator_ekf start
-
+
#
-# Fire up the multi rotor attitude controller
+# Configure PX4FMU for operation with PX4IOAR
#
-multirotor_att_control start
+fmu mode_gpio_serial
#
# Fire up the AR.Drone interface.
#
ardrone_interface start -d /dev/ttyS1
-
-#
-# Start logging once armed
-#
-sdlog2 start -r 50 -a -b 14
-
-#
-# Start GPS capture
-#
-gps start
#
-# startup is done; we don't want the shell because we
-# use the same UART for telemetry
+# Start common for all multirotors apps
#
-echo "[init] startup done"
-
-# Try to get an USB console
-nshterm /dev/ttyACM0 &
-
+sh /etc/init.d/rc.multirotor
+
# Exit, because /dev/ttyS0 is needed for MAVLink
exit
diff --git a/ROMFS/px4fmu_common/init.d/09_ardrone_flow b/ROMFS/px4fmu_common/init.d/09_ardrone_flow
index a223ef7aa..44fbb79b7 100644
--- a/ROMFS/px4fmu_common/init.d/09_ardrone_flow
+++ b/ROMFS/px4fmu_common/init.d/09_ardrone_flow
@@ -1,36 +1,41 @@
#!nsh
+
+echo "[init] 09_ardrone_flow: PX4FMU on PX4IOAR carrier board with PX4FLOW"
+
#
-# Flight startup script for PX4FMU on PX4IOAR carrier board.
-#
-
-echo "[init] doing PX4IOAR startup..."
-
-#
-# Start the ORB
-#
-uorb start
-
-#
-# Load microSD params
+# Load default params for this platform
#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
+if param compare SYS_AUTOCONFIG 1
then
- param load /fs/microsd/params
+ # Set all params here, then disable autoconfig
+ # TODO
+
+ param set SYS_AUTOCONFIG 0
+ param save /fs/microsd/params
fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 2 = quadrotor
#
param set MAV_TYPE 2
#
+# Start MAVLink and MAVLink Onboard (PX4FLOW Sensor)
+#
+mavlink start -d /dev/ttyS0 -b 57600
+mavlink_onboard start -d /dev/ttyS3 -b 115200
+usleep 5000
+
+#
# Configure PX4FMU for operation with PX4IOAR
#
fmu mode_gpio_serial
+
+#
+# Fire up the AR.Drone interface.
+#
+ardrone_interface start -d /dev/ttyS1
#
# Start the sensors.
@@ -38,13 +43,6 @@ fmu mode_gpio_serial
sh /etc/init.d/rc.sensors
#
-# Start MAVLink and MAVLink Onboard (Flow Sensor)
-#
-mavlink start -d /dev/ttyS0 -b 57600
-mavlink_onboard start -d /dev/ttyS3 -b 115200
-usleep 5000
-
-#
# Start the commander.
#
commander start
@@ -73,25 +71,6 @@ flow_position_control start
# Fire up the flow speed controller
#
flow_speed_control start
-
-#
-# Fire up the AR.Drone interface.
-#
-ardrone_interface start -d /dev/ttyS1
-
-#
-# Start logging once armed
-#
-sdlog2 start -r 50 -a -b 14
-#
-# startup is done; we don't want the shell because we
-# use the same UART for telemetry
-#
-echo "[init] startup done"
-
-# Try to get an USB console
-nshterm /dev/ttyACM0 &
-
# Exit, because /dev/ttyS0 is needed for MAVLink
exit
diff --git a/ROMFS/px4fmu_common/init.d/10_io_f330 b/ROMFS/px4fmu_common/init.d/10_io_f330
index 50842764a..7b6509bf8 100644
--- a/ROMFS/px4fmu_common/init.d/10_io_f330
+++ b/ROMFS/px4fmu_common/init.d/10_io_f330
@@ -1,12 +1,6 @@
#!nsh
-#
-# Flight startup script for PX4FMU+PX4IO on an F330 quad.
-#
-#
-# Start the ORB (first app to start)
-#
-uorb start
+echo "[init] 10_io_f330: PX4FMU+PX4IO on a DJI F330 quad frame"
#
# Load default params for this platform
@@ -35,8 +29,7 @@ fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 2 = quadrotor
#
param set MAV_TYPE 2
@@ -47,71 +40,28 @@ mavlink start
usleep 5000
#
-# Start the commander (depends on orb, mavlink)
+# Start and configure PX4IO interface
#
-commander start
+sh /etc/init.d/rc.io
#
-# Start PX4IO interface (depends on orb, commander)
+# Set PWM values for DJI ESCs
#
-if px4io start
-then
- #
- # This sets a PWM right after startup (regardless of safety button)
- #
- px4io idle 900 900 900 900
-
- pwm -u 400 -m 0xff
-
- #
- # Allow PX4IO to recover from midair restarts.
- # this is very unlikely, but quite safe and robust.
- px4io recovery
-
-
-
- #
- # The values are for spinning motors when armed using DJI ESCs
- #
- px4io min 1200 1200 1200 1200
-
- #
- # Upper limits could be higher, this is on the safe side
- #
- px4io max 1800 1800 1800 1800
+px4io idle 900 900 900 900
+px4io min 1200 1200 1200 1200
+px4io max 1800 1800 1800 1800
- mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
-
-else
- # SOS
- tone_alarm 6
-fi
-
-#
-# Start the sensors (depends on orb, px4io)
-#
-sh /etc/init.d/rc.sensors
-
#
-# Start GPS interface (depends on orb)
+# Load mixer
#
-gps start
-
+mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
+
#
-# Start the attitude estimator (depends on orb)
+# Set PWM output frequency
#
-attitude_estimator_ekf start
-
-multirotor_att_control start
+pwm -u 400 -m 0xff
#
-# Disable px4io topic limiting and start logging
+# Start common for all multirotors apps
#
-if [ $BOARD == fmuv1 ]
-then
- px4io limit 200
- sdlog2 start -r 50 -a -b 16
-else
- px4io limit 400
- sdlog2 start -r 200 -a -b 16
-fi
+sh /etc/init.d/rc.multirotor
diff --git a/ROMFS/px4fmu_common/init.d/15_io_tbs b/ROMFS/px4fmu_common/init.d/15_io_tbs
index 237bb4267..b4f063e52 100644
--- a/ROMFS/px4fmu_common/init.d/15_io_tbs
+++ b/ROMFS/px4fmu_common/init.d/15_io_tbs
@@ -1,27 +1,6 @@
#!nsh
-#
-# Flight startup script for PX4FMU+PX4IO on a Team Blacksheep Discovery quad
-# with stock DJI ESCs, motors and props.
-#
-
-# disable USB and autostart
-set USB no
-set MODE custom
-#
-# Start the ORB (first app to start)
-#
-uorb start
-
-#
-# Load microSD params
-#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
-then
- param load /fs/microsd/params
-fi
+echo "[init] 15_io_tbs: PX4FMU+PX4IO on a Team Blacksheep Discovery quad"
#
# Load default params for this platform
@@ -47,11 +26,10 @@ then
param save /fs/microsd/params
fi
-
+
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 2 = quadrotor
#
param set MAV_TYPE 2
@@ -62,77 +40,28 @@ mavlink start
usleep 5000
#
-# Start the commander (depends on orb, mavlink)
-#
-commander start
-
-#
-# Start PX4IO interface (depends on orb, commander)
-#
-px4io start
-pwm -u 400 -m 0xff
-
+# Start and configure PX4IO interface
#
-# Allow PX4IO to recover from midair restarts.
-# This is very unlikely, but quite safe and robust.
-px4io recovery
+sh /etc/init.d/rc.io
#
-# This sets a PWM right after startup (regardless of safety button)
+# Set PWM values for DJI ESCs
#
px4io idle 900 900 900 900
-
-#
-# The values are for spinning motors when armed using DJI ESCs
-#
px4io min 1180 1180 1180 1180
-
-#
-# Upper limits could be higher, this is on the safe side
-#
px4io max 1800 1800 1800 1800
#
# Load the mixer for a quad with wide arms
#
mixer load /dev/pwm_output /etc/mixers/FMU_quad_w.mix
-
-#
-# Start the sensors (depends on orb, px4io)
-#
-sh /etc/init.d/rc.sensors
-
-#
-# Start GPS interface (depends on orb)
-#
-gps start
-
-#
-# Start the attitude estimator (depends on orb)
-#
-attitude_estimator_ekf start
#
-# Start the controllers (depends on orb)
+# Set PWM output frequency
#
-multirotor_att_control start
+pwm -u 400 -m 0xff
#
-# Disable px4io topic limiting and start logging
+# Start common for all multirotors apps
#
-if [ $BOARD == fmuv1 ]
-then
- px4io limit 200
- sdlog2 start -r 50 -a -b 16
- if blinkm start
- then
- blinkm systemstate
- fi
-else
- px4io limit 400
- sdlog2 start -r 200 -a -b 16
- if rgbled start
- then
- #rgbled systemstate
- fi
-fi
+sh /etc/init.d/rc.multirotor
diff --git a/ROMFS/px4fmu_common/init.d/30_io_camflyer b/ROMFS/px4fmu_common/init.d/30_io_camflyer
index 5090b98a4..c9d5d6632 100644
--- a/ROMFS/px4fmu_common/init.d/30_io_camflyer
+++ b/ROMFS/px4fmu_common/init.d/30_io_camflyer
@@ -1,26 +1,6 @@
#!nsh
-#
-# Flight startup script for PX4FMU+PX4IO
-#
-
-# disable USB and autostart
-set USB no
-set MODE custom
-
-#
-# Start the ORB (first app to start)
-#
-uorb start
-
-#
-# Load microSD params
-#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
-then
- param load /fs/microsd/params
-fi
+
+cho "[init] 30_io_camflyer: PX4FMU+PX4IO on Camflyer"
#
# Load default params for this platform
@@ -28,40 +8,19 @@ fi
if param compare SYS_AUTOCONFIG 1
then
# Set all params here, then disable autoconfig
+ # TODO
+
param set SYS_AUTOCONFIG 0
param save /fs/microsd/params
fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 1 = fixed wing
#
param set MAV_TYPE 1
#
-# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
-#
-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 (depends on orb)
#
mavlink start -d /dev/ttyS1 -b 57600
@@ -106,16 +65,3 @@ kalman_demo start
#
mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix
control_demo start
-
-#
-# Start logging
-#
-sdlog2 start -r 50 -a -b 14
-
-#
-# Start system state
-#
-if blinkm start
-then
- blinkm systemstate
-fi
diff --git a/ROMFS/px4fmu_common/init.d/31_io_phantom b/ROMFS/px4fmu_common/init.d/31_io_phantom
index 5090b98a4..0deffe3f1 100644
--- a/ROMFS/px4fmu_common/init.d/31_io_phantom
+++ b/ROMFS/px4fmu_common/init.d/31_io_phantom
@@ -1,26 +1,6 @@
#!nsh
-#
-# Flight startup script for PX4FMU+PX4IO
-#
-
-# disable USB and autostart
-set USB no
-set MODE custom
-
-#
-# Start the ORB (first app to start)
-#
-uorb start
-
-#
-# Load microSD params
-#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
-then
- param load /fs/microsd/params
-fi
+
+echo "[init] 31_io_phantom: PX4FMU+PX4IO on Phantom"
#
# Load default params for this platform
@@ -28,76 +8,50 @@ fi
if param compare SYS_AUTOCONFIG 1
then
# Set all params here, then disable autoconfig
+ # TODO
+
param set SYS_AUTOCONFIG 0
param save /fs/microsd/params
fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 1 = fixed wing
#
param set MAV_TYPE 1
-
-#
-# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
-#
-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 (depends on orb)
#
mavlink start -d /dev/ttyS1 -b 57600
usleep 5000
-
-#
-# Start the commander (depends on orb, mavlink)
-#
-commander start
-
-#
-# Start PX4IO interface (depends on orb, commander)
+
#
-px4io start
-
+# Start and configure PX4IO interface
#
-# Allow PX4IO to recover from midair restarts.
-# this is very unlikely, but quite safe and robust.
-px4io recovery
+sh /etc/init.d/rc.io
#
# Set actuator limit to 100 Hz update (50 Hz PWM)
px4io limit 100
#
-# Start the sensors (depends on orb, px4io)
+# Start the commander
+#
+commander start
+
+#
+# Start the sensors
#
sh /etc/init.d/rc.sensors
#
-# Start GPS interface (depends on orb)
+# Start GPS interface
#
gps start
#
-# Start the attitude estimator (depends on orb)
+# Start the attitude estimator
#
kalman_demo start
@@ -106,16 +60,3 @@ kalman_demo start
#
mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix
control_demo start
-
-#
-# Start logging
-#
-sdlog2 start -r 50 -a -b 14
-
-#
-# Start system state
-#
-if blinkm start
-then
- blinkm systemstate
-fi
diff --git a/ROMFS/px4fmu_common/init.d/40_io_segway b/ROMFS/px4fmu_common/init.d/40_io_segway
index 5742d685a..2890f43be 100644
--- a/ROMFS/px4fmu_common/init.d/40_io_segway
+++ b/ROMFS/px4fmu_common/init.d/40_io_segway
@@ -1,26 +1,4 @@
#!nsh
-#
-# Flight startup script for PX4FMU+PX4IO
-#
-
-# disable USB and autostart
-set USB no
-set MODE custom
-
-#
-# Start the ORB (first app to start)
-#
-uorb start
-
-#
-# Load microSD params
-#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
-then
- param load /fs/microsd/params
-fi
#
# Load default params for this platform
@@ -28,39 +6,18 @@ fi
if param compare SYS_AUTOCONFIG 1
then
# Set all params here, then disable autoconfig
+ # TODO
+
param set SYS_AUTOCONFIG 0
param save /fs/microsd/params
fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 10 = ground rover
#
param set MAV_TYPE 10
-
-#
-# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
-#
-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 (depends on orb)
#
@@ -68,26 +25,16 @@ mavlink start -d /dev/ttyS1 -b 57600
usleep 5000
#
-# Start the commander (depends on orb, mavlink)
+# Start and configure PX4IO interface
#
-commander start
+sh /etc/init.d/rc.io
#
-# Start PX4IO interface (depends on orb, commander)
-#
-px4io start
-
+# Start the commander (depends on orb, mavlink)
#
-# Allow PX4IO to recover from midair restarts.
-# this is very unlikely, but quite safe and robust.
-px4io recovery
+commander start
#
-# Disable px4io topic limiting
-#
-px4io limit 200
-
-#
# Start the sensors (depends on orb, px4io)
#
sh /etc/init.d/rc.sensors
@@ -107,16 +54,3 @@ attitude_estimator_ekf start
#
md25 start 3 0x58
segway start
-
-#
-# Start logging
-#
-sdlog2 start -r 50 -a -b 14
-
-#
-# Start system state
-#
-if blinkm start
-then
- blinkm systemstate
-fi
diff --git a/ROMFS/px4fmu_common/init.d/666_fmu_quad_x550 b/ROMFS/px4fmu_common/init.d/666_fmu_q_x550
index a7ffffaee..2c8218013 100644
--- a/ROMFS/px4fmu_common/init.d/666_fmu_quad_x550
+++ b/ROMFS/px4fmu_common/init.d/666_fmu_q_x550
@@ -1,28 +1,6 @@
#!nsh
-#
-# Flight startup script for PX4FMU with PWM outputs.
-#
-
-# disable USB and autostart
-set USB no
-set MODE custom
-
-echo "[init] doing PX4FMU Quad startup 666_fmu_quad_X550..."
-
-#
-# Start the ORB
-#
-uorb start
-
-#
-# Load microSD params
-#
-echo "[init] loading microSD params"
-param select /fs/microsd/params
-if [ -f /fs/microsd/params ]
-then
- param load /fs/microsd/params
-fi
+
+echo "[init] 666_fmu_q_x550: PX4FMU Quad X550 with PWM outputs"
#
# Load default params for this platform
@@ -52,8 +30,7 @@ fi
#
# Force some key parameters to sane values
-# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
-# see https://pixhawk.ethz.ch/mavlink/
+# MAV_TYPE 2 = quadrotor
#
param set MAV_TYPE 2
@@ -62,55 +39,26 @@ param set MAV_TYPE 2
#
mavlink start -d /dev/ttyS0 -b 57600
usleep 5000
-
-#
-# Start the sensors and test them.
-#
-sh /etc/init.d/rc.sensors
-
-#
-# Start the commander.
-#
-commander start
#
-# Start GPS interface (depends on orb)
-#
-gps start
-
-#
-# Start the attitude estimator
-#
-attitude_estimator_ekf start
+# Start PWM output
#
-# Start the position estimator
-#
-position_estimator_inav start
-
-echo "[init] starting PWM output"
fmu mode_pwm
-mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
-pwm -u 400 -m 0xff
-
+
#
-# Start attitude control
+# Load mixer
#
-multirotor_att_control start
+mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
#
-# Start position control
+# Set PWM output frequency
#
-multirotor_pos_control start
+pwm -u 400 -m 0xff
#
-# Start logging
+# Start common for all multirotors apps
#
-sdlog2 start -r 50 -a -b 14
+sh /etc/init.d/rc.multirotor
-#
-# Start system state
-#
-if blinkm start
-then
- blinkm systemstate
-fi
+# Exit, because /dev/ttyS0 is needed for MAVLink
+exit
diff --git a/ROMFS/px4fmu_common/init.d/rc.io b/ROMFS/px4fmu_common/init.d/rc.io
new file mode 100644
index 000000000..85f00e582
--- /dev/null
+++ b/ROMFS/px4fmu_common/init.d/rc.io
@@ -0,0 +1,23 @@
+#
+# Start PX4IO interface (depends on orb, commander)
+#
+if px4io start
+then
+ #
+ # Allow PX4IO to recover from midair restarts.
+ # this is very unlikely, but quite safe and robust.
+ px4io recovery
+
+ #
+ # Disable px4io topic limiting
+ #
+ if [ $BOARD == fmuv1 ]
+ then
+ px4io limit 200
+ else
+ px4io limit 400
+ fi
+else
+ # SOS
+ tone_alarm 6
+fi
diff --git a/ROMFS/px4fmu_common/init.d/rc.logging b/ROMFS/px4fmu_common/init.d/rc.logging
index 09c2d00d1..dc4be8055 100644
--- a/ROMFS/px4fmu_common/init.d/rc.logging
+++ b/ROMFS/px4fmu_common/init.d/rc.logging
@@ -5,5 +5,10 @@
if [ -d /fs/microsd ]
then
- sdlog start
+ if [ $BOARD == fmuv1 ]
+ then
+ sdlog2 start -r 50 -a -b 16
+ else
+ sdlog2 start -r 200 -a -b 16
+ fi
fi
diff --git a/ROMFS/px4fmu_common/init.d/rc.multirotor b/ROMFS/px4fmu_common/init.d/rc.multirotor
index 81184f363..73f1b3742 100644
--- a/ROMFS/px4fmu_common/init.d/rc.multirotor
+++ b/ROMFS/px4fmu_common/init.d/rc.multirotor
@@ -37,13 +37,3 @@ multirotor_att_control start
# Start position control
#
multirotor_pos_control start
-
-#
-# Start logging
-#
-if [ $BOARD == fmuv1 ]
-then
- sdlog2 start -r 50 -a -b 16
-else
- sdlog2 start -r 200 -a -b 16
-fi
diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS
index 6b624b278..d92a3ce5e 100755
--- a/ROMFS/px4fmu_common/init.d/rcS
+++ b/ROMFS/px4fmu_common/init.d/rcS
@@ -57,162 +57,165 @@ fi
if [ $MODE == autostart ]
then
-
-#
-# Start terminal
-#
-if sercon
-then
- echo "USB connected"
-else
- # second attempt
- sercon &
-fi
-
-#
-# Start the ORB (first app to start)
-#
-uorb start
-
-#
-# Load microSD params
-#
-if ramtron start
-then
- param select /ramtron/params
- if [ -f /ramtron/params ]
+ #
+ # Start terminal
+ #
+ if sercon
then
- param load /ramtron/params
+ echo "USB connected"
+ else
+ # second attempt
+ sercon &
fi
-else
- param select /fs/microsd/params
- if [ -f /fs/microsd/params ]
+
+ #
+ # Start the ORB (first app to start)
+ #
+ uorb start
+
+ #
+ # Load microSD params
+ #
+ if ramtron start
then
- param load /fs/microsd/params
+ param select /ramtron/params
+ if [ -f /ramtron/params ]
+ then
+ param load /ramtron/params
+ fi
+ else
+ param select /fs/microsd/params
+ if [ -f /fs/microsd/params ]
+ then
+ param load /fs/microsd/params
+ fi
fi
-fi
-
-#
-# Start system state indicator
-#
-if rgbled start
-then
- echo "Using external RGB Led"
-else
- if blinkm start
+
+ #
+ # Start system state indicator
+ #
+ if rgbled start
then
- blinkm systemstate
+ echo "Using external RGB Led"
+ else
+ if blinkm start
+ then
+ blinkm systemstate
+ fi
fi
-fi
-
-#
-# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
-#
-if [ -f /fs/microsd/px4io.bin ]
-then
- echo "PX4IO Firmware found. Checking Upgrade.."
- if cmp /fs/microsd/px4io.bin /fs/microsd/px4io.cur
+
+ #
+ # Start logging
+ #
+ sh /etc/init.d/rc.logging
+
+ #
+ # Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
+ #
+ if [ -f /fs/microsd/px4io.bin ]
then
- echo "No newer version, skipping upgrade."
- else
- echo "Loading /fs/microsd/px4io.bin"
- if px4io update /fs/microsd/px4io.bin > /fs/microsd/px4io.log
+ echo "PX4IO Firmware found. Checking Upgrade.."
+ if cmp /fs/microsd/px4io.bin /fs/microsd/px4io.cur
then
- cp /fs/microsd/px4io.bin /fs/microsd/px4io.cur
- echo "Flashed /fs/microsd/px4io.bin OK" >> /fs/microsd/px4io.log
+ echo "No newer version, skipping upgrade."
else
- echo "Failed flashing /fs/microsd/px4io.bin" >> /fs/microsd/px4io.log
- echo "Failed to upgrade px4io firmware - check if px4io is in bootloader mode"
+ echo "Loading /fs/microsd/px4io.bin"
+ if px4io update /fs/microsd/px4io.bin > /fs/microsd/px4io.log
+ then
+ cp /fs/microsd/px4io.bin /fs/microsd/px4io.cur
+ echo "Flashed /fs/microsd/px4io.bin OK" >> /fs/microsd/px4io.log
+ else
+ echo "Failed flashing /fs/microsd/px4io.bin" >> /fs/microsd/px4io.log
+ echo "Failed to upgrade px4io firmware - check if px4io is in bootloader mode"
+ fi
fi
fi
-fi
-
-#
-# Check if auto-setup from one of the standard scripts is wanted
-# SYS_AUTOSTART = 0 means no autostart (default)
-#
-if param compare SYS_AUTOSTART 1
-then
- sh /etc/init.d/01_fmu_quad_x
- set MODE custom
-fi
-
-if param compare SYS_AUTOSTART 2
-then
- sh /etc/init.d/02_io_quad_x
- set MODE custom
-fi
-
-if param compare SYS_AUTOSTART 8
-then
- sh /etc/init.d/08_ardrone
- set MODE custom
-fi
-
-if param compare SYS_AUTOSTART 9
-then
- sh /etc/init.d/09_ardrone_flow
- set MODE custom
-fi
-
-if param compare SYS_AUTOSTART 10
-then
- sh /etc/init.d/10_io_f330
- set MODE custom
-fi
-
-if param compare SYS_AUTOSTART 15
-then
- sh /etc/init.d/15_io_tbs
- set MODE custom
-fi
-
-if param compare SYS_AUTOSTART 30
-then
- sh /etc/init.d/30_io_camflyer
- set MODE custom
-fi
-
-if param compare SYS_AUTOSTART 31
-then
- sh /etc/init.d/31_io_phantom
- set MODE custom
-fi
-
-# Try to get an USB console
-nshterm /dev/ttyACM0 &
-
-# If none of the autostart scripts triggered, get a minimal setup
-if [ $MODE == autostart ]
-then
- # Telemetry port is on both FMU boards ttyS1
- mavlink start -b 57600 -d /dev/ttyS1
- usleep 5000
-
- # Start commander
- commander start
-
- # Start px4io if present
- if px4io start
+
+ #
+ # Check if auto-setup from one of the standard scripts is wanted
+ # SYS_AUTOSTART = 0 means no autostart (default)
+ #
+ if param compare SYS_AUTOSTART 1
then
- echo "PX4IO driver started"
- else
- if fmu mode_serial
+ sh /etc/init.d/01_fmu_quad_x
+ set MODE custom
+ fi
+
+ if param compare SYS_AUTOSTART 2
+ then
+ sh /etc/init.d/02_io_quad_x
+ set MODE custom
+ fi
+
+ if param compare SYS_AUTOSTART 8
+ then
+ sh /etc/init.d/08_ardrone
+ set MODE custom
+ fi
+
+ if param compare SYS_AUTOSTART 9
+ then
+ sh /etc/init.d/09_ardrone_flow
+ set MODE custom
+ fi
+
+ if param compare SYS_AUTOSTART 10
+ then
+ sh /etc/init.d/10_io_f330
+ set MODE custom
+ fi
+
+ if param compare SYS_AUTOSTART 15
+ then
+ sh /etc/init.d/15_io_tbs
+ set MODE custom
+ fi
+
+ if param compare SYS_AUTOSTART 30
+ then
+ sh /etc/init.d/30_io_camflyer
+ set MODE custom
+ fi
+
+ if param compare SYS_AUTOSTART 31
+ then
+ sh /etc/init.d/31_io_phantom
+ set MODE custom
+ fi
+
+ # Try to get an USB console
+ nshterm /dev/ttyACM0 &
+
+ # If none of the autostart scripts triggered, get a minimal setup
+ if [ $MODE == autostart ]
+ then
+ # Telemetry port is on both FMU boards ttyS1
+ mavlink start -b 57600 -d /dev/ttyS1
+ usleep 5000
+
+ # Start commander
+ commander start
+
+ # Start px4io if present
+ if px4io start
then
- echo "FMU driver started"
+ echo "PX4IO driver started"
+ else
+ if fmu mode_serial
+ then
+ echo "FMU driver started"
+ fi
fi
+
+ # Start sensors
+ sh /etc/init.d/rc.sensors
+
+ # Start one of the estimators
+ attitude_estimator_ekf start
+
+ # Start GPS
+ gps start
+
fi
-
- # Start sensors
- sh /etc/init.d/rc.sensors
-
- # Start one of the estimators
- attitude_estimator_ekf start
-
- # Start GPS
- gps start
-
-fi
-
# End of autostart
fi