#!nsh # # PX4FMU startup script for test hackery. # uorb start if sercon then echo "[i] USB interface connected" # Try to get an USB console nshterm /dev/ttyACM0 & fi # # Try to mount the microSD card. # echo "[i] looking for microSD..." if mount -t vfat /dev/mmcsd0 /fs/microsd then echo "[i] card mounted at /fs/microsd" # Start playing the startup tune tone_alarm start else echo "[i] no microSD card found" # Play SOS tone_alarm error fi # # Start a minimal system # if [ -f /etc/extras/px4io-v2_default.bin ] then set io_file /etc/extras/px4io-v2_default.bin else set io_file /etc/extras/px4io-v1_default.bin fi if px4io start then echo "PX4IO OK" fi if px4io checkcrc $io_file then echo "PX4IO CRC OK" else echo "PX4IO CRC failure" tone_alarm MBABGP if px4io forceupdate 14662 $io_file then usleep 500000 if px4io start then echo "PX4IO restart OK" tone_alarm MSPAA else echo "PX4IO restart failed" tone_alarm MNGGG sleep 5 reboot fi else echo "PX4IO update failed" tone_alarm MNGGG fi fi # # The presence of this file suggests we're running a mount stress test # if [ -f /fs/microsd/mount_test_cmds.txt ] then tests mount fi # # Run unit tests at board boot, reporting failure as needed. # Add new unit tests using the same pattern as below. # set unit_test_failure 0 if mavlink_tests then else set unit_test_failure 1 set unit_test_failure_list "${unit_test_failure_list} mavlink_tests" fi if commander_tests then else set unit_test_failure 1 set unit_test_failure_list "${unit_test_failure_list} commander_tests" fi if uorb test then else set unit_test_failure 1 set unit_test_failure_list "${unit_test_failure_list} uorb_tests" fi if hmc5883 -I start then # This is an FMUv3 echo "FMUv3" ms5611 start mpu6000 -X start mpu6000 start lsm303d -X start l3gd20 -X start echo "EVALUATION ONLY SENSORS (not used in production)" ms5611 -X start else # This is an FMUv1 or FMUv2 echo "FMUv2 (or FMUv3 where 'hmc5883 -I start' failed)" ms5611 start mpu6000 start lsm303d start l3gd20 start fi if [ $unit_test_failure == 0 ] then echo echo "All Unit Tests PASSED" else echo echo "Some Unit Tests FAILED:${unit_test_failure_list}" fi