From 32ec1587b92c764a7d7bed43e09a9e2fc2538be1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Sat, 27 Aug 2022 09:39:51 +0000 Subject: [PATCH] PFW-1386 Implement changes to M702 --- Firmware/Marlin_main.cpp | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a5765d9fd..fc1a74df4 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8587,23 +8587,32 @@ Sigma_Exit: ### M702 - Unload filament G32: Undock Z Probe sled #### Usage - M702 [ C ] + M702 [ U | Z ] #### Parameters - - `C` - Unload just current filament - - without any parameters unload all filaments + - `U` - Retract distance for removal (manual reload). Default value is 0. + - `Z` - Move the Z axis by this distance. Default value MIN_Z_FOR_UNLOAD. */ - case 702: - { - if (code_seen('C')) { - if(MMU2::mmu2.Enabled()) MMU2::mmu2.unload(); //! if "C" unload current filament; if mmu is not present no action is performed - } - else { - if(MMU2::mmu2.Enabled()) MMU2::mmu2.unload(); //! unload current filament - else unload_filament(); - } - } - break; + case 702: + { + // TODO: Implement U parameter + + if (code_seen('Z')) + { + float z_target = code_value(); + raise_z_above(z_target, false); + } else { + raise_z_above(MIN_Z_FOR_UNLOAD, false); + } + + if (MMU2::mmu2.Enabled()) + { + MMU2::mmu2.unload(); + } else { + unload_filament(); + } + } + break; /*! ### M704 - Load to MMU