Experimental: disengage to intermediate

pull/314/head
D.R.racer 2024-01-19 09:27:04 +01:00
parent 0eeef4cafd
commit 25b12662c4
3 changed files with 13 additions and 11 deletions

View File

@ -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;

View File

@ -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;
}

View File

@ -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;