From 40fd602e0046628d02c65454e2202008f4b0f745 Mon Sep 17 00:00:00 2001 From: Sonny Jeon Date: Wed, 2 Aug 2017 09:14:16 -0600 Subject: [PATCH] Fixed a very rare but critical bug when reducing override rates. - See main branch commit log for details. --- doc/log/commit_log_v1.0d.txt | 10 ++++++++++ grbl/grbl.h | 2 +- grbl/stepper.c | 7 +++---- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/doc/log/commit_log_v1.0d.txt b/doc/log/commit_log_v1.0d.txt index 5dd0375..7c9462c 100644 --- a/doc/log/commit_log_v1.0d.txt +++ b/doc/log/commit_log_v1.0d.txt @@ -1,3 +1,13 @@ +---------------- +Date: 2017-08-01 +Author: Sonny Jeon +Subject: Fixed RAMPS control pin conflict + +[fix] RAMPS soft-reset control pin interfered with Z-enable. Shifted +all control pins by plus one on the analog pins. RAMPS defines these +pins as belonging to the AUX 2 port, which is assumed to be unused. + + ---------------- Date: 2017-07-17 Author: Sonny Jeon diff --git a/grbl/grbl.h b/grbl/grbl.h index 74a3cae..fc8b888 100644 --- a/grbl/grbl.h +++ b/grbl/grbl.h @@ -23,7 +23,7 @@ // Grbl versioning system #define GRBL_VERSION "1.1f" -#define GRBL_VERSION_BUILD "20170801" +#define GRBL_VERSION_BUILD "20170802" // Define standard libraries used by Grbl. #include diff --git a/grbl/stepper.c b/grbl/stepper.c index a07432f..d0fc3aa 100644 --- a/grbl/stepper.c +++ b/grbl/stepper.c @@ -973,15 +973,14 @@ void st_prep_buffer() switch (prep.ramp_type) { case RAMP_DECEL_OVERRIDE: speed_var = pl_block->acceleration*time_var; - mm_var = time_var*(prep.current_speed - 0.5*speed_var); - mm_remaining -= mm_var; - if ((mm_remaining < prep.accelerate_until) || (mm_var <= 0)) { + if (prep.current_speed-prep.maximum_speed <= speed_var) { // Cruise or cruise-deceleration types only for deceleration override. - mm_remaining = prep.accelerate_until; // NOTE: 0.0 at EOB + mm_remaining = prep.accelerate_until; time_var = 2.0*(pl_block->millimeters-mm_remaining)/(prep.current_speed+prep.maximum_speed); prep.ramp_type = RAMP_CRUISE; prep.current_speed = prep.maximum_speed; } else { // Mid-deceleration override ramp. + mm_remaining -= time_var*(prep.current_speed - 0.5*speed_var); prep.current_speed -= speed_var; } break;