Syntax
M500 ; Save to EEPROM
M501 ; Load from EEPROM
M502 ; Reset to firmware defaults
M503 ; Report all current settings
Parameters
| Parameter | Description |
|---|
| M500 | Write all current settings to EEPROM |
| M501 | Load saved EEPROM settings, discarding any unsaved changes |
| M502 | Reset all settings to compiled firmware defaults (NOT saved until M500) |
| M503 | Print all current settings to serial โ very useful for debugging |
Examples
M92 E415
M500
โ Set extruder steps/mm to 415, then save
M303 E0 S210 C8
# ... apply output values ...
M301 P22.5 I1.85 D68.4
M500
โ PID tune then save results
M502
M500
โ Reset to defaults and save
M503
โ Read all current EEPROM settings โ check after any calibration
Important Notes
- Always run M500 after any calibration: E-steps, PID values, Z offset, acceleration limits.
- M503 output shows the M-code to re-apply each setting โ copy this to your notes as a backup.
- EEPROM has limited write cycles (typically 100,000+) โ don't M500 in a loop or macro.
- In Klipper, use SAVE_CONFIG instead โ Klipper has no EEPROM.
Common Mistakes
- โ Forgetting M500 after calibration โ settings revert on next power cycle.
- โ Running M502 without understanding it resets everything โ you lose all calibration.
- โ Trusting EEPROM as the only backup โ always note your calibrated values externally.
Frequently Asked Questions
Q: What does M500 save?
M500 saves: steps/mm (M92), max feed rates (M203), accelerations (M201/M204), jerk settings (M205), hotend PID (M301), bed PID (M304), Z probe offset (M851), filament diameter, and other settings. Use M503 to see the full list.
Q: Why did my settings disappear after power off?
You ran calibration commands (M92, M301, etc.) but forgot to run M500 afterward. The settings existed only in RAM. Always end any calibration session with M500.
Q: What is the difference between M501 and M502?
M501 loads the last saved EEPROM values โ useful to undo unsaved changes. M502 resets to the compiled firmware defaults โ use this when EEPROM is corrupted or you want to start fresh. Always follow M502 with M500 if you want the defaults to persist.