Article

Backing up Betaflight before you flash: diff all, Presets backup and when it is safe to paste it back

Flashing Betaflight always erases the configuration on the flight controller. The firmware flasher page in the Betaflight docs says so in a caution box, and Full chip erase is on by default. Ports, modes, failsafe, OSD layout, VTX table, rates and the tune are gone the moment the flash starts. A backup takes a minute. On a bind-and-fly quad it is also the only copy of the manufacturer's custom setup, which the flash wipes out with everything else.

The less obvious part: a backup is not something you can paste into any firmware version. Betaflight's own advice after an upgrade is to configure the quad again by hand and use the backup as a reference.

Two ways to make the backup

Presets tab, "Save backup". Oscar Liang describes it as the same as typing diff all in the CLI and saving the result yourself. The file name includes the craft name and a date and time stamp. Open the file afterwards and check it is not empty.

CLI. Type diff all and use the "Save to file" button. diff all lists every setting that differs from the defaults, across all PID profiles and rate profiles. dump all lists every value, including the defaults, which makes the file far longer and much harder to read.

Use diff all. Short output is easier to search, and it shows at a glance what you actually changed. The all part matters, because it is what includes every PID profile and rate profile, not only the active ones. The Betaflight page on profiles warns that a backup made from the app covers only the active profile and rate profile. Oscar describes the Presets backup as a full diff all, but it costs nothing to open the file and check that every profile you use is in it.

Before you close the CLI, run version and status and save their output in the same file. version prints the firmware version string and status shows the hardware the board is using. Oscar also suggests a screenshot of the Ports tab, because UART assignments are easier to read there than in CLI lines.

Give the file a name you will recognise later, with the quad, the date and the Betaflight version, and keep it somewhere other than the laptop you flash from.

What flashing actually wipes

Full chip erase deletes all saved configuration and writes new defaults with the data structure of the new firmware. The Betaflight docs say to switch it off only if you are 100% certain that structure has not changed since the last flash, because otherwise the new firmware can read wrong values, "with potentially disastrous results". Leave it on.

When you click Flash Firmware, the app also offers a dialog to save a diff of the current configuration. Use it if you skipped the step above, but do not rely on it.

From Betaflight 4.4 the flasher builds the firmware online for the selected board, with the options you tick (receiver protocol, GPS, OSD, VTX and so on). The board-specific defaults are part of that build, so they go onto the board together with the firmware.

When pasting the backup back is fine

The Betaflight CLI page is blunt: never paste a diff or dump from one firmware version into a different version, because setting names and valid ranges change between releases and can silently corrupt the configuration. The firmware flasher page is a little softer: when you flash the same point version, importing a saved preset or pasting a diff is usually OK.

So a full restore makes sense in situations like these:

  • You reflashed the same version, for example to recover from a configuration you broke.
  • You want to go back to the old firmware. The docs describe this case: build the original version with the same online process and restore the saved diff.

To restore, use "Load backup" in the Presets tab, or "Load from file" in the CLI. In the CLI, finish with save, which writes the settings and reboots the board. Before you load anything, check the version at the top of the file against the board. If they differ, Oscar's advice is to flash the version the backup came from first.

When you upgrade to a new version

Here the docs recommend full manual configuration. You can still paste selected parts of the old diff into the CLI, and the docs name the VTX table and the modes (aux) settings as examples. They warn against pasting the profile or master sections of a dump unless you know what you are doing.

The CLI reference for Betaflight 2025.12 shows why. Compared with 4.5:

  • d_roll changed meaning. In 4.5 it is D max and d_min_roll is the base D. In 2025.12 d_roll is the base D, d_max_roll is the peak and d_min_roll no longer exists.
  • The gps_rescue_* variables were redesigned.
  • failsafe_off_delay became failsafe_landing_time.

Paste a 4.5 tune into 2025.12 and the D lines either fail or land on a value with a different meaning. The failsafe line simply errors, and you may not notice the red text among a hundred others.

A practical order after an upgrade:

  1. Flash with Full chip erase on and reconnect.
  2. Calibrate the accelerometer.
  3. Go through the tabs and set things by hand, with the old diff open next to you: ports, receiver, modes, failsafe, OSD, rates. Paste only self-contained blocks you understand, such as the VTX table.
  4. Set the tune again, using a preset or your notes, not the old profile lines.
  5. Save a new diff all for the new version.

Check before the first flight

After any flash, with or without a restore, the docs say to check that every setting is as it should be and to make the first flights cautious, in a safe place. With the props off, check that the receiver bars move the right way, every mode switch shows up in the Modes tab, failsafe triggers when you switch off the radio, and the motors spin in the correct order and direction. The failsafe and motor direction articles on this site describe those tests in detail.

When the board does not show up for flashing

The Betaflight docs list the usual causes: a charge-only USB cable instead of a data cable, a USB hub (which sometimes helps and sometimes is the problem), or a peripheral such as a receiver or GPS that blocks the port. If the board will not enter DFU mode on its own, hold the boot button while plugging in USB or use the bl command in the CLI. On Windows, the docs suggest IRC Driver Fix (ImpulseRC Driver Fixer) or Zadig for driver problems.