Closed gudnimg closed 1 year ago
Jira ticket has nice steps to reproduce the issue: https://dev.prusa3d.com/browse/PFW-1423
- While printer is idle, trigger both FINDA and FSENSOR an keep them triggered
- restart the printer
- UNLOAD MANUALLY appears
- un-trigger both sensors
- Hit Retry on the screen - the error screen doesnt go away although the cause of the error no longer exists. After hitting Retry, MMU should re-home.
I'm seeing an issue with this Firmware. Am getting Unload Manually without triggering FINDA or Fsensor:
Steps to reproduce:
⚠️ This situation is actually worse than before the PR.
I will improve the unit tests to cover this.
Interesting find. This doesn't seem to have any effect on the unit test results. Something smells wrong here.
@gudnimg
VerifyLoadState(...
CHECKED_ELSE(mg::globals.FilamentLoaded() & fls) { // beware - abusing the values as bit masks to detect multiple situations at once
return false;
}
...
It should fail whenfls
doesn't match FilamentLoaded()
ouch, this seems to work correctly ... I'm smelling a preprocessor macro problem:
bool flsMatch = mg::globals.FilamentLoaded() & fls;
CHECKED_ELSE(flsMatch) { ...
Rebased this branch on top of https://github.com/prusa3d/Prusa-Firmware-MMU-Private/pull/249, as it will hopefully improve things.
Can confirm the new issue is resolved now :)
Closing in favor of https://github.com/prusa3d/Prusa-Firmware-MMU-Private/pull/253
Note: https://github.com/prusa3d/Prusa-Firmware-MMU-Private/pull/249 should be merged first.
This PR adds the ability for the user to recover from
FINDA_VS_EEPROM_DISREPANCY
error with a Retry button; without power cycling the MMU or Printer.