I have been using the EEprom plugin on my Creality CR-10 for over a year now. I use it extensively and thought it to be the best thing since sliced bread.
Recently I did a substantial overhaul of the hot end, new hardware on the leveling screws, new glass plate etc etc, you get the drift. I did all the hardware changes and proceeded to re-level the bed. Everything was honky dory until, after doing the 4 corner manual bed leveling, I ran the mesh bed compensation scan on the bed. No matter how careful I set up things, by the time I finished and tried a test print, I ended up printing in the air (too high).
After many hours of farting around with things, I seem to have figured out what is going on but I need to understand the logic behind this weirdness.
I used the EEprom plugin to avoid having to recompile source code after every minor setup change - I was under the impression that this was the whole purpose behind the plugin.
I would for example measure the Z probe offset (BLTouch) very carefully and set it up in the EEprom plugin, upload it to Marlin and as they say 'Bob is your uncle' - no muss, no fuss and especially no recompiling.
Well, as I found out after way too many hours of screwing around, if I do a mesh bed scan, the Z offset that I measured so carefully and entered via the EEprom plugin gets discarded and replaced by the value that is configured in the source code !
The settings in EEprom survive power cycles so why do they not stay after a mesh bed scan ? What's the point of being able to change these settings if at any time they can be reset unbeknownst to me and throw everything off?
I have also seen home offsets being changed back to source code based values under certain conditions.
The three questions I have:
- Why are the plugin changes not permanent?
- what possible reason could there be to revert the EEprom settings to hard coded defaults?
- Do I have to go back to recompiling source code every time I change something a bit or is there a better way ?