A LITTLE HISTORY

A lot of the original Project Mockingbird setup is owed to Scott Allyn from the MMW community as he was the first one I am of aware of to try to do this and got a lot of the basics figured out. But Betaflight Angle mode, slow PPM Betaflight FC’s and filtering just wasn’t that great back then, and it’s only really been since 3.2.2 and above that I’ve noticed it’s gotten A LOT better for Whoops. Now Project Mockingbird tries to make all micros fly as good as they can in Acro and Angle modes!



OVERVIEW

This setup is optimized for the stock Emax TinyHawk. It flies pretty good out of the box, but I did a new tune and then applied my latest PMB Angle settings which make you fly in Angle like a champ, has “Juicy Horizon” mode that makes flying freestyle indoors a breeze, and is now using Betaflight 4.0.x



What’s New for Betaflight 4.0 and v4?

  • Complete re-tune for Betaflight 4.0.x

    • This is the first version so it has A LOT of the complex 4.0 settings turned off as they were a pain to tune for micro’s and didn’t enhance it in any way. I will continue to tweak it until it works, but yes, this does fly better than 3.5.7

  • PMB now uses Betaflight 4.0’s “Integrated Yaw” tuning.

    • This feature REALLY makes Angle mode better and feels much more connected than in 3.5.x.

    • If you want to tweak anything with PID’s please read up on Integrated Yaw as it is a completely different beast and VERY I-Term sensitive.

  • Specifically tuned for quad blade props.

    • I don’t see any benefit to using the tri blade props and you can’t turtle with them at all. The quads aren’t that great at turtle mode anyway, but better than no chance at all with tri blade



WHY NO PROPS OUT??

I get this question a lot, so decided to add it to the document.  Being that the TinyHawk is using upside down props I figured it wasn’t needed as the air flow was different...that and I wasn’t getting washout in my tests so I left it.  Feel free to change it if you want.


WHAT ABOUT THE TINYHAWK S?

As soon as I get one, I’ll put something out, but I’m guessing that these 1s settings will be just fine for the S. And to be honest, I’ve never had a micro that did amazing on 1s and 2s, and the specs of the TinyHawk lead me to believe it’s really a 1s performer and a little too “hot” for 2s, but we will see!



WHAT’S SO SPECIAL ABOUT PROJECT MOCKINGBIRD v4 and the TinyHawk?

THE BEST Angle Mode you can find for the TinyHawk, even Josuhua Bardwell says so…

The ability to switch rates from Angle Mode for Racing and Acro Mode for Freestyle


Here’s the secret sauce to Angle Racing for Whoops:
- DIALED in Linear Rates for Angle Mode
- Using the new “Integrated Yaw” in Betaflight 4.0

- A custom use of the FPV_Angle_Mix to turn with YAWTHORITY

- Throttle Boost to keep that power going

- Turning off Airmode for Angle

 

Shout-outs for the TinyHawk v4 version:

The Betaflight Devs - I had a bunch of questions about the new 4.0 features when it comes to micros and the Devs were very nice and helped point me in the right direction.



THE SETUP

Step One - Betaflight config

In this step we are setting up FILTERS, PID’s, MODES and most importantly, RATES and ADJUSTMENTS.  

NOTE:  Please make sure you have “Enable Expert Mode” turned on, otherwise you won’t be able to see the Adjustments tab


CONFIGURATION - SECTION 2

  • Arming - Set to 180 so you can arm at any angle in Angle Mode

  • Camera - Set to 12. This feature usually matches your camera tilt angle but for Angle Racing, having it less than half your camera angle seems about perfect to have more yawthority, but not have it feel too unnatural.  

    • EXPLAINED- For Mockingbird Angle Mode, you don’t want this as strong as your camera angle.  This number correlates with “FPV_Angle_Mix” in in the Modes tab. It mixes pitch and roll into yaw and makes cornering much better once you get used to it.  This is where your “yawthority” comes into play. You will find that you will use yaw more than you are used to instead of pitch and roll. If you start using it your corners will be sharper and flatter so you can keep your speed up.

PID

  • PIDS: Betaflight 4.0 made it so there was a whole re-tune since I-Term is very much boosted. Feedforward is also affected. This will be Profile 2 in Betaflight

ROLL P: 95

PITCH P: 95
YAW P: 95


ROLL I: 25
PITCH I: 25
YAW I: 0

ROLL D: 70
PITCH D: 70

FEEDFORWARD
ROLL: 90
PITCH: 90
YAW: 90



GENERAL PID SETTINGS

This is the overall PID tab for 4.0. You can see the new PID’s, D Min setting, TPA and Integrated Yaw settings

NEW - Angle Strength: 110

  • Horizon Strength: 30

  • NEW - Transition: 80

  • NEW - Angle Limit: 70

Angle Strength and Limit EXPLAINED - These two things control your pitch and roll “feeling” (as well as limiting how far you can tilt).  Instead of RC Rate controlling it, Ethan Bayer found out that it’s actually controlled by these two settings.  There is a relationship between the two. The Limit controls how far you can tilt.  0 stick equals 0 degrees, and 100% stick equals 60 degrees. The Strength controls how much curve of resistance the quad tries to get back to 0 angle.  If you like a “looser” feel with more stick travel, lower Angle Strength and/or increase Angle Limit. I don’t like a lot of stick movement so, these numbers feel right to me.  Some might find an Angle Limit of 65 and Strength of 100-105 is more like the Inductrix with more stick travel but the ability to tilt much further.

Horizon Strength and Transition EXPLAINED - Horizon Strength is different than Angle strength as it uses your Horizon rates for Pitch, Roll, and Yaw, and works in conjunction with Transition on how much influence and how fast it goes from Angle-like flight to Acro Flight.  We will also be using “Horizon Expert Mode” in CLI which works some magic so we can do inverted flight and power loops AND still have some self-correcting help.


A LITTLE MORE ABOUT ANGLE AND HORIZON DIRECTLY FROM BETAFLIGHT
The strength of the auto-leveling correction applied during Angle mode is controlled by the LEVEL "P" PID term which is labeled "Angle", "Strength" in the GUI (prior to version v1.13.0 the parameter level_angle was used). This can be used to tune the auto-leveling strength in Angle mode compared to Horizon mode. The default is 50.

The strength of the auto-leveling correction applied during Horizon mode is set by the LEVEL "I" PID term which is labeled "Horizon", "Strength" in the GUI (prior to version v1.13.0 the parameter level_horizon was used). The default is also 50.

The transition between self-leveling and acro behavior in Horizon mode is controlled by the LEVEL "D" term which is labeled "Horizon", "Transition" in the GUI (prior to version of v1.13.0 the parameter sensitivity_horizon parameter was used) . This sets the percentage of your stick travel that should have self-leveling applied to it, so smaller values cause more of the stick area to fly using only the gyros.

For example, at a setting of "100" for sensitivity horizon, 100% self-leveling strength will be applied at center stick, 50% self-leveling will be applied at 50% stick, and no self-leveling will be applied at 100% stick. If sensitivity is decreased to 75, 100% self-leveling will be applied at center stick, 50% will be applied at 63% stick, and no self-leveling will be applied at 75% stick and onwards.



MORE ABOUT HORIZON EXPERT MODE
This sets the percentage of your stick travel that should have self-leveling applied to it, so smaller values cause more of the stick area to fly using only the gyros. The default is 75%

For example, at a setting of “100” for sensitivity horizon, 100% self-leveling strength will be applied at center stick, 50% self-leveling will be applied at 50% stick, and no self-leveling will be applied at 100% stick. If sensitivity is decreased to 75, 100% self-leveling will be applied at center stick, 50% will be applied at 63% stick, and no self-leveling will be applied at 75% stick and onward. `

So if you’d use transition 25 you’d have:

  • 100% of your horizon strength at center stick

  • 50% of your horizon strength at 12.5% stick

  • No self leveling from upwards of 25% stick

horizon_tilt_effect: Controls the effect the current inclination (tilt) has on self-leveling in the Horizon flight mode. Larger values result in less self-leveling (more “acro”) as the tilt of the vehicle increases. The default value of 75 provides good performance when doing large loops and fast-forward flight. With a value of 0 the strength of the self-leveling would be solely dependent on the stick position.

horizon_tilt_expert_mode OFF|ON: Sets the performance mode for ‘horizon_tilt_effect’

OFF = leveling always active when sticks centered:

This is the “safer” mode because the self-leveling is always active when the sticks are centered. So, when the vehicle is upside down (180 degrees) and the sticks are then centered, the vehicle will immediately be self-leveled to upright and flat. (Note that after this kind of very-fast 180-degree self-leveling, the heading of the vehicle can be unpredictable.)

ON = leveling can be totally off when inverted:

In this mode, the inclination (tilt) of the vehicle can fully “override” the self-leveling. In this mode, when the ‘horizon_tilt_effect’ parameter is set to around 75, and the vehicle is upside down (180 degrees) and the sticks are then centered, the vehicle is not self-leveled. This can be desirable for performing more-acrobatic maneuvers and potentially for 3D-mode flying.

so you could float inverted then catch it back into angle mode and fly through those tight places!


  • Feedforward Transition: .25

    • In older versions this was different, but in 4.0 it plays a nice balance between precision and smoothness on the sticks

  • D Min Gain = 20

    • One of the few D Min settings I applied

  • Absolute Control = ON

    • You need this to run Integrated Yaw

  • VBAT Compensation: ON

    • This changes PID values based on battery power.

  • I Term Relax: RP and Setpoint

  • Anti Gravity Gain: 5

  • Anti Gravity Mode: Smooth

FILTERS

Filters for 4.0 are brand new and basically mimicking what we had in 3.5.7 as it flew amazingly. I will continue to play with the new features and filters in 4.0 to try to come up with filtering that is even better, but so far it’s just as good if not better than 3.5.7.



RATES

We are going to set up 3 different RATE profiles.  One for Acro, one for Angle and one for Horizon With this setup your rates will change when you switch from Acro to Angle.  On my TX Up is Acro, Middle is Horizon, and Down is Angle. I recommend this setup so that it automatically turns on and off Airmode and FPV_Angle_Mix for the appropriate flight mode.

  • Profile 1: Acro is setup more like my bigger quads for Freestyle, and has Rate/Super mixed to my taste, keep yours like you like your Freestyle Whoop.

  • NEW - Profile 2: Horizon is a lot like Acro rates, and will adjust Horizon Strength and Transition

    • My settings displayed below are for “Juicy” indoor Freestyle in Horizon mode.

    • By default, PMB has YAW in Horizon set up like Angle mode, but with some Super to soften it up for Freestyle.  If you find you don’t like it, just put your Acro YAW rates here. I find that since we are mixing “angle mode” with “acro mode” in Horizon, having yaw match my Angle mode gives me more precision in tight places.

  • Profile 3: Angle will only have yaw rates as Pitch and Roll are derived from Angle Strength and Angle Limit

    • I prefer linear rates on yaw in Angle most times, but a good rule of thumb is to use your racing Acro yaw rate and increase it 100 deg/sec by increasing RC Rate and leaving Super as your Acro racing rates.

    • These are the same rates as earlier Mockingbird settings

    • A lot of people like to add 20-30% Expo, but I don’t run any expo.  It’s up to you if you like it.

RATEPROFILE 1 (Acro)

ROLL/PITCH RC RATE: 1

YAW RC RATE: 2.10

ROLL SUPER RATE: .8

PITCH SUPER RATE: .8

YAW SUPER RATE: .25

RATEPROFILE 2 (Horizon)

ROLL/PITCH RC RATE:1.00

YAW RC RATE: 2.10

ROLL SUPER RATE: .8

PITCH SUPER RATE: .8

YAW SUPER RATE: .25


RATEPROFILE 3 (Angle)

ROLL AND PITCH - These are all set as low as possible as Roll and Pitch are controlled by Angle Strength and Angle Limit. Betaflight now limits the lowest you can go to 1.0 instead of zeroing it out to NaN (Not a Number). If you find you are flying in Acro and your rates are super low, it’s probably because it’s not switching from these Angle rates.

RC Rate: 1.0

Super Rate: 1.0

YAW

RC Rate: 2.15

Super Rate: .10

NOTE:  

  • Max Vel may not be exact depending on your “Deadband” settings...just get it close to 962 d/s

  • As mentioned above, these are my settings so if you want to race like I do, then use these, but I’ve had other well known racers say they used their yaw rates from Aco and just increased RC Rate until it’s about 100 d/s above what they usually run for Acro

MODES

AUX 1: ARM

AUX 2: ACRO, ANGLE, HORIZON, FPV ANGLE MIX (on for Angle Mode), and AIRMODE (on for Acro and Horizon)

EXPLAINED- I recommend not using Airmode for Angle Mode.  Turning it off seems to help with crashing and glancing blows and also seems to help with more power as well as cruising low across floors.  That’s why it gets turned off when you select Angle Mode and why you have “Idle Up” (increased min_throttle on the config page).

ADJUSTMENTS

This is where we will set up a rate profile change upon the user switching from Acro to Angle to Horizon.  

EXPLAINED:

So you can run Acro and have higher rates and super, but when you want to be an Angle Racer, when you flip your Aux 2 to Angle, the Adjustments tab will change to Rate Profile 3 and you’ll have the more linear Angle Racing rates.  NOTE, I have my AUX 2 go UP=Acro, MID=Horizon, DWN=Angle so I can have Airmode on for Acro and Horizon, but not Angle. So my Adjustments and Profiles match. Change according to how you have your Mode switch set up.

  • Set AUX 2 to match your range for Angle in your Modes tab

  • Select “Rate Profile Selection” as your option in “then apply”

  • Using “Slot 2” to match the Rate profile of Angle

  • Via Channel AUX 2 - this matches your mode switch


DIFF ALL

Hopefully you can just copy and paste this into your CLI and start flying, but it’s probably best to read and go over the settings above so you can double-check that it all worked.

# DIFF all

# version

# Betaflight / MATEKF411 (MK41) 4.0.2 May 5 2019 / 12:03:05 (56bdc8d26) MSP API: 1.41

# start the command batch

batch start

# reset configuration to default settings

defaults nosave

board_name MATEKF411

manufacturer_id

mcu_id 0051004a3437510335313736

signature

# name

name MKNGHAWK

# resources

# timer

# dma

# mixer

# servo

# servo mix

# feature

feature -SOFTSERIAL

feature -TELEMETRY

feature -AIRMODE

# beeper

beeper -GYRO_CALIBRATED

beeper -RX_LOST

beeper -RX_LOST_LANDING

beeper -DISARMING

beeper -ARMING

beeper -ARMING_GPS_FIX

beeper -BAT_CRIT_LOW

beeper -BAT_LOW

beeper -GPS_STATUS

beeper -RX_SET

beeper -ACC_CALIBRATION

beeper -ACC_CALIBRATION_FAIL

beeper -READY_BEEP

beeper -DISARM_REPEAT

beeper -ARMED

beeper -SYSTEM_INIT

beeper -ON_USB

beeper -BLACKBOX_ERASE

beeper -CRASH_FLIP

beeper -CAM_CONNECTION_OPEN

beeper -CAM_CONNECTION_CLOSE

beeper -RC_SMOOTHING_INIT_FAIL

# beacon

beacon RX_SET

# map

# serial

serial 1 2048 115200 57600 0 115200

# led

# color

# mode_color

# aux

aux 0 0 0 1775 2100 0 0

aux 1 1 1 1700 2100 0 0

aux 2 2 1 1300 1700 0 0

aux 3 28 1 900 1550 0 0

aux 4 30 1 900 2100 0 0

aux 5 35 2 1700 2100 0 0

# adjrange

adjrange 0 1 1 1450 1550 12 1 0 0

# vtx

# rxfail

# display_name

# master

set dyn_notch_width_percent = 0

set dyn_notch_q = 70

set dyn_notch_min_hz = 130

set dyn_lpf_gyro_min_hz = 300

set acc_calibration = -57,7,-84

set baro_hardware = NONE

set min_check = 1007

set max_check = 2000

set rssi_channel = 9

set fpv_mix_degrees = 12

set airmode_start_throttle_percent = 15

set dshot_idle_value = 600

set motor_pwm_protocol = DSHOT600

set bat_capacity = 450

set vbat_min_cell_voltage = 290

set vbat_warning_cell_voltage = 300

set crashflip_motor_percent = 75

set small_angle = 180

set pid_process_denom = 1

set runaway_takeoff_prevention = OFF

set osd_warn_core_temp = OFF

set osd_vbat_pos = 2403

set osd_rssi_pos = 34

set osd_tim_2_pos = 53

set osd_flymode_pos = 2422

set osd_vtx_channel_pos = 355

set osd_craft_name_pos = 2410

set vtx_band = 1

set vtx_channel = 7

set vtx_freq = 5745

set vcd_video_system = NTSC

set displayport_max7456_wht = 3

# profile

profile 0

set dterm_lowpass_hz = 80

set dterm_lowpass2_hz = 170

set vbat_pid_gain = ON

set pidsum_limit = 1000

set pidsum_limit_yaw = 1000

set yaw_lowpass_hz = 100

set throttle_boost = 8

set p_pitch = 50

set i_pitch = 120

set d_pitch = 25

set f_pitch = 120

set p_roll = 50

set i_roll = 120

set d_roll = 30

set f_roll = 120

set p_yaw = 95

set i_yaw = 90

set f_yaw = 100

set level_limit = 70

set horizon_tilt_effect = 80

set horizon_tilt_expert_mode = ON

# profile

profile 1

set dyn_lpf_dterm_min_hz = 200

set dterm_lowpass_hz = 80

set dterm_lowpass2_type = BIQUAD

set dterm_lowpass2_hz = 0

set vbat_pid_gain = ON

set feedforward_transition = 25

set throttle_boost = 4

set p_pitch = 95

set i_pitch = 25

set d_pitch = 70

set f_pitch = 90

set p_roll = 95

set i_roll = 25

set d_roll = 70

set f_roll = 90

set p_yaw = 95

set i_yaw = 0

set d_yaw = 68

set f_yaw = 90

set angle_level_strength = 110

set horizon_level_strength = 30

set horizon_transition = 80

set level_limit = 70

set horizon_tilt_effect = 80

set horizon_tilt_expert_mode = ON

set abs_control_gain = 20

set use_integrated_yaw = ON

set d_min_roll = 0

set d_min_pitch = 0

set d_min_boost_gain = 20

set d_min_advance = 0

# profile

profile 2

set dterm_lowpass_hz = 80

set dterm_lowpass2_hz = 170

set feedforward_transition = 25

set iterm_relax = RPY

set yaw_lowpass_hz = 100

set throttle_boost = 4

set p_pitch = 100

set i_pitch = 120

set d_pitch = 90

set f_pitch = 90

set p_roll = 100

set i_roll = 120

set d_roll = 90

set f_roll = 90

set p_yaw = 90

set i_yaw = 90

set d_yaw = 40

set f_yaw = 80

set level_limit = 25

set abs_control_gain = 5

# restore original profile selection

profile 1

# rateprofile

rateprofile 0

set yaw_rc_rate = 210

set roll_expo = 60

set pitch_expo = 60

set yaw_expo = 20

set roll_srate = 80

set pitch_srate = 80

set yaw_srate = 25

# rateprofile

rateprofile 1

set yaw_rc_rate = 210

set roll_srate = 80

set pitch_srate = 80

set yaw_srate = 25

set tpa_rate = 75

set tpa_breakpoint = 1750

# rateprofile

rateprofile 2

set yaw_rc_rate = 215

set roll_srate = 0

set pitch_srate = 0

set yaw_srate = 10

set tpa_rate = 80

set tpa_breakpoint = 1800

# rateprofile

rateprofile 3

# rateprofile

rateprofile 4

# rateprofile

rateprofile 5

# restore original rateprofile selection

rateprofile 2

# save configuration

save

#


49 Comments