aboutsummaryrefslogtreecommitdiff
path: root/ROMFS/px4fmu_common/init.d/10_io_f330
blob: 4107fab4fad3ae47d5c322fee2393a7342220c2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!nsh
#
# Flight startup script for PX4FMU+PX4IO
#
 
# disable USB and autostart
set USB no
set MODE custom

#
# Load default params for this platform
#
if param compare SYS_AUTOCONFIG 1
then
	# Set all params here, then disable autoconfig
	param set SYS_AUTOCONFIG 0

	param set MC_ATTRATE_D	         0.007
	param set MC_ATTRATE_I	         0.0
	param set MC_ATTRATE_P	         0.13
	param set MC_ATT_D	         0.0
	param set MC_ATT_I	         0.0
	param set MC_ATT_P	         7.0
	param set MC_POS_P	         0.1
	param set MC_RCLOSS_THR	         0.0
	param set MC_YAWPOS_D	         0.0
	param set MC_YAWPOS_I	         0.5
	param set MC_YAWPOS_P	         1.0
	param set MC_YAWRATE_D	         0.0
	param set MC_YAWRATE_I	         0.0
	param set MC_YAWRATE_P	         0.2

	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/
#
param set MAV_TYPE 2
 
#
# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
#
if [ -f /fs/microsd/px4io2.bin ]
then
	echo "PX4IO Firmware found. Checking Upgrade.."
	if cmp /fs/microsd/px4io2.bin /fs/microsd/px4io2.cur
	then
		echo "No newer version, skipping upgrade."
	else
		echo "Loading /fs/microsd/px4io2.bin"
		if px4io update /fs/microsd/px4io2.bin > /fs/microsd/px4io2.log
		then
			cp /fs/microsd/px4io2.bin /fs/microsd/px4io2.cur
			echo "Flashed /fs/microsd/px4io2.bin OK" >> /fs/microsd/px4io2.log
		else
			echo "Failed flashing /fs/microsd/px4io2.bin" >> /fs/microsd/px4io2.log
			echo "Failed to upgrade PX4IO2 firmware - check if PX4IO2 is in bootloader mode"
		fi
	fi
fi
 
#
# Start MAVLink (depends on orb)
#
mavlink start
usleep 5000
 
#
# Start PX4IO interface (depends on orb, commander)
#
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

#
# Disable px4io topic limiting
#
px4io limit 200

#
# This sets a PWM right after startup (regardless of safety button)
#
px4io idle 900 900 900 900

#
# 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
 
#
# Start the sensors (depends on orb, px4io)
#
sh /etc/init.d/rc.sensors

#
# Start the commander (depends on orb, mavlink)
#
commander start
 
#
# 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
multirotor_att_control start
 
#
# Start logging
#
sdlog2 start -r 20 -a -b 14
 
#
# Start system state
#
if blinkm start
then
	blinkm systemstate
fi