Step one was to find a way to get the output of the firmware. Using my newly acquired logic analyzer it was straight forward to hook up the leads, send the gcode, and convert the captured data to a SVG of the resulting idealized path.
Here is a zoomed in section of a Sells Mendel frame vertex processed on these firmwares.
|EMC2 default planner tolerance|
|EMC2 0.05mm planner tolerance|
Teacup suffers from some small geometric distortion on the ends of a move, while Tonokip has the most issues. Klimentkip looks very good. Grbl is shown as a reference of the best looking movements.
The biggest surprise was EMC2 in its default configuration. I knew that it took some liberties with the path to allow for higher cornering speed, but this was unexpected. It has the byproduct of making the segmented circles round again. The planner tolerance can be adjusted by doing "G64 PX" where X is the max distance the planner can deviate.