Sorry it doesn’t back up automatically. I agree that it should at least prompt a message that firmware upgrade will erase settings, so I apologize for the confusion.
The reason that it resets to factory default on every firmware update is really for backward compatibility reasons: since the beginning of OpenSprinkler, settings have always been saved in EEPROM as raw binary data, not in any human readable format. Even OSPi saves it in the same format. As a result, when new firmwares add new options and remove old options, there is no easy way to map the old settings to new settings since they are not in searchable format. Hence it’s necessary to reset everything to factory default. Now that we have the majority of the products converted to use ESP8266, and it has a file system, that makes it easy to save settings in json format, and therefore upgrading firmware will no longer need to erase the existing data.
Also, the factory reset only happened when the major firmware version changes (for example, from 2.1.6 to 2.1.7). If the major version is the same, and the difference is in minor (for example from 2.1.7(1) to 2.1.7(2)) that will not trigger factory reset.