Servo/Motor Assignment Issue

I am using mavproxy to connect to my mRo X2.1 flight controller on a HEXA X frame via a linux machine. From mavproxy, I ran “motortest 1 0 10 1” to see which motor it understands as “motor 1”. When I run this the motor labeled 4 in this diagram turns. Similarly, the following motors turn when I run the following commands:

“motortest 1” → 4
“motortest 2” → 5
“motortest 3” → 6
“motortest 4” → 1
“motortest 5” → 3
“motortest 6” → 2

So I tried setting the inverse in SERVOX_FUNCTION parameters without luck. Eventually i stumbled on the following settings which seem to work, but i have no idea why. The following settings seem to work in that running motortest x spins the motor labeled with that number in the diagram linked to above:

SERVO1_FUNCTION: 2
SERVO2_FUNCTION: 4
SERVO3_FUNCTION: 1
SERVO4_FUNCTION: 3
SERVO5_FUNCTION: 6
SERVO6_FUNCTION: 5

I have checked the wiring multiple times between my flight controller and my motors and they seem to be correct.

I would like to figure out why the above SERVOX_FUNCTION parameters work, but more importantly, Is the motortest experiment I ran the correct way to test this?

1 Like

The numbering on the motor test does not have parity to the motor numbers. I dont know why, but it is explained here:

https://ardupilot.org/copter/docs/connect-escs-and-motors.html#checking-the-motor-numbering-with-the-mission-planner-motor-test

Thank you, it turns out this was the confusion. In the mission planner, labels were changed a few years ago from “motor 1” to “motor A” which is more clear. I was using mavproxy though which still uses numbers and even calls the input value motornum:

motortest
GUIDED> Usage: motortest motornum type(0=percent, 1=PWM, 2=RC-passthru) value timeout(s) <count>

After taking this into account, I was able to get everything set up properly. Thank you

How wonderful that everything is clear to you here … But one thing is not clear to me, why on all ABSOLUTELY all flight controllers, the motor inputs are numbered 1-4-6, etc.

Why in all firmware BetaFlight-like motors are also in numbers.
And the most interesting thing is why there are still numbers in Ardu’s documentation but in MP while this is such a cool feature as Letters …

And at the same time, the mapping of the motors never matches, on any firmware (I tested 3 different FCs).

I take it this is all done with some kind of supreme intent?

Up questions is rhetorical…

Essentially, for Hexa X, is the QGC piccha correct or not?
HEXA-X-Frames_Motors

And what about mapping motors?