as a project work at University we are working with an octocopter in coax configuration. One of our tasks is, to switch from Mission Planner and Ardupilot to QGC and PX4. The octocopter worked fine with Ardupilot and Mission Planner. We changed nothing on the hardware side, but with PX4 and QGC we can’t get the motors spinning.
We configured the Pixhawk as shown in the online documentation. It is also possible to test the motors within the motor test menu in QGC, (four of the motors are spinning, when we pull the sliders) but when we arm the copter in manual mode and raise the throttle at the RC nothing happens. There are no error messages in QGC and we are able to arm the octocopter after pressing the safety switch.
As shown in the attached pictures, the Pixhawk receives the right signals from the RC, but no PWM output is given to the motors.
We tried different firmware versions (1.11.1, 1.11 Beta) and airframes - with no success.
Yes we did the ESC calibration, but the problem remains.
Can you confirm, that our motors should start spinning, after arming the copter in manual mode and raise the throttle? We want to be sure, that we did not miss any step, that has to be done before the motors can be started.
@farhang do you have any other idea, what the problem might be?
you are correct, the motors should start spinning as soon as you arm the UAV, or at the very least when you raise the throttle (sometimes they don’t spin at idle but this is usually another problem).
Your actuator Outputs are empty so this would indicate something wrong on the Firmware side and not on your ESC setup (which is usually the case). Could you test by first removing props (they should be off anyway), and then selecting a new airframe via QGC so that it resets everything. For example the Generic Quadrotor X. then after you do the entire sensor calibration test if the motors spin (in this case only the first 4 motors will spin). That would help debug the issue. It could be that the Octocopter is currently broken, or something else.
As you suggested, we selected the Generic Quadrotor X frame and did the entire sensor calibration. We also calibrated the ESCs. But the problem remains. We can still test the motors within the motor test menu in QGC, but when we arm the copter there is no actuator output and the motors are not spinning, even when we raise the throttle.
@bresch how can I test, if the mixer is loaded properly?
Probably it is an easy question, but I am new to PX4/QGC and I don’t know where to find the dmesg output.
We found the solution.
On the SD card a file named “etc” with the following content was stored.
# Generic Quadcopter +
set VEHICLE_TYPE mc
set MIXER FMU_quad_x
# PX4IO PWM output will be used by default
set PWM_OUTPUTS 1234 # Change parameters for the first 4 outputs
set PWM_RATE 400 # Set PWM rate to 400 Hz for better performance
set PWM_DISARMED 900 # Motors should stop at this PWM value
set PWM_MIN 1100 # Motors should spin at low, idle speed at this PWM value
set PWM_MAX 1900 # Motors should spin at max speed at this PWM value
# set outputs for nacelles
set PWM_OUTPUTS 5678
set PWM_RATE 250
set PWM_DISARMED 0
set PWM_MIN 800
set PWM_MAX 2250
I think this is the mixer file @bresch mentioned. Can you confirm this? It seems like this file overwrote the configuration, that we did in QGC. I deleted the file and tested the motors in the Generic Quadrotor X configuration - everything works fine. The next step is, to test the octocopter configuration.
That isn’t exactly a mixer file, but you are right that it is an airframe RC file that overrides part of the default airframe configuration. The file you posted loads a mixer on line 3 (set MIXER FMU_quad_x). If this referenced mixer doesn’t exist, it would cause a problem, which was probably what was happening to you. Another possibility is that it was loading a file called FMU_quad_x.main.mix on the SD card under /etc/mixers, but not sure.
@coder_kalyan thank you for the explaination. There is no other data under /etc/mixers on the SD card, so your first option, that the referenced mixer does not exist, seems to be the reason for the problem.