Most 3D printer electronics include a little bit of storage (512K, 3K, or more) called EEPROM (Electrically Erasable Programmable Read-Only Memory) that persists when the power is off. Marlin uses the EEPROM to store the printer settings and loads them up the next time the machine powers up. Changing the source code and re-flashing the firmware does not change the contents of EEPROM.
By default, EEPROM is disabled. This is to avoid the “unintended consequence” of local developers making changes to the values in Source Code and then having the printer boot up using the EEPROM values instead. But note that if you have EEPROM enabled, you can load it with “factory defaults” (coming from the Source Code) using
M502 followed by
M500 - store current settings in EEPROM for the next startup or
M501 - read all parameters from EEPROM, or undo changes.
M502 - Reset current settings to defaults, as set in Configurations.h - follow with
M500 to reset the EEPROM.
M503 - Print the current settings – ‘‘Not the settings stored in EEPROM.’’
EEPROM is also accessible through the LCD menu.