Commit Graph

53 Commits

Author SHA1 Message Date
D.R.racer 528abcb8d8 clang-format 2023-01-31 09:35:22 +01:00
D.R.racer 0555376502 Refactor mmu2.cpp and related interfaces
The general idea is to keep platform specific implementation away from the MMU state machines as much as we can.
That would enable unit testing the top level MMU state machine and integration into other project as well (if needed).
2023-01-31 09:35:22 +01:00
D.R.racer 472f84e46a Avoid FullScreenMsg "Eject/Cut Filament" when called inside a toolchange
CutFilament and EjectFilament got a flag: enable/disable FullScreenMsg
2023-01-16 09:25:04 +01:00
D.R.racer d4f0f363cd Fixes from tests
- introduce Cut Filament
- limit retries try-unload
- fix waiting in "Load to extruder failed" error screen
- add LOAD_TO_EXTRUDER_FAILED error definition
2022-12-30 14:23:44 +01:00
Guðni Már Gilbert c72ae8a2f3 PFW-1439 Remove parameters from execute_load_to_nozzle_sequence 2022-12-19 21:12:12 +00:00
Guðni Már Gilbert 6ee5f08505 PFW-1439 Compensate load to nozzle extruder sequence for Extra Loading Distance
The Extra Loading Distance is configurable by the user.
We need to compensate the hardcoded sequence
such that it does not extrude too much or
too little. Currently the firmware
extrudes too little.
2022-12-19 21:12:11 +00:00
Guðni Már Gilbert c8157919b1 PFW-1440 Fix issue where cooldown timer is not set after a faile retry 2022-11-21 12:54:53 +01:00
D.R.racer fe6e3ca2b1 Unload first before retrying
Should free the filament if accidentally held by the fsensor.
2022-11-20 19:23:07 +01:00
Guðni Már Gilbert ef51b5778d Fix VerifyFilamentEnteredPTFE
Test should push filament first and then retract.
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert 46f4f2658d PFW-1432 Reduce LOC
If verification test fails, increment load fail statistic
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert 03235c8aab PFW-1432 restore toolchange load testing 2022-11-20 17:27:36 +01:00
D.R.racer 4eaabbf092 Revive MMU stats + LCD screens 2022-11-20 17:27:36 +01:00
D.R.racer ffbd95b482 Unify naming convention (index->slot)
in all top level MMU-related functions
2022-11-20 17:27:36 +01:00
D.R.racer e414413b2e Refactor ToolChange+LoadToNozzle
Add basic infrastructure for handling of repeated commands until they finish correctly.
2022-11-20 17:27:36 +01:00
D.R.racer 10a9e0f0a0 Recover from MMU restart while performing a command
PFW-1427
2022-11-20 17:27:36 +01:00
Guðni Már Gilbert e11ef11a64 PFW-1425 Rename "Load to Extruder" to "Loading Test" 2022-11-16 06:00:15 +01:00
Guðni Már Gilbert 006fe110cc Don't raise MMU error screen until retry is done
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2022-11-12 18:47:10 +01:00
VintagePC ecef69012a Fix PFW-1364 & possible comms timeout during reheat 2022-11-12 18:47:10 +01:00
Guðni Már Gilbert 59a452ac27 PFW-1397 minor comment tweaks 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert a896dfd4e0 PFW-1397 To reserve EEPROM write cycles, only update toolchange counter when a print finishes or is stopped 2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 3120bf0aa2 PFW-1397 Implement new function increment_tool_change_counter()
Reduces flash consumption by 44 bytes
2022-11-08 13:49:40 +01:00
Guðni Már Gilbert 7bc7f21fa5 mmu: move RetryIfPossible outside the error screen
This fixes issue where 'retryAttempts=3' may be spammed in the logs

Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2022-11-01 06:22:39 +01:00
Guðni Már Gilbert d6e0f47739 PFW-1403 Rename ReportErrorSource to ErrorSource for shorter code 2022-10-08 08:51:32 +00:00
Guðni Már Gilbert 33690b927a PFW-1403 Fix issue where physical MMU buttons do not dismiss error screen 2022-10-08 08:51:32 +00:00
Yuri D'Elia 6cfe000ac9 cleanup: Reorder members to match initialization order 2022-09-30 12:55:47 +02:00
3d-gussner edad625cf7 RIP Bondtech long live the Extruder 2022-09-16 16:31:27 +02:00
Guðni Már Gilbert e9f5a95d4b PFW-1362 Make sure FINDA runout is impossible with MMU disabled
Since mmu_loop() is called in the main loop() function
when the MMU is disabled, we need to utilise the
MMU protocol layer to prevent FINDA runout from happening
if MMU is disabled.

We also need to keep in mind we probably can't trigger
a FINDA runout in the middle of a Q0 query.
So my solution now is to wait for the "Finished" state
and check if the FINDA is off during printing.

When "Finished" state appears, the FINDA value should be up
to date.
2022-09-16 10:23:47 +02:00
D.R.racer 4d3a5433ad Implement read/write registers for M707/M708 2022-09-16 10:23:47 +02:00
Guðni Már Gilbert 2216ba9fbf M600: Ask for which slot to use when loading
This fixes an issue where the assumed slot to use is unknown and
the printer will hang on loading filament 100.

Another good thing is this is an old user feature request which
we have in our 3.12 milestone.

Change in memory:
Flash: +14 bytes
SRAM: -1 bytes
2022-09-16 10:23:47 +02:00
D.R.racer 6c0d3b0b78 Optimize MMU protocol logic 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert dfddf3eaa5 Initial commit for MMU statistics 2022-09-16 10:22:39 +02:00
Guðni Már Gilbert fb087fc535 PFW-1386 Add M707 and M708
WriteRegister and ReadRegister function will create new compiler
warnings due to unused parameters, we can ignore it for now.
2022-09-16 10:22:38 +02:00
D.R.racer 022aa53b2d Remove active_extruder completely
we only use 1 extruder + saves ~800B
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 0d64cfa2e5 extruder variable should be one byte
Saves 1 byte of SRAM and 132 bytes of flash
2022-09-16 10:22:38 +02:00
VintagePC ba52430e1d Magic numbers are bad... 2022-09-16 10:22:38 +02:00
VintagePC 69c39e2281 An attempt at fixing the retry. Discussion needed. 2022-09-16 10:22:38 +02:00
D.R.racer c412f062c8 Perform 3xRetry automatically
This is a draft PR showing the potential 3x retry implementation on the printer's side.
It is much less code and looks more reliable than the same functionality in the MMU FW.

Still, more work needs to be done:
- [ ] Button is sent to the MMU even before returning from the parking position
- [ ] Then the button is sent again
- [ ] Then the printer runs out of retryAttempts

We need to find a better spot to check for "automatic" retry and issuing of the buttons
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 59d19a8330 PFW-1334 Move E-motor on FSENSOR error retry 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert ace5130d9f PFW-1375 MMU error reported by MK3S does not appear on LCD 2022-09-16 10:22:38 +02:00
vintagepc d7d6885765 PFW-1351 Cooldown timeout (#33)
* PFW-1351 WIP

* Fix bug with cooldown timing due to bad bitfield.

* Use default safety timer value for timeout
2022-09-16 10:22:38 +02:00
D.R.racer dab26fe50b Report detected MMU version in the Support menu
It was just subtly broken, all the functionality had already been implemented.
2022-09-16 10:22:38 +02:00
D.R.racer 121d43f896 Add a Try-Load-to-Bondtech operation
PFW-1347
2022-09-16 10:22:38 +02:00
VintagePC f9bedc3c94 Button handling WIP 2022-09-16 10:22:38 +02:00
VintagePC 9a20c85a5d First pass, improving the error recovery. 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 8fd1653b84 PFW-1343 initial commit 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert d5cdb412ba Introduce a way to read the previous tool used 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert d49e858cf7 PFW-1323 Fix MMU error screen doesn't disappear when error resolved on the MMU 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 7b91e73c8b Fix issue where error screen updates too slowly in manage_response 2022-09-16 10:22:38 +02:00
Guðni Már Gilbert 11290c1123 Add a read function for mmu_print_saved
and remove the old extern value which is not used anymore

I had to remove "MMU2::" from mmu2_protocol_logic.cpp, otherwise the build failed.
2022-09-16 10:22:37 +02:00
D.R.racer 9140ebba55 Add MMU FW version variables
hardcoded for now, but API ready
2022-09-16 10:21:53 +02:00