prusa3d / Prusa-Firmware

Firmware for Original Prusa i3 3D printer by PrusaResearch
GNU General Public License v3.0
2.02k stars 1.05k forks source link

Adjust Nozzle Change Menu For Quick Change Nozzles #4600

Closed sarusani closed 5 months ago

sarusani commented 7 months ago

Changes the nozzle change procedure for variants that have QUICK_NOZZLE_CHANGE defined. Resolves https://github.com/prusa3d/Prusa-Firmware/issues/4595

If extruder temp is > 40°C 1) Show warning that extruder is hot. 2) Turn on fan, home, move to top center, wait for extruder to cooldown to 40°C. 3) Show msg that nozzle is ready to be changed, if confirmed turn off fan. 4) Switch to the nozzle diameter selection after nozzle change has been confirmed. (This change affects all variants)

If extruder temp is < 40°C 1) Home and move to top center 2) Show msg that nozzle is ready to be changed 4) Switch to the nozzle diameter selection after nozzle change has been confirmed. (This change affects all variants)

github-actions[bot] commented 7 months ago

All values in bytes. Δ Delta to base

Target ΔFlash ΔSRAM Used Flash Used SRAM Free Flash Free SRAM
MK3S_MULTILANG 14 0 247198 5653 6754 2539
MK3_MULTILANG 14 0 246476 5662 7476 2530
3d-gussner commented 7 months ago

@sarusani Thanks for contributing another PR very appreciated. I just wonder why the PR costs 44 additional bytes.

3d-gussner commented 7 months ago

I didn't include a warning that the nozzle still could be hot. Can be added if preferred.

Very good point. Maybe a good idea would be to check that the REVO hotend is "cold" to touch before showing the LCD message to change the nozzle.

  1. LCD Settings -> HW Setup -> Nozzle Change
  2. G28W
  3. Turn off hotend
  4. Raise to change position
  5. Wait until hotend <= 30°C b. Turn on Part cooling fan to boost cool down
  6. Turn off Part cooling fan
  7. Show LCD message to confirm
3d-gussner commented 7 months ago

@sarusani As you are working on this. Do you think you could have a look at a request I have seen somewhere? User asked to go to the nozzle diameter menu to check/change nozzle size after a nozzle change. This would be useful for REVO and E3D v6 nozzles.

sarusani commented 7 months ago

To be honest I was a wondering about the 44 bytes myself... The only thing that changed for non Revo builds is that I moved "lcd_commands_step = 2" a few lines up. Maybe @gudnimg or @leptun have some more insight?

(Edit: Moving the line back down really makes the difference... I update the commit. Why this makes a difference is not clear to me at all 🤷 )

I will add the additional changes as a separate commit. So you'll be able to cherry pick the solution if needed.

3d-gussner commented 7 months ago

@sarusani Thanks a lot looks good. I made few changes you may look at:

sarusani commented 7 months ago

@3d-gussner Looks good! I added your changes.

The only thing I think is a bit confusing is the yes/no option for the cooldown message. The no option is great, but I'm not sure if the users would think they're stuck when pressing yes and nothing happens. Since it's not totally clear that you are already in the cooldown phase and how long it will take.

I think a single option "ignore" would be much clearer, but that needs additional work because currently the messages need at least two options... Or maybe instead of yes/no we could use wait/ignore?

(I made a version with the one option menu, the changes on the existing menu use 24 bytes of additional space)

3d-gussner commented 7 months ago

@sarusani I have seen you Ignore option, only thing I less like about it is that buy accidental double click you ignore it. Hope to give you more feedback next week. As always very appreciated your engagement and PRs.

3d-gussner commented 5 months ago

@sarusani Please rebase the PR and solve the conflicts.

3d-gussner commented 5 months ago

@gudnimg Please have a look as well.