5 changed files with 381 additions and 0 deletions
@ -0,0 +1,148 @@
@@ -0,0 +1,148 @@
|
||||
#!nsh |
||||
|
||||
# APM startup script for NuttX on VRBRAIN |
||||
|
||||
# To disable APM startup add a /fs/microsd/APM/nostart file |
||||
|
||||
# check for an old file called APM, caused by |
||||
# a bug in an earlier firmware release |
||||
if [ -f /fs/microsd/APM ] |
||||
then |
||||
echo "[APM] APM file found - renaming" |
||||
mv /fs/microsd/APM /fs/microsd/APM.old |
||||
fi |
||||
|
||||
if [ -f /fs/microsd/APM/nostart ] |
||||
then |
||||
echo "[APM] APM/nostart found - skipping APM startup" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
# mount binfs so we can find the built-in apps |
||||
if [ -f /bin/reboot ] |
||||
then |
||||
echo "[APM] binfs already mounted" |
||||
else |
||||
echo "[APM] Mounting binfs" |
||||
if mount -t binfs /dev/null /bin |
||||
then |
||||
echo "[APM] binfs mounted OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
fi |
||||
|
||||
if rm /fs/microsd/APM/boot.log |
||||
then |
||||
echo "[APM] Removed old boot.log" |
||||
fi |
||||
set logfile /fs/microsd/APM/BOOT.LOG |
||||
|
||||
if [ ! -f /bin/ArduPilot ] |
||||
then |
||||
echo "[APM] /bin/ArduPilot not found" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if mkdir /fs/microsd/APM > /dev/null |
||||
then |
||||
echo "[APM] Created APM directory" |
||||
fi |
||||
|
||||
echo "[APM] Starting UORB" |
||||
if uorb start |
||||
then |
||||
echo "[APM] UORB started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Starting ADC" |
||||
if adc start |
||||
then |
||||
echo "[APM] ADC started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Starting APM sensors" |
||||
if ms5611 start |
||||
then |
||||
echo "[APM] MS5611 started OK" |
||||
else |
||||
echo "[APM] MS5611 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if hmc5883 start |
||||
then |
||||
echo "[APM] HMC5883 started OK" |
||||
else |
||||
echo "[APM] HMC5883 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if mpu6000 start |
||||
then |
||||
echo "[APM] MPU6000 started OK" |
||||
else |
||||
echo "[APM] MPU6000 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Starting MTD driver" |
||||
if mtd start /fs/mtd |
||||
then |
||||
echo "[APM] MTD driver started OK" |
||||
else |
||||
echo "[APM] MTD driver start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] MTD driver read test" |
||||
if mtd readtest /fs/mtd |
||||
then |
||||
echo "[APM] MTD driver readtest OK" |
||||
else |
||||
echo "[APM] MTD driver failed to read" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Starting VROUTPUT driver" |
||||
vroutput mode_pwm |
||||
#if vroutput mode_pwm |
||||
#then |
||||
# echo "[APM] VROUTPUT driver started OK" |
||||
#else |
||||
# echo "[APM] VROUTPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
echo "[APM] Starting VRINPUT driver" |
||||
vrinput start |
||||
#if vrinput start |
||||
#then |
||||
# echo "[APM] VRINPUT driver started OK" |
||||
#else |
||||
# echo "[APM] VRINPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
set sketch NONE |
||||
set deviceA /dev/ttyACM0 |
||||
set deviceC /dev/ttyS2 |
||||
|
||||
echo "[APM] Starting ArduPilot" $deviceA $deviceC |
||||
if ArduPilot -d $deviceA -d2 $deviceC start |
||||
then |
||||
echo "[APM] ArduPilot started OK" |
||||
else |
||||
echo "[APM] ArduPilot start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Exiting from nsh shell" |
||||
exit |
||||
|
||||
echo "[APM] Script finished" |
||||
|
@ -0,0 +1,121 @@
@@ -0,0 +1,121 @@
|
||||
#!nsh |
||||
|
||||
# APM startup script for NuttX on VRBRAIN |
||||
|
||||
# mount binfs so we can find the built-in apps |
||||
if [ -f /bin/reboot ] |
||||
then |
||||
echo "[APMNS] binfs already mounted" |
||||
else |
||||
echo "[APMNS] Mounting binfs" |
||||
if mount -t binfs /dev/null /bin |
||||
then |
||||
echo "[APMNS] binfs mounted OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
fi |
||||
|
||||
if [ ! -f /bin/ArduPilot ] |
||||
then |
||||
echo "[APMNS] /bin/ArduPilot not found" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting UORB" |
||||
if uorb start |
||||
then |
||||
echo "[APMNS] UORB started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting ADC" |
||||
if adc start |
||||
then |
||||
echo "[APMNS] ADC started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting APM sensors" |
||||
if ms5611 start |
||||
then |
||||
echo "[APMNS] MS5611 started OK" |
||||
else |
||||
echo "[APMNS] MS5611 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if hmc5883 start |
||||
then |
||||
echo "[APMNS] HMC5883 started OK" |
||||
else |
||||
echo "[APMNS] HMC5883 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if mpu6000 start |
||||
then |
||||
echo "[APMNS] MPU6000 started OK" |
||||
else |
||||
echo "[APMNS] MPU6000 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting MTD driver" |
||||
if mtd start /fs/mtd |
||||
then |
||||
echo "[APMNS] MTD driver started OK" |
||||
else |
||||
echo "[APMNS] MTD driver start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] MTD driver read test" |
||||
if mtd readtest /fs/mtd |
||||
then |
||||
echo "[APMNS] MTD driver readtest OK" |
||||
else |
||||
echo "[APMNS] MTD driver failed to read" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting VROUTPUT driver" |
||||
vroutput mode_pwm |
||||
#if vroutput mode_pwm |
||||
#then |
||||
# echo "[APMNS] VROUTPUT driver started OK" |
||||
#else |
||||
# echo "[APMNS] VROUTPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
echo "[APMNS] Starting VRINPUT driver" |
||||
vrinput start |
||||
#if vrinput start |
||||
#then |
||||
# echo "[APMNS] VRINPUT driver started OK" |
||||
#else |
||||
# echo "[APMNS] VRINPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
set sketch NONE |
||||
set deviceA /dev/ttyACM0 |
||||
set deviceC /dev/ttyS2 |
||||
|
||||
echo "[APMNS] Starting ArduPilot" $deviceA $deviceC |
||||
if ArduPilot -d $deviceA -d2 $deviceC start |
||||
then |
||||
echo "[APMNS] ArduPilot started OK" |
||||
else |
||||
echo "[APMNS] ArduPilot start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Exiting from nsh shell" |
||||
exit |
||||
|
||||
echo "[APMNS] Script finished" |
||||
|
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
echo "Error in startup" |
||||
|
||||
tone_alarm MNCC |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
nshterm /dev/ttyACM0 & |
||||
sleep 1 |
||||
nshterm /dev/ttyS0 & |
||||
sleep 1 |
||||
exit |
@ -0,0 +1,97 @@
@@ -0,0 +1,97 @@
|
||||
#!nsh |
||||
# |
||||
# VRBRAIN 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 |
||||
|
||||
# |
||||
# 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" |
||||
set HAVE_MICROSD 1 |
||||
# Start playing the startup tune |
||||
tone_alarm start |
||||
else |
||||
echo "[init] no microSD card found" |
||||
set HAVE_MICROSD 0 |
||||
# Play SOS |
||||
tone_alarm 2 |
||||
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 [ $HAVE_MICROSD == 1 ] |
||||
then |
||||
if [ ! -f /fs/microsd/APM/nostart ] |
||||
then |
||||
if [ -f /etc/init.d/rc.APM ] |
||||
then |
||||
echo "[init] Running rc.APM" |
||||
# if APM startup is successful then nsh will exit |
||||
sh /etc/init.d/rc.APM |
||||
else |
||||
nshterm /dev/ttyACM0 & |
||||
fi |
||||
else |
||||
nshterm /dev/ttyACM0 & |
||||
fi |
||||
else |
||||
if [ -f /etc/init.d/rc.APMNS ] |
||||
then |
||||
echo "[init] Running rc.APM without SD" |
||||
# if APM startup is successful then nsh will exit |
||||
sh /etc/init.d/rc.APMNS |
||||
else |
||||
nshterm /dev/ttyACM0 & |
||||
fi |
||||
fi |
Loading…
Reference in new issue