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] Pause_Park_Nozzle_Timeout not working #24676

Closed
1 task done
ghost opened this issue Aug 24, 2022 · 22 comments
Closed
1 task done

[BUG] Pause_Park_Nozzle_Timeout not working #24676

ghost opened this issue Aug 24, 2022 · 22 comments

Comments

@ghost
Copy link

ghost commented Aug 24, 2022

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

Yes, and the problem still exists.

Bug Description

I have enabled PAUSE_PARK_NOZZLE_TIMEOUT to turn off the nozzle on change filament mid print if I'm not near the print. After the time limit, the screen changes to the message "Press button to heat nozzle" but temperature does not decrease over time. If I click the button the change filament continues with the process of loading, because the nozzle is still on temperature.

I tried latest bugfix, and 2.0.9.5 version and the problem still occurs. Otherwise on 2.0.9.3 it works great.

Bug Timeline

2.0.9.5

Expected behavior

I expect the nozzle to turn off for safety.

Actual behavior

It does not turn off the nozzle

Steps to Reproduce

  1. Change Filament mid print.
  2. Wait for park and filament to unload.
  3. Wait to test if the nozzle turn off after the time specified on PAUSE_PARK_NOZZLE_TIMEOUT

Version of Marlin Firmware

2.1.1

Printer model

Creality Ender 3 Pro

Electronics

Stock electronics

Add-ons

No response

Bed Leveling

MBL Manual Bed Leveling

Your Slicer

Prusa Slicer

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 Files.zip

video_2022-08-25_01-21-53.mp4
@GMagician
Copy link
Contributor

@tombrazier MPC seems has a issue with it:
float pid_output = power * 254.0f / constants.heater_power + 1.0f;
since pid_output =1 when power=0 due to idle time

While standard PID seems missing this check
you may change:
const float pid_output = hotend_pid[ee].get_pid_output();
to:
const float pid_output = TERN1(HEATER_IDLE_HANDLER, !heater_idle[ee].timed_out) ? hotend_pid[ee].get_pid_output() : 0;
in temperature.cpp file

@paulluby
Copy link

paulluby commented Aug 25, 2022

I'm having exactly the same problem on two printers.

Hotend stays on, 1st indicated temp is solid and 2nd indicated temp is flashing, both at same value.

As I said two printers, one has BTT SKR V1.3 Board and other has BTT SKR V1.1 Pro board.

Okay with Marlin 2.1 and below, issue only happens for me with Marlin 2.1.1 and Marlin Bugfix 2.1.x

@tombrazier
Copy link
Contributor

tombrazier commented Aug 25, 2022

Looks like this logic changed for PID in #24389.

MPC is fine. The value returned by get_pid_output_hotend() gets bit shifted to the left. So the value of 1 goes to zero. It's there to make sure that rounding works correctly.

@paulluby
Copy link

Looks like this logic changed for PID in #24389.

MPC is fine. The value returned by get_pid_output_hotend() gets bit shifted to the left. So the value of 1 goes to zero. It's there to make sure that rounding works correctly.

So take it its not a quick fix?

@GMagician
Copy link
Contributor

GMagician commented Aug 25, 2022

@paulluby are you using MPC or classic PID?

@paulluby
Copy link

@paulluby are you using MPC or classic PID?

I use classic PID.

@GMagician
Copy link
Contributor

@paulluby try PR proposed solution if you can

@paulluby
Copy link

@paulluby try PR proposed solution if you can

PR?

@GMagician
Copy link
Contributor

GMagician commented Aug 25, 2022

Yep you see link above (draft). You may copy temperature.cpp in your marlin folder and recompile

edit:
temperature.zip

copy to marlin/src/module

@paulluby
Copy link

paulluby commented Aug 25, 2022

Yep you see link above (draft). You may copy temperature.cpp in your marlin folder and recompile

edit: temperature.zip

copy to marlin/src/module

Can do, compiling now :)

@tombrazier
Copy link
Contributor

@paulluby A "PR" is a "pull request" which is a github way of saying "I have made some changes to this project and would like you to include them". @GMagician is asking for his fix to be added to Marlin. When he created the PR it caused an automatic post above saying "GMagician mentioned this issue 1 hour ago". Below that is a link to the PR, which has the changes. I hope that clarifies some of the language above. Took me some time to understand it all when I started with github.

@GMagician
Copy link
Contributor

@paulluby A "PR" is a "pull request" which is a github way of saying "I have made some changes to this project and would like you to include them". @GMagician is asking for his fix to be added to Marlin. When he created the PR it caused an automatic post above saying "GMagician mentioned this issue 1 hour ago". Below that is a link to the PR, which has the changes. I hope that clarifies some of the language above. Took me some time to understand it all when I started with github.

Thanks, I often give this as standard understood but that's not true. My fault

@paulluby
Copy link

Cheers, sort of figured it out after a while.

Its on its second attempt compile, have cleared it for a retry, loads of errors listed at last go.

@GMagician
Copy link
Contributor

GMagician commented Aug 25, 2022

@paulluby my source file (temperature.cpp) is for latest 2.1 bugfix. It may give errors if you are using an old marlin version, even a 2.1 release version

@paulluby
Copy link

The compile has fallen down again

@paulluby
Copy link

@paulluby my source file (temperature.cpp) is for latest 2.1 bugfix. It may give errors if you are using an old marlin version, even a 2.1 release version

Okay no probs, I have a bugfix from last night ready to go will insert a give it a go :)

@paulluby
Copy link

paulluby commented Aug 25, 2022

Okay, first multiple compile fails so I'm gonna start with a fresh Bugfix download.

Second, put the following that you mentioned earlier into my Marlin 2.1.1 temperature.cpp file-

"
While standard PID seems missing this check
you may change:
const float pid_output = hotend_pid[ee].get_pid_output();
to:
const float pid_output = TERN1(HEATER_IDLE_HANDLER, !heater_idle[ee].timed_out) ? hotend_pid[ee].get_pid_output() : 0;
in temperature.cpp file
"

Seems to have worked on my printer that has a BTT SKR V1.3 board. I take it this just re-queries whether the advanced pause heater requirement has timed out and if so sets heater off?

Can you let me know if this will cause other issues and if so I'll go back to 2.1

In meantime I'll do new bugfix and insert your replacement temperature file.

@GMagician
Copy link
Contributor

The fix I've done pratically does the same thing in a different way and it should affect only heaters when they are idle.
Remember that bugfix is always changing and I can't assure that new bugs are not added to the fresh download

@paulluby
Copy link

paulluby commented Aug 25, 2022

#24676 (comment)

Okay here's some test results.

Note I printed a 20 x 20 x 20mm cube with a filament change at z=10mm for each test.

On both my printers with Marlin 2.1.1 installed and the following change carried out in the temperature.cpp file;

Replace;

const float pid_output = hotend_pid[ee].get_pid_output();

with

const float pid_output = TERN1(HEATER_IDLE_HANDLER, !heater_idle[ee].timed_out) ? hotend_pid[ee].get_pid_output() : 0;

the temperature indication and actual hot-end temperature drops accordingly during a filament change and goes up to temp when selected, all indications are as seen by me in previous versions.

On both printers with Bugfix Marlin 2.1.x installed and using the temperature.cpp file you forwarded to me the temperature indication and actual hot-end temperature drops accordingly during a filament change and it goes up to temp when selected, all indications are as seen by me in versions up to and including Marlin 2.1

Hopes this helps in some way.

Thanks for sorting.

Paul.

@GMagician
Copy link
Contributor

@paulluby thanks for testing. It works to me it's enough

@GMagician
Copy link
Contributor

Merged, may be closed

@ellensp ellensp closed this as completed Sep 10, 2022
@github-actions
Copy link

github-actions bot commented Nov 9, 2022

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 Nov 9, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants