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

Once Flashed with 16.9, make sure 24kHz and Async-PWM is selected

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

Make sure you turn off Airmode. We’ll control this in the Modes tab and turn it off for Angle Mode

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.

After pasting in the DIFF file, your PIDS should look like this. Profile 1 is for 1s Whoops

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

#


12 Comments