Multiple extrusion
It's very cool
You can setup Smoothie to handle upto 3 extruders. (6 defined axis is the maximum the memory can handle).
Simply add Extruder ( controlling the extruder motor ) and TemperatureControl ( controlling the hotend ) modules to the configuration file for each new extruder.
NOTE that the default build of Smoothie only supports 2 extruders (5 axis), if you need 3 extruders you need to compile with make AXIS=6
Hardware requirements
For each extruder you are going to need :
- One temperature input for the hotend. Smoothieboard has 4 thermistor inputs, this means one heated bed and three hotends, or four hotends and no bed. To add additional hotends you have the option of using thermocouple external boards, which can be connected to the SPI port : either a single one, or four using a SPI hub, leaving you with a maximam total of 8 hotends, or more if you chain SPI hubs.
- One MOSFET output : Smoothieboard has 6 MOSFET outputs maximum ( 3 small 3 big ) that can be used for hotends, but depending on whether or not you use a bed you might only have 5 available. However you can wire external MOSFETs or SSRs to any free GPIO pin, giving you as many as there are free GPIO pins ( going to 8 or more being then easy ).
- One stepper motor driver. Smoothieboard has 5 maximum ( depending on board type ). You need 3 for 3-dimensional movement, regardless of your arm solution. This leaves you being able to drive at most two extruders with the on-board drivers. However, wiring additional drivers is as simple as using free GPIO pins. Simply wire any pin on the Smoothieboard as the step, direction and enable pins for your external stepper driver.
This means, assuming you are using a heated bed, you can drive two extruders easily with what is on-board the Smoothieboard. To go to three extruders you will need to add one external stepper motor driver. To go to four you will need to add another external stepper motor driver, and use a SPI thermocouple temperature input external board, etc …
We will here concentrate on a dual extruder setup.
Configuration
The default configuration in the Smoothie firmware is for a single extruder.
In order to setup a second one, you need to use the syntax dedicated to multiple extruder systems. This means using the “module generation” syntax you could be familiar with from the TemperatureControl and Switch modules.
Here is what it looks like :
## Extruder module configuration # See http://smoothieware.org/extruder extruder.hotend.enable true # Whether to activate the extruder module at all. All configuration is ignored if false extruder.hotend.steps_per_mm 140 # Steps per mm for extruder stepper extruder.hotend.default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves extruder.hotend.acceleration 500 # Acceleration for the stepper motor mm/sec² extruder.hotend.max_speed 50 # Maximum speed in mm/s extruder.hotend.step_pin 2.3 # Pin for extruder step signal extruder.hotend.dir_pin 0.22 # Pin for extruder dir signal ( add '!' to reverse direction ) extruder.hotend.en_pin 0.21 # Pin for extruder enable signal delta_current 1.5 # First extruder stepper motor current # Second extruder module configuration extruder.hotend2.enable true # Whether to activate the extruder module at all. All configuration is ignored if false extruder.hotend2.steps_per_mm 140 # Steps per mm for extruder stepper extruder.hotend2.default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves extruder.hotend2.acceleration 500 # Acceleration for the stepper motor, as of 0.6, arbitrary ratio extruder.hotend2.max_speed 50 # mm/s extruder.hotend2.step_pin 2.8 # Pin for extruder step signal extruder.hotend2.dir_pin 2.13 # Pin for extruder dir signal ( add '!' to reverse direction ) extruder.hotend2.en_pin 4.29 # Pin for extruder enable signal epsilon_current 1.5 # Second extruder stepper motor current
As you can see it is quite similar to the normal extruder configuration, only extended to multiple extruders. You can add other extruders the same way. There is no specific name you have to name your extruders, simply add as many as you want, with whatever names you want, as long as the names are different.
Simply replace your current extruder configuration with this in the config file.
You will also need to configure an additional TemperatureControl module for the hotend.
It is recommended you read the TemperatureControl documentation.
Here is an example configuration for a two extruders setup :
## Temperature control configuration # See http://smoothieware.org/temperaturecontrol # First hotend configuration temperature_control.hotend.enable true # Whether to activate this ( "hotend" ) module at all. temperature_control.hotend.thermistor_pin 0.23 # Pin for the thermistor to read temperature_control.hotend.heater_pin 2.7 # Pin that controls the heater, set to nc if a readonly thermistor is being defined temperature_control.hotend.thermistor EPCOS100K # See http://smoothieware.org/temperaturecontrol#toc5 temperature_control.hotend.set_m_code 104 # M-code to set the temperature for this module temperature_control.hotend.set_and_wait_m_code 109 # M-code to set-and-wait for this module temperature_control.hotend.designator T0 # Designator letter for this module # Second hotend configuration temperature_control.hotend2.enable true # Whether to activate this ( "hotend2" ) module at all. temperature_control.hotend2.thermistor_pin 0.25 # Pin for the thermistor to read temperature_control.hotend2.heater_pin 1.23 # Pin that controls the heater temperature_control.hotend2.thermistor EPCOS100K # See http://smoothieware.org/temperaturecontrol#thermistor temperature_control.hotend2.set_m_code 104 # M-code to set the temperature for this module temperature_control.hotend2.set_and_wait_m_code 109 # M-code to set-and-wait for this module temperature_control.hotend2.designator T1 # Designator letter for this module
CtrlC
Please do not mindlessly copy/paste the examples here, they probably do not fit your particular setup. Understand what is going on, and actually adapt the configuration to your specific situation. These are only examples.1 hotend, two extruders
If you have two extruders going into one hotend, you need to set-up two extruder modules, and one temperaturecontrol module. Make sure you name the temperaturecontrol differently from the extruder modules so none of them gets preference.If doing this setup with the Cura software, this additional Cura module might be helpful : https://github.com/pmarkiewicz/CuraPostprocessingScripts
Wiring
The first extruder in this configuration is wired to M4, the second one to M5.
If you have more extruders, you will need to use external stepper motor drivers. Please see the specific documentation for this in the 3D printer guide.