โ† Open Viewer
GCodex โ€บ G-Code Guide โ€บ M500
M500

M500 G-Code: Save Settings to EEPROM

M500 saves all current settings to the printer's EEPROM so they persist across power cycles. This is the equivalent of clicking 'Save' โ€” without M500, any changes made via G-Code are lost when the printer is turned off.

Syntax

M500  ; Save to EEPROM
M501  ; Load from EEPROM
M502  ; Reset to firmware defaults
M503  ; Report all current settings

Parameters

ParameterDescription
M500Write all current settings to EEPROM
M501Load saved EEPROM settings, discarding any unsaved changes
M502Reset all settings to compiled firmware defaults (NOT saved until M500)
M503Print 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.