Testing the effects of changing microstepping and segmentation

  • administrators

    Following a discussion in another forum, I decided to do some tests to see what effect varying microstepping and segmentation has on the print quality produced by a delta printer. I printed the same gcode file with four different settings so that the results can be compared. Brief details:

    • The machine is the 1m high delta with 300mm build diameter described at at https://miscsolutions.wordpress.com/dc42s-large-kossel-build/
    • The print is a spiral vase 50mm cube with 3 solid layers at the bottom, and the gcode file is here https://dl.dropboxusercontent.com/u/19369680/cube5050501.gcode.
    • Layer height is 0.1mm after the first layer
    • The printer uses 0.9deg motors and 16 tooth pulleys, so the steps/mm @ x16 microstepping is 200
    • Controller electronics is Duet Wifi with firmware revision was 1.18RC1
    • The extruder drive is a Titan with a 1.8deg motor and about 420 steps/mm. The extruder driver was set to x16 microstepping with interpolation to x256 for all prints.

    You can enlarge the images by opening them in a new tab, or downloading them.

    First a reference print using x16 microstepping with interpolation to x256 enabled, which is the default firmware configuration:

    Next, still using x16 microstepping but with interpolation disabled (this is much noisier when printing):

    Most firmwares divide any delta printer move other than a short one into short segments, calculate the endpoints of each segment, and generate motor steps at equal intervals within each segment, on the grounds that when a segment is small enough the difference between this approximated motion and true straight-line motion is small. Apart from the error within each segment, this forces each segment boundary to be quantised to the nearest microstep for each motor. RepRapFirmware is unique in that it calculates the precise step times for all the tower motors when driving a delta printer. The only time RRF normally uses segmentation is when using mesh bed levelling and a move is longer than the grid spacing. For this next test, I modified the firmware to force each move to be split into 0.5mm segments, still using x16 microstepping with interpolation off. Within each 0.5mm segment, each move is still executed precisely instead of using the approximation, so this doesn't fully simulate the way other firmwares behave:

    Finally, because it was claimed in another forum that high microstepping might result in a reduction in precision, I ran a test with x256 microstepping, not interpolated. To remain within the maximum step pulse rate of around 180000 steps/second per motor supported by RRF on the Duet WiFi I had to reduce the travel speed; but the print speed was still 50mm/sec.

    I am aware that all the prints display ringing at the left hand edge, and I should reduce acceleration and/or jerk to reduce it. Other than that, I will leave readers of this post to comment on the print quality and how it differs between the prints.

  • You can try also round objects (no corner ringing). For example, truncated cone (~50 mm diameter at bottom and ~20 mm at top, height is 30 mm). On such objects you can also see surface irregularities described in this topic about jerky movements.

  • I would love to see these images, but alas, dropbox says 404 "file not found". Can you post them again?

  • administrators

    I have just updated the links.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.