Grbl uses flags to switch tasks and to set them it disables the interrupts with cli(), sets the flag then calls restore_SREG() which is defined as #define restore_SREG(state) xt_wsr_ps(state); sei(); // restore the state (uint32_t). It seems that the macro definition is wrong because after adding an additional call to sei(); in the flag clearing functions - the nodemcu doesn't software reset.
Grbl uses flags to switch tasks and to set them it disables the interrupts with
cli()
, sets the flag then callsrestore_SREG()
which is defined as#define restore_SREG(state) xt_wsr_ps(state); sei(); // restore the state (uint32_t)
. It seems that the macro definition is wrong because after adding an additional call to sei(); in the flag clearing functions - the nodemcu doesn't software reset.