From 2c0c63de1aed99c6b09d2e0a7f8a2b9b986d61a4 Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Fri, 19 Jan 2024 09:27:04 +0100 Subject: [PATCH 1/2] Experimental: disengage to intermediate --- src/logic/feed_to_bondtech.cpp | 19 ++++++++++--------- src/logic/tool_change.cpp | 1 + src/logic/unload_filament.cpp | 4 ++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/logic/feed_to_bondtech.cpp b/src/logic/feed_to_bondtech.cpp index d92fb110..f90459d7 100644 --- a/src/logic/feed_to_bondtech.cpp +++ b/src/logic/feed_to_bondtech.cpp @@ -86,18 +86,19 @@ bool FeedToBondtech::Step() { if (mi::idler.PartiallyDisengaged()) { mm::motion.AbortPlannedMoves(mm::Pulley); mpu::pulley.Disable(); - mi::idler.Disengage(); // disengage fully while Pulley is already stopped - state = DisengagingIdler; - } - return false; - case DisengagingIdler: - if (mi::idler.Disengaged()) { - dbg_logic_P(PSTR("Feed to Bondtech --> Idler disengaged")); - dbg_logic_fP(PSTR("Pulley end steps %u"), mpu::pulley.CurrentPosition_mm()); - state = OK; + //mi::idler.Disengage(); // disengage fully while Pulley is already stopped ml::leds.SetMode(mg::globals.ActiveSlot(), ml::green, ml::on); + state = OK; } return false; + // case DisengagingIdler: + // if (mi::idler.Disengaged()) { + // dbg_logic_P(PSTR("Feed to Bondtech --> Idler disengaged")); + // dbg_logic_fP(PSTR("Pulley end steps %u"), mpu::pulley.CurrentPosition_mm()); + // state = OK; + // ml::leds.SetMode(mg::globals.ActiveSlot(), ml::green, ml::on); + // } + // return false; case OK: dbg_logic_P(PSTR("Feed to Bondtech OK")); return true; diff --git a/src/logic/tool_change.cpp b/src/logic/tool_change.cpp index 810fffb0..f99ea55a 100644 --- a/src/logic/tool_change.cpp +++ b/src/logic/tool_change.cpp @@ -186,6 +186,7 @@ ProgressCode ToolChange::State() const { return ProgressCode::FeedingToFSensor; case FeedToBondtech::PushingFilamentIntoNozzle: return ProgressCode::FeedingToNozzle; + case FeedToBondtech::PartiallyDisengagingIdler: case FeedToBondtech::DisengagingIdler: return ProgressCode::DisengagingIdler; } diff --git a/src/logic/unload_filament.cpp b/src/logic/unload_filament.cpp index 28079e53..acd0a93e 100644 --- a/src/logic/unload_filament.cpp +++ b/src/logic/unload_filament.cpp @@ -77,12 +77,12 @@ bool UnloadFilament::StepInner() { GoToErrDisengagingIdler(ErrorCode::FINDA_DIDNT_SWITCH_OFF); // signal unloading error } else { state = ProgressCode::DisengagingIdler; - mi::idler.Disengage(); + mi::idler.PartiallyDisengage(mg::globals.ActiveSlot()); } } return false; case ProgressCode::DisengagingIdler: - if (mi::idler.Disengaged() && ms::selector.State() == ms::Selector::Ready) { + if (mi::idler.PartiallyDisengaged() && ms::selector.State() == ms::Selector::Ready) { UnloadFinishedCorrectly(); } return false; From ab63ba3bdb0f1bb08964b94953c5b90a808d7c56 Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Fri, 19 Jan 2024 09:39:12 +0100 Subject: [PATCH 2/2] Make some more space for active slot filament --- src/config/config.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/config/config.h b/src/config/config.h index 313d6417..e92bad27 100644 --- a/src/config/config.h +++ b/src/config/config.h @@ -216,11 +216,11 @@ static constexpr U_deg idlerSlotPositions[toolCount + 1] = { /// Intermediate positions for Idler's slots: 0-4 are the real ones, the 5th index is the idle position static constexpr U_deg idlerIntermediateSlotPositions[toolCount + 1] = { - IdlerOffsetFromHome + 4.75F * IdlerSlotDistance, - IdlerOffsetFromHome + 3.75F * IdlerSlotDistance, - IdlerOffsetFromHome + 2.75F * IdlerSlotDistance, - IdlerOffsetFromHome + 1.75F * IdlerSlotDistance, - IdlerOffsetFromHome + 0.75F * IdlerSlotDistance, + IdlerOffsetFromHome + 4.55F * IdlerSlotDistance, + IdlerOffsetFromHome + 3.55F * IdlerSlotDistance, + IdlerOffsetFromHome + 2.55F * IdlerSlotDistance, + IdlerOffsetFromHome + 1.55F * IdlerSlotDistance, + IdlerOffsetFromHome + 0.55F * IdlerSlotDistance, IdlerOffsetFromHome ///18.0_deg Fully disengaged all slots };