How to Setup Betaflight Firmware

by Oscar
Published: Last Updated on

This tutorial shows you how to setup Betaflight. After building your FPV drone, you need to configure the flight controller before flying. There are a ton of options you can enable, but I will show you the absolute minimum settings needed to start flying.

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

If this is your first time flying an FPV drone, try to keep it simple at first, establish a flying baseline – then add extra features. You don’t have to learn everything before flying, you can learn as you go.

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

Getting Started

To keep this guide as simple as possible I am making some important assumptions about your gear and setup:

  • You have a quadcopter (4 motors)
  • You are running serial receiver (e.g. Crossfire, ExpressLRS or Frsky SBUS)
  • F4 or F7 flight controller running the latest Betaflight firmware
  • Your ESC supports DShot ESC protocol (e.g. BLHeli_S or BLHeli_32 ESC)

Here are the configuration steps in this tutorial (click to jump straight to that section):

Install Betaflight Configurator

Before we begin, please download and install Betaflight Configurator. This is the software we must use to setup Betaflight, it works on Windows, Mac and Linux.


Update Firmware

If you purchased your FC following my recommendations, it should 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.

Tutorial: How to backup Betaflight settings.

Pro Tip: Before updating FC firmware, you should regularly check and update Betaflight Configurator to avoid bugs, as the Configurator is tightly bound to the firmware.

Setup Betaflight For The First Time

To avoid overcomplication, we will configure only the absolutely necessary settings in Betaflight to get you in the air. You can then explore other settings later on to optimize your FPV drone flight performance if you wish.

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

Connect FC to Computer

Once you’ve connected the FC to your computer via USB cable, your computer will power the FC.

And a new COM Port should appear in the Configurator, choose 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 different FC.

If you don’t find the COM port, or have trouble connecting, this might be a 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.

Setup Tab

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.

  1. Back up settings first before changing any settings (How to Backup & Restore Settings)
  2. Put your quadcopter on a level surface, then press “Calibrate Accelerometer”
  3. 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 flight controller (FC) is installed facing the wrong direction (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).


In the Ports tab, you can configure your peripherals – external devices connected to the flight controller via UART.

  1. If you are using a serial RX like Crossfire, SBUS or IBUS, you need to enable “Serial RX” on the UART the RX is connected to
  2. If you are using Frsky SmartPort, select “SmartPort” under Telemetry Output. If not just leave it at Default


The Configuration tab contains many basic settings related to your drone’s flight performance.

1. ESC/Motor Features

ESC Protocol – check your ESC spec to find out which protocols they support. Generally speaking if you are using BLHeli_S or BLHeli_32 ESC, DShot is recommended. I’d recommend using DShot600 if you are running 8KHz PID loop frequency, DShot300 for 4KHz, DShot150 for 2KHz.

Further Reading: ESC Protocols and Firmware Overview

We recommend you to always keep “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.

2. System Configuration

PID Loop Frequency (aka Looptime) – it depends on what your FC is capable of, select the highest value possible while keeping CPU load under 30%. Note that looptime should be equal or lower than gyro sampling rate.

Gyro Sampling Rate – same as looptime, set it as high as possible while keeping CPU load under 30%.

When changing these two values and other features, pay attention to “CPU load” at the bottom of the window, try to keep it under 30%. High CPU load could cause instability to the flight controller.

Feel free to experiment and see what gyro rate and looptime combination works best for you, there is no set-rule what you should be using.

Accelerometer – I recommend to leave it 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.

You can just disable both Barometer and Magnetometer if your FC doesn’t have these components.

3. Personalization

Craft name – This will be displayed in the Betaflight OSD.

4 – Receiver

If you are using a serial RX, just pick “Serial-based receiver” 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.

5. Other Features

These are the features I normally enable in Betaflight. If you are not sure, you can just leave these at default, that will still get you in the air without any problems.

  • Telemetry
  • OSD
  • Airmode
  • Dynamic Filter

Click Save & Reboot.


In this tab you can check if your receiver is working correctly.

Power on your TX and RX, and move your sticks one at a time to see if the corresponding channel is moving. You might need to change “Channel Map” if the channels are in the wrong order.

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

If none of the channels are responding, troubleshoot:

  • 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, and have end points of 1000 and 2000. If you see a very small error like 2 to 3, it’s generally okay to just ignore it for now.

Anyway you can follow my tutorial on how to fix mid point and end points.

If the midpoint number jumps around, 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 it. Midpoint jump is pretty common and nothing to worry about, how much it jumps depends on the quality of the receiver.

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


In the “Modes” tab you will tell your flight controller what the switches on your radio do. Common modes we use are:

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

I try to 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 testing your motors. Make sure you remove all the propellers before using the motor tab for safety.

There are a few things you want to check:

  • Whether the motors spin?
  • Are the motor in the correct order?
  • Are they spinning in the right direction?

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 using resource remapping

Tutorial: Betaflight Resource Remapping

Now, check motor spin direction, if wrong, you can reverse spin direction in BLHeliSuite

Tutorial: How to connect to BLHeliSuite (ESC configurator) via FC


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.

PID Tuning

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

You don’t really have to change anything here in order to take off for the first time. Default values are perhaps not perfect, but they should work fine for most models. As you become more experienced in the future, you can take a look at my PID tuning guide.

However, you might want to adjust 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.

Stop Beeping on the Bench

If you connected the buzzer to your FC, it might start beeping as soon as you connect the USB while your radio is powered off. An easy fix is to disable “USB” option under Beeper Configuration in the Configuration tab.

That’s all to the basic setup in Betaflight.

Safety Checks

Check Failsafe – Remove all props, arm the quad. With the motors spinning, power off your radio – this simulates a failsafe during flight. Ideally, your quad should disarm within 5 seconds. If not, you need to investigate your failsafe settings.

Check CPU Load – While the quadcopter is armed, look at the CPU load in the bottom of Betaflight Configurator, if it’s ever over 50% you should try disabling some unused features to bring it back down.

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

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.


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.

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