Fix for random feed hold/cycle start sequence failures. Ref. issue #491.

This commit is contained in:
Terje Io
2024-04-16 10:19:55 +02:00
parent 626ecd06f1
commit 258be47dcb
5 changed files with 27 additions and 11 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ It has been written to complement grblHAL and has features such as proper keyboa
---
Latest build date is 20240404, see the [changelog](changelog.md) for details.
Latest build date is 20240416, see the [changelog](changelog.md) for details.
__NOTE:__ Build 20240222 has moved the probe input to the ioPorts pool of inputs and will be allocated from it when configured.
The change is major and _potentially dangerous_, it may damage your probe, so please _verify correct operation_ after installing this, or later, builds.
+17 -1
View File
@@ -1,10 +1,26 @@
## grblHAL changelog
<a name="20240416"/>Build 20240416
Core:
* Fix for random feed hold/cycle start sequence failures. Ref. issue [#491](https://github.com/grblHAL/core/issues/491).
Drivers:
* STM32F1xx: added tentative support for UART4, not tested!
* STM32F7xx: added support for SPI4, not tested!
* Simulator: added support for continuous 1ms systick event. Ref issue [#8](https://github.com/grblHAL/Simulator/issues/8).
---
<a name="20240408"/>Build 20240408
Core:
* Fix for bug in NGC expressions return statement handling. Ref issue [#485](https://github.com/grblHAL/core/issues/485).
* Fix for bug in NGC expressions return statement handling. Ref. issue [#485](https://github.com/grblHAL/core/issues/485).
Drivers:
+1 -1
View File
@@ -42,7 +42,7 @@
#else
#define GRBL_VERSION "1.1f"
#endif
#define GRBL_BUILD 20240408
#define GRBL_BUILD 20240416
#define GRBL_URL "https://github.com/grblHAL"
+2 -2
View File
@@ -637,8 +637,8 @@ void plan_cycle_reinitialize (void)
{
// Re-plan from a complete stop. Reset planner entry speeds and buffer planned pointer.
st_update_plan_block_parameters();
block_buffer_planned = block_buffer_tail;
planner_recalculate();
if((block_buffer_planned = block_buffer_tail) != block_buffer_head)
planner_recalculate();
}
// Re-calculates buffered motions profile parameters upon a motion-based override change.
+6 -6
View File
@@ -7,18 +7,18 @@
Copyright (c) 2011-2016 Sungeun K. Jeon for Gnea Research LLC
Copyright (c) 2009-2011 Simen Svale Skogsrud
Grbl is free software: you can redistribute it and/or modify
grblHAL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Grbl is distributed in the hope that it will be useful,
grblHAL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
along with grblHAL. If not, see <http://www.gnu.org/licenses/>.
*/
#include <math.h>
@@ -748,11 +748,11 @@ void st_prep_buffer (void)
prep.ramp_type = Ramp_Decel;
// Compute decelerate distance relative to end of block.
float decel_dist = pl_block->millimeters - inv_2_accel * pl_block->entry_speed_sqr;
if (decel_dist < 0.0f) {
if(decel_dist < -0.0001f) {
// Deceleration through entire planner block. End of feed hold is not in this block.
prep.exit_speed = sqrtf(pl_block->entry_speed_sqr - 2.0f * pl_block->acceleration * pl_block->millimeters);
} else {
prep.mm_complete = decel_dist; // End of feed hold.
prep.mm_complete = decel_dist < 0.0001f ? 0.0f : decel_dist; // End of feed hold.
prep.exit_speed = 0.0f;
}
} else { // [Normal Operation]