Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] POWER LOSS RECOVERY extruder squeezes out a lot of filament #26057

Closed
1 task done
fedorovstas opened this issue Jul 6, 2023 · 22 comments · Fixed by #26365
Closed
1 task done

[BUG] POWER LOSS RECOVERY extruder squeezes out a lot of filament #26057

fedorovstas opened this issue Jul 6, 2023 · 22 comments · Fixed by #26365

Comments

@fedorovstas
Copy link

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

Yes, and the problem still exists.

Bug Description

After POWER LOSS RECOVERY hotend and bed heated up, x and axis doing auto home and go back to the place where it finished printing. Then extruder squeezes out a lot of filament and there is a large influx of plastic. After that printer continued his work.

Bug Timeline

old

Expected behavior

After PLR extruder does not extrude as much plastic

Actual behavior

After PLR extruder squeezes out a lot of filament

Steps to Reproduce

  1. Start printing
  2. Power off
  3. Resume print

Version of Marlin Firmware

2.1.2.1 hotfix

Printer model

Creality Ender 3 Pro

Electronics

SKR Mini E3 v3.0

Add-ons

No response

Bed Leveling

ABL Bilinear mesh

Your Slicer

Cura

Host Software

SD Card (headless)

Don't forget to include

  • A ZIP file containing your Configuration.h and Configuration_adv.h.

Additional information & file uploads

configuration.zip

@EvilGremlin
Copy link
Contributor

EvilGremlin commented Jul 6, 2023

Tweak your ADVANCED_PAUSE values, don't forget to reset EEPROM

This Issue Queue is for Marlin bug reports and development-related issues, and we prefer not to handle user-support questions here. (As noted on this page.) For best results getting help with configuration and troubleshooting, please use the following resources:

After seeking help from the community, if the consensus points to a bug in Marlin, then you should post a bug report.

@fedorovstas
Copy link
Author

Tweak your ADVANCED_PAUSE values, don't forget to reset EEPROM

This Issue Queue is for Marlin bug reports and development-related issues, and we prefer not to handle user-support questions here. (As noted on this page.) For best results getting help with configuration and troubleshooting, please use the following resources:

* MarlinFW.org [Marlin Documentation](http://marlinfw.org/)

* RepRap.org [Marlin Forum](http://forums.reprap.org/list.php?415)

* Facebook Group ["Marlin Firmware"](https://www.facebook.com/groups/1049718498464482/)

* Facebook Group ["Marlin Firmware for 3D Printers"](https://www.facebook.com/groups/3Dtechtalk/)

* [Marlin Configuration](https://www.youtube.com/results?search_query=marlin+configuration) on YouTube

* 3D Printing Discord server. Join link: https://discord.gg/3dprinters

* Marlin specific Discord server. Join link: https://discord.gg/n5NJ59y

After seeking help from the community, if the consensus points to a bug in Marlin, then you should post a bug report.

Set the load and unload values to 0. Nothing changes. Problem similar to this bug report.

@ThomasToka
Copy link
Contributor

ThomasToka commented Jul 25, 2023

I can approve this.

Set advanced pause purge and retract to 0, set also

    #define POWER_LOSS_PURGE_LEN      0 // (mm) Length of filament to purge on resume
    #define POWER_LOSS_RETRACT_LEN    0 // (mm) Length of filament to retract on fail. Requires backup power.

behavior is the same. after reaching the print position it purges a lot very fast.

cant find it to be honest in powerloss.cpp .

Edit: Got it sorted. I had something from the Ender 5 s1 PR included. reverting to the bugfix-2.1.x fixed it.

Edit2: see following comment. its stil there.

Sorry for the wind.

@ThomasToka
Copy link
Contributor

@fedorovstas
Copy link
Author

@ThomasToka No. I will add video later.

@fedorovstas
Copy link
Author

@ThomasToka https://photos.app.goo.gl/gT79LSomQTtAmVru5

Sometimes it start squeezing when hotend start moving from home.

@Abasz
Copy link

Abasz commented Sep 23, 2023

I have the same issue ever since. The problem is that the current_position values get overiden by the ISR, so when the "E" position is reset by this line PROCESS_SUBCOMMANDS_NOW(TS(F("G92.9E"), p_float_t(info.current_position.e, 3))); its set to zero, and when the new line is read from the SD card to the correct value, the difference is extruded.

I fixed this by changing two lines:

At the begining of the resume() function I create a value copy of the info.current_position and then I use this copy to reset the "E" position later on instead of the info.current_position:

void PrintJobRecovery::resume() {
  const uint32_t resume_sdpos = info.sdpos; // Get here before the stepper ISR overwrites it
  const auto current_position_copy = info.current_position;

//...

PROCESS_SUBCOMMANDS_NOW(TS(F("G92.9E"), p_float_t(current_position_copy.e, 3)));

//...
}

This fixes this issue. I am not sure if this is the best approach and I not able to test it apart from an Ender 3 (4.2.2 board) but I assume it should work for you too.

@ThomasToka
Copy link
Contributor

thx. i fixed this already in my fork and reroute to G27.

ThomasToka@64c7975

@Abasz
Copy link

Abasz commented Sep 25, 2023

thx. i fixed this already in my fork and reroute to G27.

ThomasToka@64c7975

Thanks, actually re-routing to park is a very good approach, thanks for the suggestion! I added a proper UI feed back and it works great:

  gcode.process_subcommands_now(F("G27"));
  ui.pause_show_message(PAUSE_MESSAGE_WAITING);
  wait_for_user_response(0, false);
  info.current_position = current_position_copy;
  ui.reset_status();
  ui.return_to_status();
  planner.synchronize();

@fedorovstas
Copy link
Author

@Abasz it works. Thanks!

@fedorovstas
Copy link
Author

fedorovstas commented Sep 27, 2023

I have another problem. After enabling PLR in some zone of printing extruder start make ripples on my print. If I disable PLR in firmware everything is OK. I use the same gcode in both cases.
Video: https://photos.app.goo.gl/wWgAY72Gj1CAwaaf8

@Abasz
Copy link

Abasz commented Sep 27, 2023

I have another problem. After enabling PLR in some zone of printing extruder start make ripples on my print. If I disable PLR in firmware everything is OK. I use the same gcode in both cases. Video: https://photos.app.goo.gl/wWgAY72Gj1CAwaaf8

Are you using frequent save of the PLR to the SD car? I had similar issues when I had the PLR file to be written in every 5 seconds. The board did not like it especially when there was a lot of very small movement, and the machine hang above a spot for a half a second

@fedorovstas
Copy link
Author

@Abasz i use SD card. Marlin use POWER_LOSS_MIN_Z_CHANGE to saving PLR file. In default it set 0.05 i increased this value to 0.1 and everything work good. Thank you very much!

@mechano
Copy link

mechano commented Nov 22, 2023

@Abasz it works. Thanks!

When will it be released?
I've same issue on Kingroon KP3S 3.0.
The version KP3S Pro and KP5L hasn't this problem.

It's strange because all of this printers share the same Robin Nano 1.2 clone board with GD32F303 and 2225 drivers.

@mechano
Copy link

mechano commented Jan 8, 2024

I've compiled a 2.1.2.x-bugfix 20231229 version for an MKS Robin Nano 1.2 and it has the same problem.

@thisiskeithb
Copy link
Member

I've compiled a 2.1.2.x-bugfix 20231229 version for an MKS Robin Nano 1.2 and it has the same problem.

See #26365. The PR / fix has not been merged.

@thisiskeithb thisiskeithb linked a pull request Jan 8, 2024 that will close this issue
@ThomasToka
Copy link
Contributor

additionally i want to say that without my initial commit it is not solved. the additions thinkhead made do not work for me reliably. did not test the last state. but i am sure my fixes in #26365 work and solve all of this.

@thinkyhead
Copy link
Member

We'll have #26365 merged very soon. Cheers!

@mechano
Copy link

mechano commented Jan 13, 2024

When will it be merged?
How can we know it has been merged?

@ThomasToka
Copy link
Contributor

When will it be merged? How can we know it has been merged?

it’s merged already.

ab34971

@medisoft
Copy link

  info.current_position = current_position_copy;

Thank you, I applied the basic idea of this on Marlin bugfix-2.0.x, and worked like a charm, now I can recover from power loss without a hassle

Copy link

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.

@github-actions github-actions bot locked and limited conversation to collaborators Apr 13, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants