What are the use cases of M669 segmentation?
-
Apart from saying
Segmenting moves is useful when faster pause response is wanted.
There is very little documentation on the practical use of segmentation and how to use it.
For example- what is segmentation intended to achieve or allow?
- what are the effects of various S and/or T values?
- Is there a trade off or possible negative effect of using segmentation?
-
@OwenD I think segmentation will affect if/when input shaping is enabled with the current implementation.
And I would've thought too much segmentation could overload the MCU depending on microstepping selected etc -
@OwenD the main use case for segmentation is in CNC applications where there may be a need to perform a pause during a long move, without waiting for the move to complete. We plan to support "feed hold" in a future version of RRF, but fore now segmentation provides a workaround.
-
@dc42
I see.
I'm picturing that it works by effectively breaking a single move into many, (except with no acceleration/deceleration between them) and passes control back to the CPU between them in a similar way to how calling application.processmessages might in a loop.
So in the current implementation, should (or could) it allow for other changes to behaviour mid move?
For example feed rate (either maximum or linear), extrusion rate etc?
Presumably any such change would have to occur on a different input channel?I've run some tests using a trigger mid move to change feed rate which doesn't seem to work, so I'm not sure if I'm on the right track.
I tried changing both M203 & M220 values and neither applied until after the move completed. -
@OwenD changes to most movement parameters don't get pushed into moves already in the movement queue because of the recalculation involved, however babystepping does. So you should be able to babystep during a segmented move.