aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2015-01-08 12:45:43 +0100
committerLorenz Meier <lm@inf.ethz.ch>2015-01-08 12:45:43 +0100
commitaa2a00b56a0be0e20abfa54c311575f9e055f212 (patch)
tree7c13065632d45486c31eee5c08b8de58c36335fc
parent1df7939072f87a5f3f3cc05ff57f545db7c144ad (diff)
parente405fafe882c95345ccf88ea5f372f353aa4c21f (diff)
downloadpx4-firmware-aa2a00b56a0be0e20abfa54c311575f9e055f212.tar.gz
px4-firmware-aa2a00b56a0be0e20abfa54c311575f9e055f212.tar.bz2
px4-firmware-aa2a00b56a0be0e20abfa54c311575f9e055f212.zip
Merge branch 'MixerNaming' of github.com:anton-matosov/Firmware
-rw-r--r--ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil2
-rw-r--r--ROMFS/px4fmu_common/init.d/10015_tbs_discovery2
-rw-r--r--ROMFS/px4fmu_common/init.d/10016_3dr_iris2
-rw-r--r--ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d2
-rw-r--r--ROMFS/px4fmu_common/init.d/10018_tbs_endurance2
-rw-r--r--ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil2
-rw-r--r--ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil4
-rw-r--r--ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil2
-rw-r--r--ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil2
-rw-r--r--ROMFS/px4fmu_common/init.d/11001_hexa_cox2
-rw-r--r--ROMFS/px4fmu_common/init.d/12001_octo_cox2
-rw-r--r--ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol2
-rw-r--r--ROMFS/px4fmu_common/init.d/13002_firefly614
-rw-r--r--ROMFS/px4fmu_common/init.d/2101_hk_bixler2
-rw-r--r--ROMFS/px4fmu_common/init.d/2103_skyhunter_18002
-rw-r--r--ROMFS/px4fmu_common/init.d/3030_io_camflyer2
-rw-r--r--ROMFS/px4fmu_common/init.d/3032_skywalker_x52
-rw-r--r--ROMFS/px4fmu_common/init.d/3034_fx792
-rw-r--r--ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha2
-rw-r--r--ROMFS/px4fmu_common/init.d/4001_quad_x2
-rw-r--r--ROMFS/px4fmu_common/init.d/5001_quad_+2
-rw-r--r--ROMFS/px4fmu_common/init.d/6001_hexa_x2
-rw-r--r--ROMFS/px4fmu_common/init.d/7001_hexa_+2
-rw-r--r--ROMFS/px4fmu_common/init.d/8001_octo_x2
-rw-r--r--ROMFS/px4fmu_common/init.d/9001_octo_+2
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.interface63
-rw-r--r--ROMFS/px4fmu_common/init.d/rcS21
-rw-r--r--ROMFS/px4fmu_common/mixers/AERT.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_AERT.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/AET.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_AET.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/CCPM.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_CCPM.mix)0
-rwxr-xr-xROMFS/px4fmu_common/mixers/FX79.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_FX79.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/Q.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_Q.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/RET.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_RET.mix)0
-rwxr-xr-xROMFS/px4fmu_common/mixers/Viper.main.mix (renamed from ROMFS/px4fmu_common/mixers/Viper.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/X5.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_X5.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/caipirinha_vtol.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_caipirinha_vtol.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/delta.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_delta.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/easystar.main.mix (renamed from ROMFS/px4fmu_common/mixers/easystar.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/firefly6.aux.mix10
-rw-r--r--ROMFS/px4fmu_common/mixers/firefly6.main.mix4
-rw-r--r--ROMFS/px4fmu_common/mixers/hexa_+.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_hexa_+.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/hexa_cox.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_hexa_cox.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/hexa_x.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_hexa_x.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/octo_+.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_octo_+.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/octo_cox.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_octo_cox.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/octo_x.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_octo_x.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/phantom.main.mix (renamed from ROMFS/px4fmu_common/mixers/phantom.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/quad_+.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_quad_+.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/quad_v.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_quad_v.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/quad_w.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_quad_w.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/quad_x.main.mix (renamed from ROMFS/px4fmu_common/mixers/FMU_quad_x.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/skywalker.main.mix (renamed from ROMFS/px4fmu_common/mixers/skywalker.mix)0
-rw-r--r--ROMFS/px4fmu_common/mixers/wingwing.main.mix (renamed from ROMFS/px4fmu_common/mixers/wingwing.mix)0
-rw-r--r--src/drivers/px4fmu/fmu.cpp20
-rw-r--r--src/systemcmds/tests/test_mixer.cpp2
-rw-r--r--unittests/conversion_test.cpp2
-rw-r--r--unittests/mixer_test.cpp2
57 files changed, 134 insertions, 54 deletions
diff --git a/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil b/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil
index 4d6d350b8..40b9ed8df 100644
--- a/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil
+++ b/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil
@@ -7,4 +7,4 @@
sh /etc/init.d/rc.fw_defaults
set HIL yes
-set MIXER FMU_AERT
+set MIXER AERT
diff --git a/ROMFS/px4fmu_common/init.d/10015_tbs_discovery b/ROMFS/px4fmu_common/init.d/10015_tbs_discovery
index c1b366de8..2c7c0d68e 100644
--- a/ROMFS/px4fmu_common/init.d/10015_tbs_discovery
+++ b/ROMFS/px4fmu_common/init.d/10015_tbs_discovery
@@ -24,7 +24,7 @@ then
param set MC_YAWRATE_D 0.0
fi
-set MIXER FMU_quad_w
+set MIXER quad_w
set PWM_OUT 1234
set PWM_MIN 1200
diff --git a/ROMFS/px4fmu_common/init.d/10016_3dr_iris b/ROMFS/px4fmu_common/init.d/10016_3dr_iris
index 3879737a8..caa8e28fc 100644
--- a/ROMFS/px4fmu_common/init.d/10016_3dr_iris
+++ b/ROMFS/px4fmu_common/init.d/10016_3dr_iris
@@ -27,7 +27,7 @@ then
param set BAT_C_SCALING 0.0124
fi
-set MIXER FMU_quad_w
+set MIXER quad_w
set PWM_OUT 1234
diff --git a/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d b/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d
index 57f77754c..5e41d6957 100644
--- a/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d
+++ b/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d
@@ -26,7 +26,7 @@ then
param set BAT_N_CELLS 4
fi
-set MIXER FMU_quad_w
+set MIXER quad_w
set PWM_MIN 1210
set PWM_MAX 2100
diff --git a/ROMFS/px4fmu_common/init.d/10018_tbs_endurance b/ROMFS/px4fmu_common/init.d/10018_tbs_endurance
index 668026c61..eeb9b48b2 100644
--- a/ROMFS/px4fmu_common/init.d/10018_tbs_endurance
+++ b/ROMFS/px4fmu_common/init.d/10018_tbs_endurance
@@ -25,7 +25,7 @@ then
param set MC_YAWRATE_D 0.0
fi
-set MIXER FMU_quad_w
+set MIXER quad_w
set PWM_OUTPUTS 1234
set PWM_MIN 1200
diff --git a/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil b/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil
index 1c4f6803b..03b6b30d2 100644
--- a/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil
+++ b/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil
@@ -7,6 +7,6 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_quad_x
+set MIXER quad_x
set HIL yes
diff --git a/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil b/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil
index 0cbdd75be..7e651216d 100644
--- a/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil
+++ b/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil
@@ -7,6 +7,6 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_quad_+
+set MIXER quad_+
-set HIL yes \ No newline at end of file
+set HIL yes
diff --git a/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil b/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil
index fb440d2fc..090920847 100644
--- a/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil
+++ b/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil
@@ -9,4 +9,4 @@ sh /etc/init.d/rc.fw_defaults
set HIL yes
-set MIXER FMU_AERT
+set MIXER AERT
diff --git a/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil b/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil
index f208b692a..15e5cf21d 100644
--- a/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil
+++ b/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil
@@ -35,4 +35,4 @@ fi
set HIL yes
# Set the AERT mixer for HIL (even if the malolo is a flying wing)
-set MIXER FMU_AERT
+set MIXER AERT
diff --git a/ROMFS/px4fmu_common/init.d/11001_hexa_cox b/ROMFS/px4fmu_common/init.d/11001_hexa_cox
index 50f717e3d..0bb8cb52e 100644
--- a/ROMFS/px4fmu_common/init.d/11001_hexa_cox
+++ b/ROMFS/px4fmu_common/init.d/11001_hexa_cox
@@ -7,7 +7,7 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_hexa_cox
+set MIXER hexa_cox
# Need to set all 8 channels
set PWM_OUT 12345678
diff --git a/ROMFS/px4fmu_common/init.d/12001_octo_cox b/ROMFS/px4fmu_common/init.d/12001_octo_cox
index e0a838185..16e86fd5f 100644
--- a/ROMFS/px4fmu_common/init.d/12001_octo_cox
+++ b/ROMFS/px4fmu_common/init.d/12001_octo_cox
@@ -7,6 +7,6 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_octo_cox
+set MIXER octo_cox
set PWM_OUT 12345678
diff --git a/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol b/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol
index 7e9a6d3dc..87b98a02b 100644
--- a/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol
+++ b/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol
@@ -7,7 +7,7 @@
sh /etc/init.d/rc.vtol_defaults
-set MIXER FMU_caipirinha_vtol
+set MIXER caipirinha_vtol
set PWM_OUT 12
set PWM_MAX 2000
diff --git a/ROMFS/px4fmu_common/init.d/13002_firefly6 b/ROMFS/px4fmu_common/init.d/13002_firefly6
new file mode 100644
index 000000000..551a19928
--- /dev/null
+++ b/ROMFS/px4fmu_common/init.d/13002_firefly6
@@ -0,0 +1,14 @@
+#!nsh
+#
+# Generic configuration file for BirdsEyeView Aerobotics FireFly6
+#
+# Roman Bapst <romanbapst@yahoo.de>
+#
+
+sh /etc/init.d/rc.vtol_defaults
+
+set MIXER firefly6
+
+set PWM_OUT 12345678
+param set VT_MOT_COUNT 6
+param set VT_IDLE_PWM_MC 1080
diff --git a/ROMFS/px4fmu_common/init.d/2101_hk_bixler b/ROMFS/px4fmu_common/init.d/2101_hk_bixler
index dcc5db824..05ee57ffa 100644
--- a/ROMFS/px4fmu_common/init.d/2101_hk_bixler
+++ b/ROMFS/px4fmu_common/init.d/2101_hk_bixler
@@ -2,4 +2,4 @@
sh /etc/init.d/rc.fw_defaults
-set MIXER FMU_AERT \ No newline at end of file
+set MIXER AERT
diff --git a/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800 b/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800
index 9bc0262d8..2433ab4f4 100644
--- a/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800
+++ b/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800
@@ -2,4 +2,4 @@
sh /etc/init.d/rc.fw_defaults
-set MIXER FMU_AET
+set MIXER AET
diff --git a/ROMFS/px4fmu_common/init.d/3030_io_camflyer b/ROMFS/px4fmu_common/init.d/3030_io_camflyer
index fe0269557..188678324 100644
--- a/ROMFS/px4fmu_common/init.d/3030_io_camflyer
+++ b/ROMFS/px4fmu_common/init.d/3030_io_camflyer
@@ -2,7 +2,7 @@
sh /etc/init.d/rc.fw_defaults
-set MIXER FMU_Q
+set MIXER Q
# Provide ESC a constant 1000 us pulse while disarmed
set PWM_OUT 4
set PWM_DISARMED 1000
diff --git a/ROMFS/px4fmu_common/init.d/3032_skywalker_x5 b/ROMFS/px4fmu_common/init.d/3032_skywalker_x5
index 94363bf6a..3d464a4ae 100644
--- a/ROMFS/px4fmu_common/init.d/3032_skywalker_x5
+++ b/ROMFS/px4fmu_common/init.d/3032_skywalker_x5
@@ -28,4 +28,4 @@ then
param set FW_R_RMAX 0
fi
-set MIXER FMU_X5
+set MIXER X5
diff --git a/ROMFS/px4fmu_common/init.d/3034_fx79 b/ROMFS/px4fmu_common/init.d/3034_fx79
index 4a76ba6eb..d46147ede 100644
--- a/ROMFS/px4fmu_common/init.d/3034_fx79
+++ b/ROMFS/px4fmu_common/init.d/3034_fx79
@@ -7,4 +7,4 @@
sh /etc/init.d/rc.fw_defaults
-set MIXER FMU_FX79
+set MIXER FX79
diff --git a/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha b/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha
index 9eafac1c5..9e1c1c170 100644
--- a/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha
+++ b/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha
@@ -31,4 +31,4 @@ then
param set FW_R_RMAX 0
fi
-set MIXER FMU_Q
+set MIXER Q
diff --git a/ROMFS/px4fmu_common/init.d/4001_quad_x b/ROMFS/px4fmu_common/init.d/4001_quad_x
index 4677f9fc3..e0538160f 100644
--- a/ROMFS/px4fmu_common/init.d/4001_quad_x
+++ b/ROMFS/px4fmu_common/init.d/4001_quad_x
@@ -7,6 +7,6 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_quad_x
+set MIXER quad_x
set PWM_OUT 1234
diff --git a/ROMFS/px4fmu_common/init.d/5001_quad_+ b/ROMFS/px4fmu_common/init.d/5001_quad_+
index c78911391..e51f9cf89 100644
--- a/ROMFS/px4fmu_common/init.d/5001_quad_+
+++ b/ROMFS/px4fmu_common/init.d/5001_quad_+
@@ -7,6 +7,6 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_quad_+
+set MIXER quad_+
set PWM_OUT 1234
diff --git a/ROMFS/px4fmu_common/init.d/6001_hexa_x b/ROMFS/px4fmu_common/init.d/6001_hexa_x
index 0df25b11a..7a6dda648 100644
--- a/ROMFS/px4fmu_common/init.d/6001_hexa_x
+++ b/ROMFS/px4fmu_common/init.d/6001_hexa_x
@@ -7,7 +7,7 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_hexa_x
+set MIXER hexa_x
# Need to set all 8 channels
set PWM_OUT 12345678
diff --git a/ROMFS/px4fmu_common/init.d/7001_hexa_+ b/ROMFS/px4fmu_common/init.d/7001_hexa_+
index 16c772ee1..dd9589d61 100644
--- a/ROMFS/px4fmu_common/init.d/7001_hexa_+
+++ b/ROMFS/px4fmu_common/init.d/7001_hexa_+
@@ -7,7 +7,7 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_hexa_+
+set MIXER hexa_+
# Need to set all 8 channels
set PWM_OUT 12345678
diff --git a/ROMFS/px4fmu_common/init.d/8001_octo_x b/ROMFS/px4fmu_common/init.d/8001_octo_x
index bae36737f..7cbb3ddfc 100644
--- a/ROMFS/px4fmu_common/init.d/8001_octo_x
+++ b/ROMFS/px4fmu_common/init.d/8001_octo_x
@@ -7,6 +7,6 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_octo_x
+set MIXER octo_x
set PWM_OUT 12345678
diff --git a/ROMFS/px4fmu_common/init.d/9001_octo_+ b/ROMFS/px4fmu_common/init.d/9001_octo_+
index ca5439f68..5d608d593 100644
--- a/ROMFS/px4fmu_common/init.d/9001_octo_+
+++ b/ROMFS/px4fmu_common/init.d/9001_octo_+
@@ -7,6 +7,6 @@
sh /etc/init.d/rc.mc_defaults
-set MIXER FMU_octo_+
+set MIXER octo_+
set PWM_OUT 12345678
diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface
index bab71be93..4015a911b 100644
--- a/ROMFS/px4fmu_common/init.d/rc.interface
+++ b/ROMFS/px4fmu_common/init.d/rc.interface
@@ -3,20 +3,34 @@
# Script to configure control interface
#
+set SDCARD_MIXERS_PATH /fs/microsd/etc/mixers
+
if [ $MIXER != none -a $MIXER != skip ]
then
#
- # Load mixer
+ # Load main mixer
#
-
- #Use the mixer file from the SD-card if it exists
- if [ -f /fs/microsd/etc/mixers/$MIXER.mix ]
+
+ if [ $MIXER_AUX == none ]
+ then
+ set MIXER_AUX $MIXER.aux
+ fi
+
+ # Use the mixer file from the SD-card if it exists
+ if [ -f $SDCARD_MIXERS_PATH/$MIXER.main.mix ]
then
- set MIXER_FILE /fs/microsd/etc/mixers/$MIXER.mix
+ set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.main.mix
+ # Try out the old convention, for backward compatibility
else
- set MIXER_FILE /etc/mixers/$MIXER.mix
+
+ if [ -f $SDCARD_MIXERS_PATH/$MIXER.mix ]
+ then
+ set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.mix
+ else
+ set MIXER_FILE /etc/mixers/$MIXER.main.mix
+ fi
fi
-
+
if [ $OUTPUT_MODE == mkblctrl ]
then
set OUTPUT_DEV /dev/mkblctrl
@@ -28,7 +42,7 @@ then
then
set OUTPUT_DEV /dev/uavcan/esc
fi
-
+
if mixer load $OUTPUT_DEV $MIXER_FILE
then
echo "[i] Mixer: $MIXER_FILE"
@@ -57,7 +71,7 @@ then
then
pwm rate -c $PWM_OUT -r $PWM_RATE
fi
-
+
#
# Set disarmed, min and max PWM values
#
@@ -80,3 +94,34 @@ then
pwm failsafe -d $OUTPUT_DEV $FAILSAFE
fi
fi
+
+# check if should load secondary mixer
+if [ $MIXER_AUX != none ]
+then
+ #
+ # Load aux mixer
+ #
+
+ set MIXER_AUX_FILE none
+
+ if [ -f $SDCARD_MIXERS_PATH/$MIXER_AUX.mix ]
+ then
+ set MIXER_AUX_FILE $SDCARD_MIXERS_PATH/$MIXER_AUX.mix
+ else
+
+ if [ -f /etc/mixers/$MIXER_AUX.mix ]
+ then
+ set MIXER_AUX_FILE /etc/mixers/$MIXER_AUX.mix
+ fi
+ fi
+
+ if [ $MIXER_AUX_FILE != none -a $FMU_MODE == pwm ]
+ then
+ if fmu mode_pwm
+ then
+ mixer load /dev/pwm_output1 $MIXER_AUX_FILE
+ else
+ tone_alarm $TUNE_ERR
+ fi
+ fi
+fi
diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS
index 26b729aad..31d6a8a2d 100644
--- a/ROMFS/px4fmu_common/init.d/rcS
+++ b/ROMFS/px4fmu_common/init.d/rcS
@@ -116,6 +116,7 @@ then
set HIL no
set VEHICLE_TYPE none
set MIXER none
+ set MIXER_AUX none
set OUTPUT_MODE none
set PWM_OUT none
set PWM_RATE none
@@ -481,7 +482,7 @@ then
if [ $MIXER == none ]
then
# Set default mixer for fixed wing if not defined
- set MIXER FMU_AERT
+ set MIXER AERT
fi
if [ $MAV_TYPE == none ]
@@ -517,27 +518,27 @@ then
if [ $MAV_TYPE == none ]
then
# Use mixer to detect vehicle type
- if [ $MIXER == FMU_quad_x -o $MIXER == FMU_quad_+ ]
+ if [ $MIXER == quad_x -o $MIXER == quad_+ ]
then
set MAV_TYPE 2
fi
- if [ $MIXER == FMU_quad_w ]
+ if [ $MIXER == quad_w ]
then
set MAV_TYPE 2
fi
- if [ $MIXER == FMU_hexa_x -o $MIXER == FMU_hexa_+ ]
+ if [ $MIXER == hexa_x -o $MIXER == hexa_+ ]
then
set MAV_TYPE 13
fi
- if [ $MIXER == FMU_hexa_cox ]
+ if [ $MIXER == hexa_cox ]
then
set MAV_TYPE 13
fi
- if [ $MIXER == FMU_octo_x -o $MIXER == FMU_octo_+ ]
+ if [ $MIXER == octo_x -o $MIXER == octo_+ ]
then
set MAV_TYPE 14
fi
- if [ $MIXER == FMU_octo_cox ]
+ if [ $MIXER == octo_cox ]
then
set MAV_TYPE 14
fi
@@ -576,10 +577,14 @@ then
if [ $MAV_TYPE == none ]
then
# Use mixer to detect vehicle type
- if [ $MIXER == FMU_caipirinha_vtol ]
+ if [ $MIXER == caipirinha_vtol ]
then
set MAV_TYPE 19
fi
+ if [ $MIXER == firefly6_rotors ]
+ then
+ set MAV_TYPE 21
+ fi
fi
# Still no MAV_TYPE found
diff --git a/ROMFS/px4fmu_common/mixers/FMU_AERT.mix b/ROMFS/px4fmu_common/mixers/AERT.main.mix
index 7fed488af..7fed488af 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_AERT.mix
+++ b/ROMFS/px4fmu_common/mixers/AERT.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_AET.mix b/ROMFS/px4fmu_common/mixers/AET.main.mix
index c73cb2a62..c73cb2a62 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_AET.mix
+++ b/ROMFS/px4fmu_common/mixers/AET.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix b/ROMFS/px4fmu_common/mixers/CCPM.main.mix
index 1c45b3e59..1c45b3e59 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix
+++ b/ROMFS/px4fmu_common/mixers/CCPM.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_FX79.mix b/ROMFS/px4fmu_common/mixers/FX79.main.mix
index b8879af9e..b8879af9e 100755
--- a/ROMFS/px4fmu_common/mixers/FMU_FX79.mix
+++ b/ROMFS/px4fmu_common/mixers/FX79.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_Q.mix b/ROMFS/px4fmu_common/mixers/Q.main.mix
index b8ecbc879..b8ecbc879 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_Q.mix
+++ b/ROMFS/px4fmu_common/mixers/Q.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_RET.mix b/ROMFS/px4fmu_common/mixers/RET.main.mix
index f07c34ac8..f07c34ac8 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_RET.mix
+++ b/ROMFS/px4fmu_common/mixers/RET.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/Viper.mix b/ROMFS/px4fmu_common/mixers/Viper.main.mix
index 5aa3828f2..5aa3828f2 100755
--- a/ROMFS/px4fmu_common/mixers/Viper.mix
+++ b/ROMFS/px4fmu_common/mixers/Viper.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_X5.mix b/ROMFS/px4fmu_common/mixers/X5.main.mix
index 80e3bac09..80e3bac09 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_X5.mix
+++ b/ROMFS/px4fmu_common/mixers/X5.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_caipirinha_vtol.mix b/ROMFS/px4fmu_common/mixers/caipirinha_vtol.main.mix
index 5ae0f5588..5ae0f5588 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_caipirinha_vtol.mix
+++ b/ROMFS/px4fmu_common/mixers/caipirinha_vtol.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_delta.mix b/ROMFS/px4fmu_common/mixers/delta.main.mix
index f0aa6650d..f0aa6650d 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_delta.mix
+++ b/ROMFS/px4fmu_common/mixers/delta.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/easystar.mix b/ROMFS/px4fmu_common/mixers/easystar.main.mix
index 0051ffdbb..0051ffdbb 100644
--- a/ROMFS/px4fmu_common/mixers/easystar.mix
+++ b/ROMFS/px4fmu_common/mixers/easystar.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/firefly6.aux.mix b/ROMFS/px4fmu_common/mixers/firefly6.aux.mix
new file mode 100644
index 000000000..9ed6eeed9
--- /dev/null
+++ b/ROMFS/px4fmu_common/mixers/firefly6.aux.mix
@@ -0,0 +1,10 @@
+# mixer for the FireFly6 elevons
+M: 2
+O: 10000 10000 0 -10000 10000
+S: 1 0 7500 7500 0 -10000 10000
+S: 1 1 8000 8000 0 -10000 10000
+
+M: 2
+O: 10000 10000 0 -10000 10000
+S: 1 0 7500 7500 0 -10000 10000
+S: 1 1 -8000 -8000 0 -10000 10000
diff --git a/ROMFS/px4fmu_common/mixers/firefly6.main.mix b/ROMFS/px4fmu_common/mixers/firefly6.main.mix
new file mode 100644
index 000000000..3e1d9d7a3
--- /dev/null
+++ b/ROMFS/px4fmu_common/mixers/firefly6.main.mix
@@ -0,0 +1,4 @@
+# FireFly6 mixer for PX4FMU
+#
+#===========================
+R: 6c 10000 10000 10000 0
diff --git a/ROMFS/px4fmu_common/mixers/FMU_hexa_+.mix b/ROMFS/px4fmu_common/mixers/hexa_+.main.mix
index e608b459f..e608b459f 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_hexa_+.mix
+++ b/ROMFS/px4fmu_common/mixers/hexa_+.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_hexa_cox.mix b/ROMFS/px4fmu_common/mixers/hexa_cox.main.mix
index 497786feb..497786feb 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_hexa_cox.mix
+++ b/ROMFS/px4fmu_common/mixers/hexa_cox.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_hexa_x.mix b/ROMFS/px4fmu_common/mixers/hexa_x.main.mix
index 16e6e22f9..16e6e22f9 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_hexa_x.mix
+++ b/ROMFS/px4fmu_common/mixers/hexa_x.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_octo_+.mix b/ROMFS/px4fmu_common/mixers/octo_+.main.mix
index 397e22086..397e22086 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_octo_+.mix
+++ b/ROMFS/px4fmu_common/mixers/octo_+.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_octo_cox.mix b/ROMFS/px4fmu_common/mixers/octo_cox.main.mix
index f7845450d..f7845450d 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_octo_cox.mix
+++ b/ROMFS/px4fmu_common/mixers/octo_cox.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_octo_x.mix b/ROMFS/px4fmu_common/mixers/octo_x.main.mix
index c9a348aa4..c9a348aa4 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_octo_x.mix
+++ b/ROMFS/px4fmu_common/mixers/octo_x.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/phantom.mix b/ROMFS/px4fmu_common/mixers/phantom.main.mix
index 00c37a16c..00c37a16c 100644
--- a/ROMFS/px4fmu_common/mixers/phantom.mix
+++ b/ROMFS/px4fmu_common/mixers/phantom.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_+.mix b/ROMFS/px4fmu_common/mixers/quad_+.main.mix
index cd9a9cfab..cd9a9cfab 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_quad_+.mix
+++ b/ROMFS/px4fmu_common/mixers/quad_+.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_v.mix b/ROMFS/px4fmu_common/mixers/quad_v.main.mix
index 520aba635..520aba635 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_quad_v.mix
+++ b/ROMFS/px4fmu_common/mixers/quad_v.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_w.mix b/ROMFS/px4fmu_common/mixers/quad_w.main.mix
index 58e6af74b..58e6af74b 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_quad_w.mix
+++ b/ROMFS/px4fmu_common/mixers/quad_w.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_x.mix b/ROMFS/px4fmu_common/mixers/quad_x.main.mix
index fa21c8012..fa21c8012 100644
--- a/ROMFS/px4fmu_common/mixers/FMU_quad_x.mix
+++ b/ROMFS/px4fmu_common/mixers/quad_x.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/skywalker.mix b/ROMFS/px4fmu_common/mixers/skywalker.main.mix
index 04d677e56..04d677e56 100644
--- a/ROMFS/px4fmu_common/mixers/skywalker.mix
+++ b/ROMFS/px4fmu_common/mixers/skywalker.main.mix
diff --git a/ROMFS/px4fmu_common/mixers/wingwing.mix b/ROMFS/px4fmu_common/mixers/wingwing.main.mix
index 08333ba5c..08333ba5c 100644
--- a/ROMFS/px4fmu_common/mixers/wingwing.mix
+++ b/ROMFS/px4fmu_common/mixers/wingwing.main.mix
diff --git a/src/drivers/px4fmu/fmu.cpp b/src/drivers/px4fmu/fmu.cpp
index 3d3e1b0eb..436672040 100644
--- a/src/drivers/px4fmu/fmu.cpp
+++ b/src/drivers/px4fmu/fmu.cpp
@@ -128,7 +128,7 @@ private:
orb_advert_t _outputs_pub;
actuator_armed_s _armed;
unsigned _num_outputs;
- bool _primary_pwm_device;
+ int _class_instance;
volatile bool _task_should_exit;
bool _servo_armed;
@@ -141,6 +141,7 @@ private:
int _control_subs[NUM_ACTUATOR_CONTROL_GROUPS];
actuator_controls_s _controls[NUM_ACTUATOR_CONTROL_GROUPS];
orb_id_t _control_topics[NUM_ACTUATOR_CONTROL_GROUPS];
+ orb_id_t _actuator_output_topic;
pollfd _poll_fds[NUM_ACTUATOR_CONTROL_GROUPS];
unsigned _poll_fds_num;
@@ -247,7 +248,7 @@ PX4FMU::PX4FMU() :
_outputs_pub(-1),
_armed{},
_num_outputs(0),
- _primary_pwm_device(false),
+ _class_instance(0),
_task_should_exit(false),
_servo_armed(false),
_pwm_on(false),
@@ -255,6 +256,7 @@ PX4FMU::PX4FMU() :
_groups_required(0),
_groups_subscribed(0),
_control_subs{-1},
+ _actuator_output_topic(nullptr),
_poll_fds_num(0),
_pwm_limit{},
_failsafe_pwm{0},
@@ -300,8 +302,7 @@ PX4FMU::~PX4FMU()
}
/* clean up the alternate device node */
- if (_primary_pwm_device)
- unregister_driver(PWM_OUTPUT_DEVICE_PATH);
+ unregister_class_devname(PWM_OUTPUT_DEVICE_PATH, _class_instance);
g_fmu = nullptr;
}
@@ -320,13 +321,14 @@ PX4FMU::init()
return ret;
/* try to claim the generic PWM output device node as well - it's OK if we fail at this */
- ret = register_driver(PWM_OUTPUT_DEVICE_PATH, &fops, 0666, (void *)this);
+ _class_instance = register_class_devname(PWM_OUTPUT_DEVICE_PATH);
- if (ret == OK) {
+ if (_class_instance == CLASS_DEVICE_PRIMARY) {
log("default PWM output device");
- _primary_pwm_device = true;
}
+ _actuator_output_topic = ORB_ID_DOUBLE(actuator_outputs_, _class_instance);
+
/* reset GPIOs */
gpio_reset();
@@ -677,10 +679,10 @@ PX4FMU::task_main()
/* publish mixed control outputs */
if (_outputs_pub < 0) {
- _outputs_pub = orb_advertise(_primary_pwm_device ? ORB_ID_VEHICLE_CONTROLS : ORB_ID(actuator_outputs_1), &outputs);
+ _outputs_pub = orb_advertise(_actuator_output_topic, &outputs);
} else {
- orb_publish(_primary_pwm_device ? ORB_ID_VEHICLE_CONTROLS : ORB_ID(actuator_outputs_1), _outputs_pub, &outputs);
+ orb_publish(_actuator_output_topic, _outputs_pub, &outputs);
}
}
}
diff --git a/src/systemcmds/tests/test_mixer.cpp b/src/systemcmds/tests/test_mixer.cpp
index 8ab8fa2d6..2896a8e40 100644
--- a/src/systemcmds/tests/test_mixer.cpp
+++ b/src/systemcmds/tests/test_mixer.cpp
@@ -343,7 +343,7 @@ int test_mixer(int argc, char *argv[])
if (argc > 2)
filename = argv[2];
else
- filename = "/etc/mixers/FMU_quad_w.mix";
+ filename = "/etc/mixers/quad_w.main.mix";
load_mixer_file(filename, &buf[0], sizeof(buf));
loaded = strlen(buf);
diff --git a/unittests/conversion_test.cpp b/unittests/conversion_test.cpp
index 99e1c7721..12d2213e2 100644
--- a/unittests/conversion_test.cpp
+++ b/unittests/conversion_test.cpp
@@ -4,6 +4,6 @@
#include "gtest/gtest.h"
-TEST(ConversionTest, FMU_quad_w) {
+TEST(ConversionTest, quad_w_main) {
ASSERT_EQ(test_conv(0, NULL), 0) << "Conversion test failed";
}
diff --git a/unittests/mixer_test.cpp b/unittests/mixer_test.cpp
index fd3ece7f8..1271dab5e 100644
--- a/unittests/mixer_test.cpp
+++ b/unittests/mixer_test.cpp
@@ -6,6 +6,6 @@
TEST(MixerTest, Mixer) {
- char* args[] = {"empty", "../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"};
+ char* args[] = {"empty", "../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../ROMFS/px4fmu_common/mixers/quad_w.main.mix"};
ASSERT_EQ(test_mixer(3, args), 0) << "IO_pass.mix failed";
}