Confused on settings after executing M502

I have A350, i upgraded the rails and head, firmwares auto updated, i noted that the numbers in M501 were different, assumed that was right because of upgraded rails and head.

I have been having odd printing issues (severe under extrusion on first layer) and i am struggling to know what changed because i have replace rails, head, hotend, filament batch, updated all my slicers, etc) so trying to go back a little.

I have put the old head back on, i reset from touchscreen and reset using M502. I am confused by output of M502 because its seems to have reverted to the old rails settings…

Before resetting with M502

Recv: echo:Steps per unit:
Recv: echo: M92 X160.00 Y160.00 Z400.00 B888.89 E228.18
Recv: echo:Maximum feedrates (units/s):
Recv: echo:  M203 X300.00 Y300.00 Z12.00 E120.00
Recv: echo:Maximum Acceleration (units/s2):
Recv: echo:  M201 X1000.00 Y1000.00 Z1000.00 E1000.00

after resetting with M502

Recv: echo:Steps per unit:
Recv: echo: M92 X400.00 Y400.00 Z400.00 B888.89 E212.21
Recv: echo:Maximum feedrates (units/s):
Recv: echo:  M203 X120.00 Y120.00 Z40.00 E25.00
Recv: echo:Maximum Acceleration (units/s2):
Recv: echo:  M201 X3000.00 Y3000.00 Z100.00 E10000.00

(i expected E212.21 as thats what a factory reset always did)
the other numbers are confusing me… my suspicion is M502 just did the wrong thing…

could someone with upgraded rails see what their setting are as i no longer trust the ‘upgraded’ settings

i am reapplying firmware in hope this fixes

no it doesn’t and the huge clonk noise from X and Y during a home is very concerning

FFS snapmaker get it together, your QC and testing just stinks

i opened a guthub issue for you snapmaker, i expect to see this resolved ASAP
Executing M502 on upgraded A350 sets wrong settings, risks damaging new v2 linear rails. · Issue #201 · Snapmaker/Snapmaker2-Controller (

What looks like is supposed to happen is this flag gets reset:

And then on next power on the steps/mm is set based on what’s read from the linear module:

It requires a power cycle - did you try that by chance?

If that works you might clarify in your github issue that maybe M502 should force a reboot afterwards, or otherwise read the values from the linear module again.

Just found another edge case they missed:

The is_user_set_lead flag is set for any axis, including the E axis.

It’s possible that someone calibrates e-steps, then upgrades to the new linear modules - that will not be correctly handled also leading to this problem.

1 Like

I think it did that when i tried to fix reapplying the the firmware?

Try M502, then M500 to save, then power cycle? M502 used to immediately write to EEPROM but I’m not seeing that at the moment.

This is indeed correct.
Doing this, then hard power reboot, M503 then reports right settings.