MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.28k stars 19.24k forks source link

[BUG] Resuming from M600 filament change extrudes while unparking nozzle #21669

Closed Sebazzz closed 3 years ago

Sebazzz commented 3 years ago

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

Yes, and the problem still exists.

Bug Description

When using M600 and the nozzle is parked, when the print is resumed and the nozzle is being unparked a bunch of extra filament is being extruded.

Bug Timeline

This started with a5d6f6ac9880090d2412bbea0027885b95c98ea2 #21564

Expected behavior

When the nozzle is unparked after a filament change, no extrusion should take place.

Actual behavior

After resuming from a parked position, during a M600 filament change, extrusion takes place during the unparking.

Video, config files ZIP

Steps to Reproduce

  1. Run a random print with a M600 in it or have M600 configured as filament runout command.
  2. Run the print and wait for the M600 or trigger it by filament runout
  3. [The nozzle is parked and beep beep beep]
  4. Load filament by hand or automatically.
  5. Resume the print (in my case from ExtUI, but it doesn't seem to matter)
  6. [The nozzle is, while it is being unparked, also extruding a lot of filament]

Version of Marlin Firmware

Latest from master

Printer model

Creality CR-6 SE

Electronics

BTT SKR CR6 board; filament sensor (stock)

Add-ons

No response

Your Slicer

Prusa Slicer

Host Software

SD Card (headless)

Sebazzz commented 3 years ago

Opened pull request #21670 with bugfix.

Takiora commented 3 years ago

Hi. I had the same problem and found a workaround. I don't know if it is the right way but it work well for me with M600 and M125 (and filament runout). In the file pause.cpp, in the fuction resume_print, i moved the code used to resume position after the position of the extruder has been set.

resume_print.txt

Sebazzz commented 3 years ago

Has been fixed and merged via #21670

github-actions[bot] commented 3 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.