How to Setup Betaflight Firmware

by Oscar

In this tutorial I will demonstrate how to setup Betaflight and configure the flight controller for your first flight after building an FPV drone. There are many options you can enable or change, it will probably take an hour or two to explain what they all do. Therefore, in this guide I will only show you the absolute minimum amount of settings that are required to fly.


Betaflight is an excellent open source flight controller software, it’s designed specifically for FPV drones (multirotors in general). Check out the FC Firmware Overview to learn more if you are new to all this.

In this tutorial I will walk you through the Betaflight configurator, and show you the simple steps to setup your quadcopter for your first flight.

Getting Started

In this tutorial I assume you have:

  • A quadcopter (4 motors)
  • Using a serial receiver (e.g. Crossfire, ExpressLRS or Frsky SBUS)
  • Your flight controller is running the latest version of Betaflight firmware (4.3.1 or newer)
  • Your ESC supports DShot ESC protocol (e.g. BLHeli_S or BLHeli_32 ESC)
  • Remove all your propellers for safety
  • Attach an antenna to the VTX (if you power the VTX without antenna it can get overheat and burned out)

Installing Betaflight Configurator

Before we begin, please download and install the latest version of Betaflight Configurator. This is the software we must use to setup Betaflight, it supports Windows, Mac and Linux operating systems.


Enable these options.

Betaflight Configurator 10.8.0 Options

Updating Firmware

If you purchased your flight controller (FC) following my recommendations, it should already come with Betaflight pre-installed, so you don’t really need to flash it unless you want to stay up to date with the latest features and bug fixes. This tutorial takes you through how to flash Betaflight step by step.

Before flashing firmware to the flight controller, make sure you make a backup of the existing settings in case you want to go back for whatever reasons (very rarely you will need to, but better be safe than sorry). Here’s a tutorial on How to backup Betaflight settings.

Pro Tip: Before updating FC firmware, you should regularly check and update Betaflight Configurator for new features and bug fixes. Old configurator might not work properly with new firmware.

Setting Up Betaflight For The First Time

To keep things simple, we will configure only the absolutely necessary settings in Betaflight to get you in the air. You can then explore other settings later on if you wish.

Important! Make sure all propellers are removed before configuring your quad on the bench to avoid accident.

Connect FC to Computer

You don’t need to plug in the LiPo battery, the flight controller gets power from the USB connection.

Stp Hobby Armor 5 Fpv Drone Rushfpv Fc Usb

When the FC is connected to the computer, a new COM Port should appear in the Configurator. Select this new COM Port and click “Connect”. Note that in the example, we have COM11, but it could be different in your case. And often the COM port changes on a different FC.

If you don’t find the COM port, or have trouble connecting, it could be due to a computer driver issue. Follow this guide to fix flight controller driver issues. Or maybe your FC is “bricked” (extremely rarely), which can be easily fixed as explained in this article.


Once you’ve successfully connected to the FC, you should see the Setup tab. Here you have access to the most basic functions and information about your quad.

Betaflight Configurator Setup 10.8

  1. Put your quadcopter on a level surface, then press “Calibrate Accelerometer” – this only needs to be done first after flashing firmware
  2. Now hold the quad in your hand, and move it around. You should see the 3D model moves with the quad, make sure the movement is in the same direction

If the 3D model isn’t moving the same as your quad, it probably means your FC is installed facing the wrong direction (e.g. arrow on the FC is not pointing forward). You can either rotate the FC until it’s right, or you can set YAW offset in the configuration tab, board sensor alignment to fix it (usually 90/180/270 degree).


Before making any changes, you should back up your current settings. You can do this in the Presets tab. Learn more about How to Backup & Restore Settings here.

Betaflight 4.3 Presets Save Backup Load Cli DiffVoltage Calibration

Take a battery, check its voltage (either using a battery checker or multimeter). Then plug it in to the drone.

If the reported voltage in the configurator (circle in red in below image) is far off from your measured voltage, then you should calibrate the voltage sensor.

Betaflight 4.3 Voltage CalibrationClick the calibration button, and enter the measured voltage, click Calibrate and it will ask to apply a new voltage scale. That’s it.

Betaflight 4.3 Voltage Calibration Measured Voltage


In the Ports tab, you can configure the peripherals, which are external devices connected to the flight controller via UART (TX and RX pads).

Betaflight Configurator Ports 10.8

  1. If you are using analog VTX, and you’ve connected the SmartAudio or IRC Tramp wire for VTX control, select either “SmartAudio” or “IRC Tramp” under Peripherals. If you are using DJI / Avatar / HDZero digital FPV system, leave this “Disabled” and move on to #3
  2. If you are using a serial receiver such as ExpressLRS and Crossfire, you need to enable “Serial RX” on the UART it’s connected to
  3. If you are using one of the digital FPV systems, e.g. DJI / Avatar / HDZero, you should enable MSP on the UART it’s connected to, otherwise leave MSP disabled


The Configuration tab contains the basic system settings.

Betaflight Configurator Configuration 10.8

1. System Configuration

Gyro Update Frequency Rate – this is how fast gyro samples are taken. It depends on the gyro you are using and usually fixed so don’t worry about it.

PID Loop Frequency – a.k.a. looptime, is how fast PID calculation is run. The maximum value depends on how powerful the micro processor is, generally speaking, F4 can run 4KHz while F7/H7 can run 8KHz. But it also depends on the Gyro you have, if you have BMI270 gyro, then the maximum PID Loop Frequency supported would be 3.2KHz even for F7 FC.

As a rule of thumb:

  • F4, 4KHz
  • F7/H7, 4KHz or 8KHz
  • If you have BMI270 gyro, 3.2KHz

When changing looptime and enabling features, pay attention to “CPU load” at the bottom of the window, try to keep it under 75% by using a slower looptime or disabling features you don’t need . High CPU load could cause instability to the flight controller.

I recommend to leave Accelerometer enabled. You can disable it, this will free up some processing power, but you won’t be able to use Angle mode or Horizon mode, and the 3D model in the setup tab will also stop moving. Disable Barometer and Magnetometer if not using them.

2. DShot Beacon Configuration

I usually enable DShot Beacon, this allows you to use your motors as beeper on the ground, it’s especially useful when your drone doesn’t have a buzzer, it can help you locate your downed drone.

3. Arming

By setting arming angle to 180 effectively disables this feature, and so it allows you to arm the quad regardless what position the drone is in (even upside down). This is important if you get stuck in tree, you can still arm the quad, run the motors and get it out of the branches. If this is set too low you might not be able to arm it. By disabling the Accelerometer will automatically turn off this feature.


In the Receiver tab, you can configure and check if your receiver is working correctly.

Betaflight Configurator Receiver 10.8

If you are using a serial RX (most people would be), such as Crossfire, ExpressLRS and SBUS, pick “Serial (via UART)” in Receiver Mode. In Serial Receiver Provider, pick the appropriate receiver protocol:

  • TBS Crossfire – CRSF
  • ExpressLRS – CRSF
  • Spektrum DSM2 – SPEKTRUM1024
  • Spektrum DSMX – SPEKTRUM2048
  • FrSky RX – SBUS
  • Futaba RX – SBUS
  • FlySky RX – IBUS
  • Turnigy RX – IBUS

If you are connecting the RX to FC via PPM, then use “PPM RX Input” in Receiver Mode.

If you are using Telemetry, make sure to enable Telemetry Output.

Power on your radio controller (TX) and radio receiver (RX), if they are already bound, when you move the sticks, the channel values should also change. If the wrong channels are responding, you might need to change “Channel Map”, usually it should either be AETR1234 or TEAR1234.

Further Reading: What’s Channel Map and How to configure it properly?

If the channels are responding to stick movements, here’s how to troubleshoot it:

  • is the RX bound to the TX? (do you see solid green light on the RX?)
  • is the RX soldered on the FC correctly?
  • have you enabled serial RX in the correct UART?
  • have you selected the correct RX protocol?

After making sure the channels are working correctly, now check the mid points and end points of the first 4 channels (Pitch, Roll, Yaw, Throttle). These channels should centre at 1500 (generally ok to have small error like 1-2, e.g. 1499-1501), and have end points of 1000 and 2000 (ok to have small error like 8-12 beyond the limits e.g. 990 and 2010).

If yours are way off, you can follow my tutorial on how to fix mid point and end points.

When you are not touching the sticks, but the midpoint numbers jump around, it could cause small vibrations to your quad in flight, and we don’t want that. You could use deadband to “fix” it. For example if you see Roll or Pitch midpoint jumps between 1498 and 1500, then enter 2 in the RC deadband, it basically tells the FC to ignore those tiny changes in stick value. Midpoint jump is pretty common and nothing to worry about, how much it jumps depends on the quality of the receiver.

Before you move on to the next tab, check to make sure your arming and mode switches are working properly by flipping them, you should see AUX1, AUX2 or AUX3 channel values change. If you haven’t setup switches yet in your radio, follow this tutorial.


In the “Modes” tab you can assign your switches for different functions. Common modes we use are:

  • Arming
  • Angle mode (when angle mode is not activated, we are in rate mode, aka manual mode. If you don’t see Angle mode, your accelerometer is probably disabled)
  • Beeper
  • Flip over after crash (Turtle mode)

I explain the different modes in Betaflight in this article.

Here is how to assign a switch to a mode:

  • Click “Add Range” on the mode you want to use
  • Select the switch you want to use to control this mode in the drop down menu. If you don’t know which AUX is your switch, just go to the Receiver tab and see which AUX channels respond when you flip the switches. AUX1 is channel 5, AUX2 is channel 6 and so on
  • Drag the slider to the desired range for activation
  • Flip the switch and the little yellow marker should also move around, see if it falls within the activation range of the mode when the switch is turned on
  • Click “Save”


The motor tab is used for configuring the ESC and testing the motors. For safety, please make sure you remove all the propellers before using the motor tab.

Betaflight Configurator Motor 10.8

The only thing you need to change here is ESC/Motor Protocol. If you are using BLHeli_S or BLHeli_32 ESC, DShot is recommended. As a rule of thumb, select:

  • DShot600 for 8KHz looptime
  • DShot300 for 3.2KHz / 4KHz
  • DShot150 for 1.6KHz / 2KHz

Further Reading: ESC Protocols and Firmware Overview

I recommend keeping “MOTOR_STOP” option disabled, otherwise you won’t be able to tell if your quad is armed. The rest you can just leave them at default.

Click Save and Reboot, then go back to the Motor tab again.

There are a few things you want to check:

  • Can the motors spin?
  • Are the motor in the correct order as shown in the top left diagram?
  • Are they spinning in the right direction as shown in the top left diagram?

Here’s the correct motor order and spin rotation:

  • motor 1 at rear right
  • motor 2 at front right
  • motor 3 at rear left
  • motor 4 at front left

If the order is wrong, you can fix it by clicking the “Reorder motors“.

Now, check motor spin direction, if wrong, you can reverse spin direction by clicking “Motor direction“.


Fpv Wtf Msp Osd Dji Fpv Goggles

By setting  up OSD, you can display important flight data on your screen, such as voltage and timer.

Please see my tutorial on how to setup Betaflight OSD for more detail.

These are the elements and places I put them, you can just copy these in CLI if you want.

set osd_vbat_pos = 2467
set osd_link_quality_pos = 2114
set osd_rssi_dbm_pos = 2082
set osd_tim_2_pos = 2486
set osd_throttle_pos = 2104
set osd_current_pos = 2135
set osd_mah_drawn_pos = 2403
set osd_warnings_pos = 14633
set osd_avg_cell_voltage_pos = 2435

PID Tuning

Betaflight 4.3 Pid Tuning Sliders

The PID Tuning tab offers the ability to tweak your quad’s flight performance and get it to fly the way you want.

It might look daunting, but you don’t really have to change anything here as the default Betaflight settings work pretty well on a wide range of FPV drones. When you become more experienced, take a look at my PID tuning guide.

However, you might want to play around with rates and expo to make the quad easier to control. Rate, Super Rate and Expo affect the sensitivity of the sticks – how much the quad reacts to your stick movement. Take a look at this guide on Rate / Super Rate and Expo.

Video Transmitter

If you are using analogue video transmitter and intent to use VTX control, then you need to setup VTX table for it to work properly. For digital FPV system you like DJI/HDZero/Avatar, you can just ignore it.

There are 3 ways to load VTX Tables, via the Presets tab, load the JSON file or enter CLI snippet.

Usually you should be able to find the VTX table JSON file or CLI snippet for your VTX on its product page, if not check here or just google it.

Expert Mode

By enabling Expert Mode on the top of the window, it gives you access to additional tabs on the left hand panel and extra advanced settings. You don’t normally need to touch any of those settings for your first flight.

Betaflight 4.3 Configurator 10.8 Expert Mode Enabled Pid Tuning

Stop Beeping on the Bench

If the buzzer in your drone keeps beeping when the USB cable is plugged in while your radio is powered off, an easy fix is to disable the “USB” option under Beeper Configuration in the Configuration tab.

That’s all to the basic setup in Betaflight.

Safety Checks Before Maiden Flight

Before taking our quad for maiden flight, please test failsafe. In the event of lost radio link, the motors by default should just stop and the drone will drop to the ground.

First of all, remove all props for safety. Plug in the battery, turn on the radio and arm the quad. To simulate a failsafe, you can simply switch off the radio while the quad is armed. Ideally, your quad should disarm within a couple of seconds and the motors should stop. If not, you need to investigate your failsafe settings, reset it to default if in doubt.

Also check CPU Load percentage at the bottom of Betaflight Configurator, relatively low CPU load ensures stability. According to Betaflight 4.3 wiki, you shouldn’t be concerned until it gets around 75%. To lower CPU load, you can try disabling unnecessary features or set a lower PID loop frequency.

Other Betaflight Related Tutorials

Once you have completed this tutorial, come back and check out the following tutorials to learn more about the advanced features in Betaflight:

Edit History

  • Dec 2017 – Article created
  • July 2018 – Updated instructions
  • Sep 2018 – Added “how to update”, and links to a few more new tutorials
  • Jan 2021 – Updated for BF4.2
  • Oct 2022 – Updated for BF4.3

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.


Francisco G. Lucas 30th January 2022 - 12:35 pm

you resource pages are a wealth of information for us beginners in the hobby. Although there are a lot of videos in utube, reading your tutorial sis much more precise and informative like a textbook and does not require backing the video up.. keep it up and thank you so much…. Sir Oscar

MONIEZ Jean-Loup 28th November 2021 - 1:03 pm

Dear Oscar,
Can you tell me how to reverse the virtual horizon (ah) in betaflight so as the ah bar follow the roll and the Pitch on the right way ?
Thank you for your answer and best regards.

Mike 25th November 2021 - 6:23 am

You should write a book, but then again you wouldn’t be able to update it like you do here. Your information is my new reading material, thank you, we need more I formation from people like yourself to get this sport/hobby going?

terry t zelk 11th December 2020 - 1:54 pm

I keep hearing about different versions of betaflight like 4.1.0 and 4.2.0. The only thing I see anywhere is configurator 10.6.0. Now I hear there is 10.7.0.
How do you determine what betaflight version you have? I’ve looked all over betaflight trying to find which version I have but I don’t see anything anywhere where it says which version I’m running.

Oscar 11th January 2021 - 2:48 pm

4.1.0 or 4.2.0 these are the different version of the firmware.
While 10.6.0 and 10.7.0 are the configurator, the program on your computer to setup the firmware.

Ty 27th February 2022 - 4:39 pm

Hello Oscar,
Does the receiver need to be connected to program esc?

Thnx SO much!

Oscar 27th February 2022 - 11:48 pm


Richard 2nd September 2020 - 1:01 am

Hi . ive tried downloding the latest betaflight app but when i extract it i then cannot open it . what do i open it with ?? .

Oscar 4th September 2020 - 4:47 pm Reply
willy david 17th November 2018 - 9:10 pm

On my babyhawk 2″ with f3 fc. I can turn it on hear the tones. It will arm but doesn’t respond to throttle input. Can you give me any suggestions or advice on how to fix this. Btw it’s using magnum mini that comes with the drone all is stock except frame. Transferred components to a Tomoquads 2″ X Fighter. I did manage one good flight with no issues. Second flight is when it wouldn’t respond to throttle input. Can you please help me? Thank you and Hafa Adai from Guam

Oscar 23rd November 2018 - 4:46 am

Please join forum for discussion and help:

Kellie Stapleton 16th June 2018 - 9:58 pm

I’m a total newbie and just got a Happy Model Mantis, Should I upgrade the firmware for the Flight Controller? It’s a F4 flight controller with Betaflight 3.1.7. I downloaded the most recent Betaflight already.

Thanks in advance,

Robin 30th May 2018 - 3:53 pm

Hi Oscar,
For connecting my Holybro Kakute F4 v2, a normal phone charging usb2.0 cable will be fine, right?

Dan jensen 25th April 2018 - 1:55 am

Hi I have a omnibus f4 v5 from airbot. I have 3 successful buzzer set ups with a matek buzzer using B- on fc and 5v and neg from board . this buzzer wont shut off 2, 3 minuts after powering the quad . as i said my other quads work perfect. fc light indicates that i can switch it on or off with tx. just cant shut it off after it turns on . Quad hovers fine.
thanks Dan

James 26th February 2018 - 3:03 am

I very much like the step by step process above. I haven’t tried it yet, but it looks straight-forward enough. One question which I believe will be silly once I get the answer: My controller has an SUB jack on it. I’m guessing you connect this to your computer? Is there mention of this in your step-by-step above? Again, seems obvious, but a critical step. Also, is controller power up or not during the configuration?

Filippo 11th November 2017 - 3:22 pm

Hi Oscar! I got a problem with my naze 32 on tarot 130, I need the 3.0.1 configurator version to flash it, now i’ve the latest version (because the system upgraded it automatically) and i don’t found anymore the old one… where can i download it?

Jason Lavender 22nd October 2017 - 10:01 pm

I am setting up betaflight for my quad. However, when I click on the receiver tab, the bars for the inputs do not move when I use the sticks. Under configuration, I made sure that I put in a serial based receiver and SBUS. I am using the R-XSR. I have bound the receiver with the transmitter (X9D) and the tx shows that it is connected with the receiver. Do you have any ideas on how to fix this?
Thank you,

Oscar 24th October 2017 - 2:45 pm

did you setup the port for serial RX?
is it bind correctly? Does the same RX work on a different FC? Check signal connection/soldering.

Sean 22nd November 2017 - 5:03 am

I am having this exact issue. We’re you able to solve it?

Patrick 19th February 2018 - 7:42 pm

Same problem here, except I am using FlySky IBUS. I have some problem on two FCs.

John 6th June 2017 - 11:02 pm

Hi Oscar
I just flashed 3.1.7 to Naze32 Rev6 and now I can’t connect to BLHeli config. When I try to calibrate ESCs, upon pulling down the motor slider (after connecting battery) the orange motor bars stay at 100% and the ESCs beep twice. Then they spool up on zero throttle. Looks like they’re busted?

Oscar 12th June 2017 - 4:23 pm

try a older version of Betaflight?
BF and CF are giving up support to F1 flight controllers, so it’s normal you are picking up bugs.
Time to get a F3/F4 FC.

Andy 15th June 2017 - 11:41 pm

I also want to use a Naze32 R6b, can you tell me what is the latest CF/BF Version that is working fine with this “old” FC? Or which settings have to be changed to save cpu load and get the Naze32 working.
Thanks :-)
*great articles on your site!

Oscar 25th June 2017 - 3:45 pm

CF and BF are still supporting Naze32. Just get the most recent stabe release.
To save CPU load, turn off features that you don’t use, and disable accelerometer if you don’t use self level.

yuri 21st October 2016 - 4:26 am

Graph smoothness is highly dependent on sampling rate and graphing algorithm (which in most cases is spline based and have significant smoothing effect). There are also no x and y scales, so it is hard to verify if the different is real.

kreit 19th July 2016 - 2:47 am

can I flash betaflight on my vortex 250 and if yes then how?

Masta_fpv 1st July 2016 - 3:07 am

Oscar, I’m running a rev 5 naze with rotorgeeks rg20. After flashing 14.6 to the esc my quad will not arm or respond. Rc inuts are present in betaflight and oneshot125 will not enable even in cli. Any advice would be awe some

Chris 24th February 2016 - 12:59 am

Hi Oscar,

The time scale is missing from your graphs. its at 100%? So a screen full represents about a second? you were getting ~100hz oscillations before roughly?

I seem to see 20hz on my quad.

Oscar 7th March 2016 - 2:28 pm

both graph should be same time scale.. 20Hz indicate vibrations from motor and props… which means you want to balance those first… and check for loose bolts in the frame… and make sure frame arms are stiff enough.

Joe Stubbs 15th April 2016 - 11:11 pm

Hi Oscar
I have a Naze32 Rev5 + Betaflight + ppm Rx + DX9 Tx … For 3 days now been trying to config all of them too operate on a Fixed Wing Aircraft, using the Passthru Mode to prevent FC interaction.

I’ve been stumble-bumming around trying to config the PWM outputs at the servo pins using the Servo Tab Matrix ( is that the terminology !? ) – methinks the servo outputs sequence to be – chan 1 to 6 – Ail Elv; Thr; Rud; Gea;r Aux 1; and I monitor these outputs via the Servo Tab graphics.

The other strange thing is the DX9 mapping is TAER123 but the BetaFlight Receiver Tab Mapping is required to be AETR123 for the receiver input gaphics to sync

I just cannot get the correct servo outputs to agree with stick input….please help…Joe

Oscar 18th April 2016 - 12:51 pm

I believe you can either change RX mapping in cleanflight, or on your TX..
in Cleanflight, under Receiver tab, you should be able to change to TAER123 from the drop down menu?

I haven’t used the DX9 TX, but i know on the Taranis you can change input channels order as well in the settings… maybe give that a google as well..

Steve_C 6th May 2016 - 7:18 am

look here:
that’s how i made it work. took days of programming and reprogramming to get it
this may get you close:
# mixer
mmix reset
mmix 0 1.000 0.000 0.000 0.000
smix reset
smix 0 6 5 100 0 0 100 0
smix 1 6 1 100 0 0 100 0
smix 2 3 0 100 0 0 100 0
smix 3 4 0 100 0 0 100 0
smix 4 3 4 100 0 0 100 0
smix 5 4 4 100 0 0 100 0
smix 6 2 10 100 0 0 100 0
smix 7 5 11 100 0 0 100 0
(that’s a CLI dump off my big plane, I’m programming the small one today and tomorrow)
Here’s an example:
mmix 0 1.000 0.000 0.000 0.000 ( this sets pin 0 to motor, 1.000 is thrust authority and the next 3 zeros are roll pitch and yaw authority.

smix 0 6 5 100 0 0 100 0 ( this sets smix rule 0 for servo 6 ( with source 5 which is RC PITCH , off the website at the top,) rate 100 min 0 and max 100 box is 0
# Rule Servo Source Rate Speed Min Max Box
smix 1 6 1 100 0 0 100 0
this is rule 1, servo 6 input rule 1 (Stabilised PITCH) then rate 100, 0 min 100 max and box 0

So on my plane this makes the elevator servo work both with RC input (source 5) and stabilized, FC controlled, Rule 1.

if the servo goes the wrong way use smix reverse
this is the example off the above web page:
smix reverse 5 2 r
i.e. when mixing rudder servo slot (5) using Stabilised YAW input source (2) reverse the direction (r)
so if you reverse the stabilized yaw, you also would have to reverse the RC Yaw as well
which would be smix reverse 5 6 r

use the above web page and you will get there. it took me weeks to get my big plane up in the air. not a lot of people flying Quad Chips on planes, but it works and is fun when it does.
just make sure you test your RTH and stabilized modes with plenty of elevation. the first time I flipped on the Horizon mode the plane was almost uncontrollable. That was a white knuckle landing. had my goggles on and kept hitting the wrong switch to try to turn it off…
best of luck to you, Steve

Robert 15th February 2016 - 11:42 pm

Hi Oscar,

I recently built a quad with the motolab fc and littlebees which were ordered across the pond in Australia. The build resulted in 3 motors spinning. I have the signal wire (white) connected to the board and I removed the ground. I have the latest clean flight and the latest beta flight installed. Presuming the esc have at least 14.0 installed. I moved arms around with motors and esc attached to make sure the board was working on that leg and it was. So I’m thinking I likely have a bad esc. I had a spare kiss esc and motor that I connected but it wouldn’t spin either. Is this due to the fc firmware or something software related. Also, should I be able to program the esc’s though the fc because I tried and I can get connected, but I get an error 31 and it doesn’t recognize any of the esc’s. I’ve read somewhere that I need a serial cable connected to UART 1, but I don’t have a serial cable. Furthermore, I removed the black ground wire and cut the white signal to solder to the fc thinking I should be able to perform upgrades through the fc, but I can’t. Any wisdom you can part with would be gladly apprciated! Thanks for your time.

Oscar 22nd February 2016 - 10:48 am

Hi Robert, I assume when you move arms, you did change the motor pin as well?
if by changing motor pins, and same ESC/motor still doesn’t work, try swapping the motor…. just to rule out motor or ESC.
but it’s more likely to be the ESC I think…

by the way, I recommend joining this forum, it’s very useful and there are lots of helpful people there. I am a daily user too :)

Johnny-Robot 10th February 2016 - 3:34 pm

Hi Oscar,

Are there any known issues with flashing on the CC3D? I’m having a heck of a time trying to figure out why one of my motors goes crazy as soon as I arm.

Dominik 4th February 2016 - 12:08 am

I Might flashed the wrong hex file to my Vortex 250. used naze.hex for the Fusion v2 Board. Is there a Chance to rescue the fc? Can not Flash again. Bootloader has no answer.
Thank you,

CityZen 27th February 2016 - 2:17 am

Hi Dominik,
You probably need to short the bootloader pins on the board. I’m guessing they’re the ones labeled “BL”.
They need to be jumpered while you apply power. You should be able to flash at that point.

drew smith 17th January 2016 - 7:38 pm

Hello Oscar, You mind posting up a cli dump of a average 250 size quad of yours? Im just wondering what cli commands you use with betaflight. The thread on RCG is SO massive its hard to pick through it and find the relevant info. Thanks

Mark Rankin 16th January 2016 - 5:28 pm

Hi Oscar can you PLEASE HELP Hi im having a problem with boris hex on cleanflight when i flash the naze32 i cant calibrate the esc or start the motors even with the master tab.
But when I roll back to cleanflight stable version everything works fine. I have been working on this for 5 weeks now.
PS Im new to naze and cleanflight but ive learnt loads like how to map and rxrange in cli. I was using cc3d before

Oscar 20th January 2016 - 11:05 am

What ESC are you using? do they support oneshot?
did you enable oneshot in Cleanflight?

willem 1st March 2016 - 9:54 pm

hi mark rankin
your escs doesnt support the 1000 looptime
like the emax speedcontrollers will not work with this firmware

flying baboon 5th March 2016 - 3:03 am

Do you know if the luminere 20a mini with simonk is supported? When I push the throttler it goes wild. I’ve been flying fine with cleanflight.

Andrew 4th December 2015 - 1:15 am

Hi Oscar,
I have just flashed my QAV210 clone (naxe32) with the latest version of Boris B, when i arm the quad i only get motors 3 and 4 arming? any ideas why?
I have set up identical programming on a 180 and it works fine.
I have tried rolling back to Naze fw. and it all works correctly.. weird.

Oscar 7th December 2015 - 10:35 am

Check your BLHeli ESC settings? make sure PWM input is disabled?

Andrew Scott 2nd December 2015 - 1:36 am

Cc3d users…..luxfloat or rewrite which one is better for the cc3d?

orlando 25th November 2015 - 4:48 am

Hi oscar
i am running a cc3d on my zmr ,looking to flash from open pilot to beta fligh can you tell me the requirements and step to do so ? Thanks

huseyin yildiz 16th November 2015 - 6:30 am

Hi Oscar

i have flashed flip32 10dof, betaflight 2.1.3 latest,

before i can figure out gps settings and can be enable it,

but now ican not to be able to activate gps , gps mope or, gps type, clı commands doesnt work.

Oscar 16th November 2015 - 10:04 am

i think GPS features are disabled in Betaflight to free up resources.

huseyin yildiz 16th November 2015 - 12:21 pm

thank you,
i think so

nik 7th November 2015 - 11:10 pm

Hi Oscar
Just flashed Boris B.’s Betaflight to my ZMR. I was able to configurate everything as I wanted it, restored settings from a backup. The board seems to work, but the moment I arm it when everything is plugged in, it kind of freezes. The buzzer sound freezes aswell and just stays constantly on. It just feels like it feels when a computer freezes.
I am afraid it must be some old setup coming with the restored settings, such as looptime essentially.
If so, how do I reset that setting? Or is a complete reset/restart of all settings required? (I guess it is recommended though).

I hope you can help me. I already reconfigured everything without restoring a backup, but still, it freezes. Betaflight says “Packet Error: 2” down left, is that a hint?


frame: ZMR250, carbon composite
pdb: Overcraft PDB
Flight controller: Seriously Pro Racing F3
Receiver: FrSky D4R-II
ESCs: KISS 18A v1.1
Motors: DYS 1806 2300 KV
Props: Gemfan 5×4 Carbon Nylon
Battery: nanotech 3S 1500mAh 35-70C
Cleanflight version: Boris B.’s Betaflight 2.1.2a

Oscar 10th November 2015 - 10:49 am

maybe flash it again , with the option, erase all settings checked?

nik 27th November 2015 - 1:04 pm

Hi Oscar
Thanks for your replay and sorry for my very late answer:
I tried to find the mistake and started deactivating features and then I was pretty sure the problem was my frsky telemetry. It did not freeze when not using telemetry. Then I reflashed CF1.10.0, worked fine, even with Telemetry. Flashed Betaflight again, everything working, tried oud telemetry and it worked suddenly. There were definetly NO hardware changes, and definetly NO software changes. I compared both CLI dumps and there were no differences. So I cannot explain this issue at all. I used full chip erase all the time. At least it works now and I love Betaflight! It is really feeling better when flying fpv. I think I will stick to it. Thank you Oscar!
Best greetings from Brunswick,


Scott Lauer 2nd November 2015 - 5:56 pm

“Hi Oscar” I wanted to make sure that I can flash boris B with open pilot I currently have cleanflight on my cc3d now Thanks for all of your hard work!!! Scott

Stephen 28th October 2015 - 10:32 am

Hi Oscar

Just upgraded my naze32 to Betaflight – perfect , what can I say , even with the default PID
its much more locked in then ever before. Keep the updated rolling , its greatly appreciated ;-))

headskull 27th October 2015 - 4:33 pm

The Dropbox-link to betaflight .hex-files does not work. Hex from github does not work with cleanflight – says “HEX file appears to be corrupted”. Any alternative link for download?

headskull 27th October 2015 - 5:11 pm

Hi Oscar! Found an answer to my previous question. I’m a n00b and didn’t know I had to click the HEX-file in github and then right click on “RAW” to be able to download te file in correct format. I now have betaflight installed on my Naze32 :D
Many thanks for your awsome blog! Keep up the good work! Cheers

Kevin Yang 17th October 2015 - 5:53 am

Thank you for the awesome posting.
Is it okay in betaflight with disable ACC? or just use Acc hardware?
I don’t use ACC anymore one month ago after mention of some your tweak(dead band, disable hardware ACC, etc)
Which is better you think?
Thank you very much.

Oscar 19th October 2015 - 9:34 am

yes it’s okay to disable ACC (i have it disabled on mine)
It doesn’t make any difference now with Betaflight, so it’s entirely up to you. :)

Kevin Yang 20th October 2015 - 7:06 am

It works great!!
Yes, I have it disabled.
Thanks a lot Oscar.

Ari 16th October 2015 - 8:13 am

Hi Oscar

Thanks for the post. With regards to BLHeli 14.1, will BLHeli 14.0 be sufficient? I haven’t got an ESC programmer yet and I believe my ZTW 18A esc’s came with BLHeli 14.0. Is it safe to use with beta flight or should I rather wait until I can update them?


Oscar 16th October 2015 - 9:52 am

Hi Ari,
14.0 should be fine.
Do you know you can now flash ESC via the flight controller? no programmer needed anymore! i might make a post how to do this just in case it’s not well known yet.

Ari 16th October 2015 - 5:47 pm

Thanks Oscar! And while I’m on the subject of thanks, thank you for all the articles which you put into layman terms. Really helpful for newcomers to the hobby such as me.

That article would be great thanks! I didn’t know that was possible.

Many thanks

Johnny 17th October 2015 - 9:54 am

I still wait for my arduino to flash my ZTW 20a simonk to BLheli… Bunt can’t wait.. can I use betaflight with simonk?

Best Johnny

Oscar 19th October 2015 - 9:36 am

I haven’t tried it myself, nor seen anyone who tried… It does suggest to use the latest BLHeli firmware though from what I have been told.

John Seldon 8th November 2015 - 7:12 pm

Hi Oscar. Did you ever make this article? It would be useful to know how to flash ESCs via the FC. Thanks.

Great site BTW. You’ve helped me loads with my builds.

Oscar 10th November 2015 - 11:17 am

Yes I did, flash esc via fc

marwan 13th December 2015 - 1:37 pm

hi Ari,
no problem you can download betafligth and it will work awesome but you have to remove oneshot cause else the motors wont arm, ive got the 13.1 blheli and its awsommmmmee !

lee 14th October 2015 - 2:16 pm

“Hi Oscar”

Since trying beta found my p setting are at 3.1 pitch 2.4 role.Tbh i feel its not enough but wont let me go higher or i get the shakes.flys great but now awsome.Also found it needs loads of d term to rid the bounce.Im running 75c 4cell,littlebees esc 1900kv emax motors hq 6×4.5 props.cheers lee

Sam Pankratz 13th October 2015 - 3:33 pm

Oscar, I think you should also include that there is a dropbox link that allows you to directly download al the .hex files. I had to do this after not being able to successfully download the .hex using your instructions. Im not saying you are wrong or incorrect, as others have had success this way, but I did not. I suspect this might help others like me who know little about computer magic be able to use Betaflight.

Oscar 14th October 2015 - 9:44 am

good point, i think it’s mainly Mac users that have problems. i will add a dropbox link now.

Michael 11th October 2015 - 6:03 am

Hi Oscar! Great review, love your work. I wanted to know if beta flight works with the new naza32 rev6 board? I’m about to make the swith from multiwii to naza32 on one of my racing quads and I’m looking for a marked improvement.

Blaise 12th October 2015 - 8:59 am

Sadly it doesn’t. They are looking at end of the month or so before it’s supported, as it has to be done by the Cleanflight team and then merged into the Betaflight code. Boris doesn’t have a Naze32 (actually doesn’t use them anymore, uses F3 based boards)

Oscar 12th October 2015 - 11:45 am

I think betaflight works on the Rev6, but Gyro sync isn’t, the last time i checked, someone mentioned looptime cannot go below 1100?
As for Cleanflight, it’s still in beta, 1.11 i think..

Rubi 10th October 2015 - 1:14 pm

Hi Oscar,
Just to note, CC3D can be flashed via OpenPilot GCS firmware page,
it’s easy and gives new life to my old board with this amazing version.

Oscar 12th October 2015 - 11:22 am

Thanks Rubi, I heard CC3D actually performs very well with betaflight (better than Naze) due to the built-in SBUS inverter, and SPI protocol Gyro :)

ThomasS 12th October 2015 - 4:13 pm

Hi Oscar

This is true, CC3D is the better hardware and also open source, I am an EE and design of CC3D is elegant and skillful, Naze is only factor of price and many revisions to stop clones and make more money. Of course some poor clones of CC3D as it is open, this is problem but good clones that are like original version, best acro board.

CC3D flies better with Cleanflight also, always has and honest people know this for long time. So much hype for Naze makes issue cloudy this is sad as people by wrong hardware for more money. Betaflight shows this more as it takes advantage of better CC3D more than Cleanflight can.

Betaflight shows what many skilled people said for long time, Cleanflight is not so great and has many issues with control routines and timings but when bringing up such issues I got shouted down despite being turthful, now everyone can see what programmers knew for long time, Cleanflight has some big issues.

Betaflight is nice step in good direction but only temporary solution still architecture is poor from cleanflight which took from baseflight, very old fashioned development and maybe never fixed as large rewrite required.

Akosv 17th October 2015 - 9:19 am

SBUS inverter is also added to NAZE32 rev.6 boards…

Eligiusz 17th October 2015 - 12:54 pm

Hi Rubi,

Could you please tell me step by step how to flash CC3D with Betaflight?
I was doing this with Cleanflight via OpenPilot GCS many times but with Betalight it doesn’t work :(
I am dowloading betaflight_CC3D.bin from
and usind option Rescue in OpenPilot but this way don’t work…

Thank you in advance.

Manuel 28th October 2015 - 12:18 pm

Hi Eligiusz : I installed betaflight on my cc3d with OpenPilot GCS also (without the FTDI+shorting pins thing mentionned). It didn’t work until I reaffected the ports correctly (UART and this kind of stuff) : it should match how you intend to use the ports of your CC3D.

ken 3rd November 2015 - 7:41 am

Eligiusz after flash betaflight, disconnect usb. plug in a 5v power source for Cc3d. load cleanflight app. then connect the USB
ps everytime u rebooting the CC3D FC do the same thing.1st. 5V power source, 2nd USB, Then connect cleanflight App. works on Mac and PC.
if you want to fix it issue forever. load cleanflight bootloader on CC3D.

orlando 27th November 2015 - 11:54 am

Hi rubi
Can you send the link on the ftdi adapter you use to flash the cc3d board

FyreSG 10th October 2015 - 3:43 am

Hi Oscar, I’m not sure about the part on PWM but I have a PWM receiver and a set of normal (non-Oneshot) ESCS; will my setup work with Betaflight? :)

Oscar 12th October 2015 - 11:19 am

Yes that should work :) the PWM part, i was referring to the signal from FC to ESC, not the RX :)

Chad Percival 8th October 2015 - 7:49 pm

Hi Oscar,
Quick question – when you flashed from Cleanflight, did you opt to do the full chip erase?

Oscar 9th October 2015 - 11:10 am

Hi Chad
If you want to erase all the settings on the board you should check the Full Chip Erase button. I think it’s a good idea to check it since Betaflight is a different firmware.

Alfonso 7th October 2015 - 1:37 am

Hi Oscar,

You are a God sent! Last July 2014, I traded a brand new 50cc Yak 54 airplane rtf, a .40 size extra rtf , and a brand new .40 size electric Cessna rtf for 1 mint condition Dji Phantom 2. Then I acquired quadcopters with Kk2 fc. When I stumbled into your blog about naze32 calibration because I kept breaking props on a mini tricopter build. I ended up retiring 6 KK2 boards and got hooked tothe naze32s. You are a “Quadcopter Newbies Guro”. Keep up the good work Sir. It is very well appreciated from a guy like me.

Oscar 7th October 2015 - 4:58 pm

Thank you Alfonso :D I am happy that i can help!

phill 6th October 2015 - 7:26 pm

Hi Oscar,
Just wanted to say how much your work is appreciated, if i have a question that I cannot solve you usually have the answer and in nice simple terms to understand, I can tackle most stuff but the programming/flashing, understanding Hex files etc etc is not my strong point but with your help its becoming much easier
Thanks again and happy flying, i’m now gonna flash Boris’s new betaflight on my naze and hopefully reap the benifits :)

Oscar 7th October 2015 - 4:49 pm

Thanks for the kind words Phill! Happy flying :)

Matt McNiece 5th October 2015 - 1:20 pm

Hi Oscar,
Love your work. I just updated to Betaflight and had a few challenges along the way>happy to say I got there in the end and documented them here –

Thoemse 4th October 2015 - 5:19 pm

It stopped raining. :) I cannot compare to cleanflight because i switched from a kk 2.1.5 straight to an afro naze32 with this firmware but boy is this good. I changed no PIDs at all just yet and i flies so nice and responsive. I did not know my quad (250 4S 2206 1950kv) could do such sharp yet smooth turns. It’s a whole new flying experience!

Oscar 6th October 2015 - 4:49 pm

very good news Thoemse! Glad you enjoy it! :)

Thoemse 4th October 2015 - 8:50 am

Hi Oscar

Thanks for this guide. Just flashed this firmware. Now if itwould only stop