MarlinDocumentation icon indicating copy to clipboard operation
MarlinDocumentation copied to clipboard

A question regarding the M600 parameters E, U, and L

Open GregValiant opened this issue 9 months ago • 2 comments

Did you test the latest bugfix-2.1.x code?

N\A

Question

I want to configure M600 on the fly in a UM Cura post-processor. I am looking for a clarification regarding whether the E, U and L parameters should be entered as positive or negative values. The information I've found appears to be contradictory.

The M600 command parameters E, U, L are listed on the Gcodes page as requiring negative values. It seems odd that the L (load filament) parameter would also require a negative value.

  • "[E<pos>] | Retract before moving to change position (negative, default PAUSE_PARK_RETRACT_LENGTH)"
  • "[U<pos>] | Amount of retraction for unload (negative)"
  • "[L<pos>] | Load length, longer for bowden (negative)"

It appears that configured like this: M600 B1 E-6.5 U-450 R205 T0 L-30 X0 Y0 Z2 there will be an E movement of -6.5mm (retraction), an unload of -450mm, and a reload of -30mm??

These are from M600.cpp:

  • E[distance] - Retract the filament this far
  • U[distance] - Retract distance for removal (manual reload)
  • L[distance] - Extrude distance for insertion (manual reload) Those make it seem like they should all 3 should be positive values.

Then later in M600.cpp these appear to be switching the +/- signs:

  • -ABS(parser.axisunitsval('E', E_AXIS, PAUSE_PARK_RETRACT_LENGTH))
  • -ABS(parser.axisunitsval('U', E_AXIS, fc_settings[active_extruder].unload_length)) : 0.5f;
  • ABS(parser.axisunitsval('L', E_AXIS, fc_settings[active_extruder].load_length))

That appears that they are a mix and get changed later...or something.

If someone could take a moment to clarify the proper input for "Retract, Unload, and Load" I'd be much obliged.

GregValiant

GregValiant avatar May 28 '24 11:05 GregValiant