May 15, 2014

Hacking MachineKit and LinuxCNC to speed up 3d printing with velocity extruding

Bas De Bruijn decided to spped up his 3d printer and made some tweaks in MachineKit and LinuxCNC.

He made following adjustments_
  • Changed the configuration files so that LinuxCNC calculates speed of the extruder based on the nozzle speed (the extruder axis is velocity controlled instead of position controlled).
  • Added functions for setting width of the line being extruded and the height of that line (the current layer).
  • (Un)linking of the extruder with the nozzle velocity.
  • Write scripts that post processes the slicer g-code output (remove all A-axis positions) and insert the dimensions into the g-code.

Here is the video with the results:

From video description:
This is the first output of extruding without the E or A axis. The velocity of the extruder is linked with the velocity of the nozzle.
Width of the line (perimeter/infill) and height of the layer are set from the g-codes, and LinuxCNC calculates the correct cross section to be extruded.
When there is a traverse move (no extrusion) then the velocity is disconnected from the nozzle velocity.

Here is the photo of the results in comparison to normal settings:

"Normal" extruding is on the left and the "pressure adjusted velocity controlled extrusion" is on the right.

Project homepage with much more detailed information if you want to do it yourself:

All the files can be found at:

Bas used this software upgrade to implement 3d printing with guided slew ring wire embedding.

Update (26.9.2014.):

New improvements with velocity extrusion technique and new speed, acceleration and deceleration calculations .