Betaflight

  • Betaflight is also always being adjusted to support most current Cleanflight tools like Configurator and EzGui devices and many other MSP tools. There is no special tool needed just for betaflight. Tested Boards - Naze32 rev4, rev5 and rev6 (boards like dragonfly32, flip32 are all naze32 rev4 clones and just use naze target) - CC3D - SpracingF3.
  • But starting from Betaflight 4.1, channels and power levels have to be set manually. You now have to know what channels and power levels your VTX supports in order to set it up correctly. And you also have to beware of what frequency and power levels you are allowed to use according to your local regulations.
  • There are lots of other features that make this an exceptional flight controller running Betaflight. Features include Betaflight OSD, 5V/1A power filter, Blackbox (with microSD card reader), DShot ESC support, Buzzer and LED light support as well as the ability to support SBUS/IBUS/DSM2 compatible/DSMX compatible protocol receivers.
  • Keeping devices firmware updated is always important, especially when awesome new features are out. This is the case of Betaflight quadcopter firmware, which has introduced incredible improvements in 4.2 version allowing to better control drone movements and trace smoother trajectories due to improved noise handling through the use of advanced control algorithms.

This guide takes you through the full configuration of the SP F3 flight controller in BetaFlight, step-by-step. We will cover everything from installing the BetaFlight GUI software to setting up flight modes for your quadcopter.

If you have been following our Beginners Guide on How to Build the Martian FPV Racing Quadcopter, you will have been directed here after completing most of the build. Don’t worry, the configuration process is not as complex as it sounds, assuming you follow the steps in this guide.

This guide will cover:

  • Installing BetaFlight GUI software;
  • Connecting your flight controller and updating drivers;
  • Upgrading firmware on your SP F3 Acro flight controller;
  • Calibrating the accelerometer;
  • Setting up your radio and binding the receiver;
  • Configuring motors and testing them;
  • Configuring BLHeli ESC settings;
  • Setting up flight modes.

If the values shown in CleanFlight or BetaFlight are dramatically different to the recommended values of 1000-2000 (e.g. 1078-1926) then you can use a command via the flight controller CLI (Command Line Interface) to align the values with the output from the transmitter.

First things first, if you don’t already have the BetaFlight GUI software (Chrome App) on your PC, you will need to install it via the Chrome web store. This App is used to configure the flight controller.

Trending

Betaflight 4.3

⚠️During any configuration of your drone please ensure the propellers are removed from your quad!

Connect the flight controller (FC) on the Martian to your PC via a micro USB cable. Once connected, some LEDs will illuminate on the FC to indicate that it has power (via the USB connection). Don’t use a USB hub as sometimes these don’t provide enough power to power the flight controller on the quadcopter.

With the BetaFlight GUI App open, you should be able to connect to your drone by clicking the connect button. Assuming you have the correct drivers, the software will connect to your quadcopter.

If you get an error, try selecting another COM port from the drop-down menu. If you still can’t connect (or you can’t even select the connect button) then there is likely a driver issue on your computer. I suggest you check out our driver fixer guide to get the correct driver (and driver version) installed on your computer. Also, you might want to try another USB cable, or USB port on your computer, just in case.

Once connected, you should see something like the image above. You will see a 3D model of a quadcopter that should move as you move your actual quadcopter. At this point we have confirmed that the flight controller is working and if you still can’t connect, please add a comment below so we can help you. We will now move onto upgrading the firmware and configuring the flight controller.

Although this is not strictly required, it is always a good idea to install the latest firmware on your FC. To do this you will, disconnect your flight controller (click the disconnect button on the top right of the Betaflight GUI). This will enable the Firmware Flasher tab which we use to update the firmware.

Download the firmware

On the Firmware Flasher tab, you must first select the SPRACINGF3 board (as this is the flight controller we are using on the Martian quadcopter). Then, below this, you can select what version of the firmware you want to load onto your board. It’s best to select the latest stable version – at the time of this guide it is 3.2.0.

Once you have selected the firmware, you can click on the Load Firmware (Online) button at the bottom of the screen and BetaFlight will download the firmware onto your PC. Once done, you will see that the ‘Flash Firmware’ button can be clicked. Don’t click it just yet as we first need to enable bootloader mode on the flight controller.

Enable Bootloader Mode

Bootloader mode is a special mode that allows you to flash firmware onto the flight controller. Fortunately, the process of enabling bootloader mode is quite simple. All you need to do is short the two bootloader pins (as shown below) as you connect the flight controller to your PC.

I usually use some metal needle-nose tweezers to short the boot pins but anything conductive (e.g. some wire, a paperclip etc.) will work. You just need to create an electrical connection between the two boot pins.

Flash Firmware

Now that the board is connected to the PC in bootloader mode, you simply need to click the Flash Firmware button. If this is successful, you will see the progress bar at the bottom of the page start up and once complete, the board will reboot.

If this works straight away, then great! This isn’t usually the case however. You usually need to change a few settings. This is the process I follow:

  • Go back up the page and turn on ‘Flash on Connect’ (first select ‘No reboot sequence’) and ‘Full Chip Erase’ for good measure.
  • Unplug the board and connect it again (still in bootloader mode). BetaFlight will then attempt to flash the firmware automatically upon connection.
  • Didn’t work again? Hit ‘Flash Firmware’ again just to make sure.
  • Last but not least, if you’ve been through all of this, unplug the board again and select ‘Manual Baud Rate’ (whilst keeping the other options selected). You might also want to try a slower baud rate just to make triple sure.
  • Plug the board in again and hey presto! Hopefully, the firmware is being flashed.
  • If you are still having problems, make a quick video of what you are doing and post it on our forums and one of us will help you out!

Once completed remember to make sure the boot pins are no longer connected so the board can start in normal mode.

At this point, you can congratulate yourself as you have just flashed firmware onto your flight controller. This process can be repeated when new firmware is released to keep your flight controller on the cutting edge. We will now move onto the configuration of your board.

When your flight controller is posted to you, it can take a few knocks (especially if the courier decides to play some football with the parcels between deliveries…). The sensitive IMU units might, therefore, need a re-calibration. Fortunately, this is super easy, as it’s just the click of a button within BetaFlight. Simple connect to your board via Betaflight and on the Setup Tab, you will see the Calibrate Accelerometer button.

Before pressing this button, simply place your quadcopter on a surface you know is level (thereby ensuring the flight controller itself is level) and make sure that there are no vibrations or micro movements. Then simply click the calibrate accelerometer button on the Setup Tab.

❗ If you are following our guide step by step, at this point your Martian may not be completely assembled so when it rests on the table, make sure the board itself is level before you calibrate the accelerometers.

At this point, you should now get your radio setup and bound to the receiver on your Martian quadcopter. Unfortunately, the stock setup on the radio is not ideal for FPV quadcopters so we need to change a few things. Rather than repeat everything again in this article, you should head over to our Flysky Radio setup guide that covers how to get your radio setup and also bound to the receiver on your Martian.

Once you have set up your radio and bound the receiver, you need to tell your flight controller what receiver you are using and where it is connected.

Following our guide, we connected the receiver to the UART2 port. The first thing we therefore need to do is to enable Serial RX on UART 2 within the Ports tab of BetaFlight.

Betaflight Download

You then need to go to the Configuration Tab and tell BetaFlight that you are using a Serial-based receiver and that the type is iBUS. Remember to hit the Save and Reboot button to apply the settings to the board.

It’s a good idea to now make sure that everything is working correctly. To do this, you go to the Receiver Tab within BetaFlight.

On this tab, you will see a bunch of bars that represent the inputs from your radio. When you move a stick on the radio, the corresponding bar should move on screen. For example, when you move the thrust stick, the thrust channel should move.

You may find that when you move a stick on the radio, a channel that doesn’t correspond to that stick moves on screen. For example, you may move the thrust stick on your radio but the roll channel moves on screen. You will need to correct this and this is done by changing the channel mapping. We have a video here taking you through the process of changing the channel mapping.

This video is for the CleanFlight software but the process is exactly the same in BetaFlight.

If you don’t see anything moving, make sure your battery is connected to your Martian (so that the receiver has power) and, of course, that your radio is on. If both are on, then I suggest you try to rebind your receiver to the radio (as per our FlySky radio setup guide mentioned before).

The other thing to check is to ensure your radio settings are correctly configured within BetaFlight as discussed previously.

Part of configuring the flight controller involves making sure it is communicating to the ESCs/motors correctly. We need to set the optimal protocol for the flight controller and you do this in the Configuration Tab where there is a box called ‘ESC/Motor Features’. Here, we need to set the ESC/Motor protocol to Dshot600. This ensures the motors and ESC will work as fast as possible. Once selected, don’t forget to click the Save and Reboot button to save the settings onto your flight controller.

While we have the battery connected and props removed, it is a good idea to check the motors. You do this via the Motors Tab within BetaFlight.

⚠️Make sure the propellers are removed before testing the motors for your own safety!

Here, you need to select the master switch, thereby arming the motors. You can now test the motors individually or all at once. We are checking that the motors are connected in the correct order. Using the diagram below, when you turn on motor 2, you will need to confirm that motor 2 is spinning and also that it is spinning the correct way (counter-clockwise). Repeat this for the rest of the motors taking note of which motors are spinning the wrong way around as we can fix this in the next step. If you are following our build guide, chances are you will find that motors 2 and 3 are spinning the wrong way around.

If you find that one of the motors don’t work at all, please double check your battery is connected and fully charged. Otherwise, recheck your soldering.

Betaflight

⚠️Make sure the propellers are removed whenever you change ESC settings!

BLHeli Configurator is another Chrome App that you will need to install to configure your ESC settings. The nice thing here is that you can connect to your ESCs via the USB cable connected to your Martian flight controller.

Betaflight download

With the quadcopter plugged into your PC and the battery connected, make sure you have disconnected from BetaFlight. Now click the connect button in BLHeli configurator. Once connected, click the ‘Read Setup’ button to load the ESC information.

The left column shows settings that are common among all four of the ESCs. In this section, you need to make sure that the ‘Brake on Stop’ function is enabled. The right column shows ESC specific settings for ESC 1,2,3,4. In our example, we need to now select ‘reverse’ for ESC 2 and 3 so that these motors spin the correct way. Once done, remember to click the ‘Write Setup’ button to save the settings to the ESCs.

You can also use the BLHeli Configurator to flash new firmware onto your ESCs but at this point, you do not need to worry about that.

Before you go out and fly, you should set up the flight modes for your quadcopter. Assuming you are reading this section as a beginner, I suggest you configure your flight modes according to our beginner flight modes article.

And that’s it! Once all the flight modes are configured, if you are following our ‘Martian III 220 Build Guide’ you should return to the ‘Final Touches’ section of the article to finish up.

Happy flying!

What is CLI ?

CLI is abbreviation of the a Command Line Interface. It is special configuration mode where commands are given insted of the dedicated setting controls and inputs. Every flight controllers firmware configurator (Cleanflight, Betaflight, Butterflight, iNav, etc) has this mode. It is useful for more specific change of settings and detailed configuration the Flight Controller. It is also usefur for dumping the whole flight controller configuration, backuping and restoring the settings in the easy way. Read more about it below.

How to use CLI?

In order to start using CLI you have to connect to your flight controller with configurator software (See here how to install the standalone configurator software). Click on the “CLI” tab – this will enable flight controllers CLI mode. Write the command in the input field and hit the [Enter] to execute it.

You need to execute save command if you want all the commands and changes to be saved into Flight Controllers memory. Saving will reboot the flight controller. Close the CLI tab or send the exit command to exit the CLI mode without saving.

CLI Dump or Diff?

dump command dumps all the setting of the flight controller. This can be quite a long list
diff command was introduced in the BetaFlight version 3.0 and it dumps only the settings that are different from the defaults.
diff all command dumps only differencies from the defaults but also dumps all the PID profiles.

It is highly recommended to use diff instead of the dump as it results in the significant smaller settings list and only the ones that were changed or differ from the defaults.

How to Backup/Restore the settings using CLI?

Sometimes it is usefull to save the Flight Controller settings and restore them in case you need. These cases include FC firmware upgrade, restoring the FC to the point where it worked and etc. Backuping and restoring is very simple task.

Backup: Go to CLI, enter diff (or diff all if you have multiple PID profiles) and copy the provided text to anywhere just to save it for later use.

Restore: Go to CLI, paste the saved settings text to the command input field, hit [Enter]. Your FC settings are restored. Don’t forget to save the settings.

CLI commands list

CommandDescription
1wire <esc>passthrough 1wire to the specified esc
adjrangeshow/set adjustment ranges settings
auxshow/set aux settings
colorconfigure colors
defaultsreset controller to defaults and reboot
dumpprint configurable settings in a pastable form
diffdump only the settings that are different from the defaults. Includes only the current PID profile.
diff alldump only the settings that are different from the defaults. Includes ALL PID profiles.
exitexit without saving
featurelist or -val or val
getget the value of the specified variable
gpspassthroughpassthrough gps to serial
helplists all commands
ledconfigure leds
mapmapping of rc channel order
mixermixer name or list
mode_colorconfigure mode colors
motorget/set motor output value
play_soundindex, or none for next
profileindex (0 to 2)
rateprofileindex (0 to 2)
rxrangeconfigure rx channel ranges (end-points)
rxfailshow/set rx failsafe settings
savesave settings and reboot
serialpassthroughserial passthrough mode, reset board to exit
setset the the given value to the variable. (name=value or blank or * for list)
statusshow system status
versionshow version
serialconfigure serial ports
servoconfigure servos
sd_infosdcard info
tasksshow task stats
mmixdesign custom motor mixer
smixdesign custom servo mixer

Betaflight Configurator Releases

Betaflight

Note that specific command list depends on the type of the firmware (BetaFlight, Butterflight, iNav) and firmware version you are using. For exact list of the commands type help in CLI mode.

Usefull CLI commands

bl or dfu command to enter the DFU mode without pushing the button. Reboots the FC board in bootloader mode.

set small_angle = 180 – sets any angle your quadcopter will be able to arm. Usefull when you land unexpectedly severely angled and you are unable to re-arm.

Betaflight Configurator Download

set ledstrip_visual_beeper = ON – When set to on, and the LEDLOW mode is active (i.e. LED strip off), blink the LED strip in synch with beeping, as a visual indicator in cases where the craft is too far away for the beeper to be heard / multiple craft are flying. Values available: [ON,OFF (default)]

Binding with integrated Receivers (connected via SPI):

Betaflight Motor Order

For Betaflight 4.x – command bind_rx_spi
For Betaflight 3.x: – command frsky_bind
Don’t forget to issue save command after the sucessfull bind.

History:
2018-05-23 – article created
2019-02-13 – Usefull CLI commands updated
2019-07-01 – Usefull CLI commands updated

  • Guide: How to Arm, PreArm and start your quad
    What is Arm and why do we need it? All modern quadcopters (or any
  • ExpressLRS – Open Source Long Range radio control system – Complete Guide
    ExpressLRS is the Open Source Long Range radio control system, developed by Alessandro Carcione (aka AlessandroAU)