aboutsummaryrefslogtreecommitdiff
path: root/ROMFS
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-01-30 16:16:12 -0800
committerpx4dev <px4@purgatory.org>2013-02-23 22:00:59 -0800
commitc3ed120d01740c61a2cafc67e597389aa0c4b674 (patch)
treefcebfff867e089722fbb88200c9ceaf6b3df7909 /ROMFS
parenta7a1cc4625ea4097761a9aef88f9f0b4608944a4 (diff)
downloadpx4-firmware-c3ed120d01740c61a2cafc67e597389aa0c4b674.tar.gz
px4-firmware-c3ed120d01740c61a2cafc67e597389aa0c4b674.tar.bz2
px4-firmware-c3ed120d01740c61a2cafc67e597389aa0c4b674.zip
Back out deletion of the /etc/init.d scripts; we need these.
Diffstat (limited to 'ROMFS')
-rw-r--r--ROMFS/scripts/rc.FMU_quad_x40
-rw-r--r--ROMFS/scripts/rc.PX4IO73
-rw-r--r--ROMFS/scripts/rc.PX4IOAR80
-rw-r--r--ROMFS/scripts/rc.jig10
-rw-r--r--ROMFS/scripts/rc.logging9
-rw-r--r--ROMFS/scripts/rc.sensors34
-rw-r--r--ROMFS/scripts/rc.standalone13
-rwxr-xr-xROMFS/scripts/rcS136
8 files changed, 395 insertions, 0 deletions
diff --git a/ROMFS/scripts/rc.FMU_quad_x b/ROMFS/scripts/rc.FMU_quad_x
new file mode 100644
index 000000000..d9c9a8457
--- /dev/null
+++ b/ROMFS/scripts/rc.FMU_quad_x
@@ -0,0 +1,40 @@
+#
+# Startup for X-quad on FMU1.5/1.6
+#
+
+echo "[init] uORB"
+uorb start
+
+echo "[init] eeprom"
+eeprom start
+if [ -f /eeprom/parameters ]
+then
+ param load
+fi
+
+echo "[init] sensors"
+#bma180 start
+#l3gd20 start
+mpu6000 start
+hmc5883 start
+ms5611 start
+
+sensors start
+
+echo "[init] mavlink"
+mavlink start -d /dev/ttyS0 -b 57600
+usleep 5000
+
+echo "[init] commander"
+commander start
+
+echo "[init] attitude control"
+attitude_estimator_ekf start
+multirotor_att_control start
+
+echo "[init] starting PWM output"
+fmu mode_pwm
+mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
+
+echo "[init] startup done, exiting"
+exit
diff --git a/ROMFS/scripts/rc.PX4IO b/ROMFS/scripts/rc.PX4IO
new file mode 100644
index 000000000..84e181a5a
--- /dev/null
+++ b/ROMFS/scripts/rc.PX4IO
@@ -0,0 +1,73 @@
+#!nsh
+
+set USB no
+
+#
+# Start the object request broker
+#
+uorb start
+
+#
+# Init the EEPROM
+#
+echo "[init] eeprom"
+eeprom start
+if [ -f /eeprom/parameters ]
+then
+ param load
+fi
+
+#
+# Enable / connect to PX4IO
+#
+px4io start
+
+#
+# Load an appropriate mixer. FMU_pass.mix is a passthru mixer
+# which is good for testing. See ROMFS/mixers for a full list of mixers.
+#
+mixer load /dev/pwm_output /etc/mixers/FMU_pass.mix
+
+#
+# Start the sensors.
+#
+sh /etc/init.d/rc.sensors
+
+#
+# Start MAVLink on UART1 (dev/ttyS0) at 57600 baud (CLI is now unusable)
+#
+mavlink start -d /dev/ttyS0 -b 57600
+usleep 5000
+
+#
+# Start the commander.
+#
+commander start
+
+#
+# Start the attitude estimator
+#
+attitude_estimator_ekf start
+
+#
+# Start the attitude and position controller
+#
+fixedwing_att_control start
+fixedwing_pos_control start
+
+#
+# Start GPS capture. Comment this out if you do not have a GPS.
+#
+gps start
+
+#
+# Start logging to microSD if we can
+#
+sh /etc/init.d/rc.logging
+
+#
+# startup is done; we don't want the shell because we
+# use the same UART for telemetry
+#
+echo "[init] startup done"
+exit
diff --git a/ROMFS/scripts/rc.PX4IOAR b/ROMFS/scripts/rc.PX4IOAR
new file mode 100644
index 000000000..640cdf541
--- /dev/null
+++ b/ROMFS/scripts/rc.PX4IOAR
@@ -0,0 +1,80 @@
+#!nsh
+#
+# Flight startup script for PX4FMU on PX4IOAR carrier board.
+#
+
+# Disable the USB interface
+set USB no
+
+# Disable autostarting other apps
+set MODE ardrone
+
+echo "[init] doing PX4IOAR startup..."
+
+#
+# Start the ORB
+#
+uorb start
+
+#
+# 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
+
+#
+# Start MAVLink
+#
+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 the attitude estimator
+#
+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
+
+#
+# Fire up the AR.Drone interface.
+#
+ardrone_interface start -d /dev/ttyS1
+
+#
+# Start logging
+#
+#sdlog start
+
+#
+# Start GPS capture
+#
+gps start
+
+#
+# startup is done; we don't want the shell because we
+# use the same UART for telemetry
+#
+echo "[init] startup done"
+exit \ No newline at end of file
diff --git a/ROMFS/scripts/rc.jig b/ROMFS/scripts/rc.jig
new file mode 100644
index 000000000..e2b5d8f30
--- /dev/null
+++ b/ROMFS/scripts/rc.jig
@@ -0,0 +1,10 @@
+#!nsh
+#
+# Test jig startup script
+#
+
+echo "[testing] doing production test.."
+
+tests jig
+
+echo "[testing] testing done"
diff --git a/ROMFS/scripts/rc.logging b/ROMFS/scripts/rc.logging
new file mode 100644
index 000000000..09c2d00d1
--- /dev/null
+++ b/ROMFS/scripts/rc.logging
@@ -0,0 +1,9 @@
+#!nsh
+#
+# Initialise logging services.
+#
+
+if [ -d /fs/microsd ]
+then
+ sdlog start
+fi
diff --git a/ROMFS/scripts/rc.sensors b/ROMFS/scripts/rc.sensors
new file mode 100644
index 000000000..42c2f52e9
--- /dev/null
+++ b/ROMFS/scripts/rc.sensors
@@ -0,0 +1,34 @@
+#!nsh
+#
+# Standard startup script for PX4FMU onboard sensor drivers.
+#
+
+#
+# Start sensor drivers here.
+#
+
+ms5611 start
+adc start
+
+if mpu6000 start
+then
+ echo "using MPU6000 and HMC5883L"
+ hmc5883 start
+else
+ echo "using L3GD20 and LSM303D"
+ l3gd20 start
+ lsm303 start
+fi
+
+#
+# Start the sensor collection task.
+# IMPORTANT: this also loads param offsets
+# ALWAYS start this task before the
+# preflight_check.
+#
+sensors start
+
+#
+# Check sensors - run AFTER 'sensors start'
+#
+preflight_check \ No newline at end of file
diff --git a/ROMFS/scripts/rc.standalone b/ROMFS/scripts/rc.standalone
new file mode 100644
index 000000000..67e95215b
--- /dev/null
+++ b/ROMFS/scripts/rc.standalone
@@ -0,0 +1,13 @@
+#!nsh
+#
+# Flight startup script for PX4FMU standalone configuration.
+#
+
+echo "[init] doing standalone PX4FMU startup..."
+
+#
+# Start the ORB
+#
+uorb start
+
+echo "[init] startup done"
diff --git a/ROMFS/scripts/rcS b/ROMFS/scripts/rcS
new file mode 100755
index 000000000..69d791da5
--- /dev/null
+++ b/ROMFS/scripts/rcS
@@ -0,0 +1,136 @@
+#!nsh
+#
+# PX4FMU startup script.
+#
+# This script is responsible for:
+#
+# - mounting the microSD card (if present)
+# - running the user startup script from the microSD card (if present)
+# - detecting the configuration of the system and picking a suitable
+# startup script to continue with
+#
+# Note: DO NOT add configuration-specific commands to this script;
+# add them to the per-configuration scripts instead.
+#
+
+#
+# Default to auto-start mode. An init script on the microSD card
+# can change this to prevent automatic startup of the flight script.
+#
+set MODE autostart
+set USB autoconnect
+
+#
+# Start playing the startup tune
+#
+tone_alarm start
+
+#
+# Try to mount the microSD card.
+#
+echo "[init] looking for microSD..."
+if mount -t vfat /dev/mmcsd0 /fs/microsd
+then
+ echo "[init] card mounted at /fs/microsd"
+else
+ echo "[init] no microSD card found"
+fi
+
+#
+# Look for an init script on the microSD card.
+#
+# To prevent automatic startup in the current flight mode,
+# the script should set MODE to some other value.
+#
+if [ -f /fs/microsd/etc/rc ]
+then
+ echo "[init] reading /fs/microsd/etc/rc"
+ sh /fs/microsd/etc/rc
+fi
+# Also consider rc.txt files
+if [ -f /fs/microsd/etc/rc.txt ]
+then
+ echo "[init] reading /fs/microsd/etc/rc.txt"
+ sh /fs/microsd/etc/rc.txt
+fi
+
+#
+# Check for USB host
+#
+if [ $USB != autoconnect ]
+then
+ echo "[init] not connecting USB"
+else
+ if sercon
+ then
+ echo "[init] USB interface connected"
+ else
+ echo "[init] No USB connected"
+ fi
+fi
+
+#
+# If we are still in flight mode, work out what airframe
+# configuration we have and start up accordingly.
+#
+if [ $MODE != autostart ]
+then
+ echo "[init] automatic startup cancelled by user script"
+else
+ echo "[init] detecting attached hardware..."
+
+ #
+ # Assume that we are PX4FMU in standalone mode
+ #
+ set BOARD PX4FMU
+
+ #
+ # Are we attached to a PX4IOAR (AR.Drone carrier board)?
+ #
+ if boardinfo test name PX4IOAR
+ then
+ set BOARD PX4IOAR
+ if [ -f /etc/init.d/rc.PX4IOAR ]
+ then
+ echo "[init] reading /etc/init.d/rc.PX4IOAR"
+ usleep 500
+ sh /etc/init.d/rc.PX4IOAR
+ fi
+ else
+ echo "[init] PX4IOAR not detected"
+ fi
+
+ #
+ # Are we attached to a PX4IO?
+ #
+ if boardinfo test name PX4IO
+ then
+ set BOARD PX4IO
+ if [ -f /etc/init.d/rc.PX4IO ]
+ then
+ echo "[init] reading /etc/init.d/rc.PX4IO"
+ usleep 500
+ sh /etc/init.d/rc.PX4IO
+ fi
+ else
+ echo "[init] PX4IO not detected"
+ fi
+
+ #
+ # Looks like we are stand-alone
+ #
+ if [ $BOARD == PX4FMU ]
+ then
+ echo "[init] no expansion board detected"
+ if [ -f /etc/init.d/rc.standalone ]
+ then
+ echo "[init] reading /etc/init.d/rc.standalone"
+ sh /etc/init.d/rc.standalone
+ fi
+ fi
+
+ #
+ # We may not reach here if the airframe-specific script exits the shell.
+ #
+ echo "[init] startup done."
+fi