Understanding motor numbering

I have read the post “Demystifying Multirotor Motor Numbering” but I am still having problems.

I have selected the X frame for my drone, the default frame. The motor order is 1,4,2,3 going CW from the top right. Is there a setting that I can set to let Ardupilot know what motor is 1, what is 2, and etc.

Obviously, pitch down should activate motors 2 and 4, Roll right should activate motors 2 and 3. Now to get AP to do this.

I have tried many combinations of RCMAP and none have worked as yet.

I also have not got the Motor test to work and not sure how to use it.

Sure, the Servox_function assignments.

RC mapping has nothing to do with this. Set it back to default. That’s for inputs, you are working on outputs.

Mandatory to use it. What is the symptom of it not working? In Mission Planner what is the error message in the Messages screen?
You could post your parameter file.

1 Like

Attached is a sample of the Servo1 function. I do not see how this maps Motor #1 to the top right position of the frame.

I would have thought there was some sort of method where each motor could be spun and then have tht motor mapped to the “top right” position, then go to the next motor and etc.

As to the motor test. I push the buttons and nothing happens. Do I have to ARM the motors first?

That happens when you connect the Motor 1 (33) output from the FC, thru the ESC, to the Front Right Motor of a Quad X.

Yea, it’s called Motor Test.

So what’s the answer to the question I asked about the message presented in Mission Planner? No arming rqd.

“That happens when you connect the Motor 1 output from the FC, thru the ESC, to the Front Right Motor of a Quad X.”

Are you saying that I have to basically rewire my drone? This does not seem reasonable. In my case, since I am soldering to the pads, this would be easy but if a person had for example a FC/ESC stack, then the connecting cable would have to be rewired for every frame configuration and changing the wires in those small 1mm connectors would be very problematic.

As I recall (I am on a different computer) when I push the “Test Motor A” button nothing at all happens. I thought this might be where each motor is spun and then the motor number is inserted.

Never is that required. You only need to re-factor the servo outputs.

Each motor is spun and then you figure out of it’s correct for the Frame Type. Then correct it with either a Frame type that matches or just re-factor the servo outputs. These are just parameter changes.

re-factor the outputs???

OK, this is how it should work. I have selected the default frame type, X
the motors are numbered…

3 ^ 1 ( ^ = forward direction.)

2 4

Somehow, when I push my right stick forward (pitch down) then motors 2 and 4 should spin.

So we have

Function motors

Roll 32/14
Pitch 24/13
Throttle 1234
Yaw 12/34

and there must be a mapping between 1,2,3,4 and A,B,C, D???

Sorry, I have to conclude that I cannot help you further.
Good luck with your build.

Don’t over think this.

What servo or output port is the motor in the front right position connected to? Set that port to 33. So if that is servo 2 then SERVO2_FUNCTION,33.

What servo or output port is the motor in the back right position connected to? Set that port to 36. So if that is servo 1 then SERVO1_FUNCTION,36

What servo or output is the motor in the back left postion… SERVOx_FUNCTION,34

What servo or output is the motor in the front left position … SERVOx_FUNCTION,35

No, you don’t need to resolder or rewire anything. You do not need to remap any parameter beginning with “RC.”

First, get the motor test to work within Mission Planner. If this isn’t working, you have bigger problems to solve than deciphering the numbering.

You must have your ESC wired correctly with the signal wires connected to servo output pins. Assign those pins the functions Motor1 through Motor4.

You must have the outputs configured to provide proper signal (DSHOT or PWM, usually).

You must have the ESC powered and any hardware safety button either depressed or disabled in parameters.

And then the motors should spin when executing the motor test.

After that, you simply change the SERVOx_FUNCTION parameters to the correct Motor1-Motor4 outputs based on test results (or follow Allister’s advice above to get it right the first time).

Allister,Yuri This is what I am looking for. I did wire my FC to esc connections 1 to1, 2 to 2, etc.
I will get the motor test to run, I hope, and then do thes settings as you both say. Thanks But I will probably have futher questions.

Not sure what I just said that wasn’t explained here, which I think is the topic to which you referred initially:

Demystifying Multirotor Motor Numbering - ArduCopter - ArduPilot Discourse

Oh, where in the documention is this info documented???

ESCs and Motors — Copter documentation (ardupilot.org)

Connect ESCs and Motors — Copter documentation (ardupilot.org)


Hey, thanks I just made these changes and they WORK! However, the pitch is reversed. There must be a button to reverse the pitch channel.

That’s an annoying default. Reverse it on the radio calibration page.

I did not see where the numbers 33,34,35,and 36 appeared. Does this happen in the motor test?

Those are the discrete values assigned to the function parameters when you use the servo setup page. Don’t worry about it.

Actually, I spoke to soon. It seems that the pitch and roll are switched. Maybe I can correct this with the RCMAP options by switching 1 and 2