# How can I set up appropriate motor mixing for a frame of a custom layout?

First, whilst this post is mainly about how to program in Betaflight, it also involves ESC layout so I feel it is appropriate for this Stack Exchange.

For example, I intend to create a frame that is in a dead cat format with the front two arms spread further apart, but in the form of a hexacopter. I assume this process will be the same for copters with other numbers of motors.

I also need to configure the six ESCs for the motors, however I am using an F7 flight controller (in this case an Omnibus F7 Pro) and as such only have 4 motor outputs.

I know that I need to map 2 motor outputs to timer-equipped pads, however once I have done that I need to add a custom motor mix for the frame I have designed, using the two motors I have remapped. How can this be done using Betaflight?

• I think this question is too broad. What I hear is how can I configure a multirotor with X motors on any given F4 or F7 FC board. I think one or both of those would need to be specified further.
– ifconfig
May 5 '20 at 23:50
• @ifconfig I’ll edit it to make it more specific May 5 '20 at 23:51
• I meant specifying which FC you're using. Instructions will likely differ based on what pads yours has broken out and where.
– ifconfig
May 5 '20 at 23:59
• @ifconfig I’ve edited it to make it more specific May 6 '20 at 0:01
• Oh, how wrong I was. After looking into it, it appears that this can actually be agnostic of motor quantity and FC board as long as you are only asking about the mixer setup. You can remove your edits if you'd like. I apologize for the confusion.
– ifconfig
May 6 '20 at 0:15

Once you've performed the necessary resource remapping commands to assign the extra motor functions (e.g. M5, and M6) to alternative pads on your flight controller, you can then set up custom mixer rules to tell Betaflight what to do with the additional motors.

However, if one of the predefined mixer types works for your build, you can just load it using the Betaflight Configurator or via the CLI by sending the command mmix load <name> where <name> is one of the mixer types from the link above.

Otherwise, you'll need to configure your own mixer rules. Following the instructions from the Betaflight Wiki, you'll need to use the CLI in the Betaflight Configurator to formulate and send mmix commands.

1. First, you'll need to send mixer custom to enable custom mixing.
2. Send the mmix reset command to remove any existing mixer rules.
3. For each of the motors you need (starting with M1 and ending with M6 for your hexacopter) send an mmix command with the following space-separated parameters:
• Motor number for the rule (in the range 0-5, so subtract one from the M motor port number).
• Number from 0.0 to 1.0 indicating how much throttle should be mixed into this motor. If this motor shouldn't be affected by the throttle, enter 0.0.
• Number from -1.0 to 1.0 indicating how much roll should be mixed into this motor, where positive numbers mean that a roll command over 1500µs should increase the motor's power and vice versa. If this motor shouldn't be affected by the roll axis, enter 0.0.
• Number from -1.0 to 1.0 indicating how much pitch should be mixed into this motor. This value obeys the same conventions as the roll axis parameter.
• Number from -1.0 to 1.0 indicating how much yaw should be mixed into this motor. This value obeys the same conventions as the roll axis parameter.
• An example mmix command is: mmix 0 1.0 0.0 -1.0 -1.0
4. Remember to send the save command to save your new mixer configuration.

This is all quite confusing, so here's an example from the same Betaflight Wiki page showing what the mixer commands would be like to use the M1, M2, M3, and M5 ports if te M4 port were broken on your flight controller.

mixer custom
mmix reset
mmix 0 1.0, -1.0, 1.0, -1.0
mmix 1 1.0, -1.0, -1.0,  1.0
mmix 2 1.0, 1.0, 1.0, 1.0
mmix 3 1.0, 0.0, 0.0, 0.0
mmix 4 1.0, 1.0, -1.0, -1.0
save

• This is an excellent, explanation, thank you. May 6 '20 at 10:11
• No problem, @DronesAndWhatnot ! Sorry again about the confusion on the above question.
– ifconfig
May 6 '20 at 16:23
• no worries, glad we got it cleared up :) May 6 '20 at 22:11