The machine is a 3 axis CNC Shapeoko2 with a Synthetos TinyG controller (USB) updated with latest firmware (version 0.97 built 440.20).
There are several aspects which influence machine stuttering:
1) Reducing the feed rate below 1000 mm/mn improves the smoothness. This is unfortunately not a sustainable option. I need to achieve up to 3000 mm/mn or even more.
2) Milling strategy: For the time being I try to fix the issue on 2D contour but 3D clearing strategies are even more stressful for the machine
3) CAD Design: Small arcs, splines and sharp angles are creating more problems. I’ve therefore designed a stress test for repeatability purposes: https://a360.co/2Ip5y6x
4) Path smoothing option:
Without smoothing the code is indeed extremely heavy:
The execution is unsmooth (lot of Stops and Starts without acceleration / jerk management) and there are many warnings reported by the controller: Move is less than minimum time.
With smoothing (default setting to 0.01 mm) the large top spline has been dramatically improved. However I still have too many dot on the shortest splines (including the middle right one which is however an almost perfect arc: I would have expected a very nice smoothing here instead of this serie of tiny arcs and segments). This is the reason why I’m looking for a way to set a minimum segment length.
Your recommended smoothing settings are indeed better. The motion is almost smooth but I still have a few unacceptable stops around the regions where you can see plenty of dots:
BTW smoothing do not apply to lead-in and lead-out operations which create a considerable amount of segments. However reducing feed rate below 300 mm/mn for these operations is an acceptable workaround.
5) Gcode sender: I have tested several gcode senders (CNCjs, ChiliPeppr, Goko 0.3.5…). Some of them are activating the verbose mode on the controller, this is apparently not helping here but it can’t be changed.
6) FTDI Serial port set-up: It has to be set to maximum acceptable speed (115200 bauds) and proper flow control (RTS/CTS). I’ve also noticed that there is a latency set-up in the advanced options. By default it was set to 16ms. Reducing to 8ms has improved the smoothness. Going below doesn’t seem to improve further, but to be fair I’m not sure what could be the collateral impacts of decreasing this too much.
As a conclusion, I agree that the Smoothing option should be the right way to solve my issue, but it doesn't work as good as I would expect.