Betaflight 4.4 official release just landed! I will share with you what the most interesting new features are, and how to flash to the latest version. There were almost 300 merge requests for Betaflight version 4.4, most of us will never have the patience to go through them, so this post is for you to get some idea what’re coming.
Update Jan 2024: Check out what’s new in the next version, Betaflight 4.5: https://oscarliang.com/betaflight-4-5/
Table of Contents
How to Update to Betaflight 4.4
Install New Configurator
Download the latest Betaflight Configurator 10.9.0 here: https://github.com/betaflight/betaflight-configurator/releases/latest (older configurator will not work properly with BF4.4)
- For Windows, choose this one: betaflight-configurator_10.9.0_win64-installer.exe
- For MacOS, choose this one: betaflight-configurator_10.9.0_macOS.dmg
Backup Settings
Back up your flight controller using the Presets tab before updating your FC to Betaflight 4.4.0. If anything goes wrong you can always return to where you started (i.e. flash the old firmware then restore the preset).
Flashing BF4.4
Open Configurator 10.9.0 you just installed, go to Firmware Flasher. Plug in your FC, click “Auto-detect” in the configurator, select the latest Betaflight stable release (e.g. 4.4.0 in this example). And hit “Load Firmware [Online]”, then hit “Flash Firmware”.
If you have trouble flashing, check out my FC driver troubleshooting guide. If nothing works, consider getting a Speedybee Adapter, and flash it via the Speedybee App on an Android smartphone.
Configuration
DO NOT load preset from an older Betaflight version into Betaflight 4.4, some of the settings are not compatible!
There is a non-official migration tool for converting 4.3 presets into 4.4, which can simplify the setup process. However there’s no guarantee it will 100% work, so my personal advise is to setup your quad from scratch and avoid loading your preset from a previous Betaflight version to avoid any potential issue.
I have a Betaflight beginner setup guide here: https://oscarliang.com/betaflight-firmware-setup/. For PID/Filter tuning, I have a tutorial coming soon for BF4.4, for now you can refer to my 4.3 tuning guide.
New Features in 4.4
Auto Landing for GPS Rescue Mode
Prior to Betaflight 4.4, GPS Rescue mode can bring your quad home but you must take over control before it gets too close otherwise it will just fall to the ground.
In the new version, Betaflight will land the quad for you automatically! When the drone has reached the launch point (or somewhere close depending on how accurate your GPS is), it will start to descend slowly, and when it touches the ground it will disarm automatically.
This is like turning your FPV drone into a DJI drone when you lose signal or orientation. Here’s my tutorial on how I setup my GPS Rescue mode.
Cloud Build System
The new Cloud Build System gives users the ability to custom compile our own version of Betaflight to include only the features we need to minimize firmware size.
This might not be a big deal now, but in the future when Betaflight code continues to grow and becomes too big for some processors, it will come in handy! As I mentioned in my FC processor overview, F411 and F722 have only 512KB of memory. Cloud Build System can make Betaflight firmware smaller for these processors and prolong their lifespan.
Troubleshooting:
If you have something missing, we suggest flashing the core version. This will load all the hardware drivers (but not all features), and then you can submit a Support level of detail from the CLI tab. In addition, you can use the custom defines input box shown when “Expert Mode” is enabled.
For those missing a barometer: You can try any or all of BARO_MS5611 BARO_SPI_MS5611 BARO_BMP280 BARO_SPI_BMP280 BARO_BMP388 BARO_SPI_BMP388 BARO_LPS BARO_SPI_LPS BARO_QMP6988 BARO_SPI_QMP6988 BARO_DPS310 BARO_SPI_DPS310 BARO_BMP085 BARO_2SMBP_02B BARO_SPI_2SMBP_02B in the custom defines input box.
For those missing the flash chip: You can try any or all of FLASH_W25P16 FLASH_W25Q128FV FLASH_W25M02G FLASH_W25N01G FLASH_W25M in the custom defines input box.
If you have something missing from your cloud build that is expected to be present, e.g., a flash chip or barometer, the reason is that the board configuration in unified targets has not been updated with this information (either by the community, or the manufacturer).
HD OSD Config In Ports Tab
You can now enable OSD for digital FPV systems in the Ports tab.
Go to the “Ports” tab, under “Peripherals”, select “VTX (MSP + Displayport)” for the UART to which the VTX is connected. The MSP option should automatically be selected, if not please enable MSP for that UART as well.
Then apply the preset (just search for “OSD for Fpv.wtf, DJI O3, Avatar HD”). Once applied you can then skip ahead to configuring in the OSD tab.
The preset is the same as entering this command lines in CLI.
set osd_displayport_device = MSP set vcd_video_system = HD save
Note: if you are using DJI with WTFOS installed, make sure to update it to the latest version (on both V2 goggles and Vista) for BF4.4 to get the correct display grid size. Also you need to enable compressed transmission to get the grid size to work reliably, otherwise you’d have to rely on certain bootup order to get it work, i.e. power up the quad first then the goggles. Hopefully this will be fixed in future version of WTFOS.
Improved OSD Canvas Support for HD FPV Systems
The new OSD canvas for HD FPV system utilizes the whole 16:9 screen area, there’s more space available to place your OSD elements. It makes the font and screen much appropriately sized for HD FPV videos.
To enable it, simply select HD in Video Format in the OSD tab.
Notes: HD canvas is only available to DJI (O3 AU or FPV.WTF Rooted), Avatar and HDZero, NOT for analog. The size of the canvas (visible number of columns/rows) defaults to 53*20 in HD, compared to 30*16 for PAL and 30*13 for NTSC.
Favourite Presets
Once you’ve applied a preset, that preset will automatically get a star at the top right corner and pinned to the top, it’s like having it “added to your favourites”.
Preset starring is a way to highlight your frequently used presets, however it’s NOT a reminder as to what presets your quad is currently running! If you star a preset and plug in another quad, that same preset is still starred. You can manually add/remove the star on a preset.
PID and Rate Profile Naming
You can now name your PID and rate profiles instead of using the generic name “profile 1, 2, 3” etc. For example you can name your profiles: Freestyl, Cinemati, Tuning, LOS etc. Those are not typo, you can only have 8 characters in the names. :-p
ExpressLRS V3 for SPI ELRS Receivers
If your FC has a built-in SPI ExpressLRS receiver, by updating to Betaflight 4.4 will also update the receiver firmware to ExpressLRS 3.0. That means you will also have to update your transmitter module firmware to ExpressLRS 3.0 in order to get them to bind. You can now enter the bind phrase directly in the Betaflight configurator Receiver tab, no more need to convert it first then type it into CLI.
Connecting FC via WiFi
You can now configure your flight controller wirelessly if you are using ExpressLRS.
If your ELRS receiver has WiFi, it can talk to your home WiFi network, and establish communication with Betaflight Configurator on your computer which is in the same network.
Limitations: CLI/Presets doesn’t work, and it’s a bit slower than USB connection.
How to setup:
- Your ELRS RX must have Wi-Fi capability
- Update your ExpressLRS receiver to 3.0 or newer, make sure to add your home wifi network
- Go to your radio’s ExpressLRS LUA script, enable RX Wi-Fi
- Make sure you have Telemetry enabled in Betaflight, otherwise it won’t connect
Other Improvements
Many other things have been improved too that might not be obvious to the average users, such as Antigravity, Dynamic notch filter, RPM filter… For a full list of new features you can check here: https://github.com/betaflight/betaflight/releases/tag/4.4.0
You should probably re-tune your quad once upgraded to BF 4.4 if you want the most out of it, but I am sure the default would work just fine like it has been in 4.3, or even better!
Let me know in the comment if there’s any new features and improvements that are important to you but I didn’t mention.
34 comments
Hi Oscar. Thanks for detailing all that for us. I’m using a GEPRC Cinebot 30 that comes with really good factory created PID and Rates, but on Betaflight 4.3. When you upgrade to 4.4 do these remain or are they changed to Betaflight defaults? If it does, then can I just re-input all the same settings and have it fly the same?
Your settings will be reset to default after upgrading to 4.4. Some settings/values in 4.3 might not work well in 4.4, so I don’t recommend re-applying settings from an old version.
Unless you have a reason to update Betaflight, maybe you should consider just leave it at 4.3, unless you know how to set it up again from scratch in 4.4.
Thanks Oscar.
hi, i updated my geprc stablepro f7 stack to betaflight 4.4.1 it no longer worked and would not connect to betaflight as it was unrecognised. tried all the driver updates, still never worked and the impulserc driver updater couldn’t even find the flight controller. i reinstalled betaflight 4.3.2 and everything worked fine again. anyone know why this happened, is there a known issue running 4.4.1 on this FC?
Firmware related issues should be reported on Betaflight Github. Sorry I can’t provide any driver or code level support.
Hi Oscar,
After i upgrade my flywoo goku versatile f405S AIO from bf 4.3.1 to 4.4 i cannot select and safe the spi rx and expresslrs.After save and reboot it go back to uart and crsf.I even try bf 4.4.1 and 4.5 still the same.I need the fc to be 4.4 inable to bind my happymodel es24tx slim pro with elrs 3.Is there a way to fix this?
Many thks
Sry i just solve the problem by reflash to 4.4.1 on core mode now able to set spi rx and expresslrs.
Thks
As far as I know the Goku Veratile F405 AIO board with built-in ELRS uses a UART based receiver (on UART1), it’s not SPI receiver. Only the Frsky version uses a SPI receiver.
Ok will check it up
Thks for the advace
Ok found out is full uart elrs receiver build in.Now i hv another problem when i arm the motor no moment.On BF receiver tap all control and switch are working.I set aux1 arm on ch5 as what elrs requirement.If i just connect my firefly without battery plug in i see the quad on receiver tap keep turning around.Is there any setup i miss?
Many thks
you need to find out what the arm disable flag is. Here’s a detailed troubleshooting guide: https://oscarliang.com/quad-arming-issue-fix/
hi oscar i have a chimera 7 with 4.2 firmware. can i flash it to the latest 4.4 firmware or do i have to do the 4.3 first then unto 4.4?
I don’t have the chimera 7 to be 100% but normally with a flight controller you should be able to just flash it to 4.4 from any other version.
Hi Oscar,
I’ve tried to use “Acro Trainer” mode for my 95X v3 in a newer flashed Betaflight 4.4 but this mode is missing in “Modes” tab of Configurator 10.9.0.
I’ve never activated this mode before (in a previous FC firmware), could You suggest me how to solve this problem?
Hi Oscar,
I have tried to flash JHEF405 firmware to betaflight 4.4 using configurator 10.9.0 but I have no accelerometer! I then had to flash back to 4.3.2. Do you have a solution for this?
I have the same issue with the Speedybee F7 mini FC. It seems that I have no gyro either. Please help!
See my comment here to troubleshoot: https://oscarliang.com/betaflight-4-4/#comment-162588
Copy and pasted from BF discord
:Betaflight: MISSING GYROS IN 4.4.0 :Betaflight:
First thing to check is, “are you flashing the correct target?”. Ask yourself, “do you have a clone?”. This may explain why some hardware appears “missing” as not all clones are complete clones. Even if our “auto detect” reports that you have a given target, it only detects what was previously flashed, which may be wrong.
If you are certain it is the right target, then try flashing the “core” option, and then check the output of the status command in the CLI. This will tell you the gyro.
You can then enter the GYRO details below into the custom defines (expert mode only) option on the firmware flashing tab. e.g. for BMI270 you would enter ACCGYRO_BMI270, for MPU6000 you would enter both GYRO_SPI_MPU6000 and ACC_SPI_MPU6000 separated with a space.
BMI270 => ACCGYRO_BMI270
BMI160 => ACCGYRO_BMI160
MPU6000 => GYRO_SPI_MPU6000 ACC_SPI_MPU6000
MPU6500 => GYRO_SPI_MPU6500 ACC_SPI_MPU6500
MPU9250 => GYRO_SPI_MPU9250 ACC_SPI_MPU9250
ICM20602 => GYRO_SPI_ICM20602 ACC_SPI_ICM20602
ICM20689 => GYRO_SPI_ICM20689 ACC_SPI_ICM20689
ICM42605 => GYRO_SPI_ICM42605 ACC_SPI_ICM42605
ICM42688P => GYRO_SPI_ICM42688P ACC_SPI_ICM42688P
Hi
I have hglrc zeus f722 and r9mx frsky receiver works on fport, but after update to 4.4 I can’t connect the receiver with betaflight everything was set as it was before, what could it be?
In firmware flasher, you now have to manually select FPort in the radio protocol before pressing “Load Firmware” if you are using Frsky stuff, by default only CRSF, GHST and SBUS are selected as these are the most common protocols nowadays. This is part of the new “Cloud Build” system. I think that’s why your receiver isn’t working after update.
Led strip settings with matek 2812 leds, don’t work correctly at all. All I get is random colors and it will work sometimes if saved a few times. But then glitches when power cycled. In 4.3.2 it works perfect.
Hi Oscar:
I have a Betafpv nano TX. Ima using it with a Frsky taranis X-lite. I updated to ELRS 3.2.0 and now it does not work. It cannot bind to my mobula 6 ELRS with betaflight 4.4.0 even when the binding phrase is the same in both RX and TX.
Is there a know issue with the betafpv ELRS nano TX?
Hey Oscar, great job on that article. Well I am confused and trying to find a way around it. I’m not too fond of HD default OSD font. I had a custom font on bf 4.3 version which was colourful but now it is gone. Do you know how to get that option back (to display custom fonts)?
Which FPV system are you using? By “it’s gone”, you mean it’s back to the original font?
I’m using DJI HD system. WHen OSD appears in the DJI google V2, for blink it shows custom fonts which I had on 4.3 and then switches BF fonts (white fonts in default) which appear in 4.4.
Hi Oscar, I have the speedy bee f7v3 FC. It has a dedicated pad “CC” for camera control. It even came with a special cable for the camera. CC just wont work. Is there anything that i need to do in the CLI.or is there a setting in the configurator. any help would be great. Keep up the good work.
thanks, Kip C
Did you include Cam Control in Build Configuration when you flash firmware? By default it isn’t.
Hi Oscar and readers.
Did you guys notice that you also cannot save your osd settings as you wish to?
I got the problem that i drag my voltage and dbm strength to the bottom corners of my screen. i check in the goggle while placing them at the right spot. Than i click save and everything looks oke. But when i unplug the quad and plug it in again.. the osd is messed up and everything is pushed a up.
it wont let me use the bottem of my screen for osd readings.
if i put the osd readings a bit more up, it stays in place after reboot the quad.
any suggestions?
Kind regards,
Arthur
problem solved by changing the video format to PAS instead of auto.
What FPV system are you using?
in my previous post i ment “PAL”, but i think that was clear.
I use a TBS Unify Pro32 HV.
it’s sitting on a nazgul5 V2.
found more info here: https://github.com/betaflight/betaflight/issues/12191
Would you consider doing a tuning guide from scratch for a 10” to 13” quad? Similar to your step by step micro quad tuning guide.
In Betaflight Firmware Flasher, what is all the options meanings? What do they do exactly so we can determine if we actually need it? Would be nice to hover over each one and a definition/example box pops up.
If you don’t know it’s best if you just leave it at default, it already includes most if not all the things we need and it should work for most people.