× Path Planning

Path planning makes your printer moves more smooth. Have a look at the above picture. It shows a print of three lines. Without path planning, the printer needs to follow the blue path. For each segment it will accelerate to the commanded feed rate and back to the maximum end speed allowed. The path planner looks for previous moves, which aren‘t executed now and tries to remove the deceleration/acceleration between line joints, resulting in the much smoother red line. For each line joint, the maximum allowed jerk is computed and speed is reduced if needed to reduce the jerk. In most cases this is still much faster then the start/stop speed you would have otherwise. In circles you will most likely have no speed reduction at all. The only bad thing about path planning is, that it needs computation time. For each new line segment the algorithm needs to update older entries. For normal moves, this is no big deal and is very fast. Only if you have many very short moves, the update time becomes dominant and the firmware has to slow down the print. The behavior is influenced by the following configuration parameter:



Move Cache Size (default 16)



That is the size of the buffer for currently processed segment and following moves. Higher values require more ram. Cartesian printer can go up to 32 on Atmel AVR, Deltas until 16. It could make print smoother if they have many small lines.



Minimum time per move when cache is below (default 10)



The path planner has some tricks to prevent empty buffers. One is to make a minimum move time per segment. If the buffer has only Minimum time per move when cache is below or less segments, each segment is slowed down if would be shorter otherwise. For typical prints the buffer always has Move Cache Size or Move Cache Size - 1 moves stored and normal moves are long enough, that no speed reduction is needed anyway. This is only effective for very short moves. Higher values can increase computation cost in extreme situations.



Assumed ticks per move computation time (default 250000)



The minimum time in processor ticks, each segment must need if the cache is low. The default value means, there will be still 40 segments printed per second.