Tag Archives: tbs discovery

Custom frames and flight controllers

This will be a mini how-to about custom frames (like my SG Adventure Mini) and the motor mixer settings for different flight controllers. I already described a bit about the settings on KK2.0, KK2.1.5 or the Naze32.

There are two methods about getting the right numbers for your flight controller. The first one is by using the angles between the arms and the roll and pitch axes. The second one is by getting the distance from every motor to the Roll and Pitch axes. I used the first one for setting the mixer editor on my KK2.0 board about two months ago, because I saw this method in a HobbyKing-video on YouTube.

Although I will use the second one in the future because it is more accurate. Why?

Using the first method we use the angles between the motor arm (or in a bit asymmetric frame the line between the motor-shaft and the center of where the flight controller is mounted) and the roll and pitch axes. Then use the sine(of this angles) = the value we use for our flight controller. This is actually almost the same as method two:

For the angle α, the sine function gives the ratio of the length of the opposite side (the distance from the motor shaft to Roll/Pitch) to the length of the hypotenuse (this is the distance from motor shaft to the center of the flight controller).The controller uses only the ratio between these two sine functions and in that way it knows the ratio between the distances to Roll and Pitch and where the motors in space are.

Using the method with the sine of the angles would be 100% ok, if all 4 arms have the same length and are mounted in the same distance from the flight controller. On my SG Adventure Mini Quad the distance from the front two motors to the FC are 135.3mm and the distance from the rear motors is 136.2mm. That is less a mm. Using the method with the angles would be no problem at all.

To be 1000000000% accurate 🙂 I am using the second method, getting the ratios of every distance to the Roll and Axes by measuring these. How to do this:

Measure all the distance from every motor to the Roll and Pitch axes. Take the biggest nominal value and divide all the distances by it. In that case every distance is a ratio of the biggest one.

In my case this is the distance from Motor 1 (Rear right) to the Pitch = 108mm. Dividing:

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

And so on for the other motors. Note that the motor layout in MultiWii/Naze32 are not the same as in the KK or the APM.

And to show you, that there are (almost) no difference in the calculation methods:

Sine(38) / Sine(52) = 0,782; 38 and 52 are the angles to Pitch and Roll for Motor 2 on my frame.

0.768 / 0.989         = 0,776; This difference is so small, that there is no problem for the FC.

As said both methods work well, but the second one is more accurate when using arms with different length. I hope this “problem” with asymmetric frames, like mine or TBS Discovery, and the right settings is more clear now.

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.

SG Adventure with the KK2.0 board

My new SG Adventure carbon frame was designed to be used for FPV flights and filming with my GoPro Hero 3, so the arms on the front are not on 45 degree, but on 60 degree to the pitch axis. In order to have a stable and good flight, I should change this settings in the Mixer Editor of the KK2.0 board. How do I do this:

As said the front arms are on 60 degree to the pitch axis, and 30 degree to the roll axis (if your frame has other angles of the front arms such the TBS Discovery, just figure out the angles and keep reading). The numbers in the KK2.0 Mixer Editor are sinus of this angles:

Aileron/Roll: sin(30)=0,50 or for the KK2.0 settings 50.

Elevator/Pitch: sin(60)=0,86 or for the KK2.0 settings 86.

These settings should be changed in the Mixer Editor for CH1 and CH2 (front motors), and on CH1 the Aileron should be negative number or “-50”. CH3 and CH4 should not be changed, as the rear arms are on default 45 degree to the pitch and roll axes.

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

DSC_2529 DSC_2530

On Thursday I had the chance to test my SG Adventure QuadCopter with the KK2.0 board and it worked as it should be – stable and responsive. A lot of fun flying in the wild! Here are some pictures of the QuadCopter.


If you liked this article please share it with your friends. Thank you and have a fun!