diff --git a/Grbl_Esp32/data/config.yaml b/Grbl_Esp32/data/config.yaml index 8fb54200..2c162f69 100644 --- a/Grbl_Esp32/data/config.yaml +++ b/Grbl_Esp32/data/config.yaml @@ -24,10 +24,13 @@ axes: positive_direction: false feed_rate: 50.000 seek_rate: 200.000 + debounce: 500 + pulloff: 1.000 gang0: endstops: dual: gpio.17:low:pu + hard_limits: false stepstick: direction: gpio.14 step: gpio.12 @@ -44,11 +47,14 @@ axes: mpos: 10 positive_direction: false feed_rate: 50.000 - seek_rate: 500.000 + seek_rate: 600.000 + debounce: 500 + pulloff: 1.500 gang0: endstops: dual: gpio.4:low:pu + hard_limits: false stepstick: direction: gpio.15 step: gpio.26 @@ -64,13 +70,16 @@ axes: cycle: 1 mpos: 10 positive_direction: true - feed_rate: 50.000 - seek_rate: 100.000 + feed_rate: 30.000 + seek_rate: 300.000 locate_scaler: 2.000 + debounce: 500 + pulloff: 2.000 gang0: endstops: dual: gpio.16:low:pu + hard_limits: true stepstick: direction: gpio.33 step: gpio.27 diff --git a/Grbl_Esp32/src/Limits.cpp b/Grbl_Esp32/src/Limits.cpp index 783e127b..19dfc36c 100644 --- a/Grbl_Esp32/src/Limits.cpp +++ b/Grbl_Esp32/src/Limits.cpp @@ -361,8 +361,10 @@ void limits_enable() { for (int gang_index = 0; gang_index < 2; gang_index++) { auto gangConfig = config->_axes->_axis[axis]->_gangs[gang_index]; if (gangConfig->_endstops != nullptr && gangConfig->_endstops->_dual.defined()) { - Pin& pin = gangConfig->_endstops->_dual; - pin.attachInterrupt(isr_limit_switches, CHANGE, nullptr); + if (gangConfig->_endstops->_hardLimits) { + Pin& pin = gangConfig->_endstops->_dual; + pin.attachInterrupt(isr_limit_switches, CHANGE, nullptr); + } } } } diff --git a/Grbl_Esp32/src/Machine/Homing.h b/Grbl_Esp32/src/Machine/Homing.h index 58b2f840..209efce8 100644 --- a/Grbl_Esp32/src/Machine/Homing.h +++ b/Grbl_Esp32/src/Machine/Homing.h @@ -25,15 +25,15 @@ namespace Machine { public: Homing() = default; - int _cycle = -1; + int _cycle = -1; // what homing cycle does this axis home on? bool _square = false; bool _positiveDirection = true; float _mpos = 0.0f; - float _feedRate = 50.0f; - float _seekRate = 200.0f; - float _pulloff = 1.0f; // mm - int _debounce = 10; - float _search_scaler = 1.1f; + float _feedRate = 50.0f; // pulloff and second touch speed + float _seekRate = 200.0f; // this first approach speed + float _pulloff = 1.0f; // mm + int _debounce = 250; // ms settling time for homing switches after motion + float _search_scaler = 1.1f; // multiplied by max travel for max homing distance on first touch float _locate_scaler = 5.0f; // Configuration system helpers: