Gen4 Stepper Extruder

This is a discussion page for how to implement and support a stepper-driver extruder using Generation 4 electronics. To a certain degree, ideas discussed here could be successfully back-ported to Gen 3, but this is not a priority atm.


Using a stepper extruder has potential for improving current issues and shortcomings:

  • The Great Motor Mystery will become motor history
  • Exact control over how much filament is consumed
  • Possibility to drive the extruder slowly (which is problematic with today's DC motor setup)
  • Possibility to implement "5D mode":
    • Extruded filament is regarded a DDA axis the same way as the cartesian axes.
    • This opens up for firmware-controlled stepper ramping
    • Stepper ramping could allow us to increase feedrate (since steps are today typically lost during high acceleration)


  • The protocol has been extended to handle 5 axes:


  • 5axis branch - the current state:
    • Renamed the protocol to 'makerbot4g'.
    • In Java, Makerbot4GDriver is a subtype of Sanguino3GDriver which handles the relevant protocol extensions.
    • Support A and B axes in GCode (maps to the 4. and 5. axis)
    • Support E axis in GCode (for RepRap gcode compatibility), maps to the A axis.
    • All 3D points are now handled as 5D points. In 3D mode, the two extra dimensions are just ignored.


  • 5axis branch - the current state:

To discuss:

  • 5D control
  • RPM control of steppers as an alternative to 5D control
  • Ramping (acceleration) of steppers
  • When ramping, will synchronous ramping of extruder work or do we need to model the pressure-induced delay of plastic flow as well?


  • What is the current state?
  • Figure out how the current implementation could ever work
  • Check how Ultimaker solves this
  • Check how RepRap solves this
  • Look into Erik's 3D-to-5D script


Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.