I have built a 3D printer with Marlin bugfix-2.0.x forked from github.
I am attempting to set the default value for junction deviation so that I don't have to change it through the printer's screen/interface every time I power cycle the printer, but what I thought would set it properly isn't doing the trick.
My thought was that uncommenting this in Configuration_adv.h would work:
#define JUNCTION_DEVIATION_MM 0.02
I have tried setting this define inside of and outside of the default if
block in which it appears, just to make sure the issue wasn't because I didn't have something else set, and I get the same behavior when this define
statement is either protected or unprotected by an if
Also, the default if
block is this:
#if ENABLED( JUNCTION_DEVIATION )
#define JUNCTION_DEVIATION_MM 0.02
#endif
Uncommenting #define JUNCTION_DEVIATION
leaves me with a compiler error telling me that I don't need to do that, so I'm not seeing anything that I am supposed to enable to get it to use the JUNCTION_DEVIATION_MM setting. In other words, I can't actually enable "JUNCTION_DEVIATION" any more, so I HAVE to break the JUNCTION_DEVIATION_MM setting out of the if
but it still has no effect.
After setting this parameter, when I power cycle the printer, the junction deviation is set to 0 (although one touch of the adjustment knob makes it jump to 0.010, so I think that what is displayed as "0" may actually mean "unset"), which is causing a significant stop/start jerk on every angle change until I manually set the junction deviation.
My current Configuration.h and Configuration_adv.h are taken from this Marlin fork.
In case it matters, I'm running this on an SKR V1.3 with TMC2208 drivers at 24V.
Any ideas what I'm missing? I'm sure it's something simple, I just haven't found it.
UPDATE: Still no solution after 10 days. Here is additional information from another forum where I posted this request:
Did you run
M502
andM500
after updating your firmware?
I dug into this a little more, and I am either running into a bug, or I'm simply not understanding what I'm supposed to be seeing.
I send this command:
M205 J0.020
Then verify that junction deviation is set correctly (it is) Then this:
M500
And that responds with:
Settings Stored (616 bytes; crc 51371)
Then I send this:
M503
And the report for M205 is missing the setting I just confirmed to have changed and been working:
...
M205 B20000.00 S0.00 T0.00
...
And power cycling or resetting the controller leads to the same result: Junction Deviation is reset to 0.
Shouldn't I see "J0.020" in the M205 line immediately after changing the setting, and verifying that it works?