A new command “diff” was introduced back in Betaflight 3.0, it’s much better than using “dump” for troubleshoot and managing parameter in CLI. Still some people are not aware of it so I thought I might mention it here.
The Betaflight ‘diff‘ and ‘diff all‘ commands greatly simplify configuration management by only displaying CLI values that are changed.
What Does Dump do?
“dump” simply prints all the configurable settings in a pastable form (over 300 lines long).
What Does Diff Do?
There are 2 command variants: “diff” and “diff all”.
“diff” prints only the parameters in the current profile and current rate profiles that are changed from the default. By adding a command argument “showdefaults” (entering “diff showdefaults” in CLI), the original values are also displayed in a comment line (beginning with a #) for all changed values.
“diff all” displays only the values in all profiles and rate profiles that are different from the default values. By adding a command argument “showdefaults”, the original values are also displayed in a comment line (beginning with a #) for all changed values.
Why Use Diff over Dump?
When using Diff, you no longer need to go over all the settings, only the ones that are different from defaults. This largely simplifies parameter/feature management and makes trouble-shooting easier.
This also works slightly better for firmware updates, where you need to make a setting backup, you can use “diff all showdefaults”, the list is likely to be much shorter.
However this feature is only available since Betaflight V3.0, so won’t work for those are still using older firmware before that.
This post is not saying we should replace dump with diff, it will still be useful in some cases. But unless you have a good reason to use dump, try diff. :)
8 comments
I’m sorry, but I’m a bit confused, to retain a backup of my current settings to go back to if I make a mistake, what is the correct cli input? Is it, diff, diff all, diff all defaults, or dump.
Sorry, I’m just a little confused and I don’t want to copy and paste the wrong file. If I want to update to BF 4.2.x, and want to retain a backup of the current values Incase I need to go back, or I make an error while updating, what’s the correct CLI command, “diff”, “diff all”, “diff all defaults”, or “dump”. Thanks.
There is one thing to be careful of when using Diff. It is not consistent when you want to get back to an earlier situation reliably. Lets take “roll_rc_rate” as an example. Your initial state is roll_rc_rate at default. You run a diff, save it somewhere nice. Now you go and change the roll_rc_rate and run a diff. If you want to go back to your initial state, you cannot simply load the earlier diff since the state of roll_rc_rate is not in that diff at all (because defaults are not there).
Can anyone tell me what settings are backed up in Configuration > Configuration Backup > xxx.json (as separate from any sort of cli dump)
Many thanks
Jeremy
can you use diff from beta flight on butter flight
Do any of you know of some repository for default and/or customized betaflight configurations? Obviously a lot of people put their configurations here or there, but a central shared repo would be extremely useful.
Just to update this – seems like since Betaflight 3.2 – the parameter is “defaults” not “showdefaults”
Thank you Hayward. I’m on 3.1 and I could get “showdefaults” to work. “diff all defaults” did the trick.