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 Flywoo Nano 1s. This is not a racing quad, but is a lot of fun to cruise and do some light acro and if you have the eLRS version, fly pretty far out for a micro.
I flashed BLHELI_M “Jazzmaverick” to get RPM Filters, did a new tune and then applied my latest PMB Angle settings which make you fly in Angle like a champ. I mainly fly this in Acro though.
WHAT’S SO SPECIAL ABOUT THIS VERSION?
Flashed BLHELI_M Jazzmaverick 16.9 to get RPM Filters for FREE!
Cool as ice motors
Reduced prop-wash
Complete re-tune for Betaflight 4.2.9
Specific tune for the latest Betaflight and the Nano
Better filtering using RPM
Tried and true PMB Angle Settings that give you the Angle Cruising advantage
SHOUT-OUTS FOR THIS VERSION
The Betaflight Devs - There are too many to mention, but you wouldn’t be flying this good if it weren’t for every single Betaflight Dev and their contributions.
Nick Burns - It’s basically his fault that this tune happened. He suggested to the Flywoo team that a PMB tune might make it fly better, and well, here you go!
The Flywoo Team - William sent me this drone for free are very open to honest and open feedback to make their products better. Look for more cool stuff soon.
THE SETUP
STEP ONE - BLHELI_M (Jazzmaverick) 16.9
In this step we are going to flash new firmware on the ESC’s so we can run RPM filters for free. The Betaflight tune is specifically for RPM filtering and shouldn’t be used in any other way other than 24khz Jazzmaverick and RPM.
Link to download BLHELI_M Configurator:
Releases · Asizon/blheli-configurator · GitHub
Step 1: Connect and Click Read Setup
Step 2: Click Flash All
Step 3: Choose 16.9 (Blheli_M Official)
Step 4: Click Flash
Step 5: Check to make sure it’s 24Khz and Async-PWM
STEP TWO - BETAFLIGHT SETUP
In this step we are going to setup Betaflight, including RPM Filtering. You can just paste in the DIFF at the end of this guide and everything should work, but this section will explain each step in more detail.
CONFIG
The Config section is where we are going to setup up DSHOT300, 8k/4k and Bi-Directional D-Shot so we can use RPM filters. We are also going to turn off permanent Airmode.
Change to DSHOT300
Turn on Bidirectional DShot
Change Motor poles to 12
Switch on Motor Direction is reversed
Change PID loop frequency to 4KHz
PIDS AND FILTERS
Here’s the meat of the Betaflight settings, your PIDs and Filters. With RPM filtering we can turn down a lot of filters and still have little to no propwash. This was tuned using Betaflight Sliders. The Nano is a little underpowered for big acro moves, so you might still get some jittering on hard decents, etc, but that’s due more to the power of the quad than filtering.
Angle Settings
Strength: 90
If you feel like this is too tight feeling, reduce this number
Angle Limit: 85
This controls how much tilt you can do in Angle mode before it limits it. 85 is the highest I would go here. If you feel it’s too twitchy, reduce to 65 or so.
FILTERS
Since we are using RPM we can reduce the overall filtering in Betaflight and need to make some changes to the default RPM Filter settings for micros.
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 for the appropriate flight mode and goes from using ACTUAL rates to Betaflight Rates for Angle.
Profile 1: Acro is setup more like my bigger quads for Freestyle, and has Rate/Super mixed to my taste and uses the new Actual Rates type. Keep yours like you like your Freestyle Whoop.
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.
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.
RATE PROFILE 1 (ACRO)
RATE PROFILE 2 (HORIZON)
RATE PROFILE 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 0.01 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.
MODES
AUX 1: ARM
AUX 2: ACRO, ANGLE, HORIZON, 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
THE DIFF
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.
Link to DIFF file: here
#
# diff all
###WARNING: NO CUSTOM DEFAULTS FOUND###
# version
# Betaflight / STM32F411 (S411) 4.2.0 Jun 14 2020 / 03:04:43 (8f2d21460) MSP API: 1.43
###ERROR: diff: NO CONFIG FOUND###
# start the command batch
batch start
# reset configuration to default settings
defaults nosave
board_name FLYWOOF411FR
manufacturer_id FLWO
mcu_id 003900153236510235383430
signature
# name: FLYWOO
# resources
resource BEEPER 1 C14
resource MOTOR 1 B10
resource MOTOR 2 B07
resource MOTOR 3 A08
resource MOTOR 4 B06
resource PPM 1 A02
resource LED_STRIP 1 A00
resource SERIAL_TX 1 A09
resource SERIAL_TX 2 A02
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 A03
resource LED 1 C13
resource SPI_SCK 1 A05
resource SPI_SCK 2 B13
resource SPI_SCK 3 B03
resource SPI_MISO 1 A06
resource SPI_MISO 2 B14
resource SPI_MISO 3 B04
resource SPI_MOSI 1 A07
resource SPI_MOSI 2 B15
resource SPI_MOSI 3 B05
resource ADC_BATT 1 B01
resource ADC_CURR 1 A01
resource OSD_CS 1 B12
resource RX_SPI_CS 1 A15
resource RX_SPI_EXTI 1 B00
resource RX_SPI_BIND 1 B08
resource RX_SPI_LED 1 B09
resource GYRO_EXTI 1 B02
resource GYRO_CS 1 A04
resource USB_DETECT 1 C15
# timer
timer A02 AF3
# pin A02: TIM9 CH1 (AF3)
timer A08 AF1
# pin A08: TIM1 CH1 (AF1)
timer B03 AF1
# pin B03: TIM2 CH2 (AF1)
timer B10 AF1
# pin B10: TIM2 CH3 (AF1)
timer A15 AF1
# pin A15: TIM2 CH1 (AF1)
timer B06 AF2
# pin B06: TIM4 CH1 (AF2)
timer B07 AF2
# pin B07: TIM4 CH2 (AF2)
timer B00 AF2
# pin B00: TIM3 CH3 (AF2)
timer B04 AF2
# pin B04: TIM3 CH1 (AF2)
timer A00 AF2
# pin A00: TIM5 CH1 (AF2)
# dma
dma ADC 1 0
# ADC 1: DMA2 Stream 0 Channel 0
dma pin A08 1
# pin A08: DMA2 Stream 1 Channel 6
dma pin B03 0
# pin B03: DMA1 Stream 6 Channel 3
dma pin B10 0
# pin B10: DMA1 Stream 1 Channel 3
dma pin A15 0
# pin A15: DMA1 Stream 5 Channel 3
dma pin B06 0
# pin B06: DMA1 Stream 0 Channel 2
dma pin B07 0
# pin B07: DMA1 Stream 3 Channel 2
dma pin B00 0
# pin B00: DMA1 Stream 7 Channel 5
dma pin B04 0
# pin B04: DMA1 Stream 4 Channel 5
dma pin A00 0
# pin A00: DMA1 Stream 2 Channel 6
# mixer
mixer CUSTOM
mmix 0 1.000 -0.733 0.647 -1.000
mmix 1 1.000 -1.000 -0.647 1.000
mmix 2 1.000 0.733 0.647 1.000
mmix 3 1.000 1.000 -0.647 -1.000
# feature
feature -RX_PARALLEL_PWM
feature -AIRMODE
feature -ANTI_GRAVITY
feature MOTOR_STOP
feature LED_STRIP
feature OSD
feature RX_SPI
# 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 -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
# serial
serial 1 8192 115200 57600 0 115200
# led
led 0 6,5::CO:4
led 1 7,5::CO:4
# aux
aux 0 0 0 1650 2100 0 0
aux 1 1 1 1700 2100 0 0
aux 2 2 1 1225 1500 0 0
aux 3 13 2 1300 1700 0 0
aux 4 28 1 900 1600 0 0
aux 5 30 1 900 1700 0 0
aux 6 35 2 1700 2100 0 0
# adjrange
adjrange 0 0 1 900 2100 12 1 0 0
# vtxtable
vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A CUSTOM 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B CUSTOM 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E CUSTOM 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F CUSTOM 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R CUSTOM 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 5
vtxtable powervalues 25 100 200 400 600
vtxtable powerlabels 25 50 100 200 250
# master
set gyro_lowpass2_hz = 350
set dyn_notch_q = 150
set dyn_notch_max_hz = 400
set dyn_lpf_gyro_min_hz = 280
set dyn_lpf_gyro_max_hz = 700
set mag_bustype = I2C
set mag_i2c_device = 1
set mag_hardware = NONE
set baro_bustype = I2C
set baro_i2c_device = 1
set baro_hardware = NONE
set min_check = 1010
set fpv_mix_degrees = 25
set serialrx_provider = CRSF
set rx_spi_protocol = FRSKY_D
set rx_spi_bus = 3
set blackbox_device = SPIFLASH
set dshot_burst = ON
set dshot_bidir = ON
set motor_pwm_protocol = DSHOT300
set motor_poles = 12
set align_board_roll = 180
set bat_capacity = 300
set vbat_max_cell_voltage = 450
set vbat_min_cell_voltage = 300
set vbat_warning_cell_voltage = 310
set current_meter = ADC
set battery_meter = ADC
set ibata_scale = 260
set beeper_inversion = ON
set beeper_od = OFF
set small_angle = 180
set osd_vbat_pos = 259
set osd_rssi_pos = 2082
set osd_rssi_dbm_pos = 163
set osd_tim_1_pos = 342
set osd_tim_2_pos = 2102
set osd_flymode_pos = 2424
set osd_throttle_pos = 2456
set osd_vtx_channel_pos = 131
set osd_current_pos = 322
set osd_craft_name_pos = 2410
set osd_warnings_pos = 2376
set osd_avg_cell_voltage_pos = 2401
set osd_core_temp_pos = 310
set system_hse_mhz = 8
set vcd_video_system = NTSC
set max7456_spi_bus = 2
set pinio_box = 40,41,255,255
set gyro_1_bustype = SPI
set gyro_1_spibus = 1
set gyro_1_sensor_align = CW0FLIP
set gyro_1_align_pitch = 1800
set name = FLYWOO|PMB
profile 0
# profile 0
set dyn_lpf_dterm_min_hz = 98
set dyn_lpf_dterm_max_hz = 238
set dterm_lowpass2_hz = 0
set vbat_pid_gain = ON
set vbat_sag_compensation = 100
set anti_gravity_gain = 10000
set iterm_relax_cutoff = 22
set p_pitch = 120
set i_pitch = 117
set d_pitch = 109
set f_pitch = 161
set p_roll = 109
set i_roll = 111
set d_roll = 100
set f_roll = 152
set p_yaw = 117
set i_yaw = 117
set f_yaw = 152
set angle_level_strength = 90
set horizon_level_strength = 30
set horizon_transition = 80
set level_limit = 85
set d_min_roll = 0
set d_min_pitch = 0
set auto_profile_cell_count = 1
# restore original profile selection
profile 0
rateprofile 0
# rateprofile 0
set rates_type = ACTUAL
set roll_rc_rate = 30
set pitch_rc_rate = 30
set yaw_rc_rate = 30
set roll_expo = 24
set pitch_expo = 24
set yaw_expo = 20
set roll_srate = 100
set pitch_srate = 100
set yaw_srate = 71
rateprofile 1
# rateprofile 1
set rates_type = ACTUAL
set roll_rc_rate = 30
set pitch_rc_rate = 30
set yaw_rc_rate = 30
set roll_expo = 24
set pitch_expo = 24
set yaw_expo = 20
set roll_srate = 100
set pitch_srate = 100
set yaw_srate = 71
rateprofile 2
# rateprofile 2
set roll_rc_rate = 1
set pitch_rc_rate = 1
set yaw_rc_rate = 210
set roll_srate = 0
set pitch_srate = 0
set yaw_srate = 0
rateprofile 3
# rateprofile 3
set rates_type = ACTUAL
set roll_rc_rate = 30
set pitch_rc_rate = 30
set yaw_rc_rate = 30
set roll_expo = 24
set pitch_expo = 24
set yaw_expo = 20
set roll_srate = 100
set pitch_srate = 100
set yaw_srate = 71
rateprofile 4
rateprofile 5
# restore original rateprofile selection
rateprofile 0
# save configuration
save
#