Startup scripts major cleanup

This commit is contained in:
Anton Babushkin 2013-08-25 19:27:11 +02:00
parent 41dfdfb1a4
commit 557d3f22de
14 changed files with 338 additions and 803 deletions

View File

@ -1,28 +1,6 @@
#!nsh #!nsh
#
# Flight startup script for PX4FMU with PWM outputs. echo "[init] 01_fmu_quad_x: PX4FMU Quad X 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
# #
# Load default params for this platform # Load default params for this platform
@ -52,31 +30,35 @@ fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 2 = quadrotor
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 2 param set MAV_TYPE 2
# #
# Start MAVLink # Start MAVLink
# #
mavlink start -d /dev/ttyS0 -b 57600 mavlink start -d /dev/ttyS0 -b 57600
usleep 5000 usleep 5000
#
# Start common for all multirotors apps
#
sh /etc/init.d/rc.multirotor
# #
# Start PWM output # Start PWM output
# #
fmu mode_pwm fmu mode_pwm
mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
pwm -u 400 -m 0xff
# Try to get an USB console
nshterm /dev/ttyACM0 &
#
# Load mixer
#
mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
#
# Set PWM output frequency
#
pwm -u 400 -m 0xff
#
# Start common for all multirotors apps
#
sh /etc/init.d/rc.multirotor
# Exit, because /dev/ttyS0 is needed for MAVLink # Exit, because /dev/ttyS0 is needed for MAVLink
#exit exit

View File

@ -1,26 +1,6 @@
#!nsh #!nsh
#
# Flight startup script for PX4FMU+PX4IO echo "[init] 02_io_quad_x: PX4FMU+PX4IO Quad X with PWM outputs"
#
# 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 # Load default params for this platform
@ -28,74 +8,40 @@ fi
if param compare SYS_AUTOCONFIG 1 if param compare SYS_AUTOCONFIG 1
then then
# Set all params here, then disable autoconfig # Set all params here, then disable autoconfig
# TODO
param set SYS_AUTOCONFIG 0 param set SYS_AUTOCONFIG 0
param save /fs/microsd/params param save /fs/microsd/params
fi fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 2 = quadrotor
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 2 param set MAV_TYPE 2
# #
# Start MAVLink (depends on orb) # Start MAVLink
# #
mavlink start -d /dev/ttyS1 -b 57600 mavlink start -d /dev/ttyS1 -b 57600
usleep 5000 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 # Start and configure PX4IO interface
# #
px4io limit 200 sh /etc/init.d/rc.io
# #
# Start the sensors (depends on orb, px4io) # Load mixer
#
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
#
# Load mixer and start controllers (depends on px4io)
# #
mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
#
# Set PWM output frequency
#
pwm -u 400 -m 0xff pwm -u 400 -m 0xff
multirotor_att_control start
# #
# Start logging once armed # 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

View File

@ -1,86 +1,45 @@
#!nsh #!nsh
#
# Flight startup script for PX4FMU on PX4IOAR carrier board. echo "[init] 08_ardrone: PX4FMU on PX4IOAR carrier board"
#
echo "[init] doing PX4IOAR startup..."
# #
# Start the ORB # Load default params for this platform
# #
uorb start if param compare SYS_AUTOCONFIG 1
#
# Load microSD params
#
echo "[init] loading microSD params"
param select /fs/microsd/params
if [ -f /fs/microsd/params ]
then 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 fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 2 = quadrotor
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 2 param set MAV_TYPE 2
#
# Start MAVLink
#
mavlink start -d /dev/ttyS0 -b 57600
usleep 5000
# #
# Configure PX4FMU for operation with PX4IOAR # Configure PX4FMU for operation with PX4IOAR
# #
fmu mode_gpio_serial 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
#
multirotor_att_control start
# #
# Fire up the AR.Drone interface. # Fire up the AR.Drone interface.
# #
ardrone_interface start -d /dev/ttyS1 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 # Start common for all multirotors apps
# use the same UART for telemetry
# #
echo "[init] startup done" sh /etc/init.d/rc.multirotor
# Try to get an USB console
nshterm /dev/ttyACM0 &
# Exit, because /dev/ttyS0 is needed for MAVLink # Exit, because /dev/ttyS0 is needed for MAVLink
exit exit

View File

@ -1,49 +1,47 @@
#!nsh #!nsh
echo "[init] 09_ardrone_flow: PX4FMU on PX4IOAR carrier board with PX4FLOW"
# #
# Flight startup script for PX4FMU on PX4IOAR carrier board. # Load default params for this platform
# #
if param compare SYS_AUTOCONFIG 1
echo "[init] doing PX4IOAR 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 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 fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 2 = quadrotor
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 2 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 # Configure PX4FMU for operation with PX4IOAR
# #
fmu mode_gpio_serial fmu mode_gpio_serial
#
# Fire up the AR.Drone interface.
#
ardrone_interface start -d /dev/ttyS1
# #
# Start the sensors. # Start the sensors.
# #
sh /etc/init.d/rc.sensors 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. # Start the commander.
# #
@ -73,25 +71,6 @@ flow_position_control start
# Fire up the flow speed controller # Fire up the flow speed controller
# #
flow_speed_control start 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, because /dev/ttyS0 is needed for MAVLink
exit exit

View File

@ -1,12 +1,6 @@
#!nsh #!nsh
#
# Flight startup script for PX4FMU+PX4IO on an F330 quad.
#
# echo "[init] 10_io_f330: PX4FMU+PX4IO on a DJI F330 quad frame"
# Start the ORB (first app to start)
#
uorb start
# #
# Load default params for this platform # Load default params for this platform
@ -35,8 +29,7 @@ fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 2 = quadrotor
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 2 param set MAV_TYPE 2
@ -47,71 +40,28 @@ mavlink start
usleep 5000 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 px4io idle 900 900 900 900
then px4io min 1200 1200 1200 1200
# px4io max 1800 1800 1800 1800
# 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
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)
#
gps start
#
# Start the attitude estimator (depends on orb)
#
attitude_estimator_ekf start
multirotor_att_control start
# #
# Disable px4io topic limiting and start logging # Load mixer
# #
if [ $BOARD == fmuv1 ] mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
then
px4io limit 200 #
sdlog2 start -r 50 -a -b 16 # Set PWM output frequency
else #
px4io limit 400 pwm -u 400 -m 0xff
sdlog2 start -r 200 -a -b 16
fi #
# Start common for all multirotors apps
#
sh /etc/init.d/rc.multirotor

View File

@ -1,27 +1,6 @@
#!nsh #!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
# echo "[init] 15_io_tbs: PX4FMU+PX4IO on a Team Blacksheep Discovery quad"
# 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 # Load default params for this platform
@ -47,11 +26,10 @@ then
param save /fs/microsd/params param save /fs/microsd/params
fi fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 2 = quadrotor
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 2 param set MAV_TYPE 2
@ -62,77 +40,28 @@ mavlink start
usleep 5000 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
#
px4io start
pwm -u 400 -m 0xff
#
# Allow PX4IO to recover from midair restarts.
# This is very unlikely, but quite safe and robust.
px4io recovery
#
# This sets a PWM right after startup (regardless of safety button)
# #
px4io idle 900 900 900 900 px4io idle 900 900 900 900
#
# The values are for spinning motors when armed using DJI ESCs
#
px4io min 1180 1180 1180 1180 px4io min 1180 1180 1180 1180
#
# Upper limits could be higher, this is on the safe side
#
px4io max 1800 1800 1800 1800 px4io max 1800 1800 1800 1800
# #
# Load the mixer for a quad with wide arms # Load the mixer for a quad with wide arms
# #
mixer load /dev/pwm_output /etc/mixers/FMU_quad_w.mix 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 ] sh /etc/init.d/rc.multirotor
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

View File

@ -1,26 +1,6 @@
#!nsh #!nsh
#
# Flight startup script for PX4FMU+PX4IO cho "[init] 30_io_camflyer: PX4FMU+PX4IO on Camflyer"
#
# 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 # Load default params for this platform
@ -28,39 +8,18 @@ fi
if param compare SYS_AUTOCONFIG 1 if param compare SYS_AUTOCONFIG 1
then then
# Set all params here, then disable autoconfig # Set all params here, then disable autoconfig
# TODO
param set SYS_AUTOCONFIG 0 param set SYS_AUTOCONFIG 0
param save /fs/microsd/params param save /fs/microsd/params
fi fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 1 = fixed wing
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 1 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) # Start MAVLink (depends on orb)
# #
@ -106,16 +65,3 @@ kalman_demo start
# #
mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix
control_demo start control_demo start
#
# Start logging
#
sdlog2 start -r 50 -a -b 14
#
# Start system state
#
if blinkm start
then
blinkm systemstate
fi

View File

@ -1,26 +1,6 @@
#!nsh #!nsh
#
# Flight startup script for PX4FMU+PX4IO echo "[init] 31_io_phantom: PX4FMU+PX4IO on Phantom"
#
# 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 # Load default params for this platform
@ -28,76 +8,50 @@ fi
if param compare SYS_AUTOCONFIG 1 if param compare SYS_AUTOCONFIG 1
then then
# Set all params here, then disable autoconfig # Set all params here, then disable autoconfig
# TODO
param set SYS_AUTOCONFIG 0 param set SYS_AUTOCONFIG 0
param save /fs/microsd/params param save /fs/microsd/params
fi fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 1 = fixed wing
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 1 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) # Start MAVLink (depends on orb)
# #
mavlink start -d /dev/ttyS1 -b 57600 mavlink start -d /dev/ttyS1 -b 57600
usleep 5000 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
#
# Allow PX4IO to recover from midair restarts.
# this is very unlikely, but quite safe and robust.
px4io recovery
# #
# Set actuator limit to 100 Hz update (50 Hz PWM) # Set actuator limit to 100 Hz update (50 Hz PWM)
px4io limit 100 px4io limit 100
# #
# Start the sensors (depends on orb, px4io) # Start the commander
#
commander start
#
# Start the sensors
# #
sh /etc/init.d/rc.sensors sh /etc/init.d/rc.sensors
# #
# Start GPS interface (depends on orb) # Start GPS interface
# #
gps start gps start
# #
# Start the attitude estimator (depends on orb) # Start the attitude estimator
# #
kalman_demo start kalman_demo start
@ -106,16 +60,3 @@ kalman_demo start
# #
mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix
control_demo start control_demo start
#
# Start logging
#
sdlog2 start -r 50 -a -b 14
#
# Start system state
#
if blinkm start
then
blinkm systemstate
fi

View File

@ -1,26 +1,4 @@
#!nsh #!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 # Load default params for this platform
@ -28,65 +6,34 @@ fi
if param compare SYS_AUTOCONFIG 1 if param compare SYS_AUTOCONFIG 1
then then
# Set all params here, then disable autoconfig # Set all params here, then disable autoconfig
# TODO
param set SYS_AUTOCONFIG 0 param set SYS_AUTOCONFIG 0
param save /fs/microsd/params param save /fs/microsd/params
fi fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 10 = ground rover
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 10 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) # Start MAVLink (depends on orb)
# #
mavlink start -d /dev/ttyS1 -b 57600 mavlink start -d /dev/ttyS1 -b 57600
usleep 5000 usleep 5000
#
# Start and configure PX4IO interface
#
sh /etc/init.d/rc.io
# #
# Start the commander (depends on orb, mavlink) # Start the commander (depends on orb, mavlink)
# #
commander start 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) # Start the sensors (depends on orb, px4io)
# #
@ -107,16 +54,3 @@ attitude_estimator_ekf start
# #
md25 start 3 0x58 md25 start 3 0x58
segway start segway start
#
# Start logging
#
sdlog2 start -r 50 -a -b 14
#
# Start system state
#
if blinkm start
then
blinkm systemstate
fi

View File

@ -1,28 +1,6 @@
#!nsh #!nsh
#
# Flight startup script for PX4FMU with PWM outputs. echo "[init] 666_fmu_q_x550: PX4FMU Quad X550 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
# #
# Load default params for this platform # Load default params for this platform
@ -52,8 +30,7 @@ fi
# #
# Force some key parameters to sane values # Force some key parameters to sane values
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor # MAV_TYPE 2 = quadrotor
# see https://pixhawk.ethz.ch/mavlink/
# #
param set MAV_TYPE 2 param set MAV_TYPE 2
@ -62,55 +39,26 @@ param set MAV_TYPE 2
# #
mavlink start -d /dev/ttyS0 -b 57600 mavlink start -d /dev/ttyS0 -b 57600
usleep 5000 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) # Start PWM output
# #
gps start
#
# Start the attitude estimator
#
attitude_estimator_ekf start
#
# Start the position estimator
#
position_estimator_inav start
echo "[init] starting PWM output"
fmu mode_pwm fmu mode_pwm
#
# Load mixer
#
mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
#
# Set PWM output frequency
#
pwm -u 400 -m 0xff pwm -u 400 -m 0xff
#
# Start attitude control
#
multirotor_att_control start
# #
# Start position control # Start common for all multirotors apps
# #
multirotor_pos_control start sh /etc/init.d/rc.multirotor
#
# Start logging
#
sdlog2 start -r 50 -a -b 14
# # Exit, because /dev/ttyS0 is needed for MAVLink
# Start system state exit
#
if blinkm start
then
blinkm systemstate
fi

View File

@ -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

View File

@ -5,5 +5,10 @@
if [ -d /fs/microsd ] if [ -d /fs/microsd ]
then then
sdlog start if [ $BOARD == fmuv1 ]
then
sdlog2 start -r 50 -a -b 16
else
sdlog2 start -r 200 -a -b 16
fi
fi fi

View File

@ -37,13 +37,3 @@ multirotor_att_control start
# Start position control # Start position control
# #
multirotor_pos_control start 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

View File

@ -57,162 +57,165 @@ fi
if [ $MODE == autostart ] if [ $MODE == autostart ]
then then
#
# # Start terminal
# Start terminal #
# if sercon
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 ]
then then
param load /ramtron/params echo "USB connected"
fi
else
param select /fs/microsd/params
if [ -f /fs/microsd/params ]
then
param load /fs/microsd/params
fi
fi
#
# Start system state indicator
#
if rgbled start
then
echo "Using external RGB Led"
else
if blinkm start
then
blinkm systemstate
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
then
echo "No newer version, skipping upgrade."
else else
echo "Loading /fs/microsd/px4io.bin" # second attempt
if px4io update /fs/microsd/px4io.bin > /fs/microsd/px4io.log 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 ]
then then
cp /fs/microsd/px4io.bin /fs/microsd/px4io.cur param load /ramtron/params
echo "Flashed /fs/microsd/px4io.bin OK" >> /fs/microsd/px4io.log fi
else
param select /fs/microsd/params
if [ -f /fs/microsd/params ]
then
param load /fs/microsd/params
fi
fi
#
# Start system state indicator
#
if rgbled start
then
echo "Using external RGB Led"
else
if blinkm start
then
blinkm systemstate
fi
fi
#
# 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 "PX4IO Firmware found. Checking Upgrade.."
if cmp /fs/microsd/px4io.bin /fs/microsd/px4io.cur
then
echo "No newer version, skipping upgrade."
else else
echo "Failed flashing /fs/microsd/px4io.bin" >> /fs/microsd/px4io.log echo "Loading /fs/microsd/px4io.bin"
echo "Failed to upgrade px4io firmware - check if px4io is in bootloader mode" 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 fi
fi
#
# # Check if auto-setup from one of the standard scripts is wanted
# Check if auto-setup from one of the standard scripts is wanted # SYS_AUTOSTART = 0 means no autostart (default)
# SYS_AUTOSTART = 0 means no autostart (default) #
# if param compare SYS_AUTOSTART 1
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
then then
echo "PX4IO driver started" sh /etc/init.d/01_fmu_quad_x
else set MODE custom
if fmu mode_serial fi
then
echo "FMU driver started" if param compare SYS_AUTOSTART 2
fi 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 "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 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 # End of autostart
fi fi