Use higher acceleration to move out of the unstable SG zone faster
parent
06d2c2bf7b
commit
4183bc6b71
|
|
@ -131,14 +131,14 @@ static constexpr AxisConfig selector = {
|
||||||
.iHold = 5, /// 99mA
|
.iHold = 5, /// 99mA
|
||||||
.stealth = false,
|
.stealth = false,
|
||||||
.stepsPerUnit = (200 * 8 / 8.),
|
.stepsPerUnit = (200 * 8 / 8.),
|
||||||
.sg_thrs = 5, // 6 looks like too much on my MMU
|
.sg_thrs = 3, // 6 looks like too much on my MMU
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Selector motion limits
|
/// Selector motion limits
|
||||||
static constexpr SelectorLimits selectorLimits = {
|
static constexpr SelectorLimits selectorLimits = {
|
||||||
.lenght = 75.0_mm, // @@TODO how does this relate to SelectorOffsetFromMin?
|
.lenght = 75.0_mm, // @@TODO how does this relate to SelectorOffsetFromMin?
|
||||||
.jerk = 1.0_mm_s,
|
.jerk = 1.0_mm_s,
|
||||||
.accel = 200.0_mm_s2,
|
.accel = 350.0_mm_s2,
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr U_mm SelectorSlotDistance = 14.0_mm; /// Selector distance between two slots
|
static constexpr U_mm SelectorSlotDistance = 14.0_mm; /// Selector distance between two slots
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ void MovableBase::PerformMove() {
|
||||||
state = TMCFailed;
|
state = TMCFailed;
|
||||||
} else if (mm::motion.QueueEmpty(axis)) {
|
} else if (mm::motion.QueueEmpty(axis)) {
|
||||||
// move finished
|
// move finished
|
||||||
// ml::leds.SetMode(4, ml::red, ml::off); // @@TODO - temporary signal of the finished move
|
ml::leds.SetMode(4, ml::red, ml::off); // @@TODO - temporary signal of the finished move
|
||||||
currentSlot = plannedSlot;
|
currentSlot = plannedSlot;
|
||||||
FinishMove();
|
FinishMove();
|
||||||
state = Ready;
|
state = Ready;
|
||||||
|
|
@ -48,7 +48,7 @@ void MovableBase::PerformMove() {
|
||||||
// Beware - the ordering of these if statements is important.
|
// Beware - the ordering of these if statements is important.
|
||||||
// We shall only check stallguard when motion queue is not empty for this axis - i.e. ! mm::motion.QueueEmpty(axis)
|
// We shall only check stallguard when motion queue is not empty for this axis - i.e. ! mm::motion.QueueEmpty(axis)
|
||||||
// Such a check has already been done in the previous else-if branch.
|
// Such a check has already been done in the previous else-if branch.
|
||||||
// ml::leds.SetMode(4, ml::red, ml::on); // @@TODO - temporary signal of the stall guard
|
ml::leds.SetMode(4, ml::red, ml::on); // @@TODO - temporary signal of the stall guard
|
||||||
// Axis stalled while moving - dangerous especially with the Selector
|
// Axis stalled while moving - dangerous especially with the Selector
|
||||||
// Checked only for axes which support homing (because we plan a homing move after the error is resolved to regain precise position)
|
// Checked only for axes which support homing (because we plan a homing move after the error is resolved to regain precise position)
|
||||||
mm::motion.StallGuardReset(axis);
|
mm::motion.StallGuardReset(axis);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue