diff --git a/g2core/settings/settings_othermill.h b/g2core/settings/settings_othermill.h index 4ee6ac53..48089100 100644 --- a/g2core/settings/settings_othermill.h +++ b/g2core/settings/settings_othermill.h @@ -45,13 +45,8 @@ #define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high #define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high #define SPINDLE_PAUSE_ON_HOLD true -#define SPINDLE_SPINUP_DELAY 1.5 // after unpausing and turning the spindle on, dwell for 1.5s +#define SPINDLE_SPINUP_DELAY 0.1 // after unpausing and turning the spindle on, dwell for 1.5s #define SPINDLE_SPEED_CHANGE_PER_MS 7.0 -// #define SPINDLE_SPEED_CHANGE_PER_MS 1.0 // testing absurdly low setting -// OLD CODE: -// // PWM soft-start: original estimate 13ms/100RPM, but tweaked for slipping -// #define SP_RPM_INCREMENT 500.0 // RPM -// #define SP_DLY_PER_RPM_INCR 75 // ms per RPM increment (above) #define ESC_BOOT_TIME 5000 // how long the ESC takes to boot, in milliseconds #define ESC_LOCKOUT_TIME 900 // how long the interlock needs to be engaged before killing power... actually 1s, but be conservative diff --git a/g2core/spindle.cpp b/g2core/spindle.cpp index 955976a7..88ec71f8 100644 --- a/g2core/spindle.cpp +++ b/g2core/spindle.cpp @@ -137,15 +137,15 @@ void _actually_set_spindle_speed() { return; } - if (fp_ZERO(spindle.speed_change_per_tick)) { + if (fp_ZERO(spindle.speed_change_per_tick)) { // || (spindle.speed <= spindle.speed_actual) spindle.speed_actual = spindle.speed; } pwm_set_duty(PWM_1, _get_spindle_pwm(spindle, pwm)); - if (fp_NE(spindle.speed_actual, spindle.speed)) { + if (fp_NE(spindle.speed_actual, spindle.speed)) { // && (spindle.speed > spindle.speed_actual) // use the larger of: spindup_delay setting, or the time it'll take to ramp to the new speed, converted to seconds if (fp_NOT_ZERO(spindle.speed_change_per_tick)) { - mp_request_out_of_band_dwell(std::max(spindle.spinup_delay, std::abs(spindle.speed_actual-spindle.speed)/spindle.speed_change_per_tick)/1000.0); + mp_request_out_of_band_dwell(spindle.spinup_delay + 0.001*std::abs(spindle.speed-spindle.speed_actual)/spindle.speed_change_per_tick); } else { mp_request_out_of_band_dwell(spindle.spinup_delay); } @@ -446,9 +446,9 @@ static float _get_spindle_pwm (spSpindle_t &_spindle, pwmControl_t &_pwm) if ((_spindle.state == SPINDLE_CW) || (_spindle.state == SPINDLE_CCW)) { // clamp spindle speed to lo/hi range - if (_spindle.speed_actual < speed_lo) { - _spindle.speed_actual = speed_lo; - } + // if (_spindle.speed_actual < speed_lo) { + // _spindle.speed_actual = speed_lo; + // } if (_spindle.speed_actual > speed_hi) { _spindle.speed_actual = speed_hi; }