-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overrides have no effect once job is fully in planner buffer #118
Comments
A sender issue? When I test with my sender it works as far as I can tell. There will be a short delay (~100ms?) as motions already in the segment buffer cannot be modified. |
Have done a bit more testing. For me, at the start of a job - when there is data in both the receive buffer and planner buffer, then overrides work as expected. Once all the data is in the planner buffer, then overrides have no effect until the job finishes (but they are queued up somewhere, and are all applied at the end of the job). I did think it might be a sender bug, but I also see the same thing from my control panel plugin - which uses grbl.enqueue_realtime_command() - same as feed hold / cycle start etc which all continue to work as expected. I can replicate on the bench, so will dig deeper... |
Here is the test program that works with my sender:
|
Interesting, that one works for me too. Here is one that doesn't;
|
It appears to be caused by the spindle stop (M5). As soon as that's removed, or the program end is moved above it, the issue goes away.. |
Line 986 in 4ff8f1c
This is it, good catch. I have to rework this code - it is for delaying overrides when in spindle sync motion is active. Just uncomment the line for now. I am about to verify spindle sync with a STM32F411 driver so will take a look then. |
I made some tests and this also occurs with M8 and M9. |
Hi @terjeio, any further thoughts on this one? (Just updating the code on my router, and revisiting the local code changes I'd made in the previous build). Thanks! |
Ouch, this had fallen off my radar. Will fix in the next commit by changing to separate delay flags for feedrate (not yet used), spindle and coolant. The reason for the delay is that, IMO, pending spindle or coolant commands should not be overridden before they take effect. These commands (M3, M4, M7, M8 and M9) will be pending until the planner buffer has been emptied. I guess I should look into S word handling as well... |
Thanks, will test.. |
While there are still some lines to be received from the sender, then overrides (spindle / feed / rapid) behave as expected during job execution. However once the job is fully in the planner buffer, then overrides no longer seem to have any effect?
I have observed this both from a software sender, and from my control panel plugin (I'd just assumed it was a sender bug before this). Any ideas?
The text was updated successfully, but these errors were encountered: