Cuando cambia algo en sus archivos fuente (por ejemplo, configuration.h), tiene que compilar y escribir sus fuentes compiladas en la placa de la CPU (flashear / cargar).
Los tableros (por ejemplo, mega2560) tienen una eeprom donde se almacenan algunos valores.
Estos valores se mantienen incluso cuando "carga" su nuevo código. Por lo tanto, cuando solo cambia los valores en configuration.hy los envía a su tablero, no cambia nada más que los valores "predeterminados".
Cuando enciende la impresora, los valores almacenados en eeprom se leen y copian en la memoria. Luego se utilizan los valores en la memoria.
Cuando ejecutas M502, simplemente le dices al sistema que copie los valores "predeterminados" en la memoria (pero recuerda que si apagas ahora, cuando vuelves a encenderlos, los recargas desde eeprom).
M500 luego dice que almacene los valores actuales de la memoria en eeprom.
Cuando ejecuta algunos comandos, por ejemplo, M851, cambia los valores de la memoria, por lo que debe ejecutar M500 si desea que se reutilicen después del apagado.