Naze32 custom motor mix for V-Type frame

I have the Naze32 board on my new SG Adventure Mini Quad. It is a custom V-Type frame like the TBS Discovery and the Dead Cat frame. The Quad flew great with the Naze32 as well with the HK Pilot32 with the standard QuadX configuration, but I wanted it to be done as it should be. I have done the measurements in CAD, but also printed it on A4 so you can check it too.

What we need for the Naze32 custom motor mix are the distance from every motor shaft to the Roll and Pitch axes.


Connect the Naze32 to the Baseflight configurator and go to the CLI-tab. Type “cmix” in the command line to load the custom mix. We need to define the Throttle, Roll, Pitch and Yaw for every motor. This should be for Motor 1 (Rear Right):

cmix 1 1 –1 1.3 –1

What this mean: cmix 1 defines the motor number. Then we have the value for the Throttle, also 1. The next two values a for the Roll and Pitch and this is how get them: Take the dimension from motor shaft 1 to the Roll and Pitch axe and divide the values by the distance to the Roll axe (that way we make every other value a factor of that one):

Update 23.09.2014: You can also take the biggest distance value from any motor of the four motors and use it, as factor for the other ones (divide all others by it); then all other values will be smaller then “1”. This is not relevant for the Naze32 board, but for the KK2.0 or KK2.1.5 motor mix, where no values bigger than 1.27 are allowed.

I also wrote a more detailed how-to of the “problem” with different frame types.

Roll: 83 / 83 = 1 (it should be negative for the motor 1 and motor 2, because these are on the right of Roll)

Pitch: 108 / 83 = 1.3

The last one for the Yaw axe should be nominal equal of the Roll value. Yaw value of every motor could be 1.000. It is negative because the motor 1 spins clockwise.

Motor 2 (Front Right):

cmix 2 1 -1.28 -1 1.28

Distance to the Roll and Pitch axes are: 106,9mm and 83mm. Divide both values again by the value of the Roll distance of Motor 1, so by 83. (It is just a coincidence that my motor1 roll distance and motor 2 pitch distance are both 83mm).

Roll: 106,9 / 83 = 1.28

Pitch: 83 / 83 = 1

Yaw is equal to Roll, but positive because the motor 2 spins counterclockwise.

The values for Motor 3 and Motor 4 are nominal the same. So we have for motor 3 and motor 4:

cmix 3 1 1 1.3 1

cmix 4 1 1.28 -1 -1.28

The sanity check should be “OK OK OK”. I didn’t get this message, but it is not a problem. Although the Mini Quad flew even better with the new settings.

Leave a comment ?


  1. I’m totally confused…
    The other page that you link “how- to of the “problem” with different frame types” value are difference with this page…

    The value are:
    Motor 1:
    Pitch 108/108 = 1 (For the KK2.0 or KK2.1.5 Motor Mixer this means 100).
    Roll 83/108 = 0.768 (KK boards 77)

    Motor 2:
    Pitch 83/108 = 0.768
    Roll 106,9/108 = 0,989

    • That is right. This is because in the other thread I took the longest arm distance possible, so the correlation between that one and all other distances is below 1. This is needed for the KK, as the board only accept values lower then 1 (for the settings menu this means 100). For the Naze32 having values bigger than 1 is not a problem, as made in this thread. But there is no difference. The single important value is actually the ratio between all distances. Hope it is more clear now 🙂

      • Owhhh .. Thanks for your fast reply…
        Currently I’m using tbs discovery fc naze32…
        Quadx mixture…
        Thanks to you, now I know how to create custom mix…

      • Wouldn’t you use the largest number for pitch/roll of each motor as your common denominator for that motor? So instead of dividing 106.9 by 108, you divide 106.9/106.9? And 83/106.9 for that motor? It doesn’t make much sense to use 108 for all motors when some don’t have a distance of 108.

        • On the day I posted the article I used 83 as my constant denominator. But doing this I got numbers smaller then “1”, and that would be a problem for boards like the KK2.0 and KK2.1.5. So then updated the article and got 108 as my constant. You use that one for all motors for the following reason: it is basically your “X-constant” and all other values are relative to it.

  2. Hi.
    Thank you very much for explanation.
    I have one doubt…
    I want to make an OCTO X micro and I can´t find the way to define the second group of motors; the bottom group.

    Can you help me about this?

    • I am not really sure about this, but you can try this: in the CLI-Tab to define the THR, Roll, Pitch, Yaw for motor 5,6,7 and 8 like for the first four motors: “cmix 5 THR-Value Roll-Value Pitch-Value Yaw-Value” and so on cmix 6 … cmix 7 and cmix 8. Hope this will help.

  3. Ok. Aparently, this is the solution, because the situation of the next five motors are the same than the first four. And the parameter that define the difference between top motor and bottom motor is defined by YAW value (negative or positive).

    So, thank you very much, sgeorgiev. In a few days i´ll try to mount the BlackOut micro with 8 motors…


  4. Thanks for the explanation. Can you help me with calculation of C. Mix for this Spider Hex design. There are some dimension in the assembly manual, but not enough I’m thinking. It fly’s nice with Naze32 Acro and base hex mix, but I would like to get the match right. Thanks in advance. Lee

    • I will check it later today 😉

    • Hi again, Lee. I have checked the manual, but as you mentioned it, the data is not enough for the cmix. We basically need the distance from every arm to the pitch and roll axis. And this info is not presented. It also depends on, where the FC is mounted. It would be great if the dev of the frame provides this information in the future. Ask them to export this data from the CAD-files.