prusa3d / Prusa-Firmware

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

MMU: Add workaround for broken Tune button #4681

Closed gudnimg closed 1 month ago

gudnimg commented 2 months ago

If the MMU is processing a command, the Tune button can't be executed and will put the printer into an unrecoverable state.

Mitigate the issue by ignoring the Tune button if the MMU is processing a command. In 99.9% of cases this will only happen when printing. The Tune button is still useful for the particular use case scenario it was added into the firmware in the first place, which is to allow the user to tune the idler stallguard threshold immediately after the printer boots up.

Fixes https://github.com/prusa3d/Prusa-Firmware/issues/4558

For anyone interested, a proper fix may look like this: https://github.com/prusa3d/Prusa-Firmware/pull/4561 but for now it is better to at least mitigate the issue instead of leaving it open in the firmware.

Steps to reproduce a problem:

  1. Send toolchange command to the printer e.g. T0
  2. Hold the Idler in place until you get a "Idler cannot home" error.
  3. Select 'Tune' button
  4. Select 'Done' button (you need to click it 3 times to exit the menu)
  5. Printer is in a 'frozen' state.

Change in memory: Flash: +16 bytes SRAM: 0 bytes

github-actions[bot] commented 2 months ago

All values in bytes. Δ Delta to base

Target ΔFlash ΔSRAM Used Flash Used SRAM Free Flash Free SRAM
MK3S_MULTILANG 16 0 247774 5653 6178 2539
MK3_MULTILANG 16 0 247072 5662 6880 2530
gudnimg commented 2 months ago

@3d-gussner adding to 3.14 milestone just so the issue is tied to some milestone, please free to change it if its not appropriate.

3d-gussner commented 1 month ago

@gudnimg We can make a cherry pick to MK3_3.14.0 branch, and let do a short test run for it.