aboutsummaryrefslogtreecommitdiff
path: root/ROMFS/px4fmu_common/init.d/rc.mc_interface
blob: 003aee81b67b343674b98959f76d267584f00204 (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
#!nsh
#
# Script to load multicopter mixer and set rate/disarmed/min/max values for PWM output
#

if [ $FRAME_GEOMETRY == quad_x -o $FRAME_GEOMETRY == quad_+ ]
then
    set OUTPUTS 1234
    param set MAV_TYPE 2
fi
if [ $FRAME_GEOMETRY == quad_w -o $FRAME_GEOMETRY == quad_v ]
then
    set OUTPUTS 1234
    param set MAV_TYPE 2
fi
if [ $FRAME_GEOMETRY == hex_x -o $FRAME_GEOMETRY == hex_+ ]
then
	set OUTPUTS 123456
	param set MAV_TYPE 13
fi
if [ $FRAME_GEOMETRY == octo_x -o $FRAME_GEOMETRY == octo_+ ]
then
	set OUTPUTS 12345678
	param set MAV_TYPE 14
fi

#
# Load mixer
#
echo "Frame geometry: $FRAME_GEOMETRY"
set MIXER /etc/mixers/FMU_${FRAME_GEOMETRY}.mix
echo "Loading mixer: $MIXER"
mixer load /dev/pwm_output $MIXER

if [ $OUTPUT_MODE == fmu_pwm -o $OUTPUT_MODE == io_pwm ]
then
	#
	# Set PWM output frequency
	#
	if [ $PWM_RATE != none ]
	then
		pwm rate -c $OUTPUTS -r $PWM_RATE
	fi
	
	#
	# Set disarmed, min and max PWM values
	#
	if [ $PWM_DISARMED != none ]
	then
		pwm disarmed -c $OUTPUTS -p $PWM_DISARMED
	fi
	if [ $PWM_MIN != none ]
	then
		pwm min -c $OUTPUTS -p $PWM_MIN
	fi
	if [ $PWM_MAX != none ]
	then
		pwm max -c $OUTPUTS -p $PWM_MAX
	fi
fi