
Marlin is compiled for your exact printer, so an update means building firmware, not clicking a button. Done carefully, it’s routine.
1. Record your current settings
Connect over USB (Pronterface, OctoPrint terminal, etc.) and send M503. It prints steps/mm, PID, probe offsets and more. Save the output to a file. Those are the values you’ll want back.
2. Use a configuration that matches the new version
Don’t drop an old Configuration.h into a new Marlin release. Options get added, renamed and removed. Start from the matching configuration example for your printer and new Marlin version, then re-apply your customisations. A diff tool makes this quick. See Configuring Marlin.
3. Build and flash
The installation docs cover building with PlatformIO in VS Code. Many 32-bit boards flash by copying firmware.bin to the SD card and rebooting. Older 8-bit boards are flashed over USB. Follow your board’s method exactly.
4. Reset and re-save EEPROM
A new build may lay out EEPROM differently. After flashing, load the firmware defaults with M502, then apply your recorded values and save with M500. That avoids old or mismatched values carrying over.
5. Verify before printing
Home all axes, check endstops (M119), heat and run PID tuning if your hotend changed, and re-check the Z/probe offset with a first-layer test.
Checklist
-
M503output saved - Config rebuilt from the matching version’s example
- Flashed with the board’s correct method
-
M502→ re-apply values →M500 - Homing, endstops, first layer verified