Chapter 13 · Software
Betaflight: tabs, arming and CLI
Betaflight is the most popular open-source firmware for freestyle and racing. Here’s what each tab is for, why a drone won’t arm and the handy CLI commands.
Setting up a drone for the first time? Follow the step-by-step Betaflight tutorial, with diagrams and a check at every step. This chapter is the reference to look things up in later.
Betaflight tools on fpv.cat: design the OSD with the visual editor, keep every configuration in your hangar and connect the drone to the 3D Workshop to watch it move live.
1. Connecting
- Use Betaflight App, in the browser (Chrome or Edge) or the desktop version.
- A USB cable that carries data, not just charging. Many connection problems come down to this.
- On Windows, if the port isn’t detected, you need to install the drivers.
- No props. Always.
2. Updating the firmware
Save your current configuration
In the CLI, type
diff alland save the text to a file.Choose the board
In the Firmware Flasher, let it detect the board or pick it manually.
Choose the version and options
The latest stable version and, in the build options, the radio protocol (CRSF for ELRS) and the features you use: OSD, GPS, LED.
If it doesn’t respond, DFU mode
Hold down the board’s boot button while you plug in the USB.
Don’t paste in the whole old configuration
If you move to a new major version, set things up again or apply only what you need from the old
diff.
3. Board alignment
If you’ve mounted the flight controller rotated (for example, so the USB connector ends up on one side), Betaflight needs to know. In the configuration you can enter the rotation in degrees or use the wizard, which works it out as you move the drone.
Check it in the Setup tab: tilt the drone forward and the 3D model should do the same. If it goes the other way, the board is misaligned and the drone will crash on take-off.
4. Tab by tab
Go through them in this order the first time, with the drone connected over USB and no props on.
Setup
Check that the 3D model moves like the drone and calibrate the accelerometer with the drone sitting level.
Ports
Enable Serial RX on the receiver’s UART. Analogue VTX: SmartAudio or Tramp; digital: MSP DisplayPort. Don’t touch the USB port.
Configuration
DShot300 or DShot600, bidirectional DShot enabled and the right number of motor poles (14 on most). Give the drone a name.
Power & Battery
Adjust the voltage scale by comparing it with your multimeter and set the low-cell warning.
Failsafe
If the signal is lost, stop the motors (Drop) or, with GPS, GPS Rescue.
Presets
Community configurations for the board, the receiver or a base tune. Apply just a few and understand what they change.
PID Tuning
The defaults fly well. This is also where you set your rates (see Learning to fly).
Receiver
CRSF protocol and AETR channel map. Each stick moves its own channel, from 1000 to 2000 and centred at 1500.
Modes
Arm on AUX1 on a two-position switch. Add BEEPER and FLIP OVER AFTER CRASH (turtle).
Motors
No props: check the order (1 rear right, 2 front right, 3 rear left, 4 front left) and the direction of rotation.
OSD
Average voltage per cell, flight time, link quality (LQ) and warnings.
Video Transmitter
VTX table to choose band, channel and power. Pit mode to set things up without interfering.
Blackbox
Records flight data. Turn it on to do tuning.
5. Why won’t it arm?
Betaflight blocks arming if it detects something odd. The Setup tab and the OSD tell you why. The most common reasons:
| Reason | What it means |
|---|---|
RXLOSS / BADRX | No radio signal. Check the binding, the port and the protocol. |
THROTTLE | Throttle isn’t at zero. |
ANGLE | The drone is tilted too far. |
MSP | It’s connected to Betaflight App. |
CLI | You have the CLI open. |
NOPREARM | A pre-arm switch is configured and it isn’t on. |
CALIBRATING | It’s calibrating the gyro: don’t move it. |
6. Features worth knowing
RPM filter
With bidirectional DShot, it removes motor noise precisely and lets you filter less. Turn it on whenever your ESC supports it.
GPS Rescue
If you lose signal, the drone heads back towards the take-off point. Essential for long range. Test it before you rely on it.
VTX table
Defines which channels and power levels you can choose. Without it, VTX control from the OSD doesn’t work.
OSD menu
With the sticks (throttle centred, yaw left and pitch up) you can change PIDs, rates and VTX from your goggles.
Profiles
Several sets of PIDs and rates: smooth ones for filming and others for freestyle.
7. Useful CLI commands
# Show everything you've changed from the defaults
diff all
# Full listing of the configuration
dump
# System status, CPU load and errors
status
# Change a parameter
set parameter_name = value
# Save and reboot (without this command nothing is saved)
save
Save the output of diff all to a file every time you have the drone just the way you like it. If one day you have to flash it again, getting your configuration back will take seconds.