Micro tuning techniques - different than larger quads


Thank you for taking the time to help.
The quad is flying great and I now know how to tune a bit more.
I will be making a foam canopy for it today to try and shave some weight.


Sounds great and no problem, you could always vacuum for that foam plug :wink:


Yes, tuning with a weak motor is just plain insane in the membrane… will drive ya nuts! Tune on fresh motors! (Sucks when u install a fresh set and crash damaging a motor after a battery or two because of a tuning error. :frowning: )


Hi tuning professionals :wink:
I think all my machines could need a bit of tuning, unfortunately I really dislike tuning.

Most recent problem:

“inverted stretched X”, I just took the PIDs over from my half-good Bobo tune, since the thing has the same motors/prop/FC/ESC combo and size/weight is very similar. Seemingly, that was a rather bad idea - feels like I have way to high D and the machine just feels (a little) wrong in the air (it flies reasonably, but I think the shape of the frame really asks for an asymmetric tune). Any recommendations on how to “compensate” the shape of the frame? I usually use the same PID values on pitch and roll, but that doesn’t work too well here.

I really would like to not tune my quads because that’s the most boring and tedious thing ever. :smiley:


Start with this:
That way you can use the mmix feature to take frame geometry completely out of the equation. In other words … you tune it as if it were a perfect x, and the mixer makes the correct calculated adjustment for the geometry. I have used it in the past and and the difference it makes is noticeable especially in dead cat style frames. Maybe it will help us out and it certainly can’t hurt!

I am curious as to what you mean by the feel of way too high D. I have experienced a “soft feeling” before when pushing D up but these days you usually run into noise issues causing more erratic behaviors (twitchyness, chirping motors, randomly bumpy ride for no reason, or tendency to run away/fly away that shows as excessive floatyness at first).

Share your pids, build weight, and prop specifics. Hopefully all we have to do is correct for the geometry … but is could still need to go up or down a little depending on which axis that mmix feature adjusts the tune to.


I second the mixcalc above, sorted out tuning on my lb97 frame which is wide deadcat style. Get the mix right and tune as normal.


Thanks guys, just flashed a fresh betaflight build (latest git with some minor changes I like to have) and added the mmix using the following constraints for mixcalc:

2 4 745
1 3 665
1 2 528
3 4 528
1 4 880
2 3 880
2 4 h
1 3 h

Changed some little things, more testing tomorrow :slight_smile:

Custom mix:

mixer custom
mmix reset
mmix 0 1 -0.893 0.707 -1
mmix 1 1 -1 -0.707 1
mmix 2 1 0.893 0.707 1
mmix 3 1 1 -0.707 -1

I’ll play a bit around the next days and see what I can come up with.
Didn’t really notice that the ELF frame is a deadcat frame before measuring.

EDIT II: Significantly better, was a bit windy today and needs some further tuning - current complete diff:

# Betaflight / SPRACINGF3EVO 3.2.0 May 31 2017 / 23:20:23 (270817a)
mixer CUSTOM
mmix 0  1.000 -0.893  0.707 -1.000
mmix 1  1.000 -1.000 -0.707  1.000
mmix 2  1.000  0.893  0.707  1.000
mmix 3  1.000  1.000 -0.707 -1.000

feature -RX_PPM
feature -TELEMETRY
feature -RSSI_ADC
feature VBAT
feature RX_SERIAL
feature AIRMODE
beeper -ARMING
beeper -GPS_STATUS
beeper -READY_BEEP
map TAER1234
serial 2 64 115200 57600 0 115200
aux 0 0 0 1500 2100
aux 1 13 0 1400 1500
rxfail 0 h
rxfail 1 h
rxfail 2 h
rxfail 3 h
rxfail 7 s 1000
set acc_hardware = NONE
set min_check = 1000
set max_check = 2000
set rssi_channel = 16
set max_aux_channels = 4
set serialrx_provider = SBUS
set blackbox_device = SERIAL
set min_throttle = 1060
set min_command = 970
set use_unsynced_pwm = ON
set motor_pwm_protocol = MULTISHOT
set motor_pwm_rate = 16000
set vbat_min_cell_voltage = 32
set vbat_warning_cell_voltage = 34
set yaw_motors_reversed = ON
set pid_process_denom = 1
profile 0

set dterm_lowpass_type = PT1
set p_pitch = 60
set d_pitch = 85
set p_roll = 60
set d_roll = 85
set p_yaw = 90
rateprofile 0

set rc_rate = 130
set rc_rate_yaw = 180
set rc_expo = 25
set rc_expo_yaw = 10
set roll_srate = 75
set pitch_srate = 75


Custom motor mixes are bogus.

It’s been discussed in the Betaflight thread ad nausem. I think QuadMcFly had a really good post on why it was unnecessary/undesirable.

On my tunes:

P on Pitch is always higher than Roll. Pitch you want to be finely controlled (racing requires good altitude control). So P can be higher since you don’t stick bang pitch like you do Roll. You can also run higher I on pitch as well. When flying low some extra I will help keep you out of the dirt. I fly way more I than defaults.

Roll you might want a little loose, to avoid bounceback on rolls and smooth out your flight in general. High P on Roll feels nervous and looks nervous in the camera. Seeing the horizon oscillate is jarring. Less I than Pitch because you want snappy roll control no windup (also a cause of bouceback). You are always “riding” roll anyway… you just need it to hold angle and not much else.

Yaw, like Pitch, except moreso. More P more I.

Add D to control prop-wash and related oscillations. Usually I give her all she’ll suffer… at least until the motors get hot or the feel gets worse.


I agree with all of that except the custom motor mixes being bogus… for the sake of conversation I will share some experiences with that. I have built two deadcat style frames where the rear motors are closer in than the front motors. On yaw it seems to be the most obvious … When you input a command - the pid controller initially sends the same signal to spool up 2 opposing motors and down the other two. Because of the shorter moment of the rear arms vs the front ones … There is an uneven application of torque about the center point of the frame. Now this is only for a brief moment as the pid controller catches the error and corrects for it - but I have seen arms dip and be caught back on level. It is much more obvious on larger frames. You can see it happen. When I built a 3" dead cat - I could no longer see it - but something didn’t feel right till I input the mix based on the geometry. If it were just a stretched X or inverted stretched X … I would say you can tune around it. But not with deadcat. The way I think about it, every motor command to the rear motors is initially off and has to be corrected for. Now maybe it’s just my imagination and that all happens fast enough that I shouldn’t notice it because that’s what is already happening anyway … but I’ve felt it work for me and seen larger deadcats stop dropping an arm on yaw at the initial moment of stick input with the mix.

I’d love to hear your take on that, cause that’s just the explanation I worked out in my head to match my experiences … not based on looking at how the code or equations work. I should really look at that - but maybe then I’d just agree and we’d have nothing to talk about. Hahaha :slight_smile:


I don’t think you can generally say motor mixes are bogus (and vice versa) - this is implementation dependent. But I have never seen custom motor mixes causing any harm (unless you got the mix wrong). Any numbers on the overall impact? In my case - a clear advantage is that I tend to tune symmetric first - mmix helped with that.


I run 8k/8k minimum and for much of the last year at 32/32, and maybe thats why I have not seen asymmetric flight effects due to frame layout.

Motor mixes certainly have some effect. But what or how I don’t know well enough to predict which limits it’s effectiveness for tuning purposes for me.


From what I’ve seen you mostly fly X / elongated X frames (and similar things) - I mostly fly dead-cat configs or other strange shapes. 8/8 fixes some things already - unfortunately I don’t have any FC that runs 32/32 properly (i.e. F4+ with appropriate gyro - we are working on that).

Nevertheless, compared to what we had 2 years ago, our machines are all flying crazy good already. :smiley:


So I’ve finally caught up on reading this thread, and I’m curious about this motor mix calculation thing.
I love the dead cat style, ie my q100 and more recently the bee90.
I’m not a good enough pilot for most of the fine tuning here but I am taking note🙂
I mostly read something that I experience and try the fix and Bam, it’s better.
How would one implement such a mix calculation on a cat frame?
(The dead part comes after I meet that tree):stuck_out_tongue_winking_eye:


There is a demonstration video on that link. It explains exactly how you need to use it.

I’ve only used it on f1 boards and that may be why I had such a good experience with it - f1 can hang in the end (in my opinion and experience) but it needs all the help it can get and has has to be tuned dead nuts. My scisky f1 is still one of the best flying quads in my fleet. I can’t find a single thing to complain about in how it flies other than all the weight I’ve gained jumpering lost traces, adding a laz bypass, where I’ve cooked the board from changing over 30 motors now, or how it seems to stick to trees like velcro. It was my first fc getting into micros and my tiny soldering skills have improved a lot since then. Haha. Honestly surprised the board has survived me!


Thanks dude, looks good
…And another bookmark added to my library :slightly_smiling_face:


Here’s the link I was mentioning regarding custom motor mixes.

TL;DR: It’s more complicated than it looks, the what you are trying to compensate for is non-linear but the mix is only linear in effect, and how that mix actually changes the PID calculations is limited in nature and does not work the way you think it might.


I’m going to save that read for later…
I think your point is minuscule calculations on tiny tiny quads w very compensated PID loops are negligible.


Let me quote this from that article:

If you want to see your P gains on roll and pitch closer together, using the custom motor mix to get them that way isn’t going to hurt anything because of the way they calculated, but it also isn’t likely to have any major impact on the overall handling of the quad. In the end that is essentially all that a custom motor mix will accomplish, […]

Which is exactly what I like to have the mix for.


Seems a bit pointless. Why would I care that P is more on one axis vs the other?


Going to read this whole thread, and the answer is probably in there, but I’m a bit vexed on my X100 build.

It’s feeling pretty good in flight…and I’m only getting a little prop-wash in quick yaw turns, and on recovery a little “wobble”…but when I do flips it feels VERY bouncy.

I’ll admit, I’m used to tuning the Tiny Whoop and then brushless quads, but my usual methods aren’t tuning this out. I’m thinking it might be something in Yaw. Default of 70/45 was slow and mushy, and now at 90/55 it feels better, but was doing the wobble either way.


Will probably just do another base tune and really push P in the beginning…I have a feeling the “Stingy” method or the “Skitzo” method is harder to transfer over to these builds.