# How to have double extruder and double Z motor on a 5-driver board?

We are using the Board SKR 1.3 with the following pins:

/**
* Trinamic Stallguard pins
*/
#define X_DIAG_PIN           P1_29   // X-
#define Y_DIAG_PIN           P1_27   // Y-
#define Z_DIAG_PIN           P1_25   // Z-
#define E0_DIAG_PIN          P1_28   // X+
#define E1_DIAG_PIN          P1_26   // Y+


We need a double Z motor, so We have defined the number of stepper drivers to 2 and it works like a charm:

#define NUM_Z_STEPPER_DRIVERS 2


Here is the problem, We need to have a single extruder with two heating zones, not a real second extruder. We have defined the number of extruders to 2:

#define EXTRUDERS 2


We want to reinforce that the second extruder does not exist, we only need the second heating zone. It's a big hotend with two different heating cartridges, that is, two different temperatures. So we do not need the stepper driver, only the temperature. Then we get the following error messages:

We have thought of enabling the chamber and use it's pin, but we got stuck with all the structure for it:

#define TEMP_SENSOR_CHAMBER 5

#define CHAMBER_MAXTEMP  250  // Extruder first temperature zone

#define HEATER_CHAMBER_PIN 24

• You can use 2 Z steppers on a single stepper driver. Most printers today use the steppers parallel, but in series will also work. Note that E(xtruders) are counted before Z steppers, because you don't have the 6th slot available it gives errors that you cannot place the Z2. Easiest thing to do is upgrade to a SKR Pro v1.1 to get rid of the Z2 error messages or split the connector. Do the heating zones have different temperatures, that is not clear, please explain why in the question?
– 0scar
Mar 12 '20 at 8:06
• About the 2 Z steppers in a single stepper driver: We will not be able to do this because of the electric current. About heating zones: - I edited the question to explain it better. - We need to do something similar to this: thingiverse.com/thing:3669673 - Since we don't have a heated chamber, can we use the temperature of the chamber? Mar 13 '20 at 22:41
• If you do it in series the amperage will not be high! So basically you need a MOSFET driven PID controlled second heater element. You should probably have to look into some Arduino sketches, there should be plenty examples of those to find. What I'm implying is to use some free pins to set the MOSFET and record the temperature. Basically this is already answered by @BenjaminBaker.
– 0scar
Mar 14 '20 at 13:48
• We are already at the limit of the amperage for the machine design. How could I do it using the chamber? Mar 15 '20 at 15:55
• I understand, that is why I'm suggesting this option, it does not cost any more, it will be less than your current setup. Just enable the heat chamber options in the firmware, you do need a MOSFET attached to the pin you schedule from within the firmware. Would it be a good idea to focus on the problem in the title? E.g. "How to add a second heating zone to a hotend?" The title now hints to a solution you have chosen, but might not be the solution at all?
– 0scar
Mar 17 '20 at 6:35

I second the previous answer if running second Z motor in parallel, just split wires or buy adapter consisting of two females to one male, Z motor on most printers don't draw huge current (or at least in smaller less frequent intervals to give things time to cool).

Erm I extruder with two temperature zones, hmmm buy a larger heating element, like a E3D Volcano or I believe they have an extreme version now, mine is rated for 40 W+.

Or you could use external MOSFET with separate Arduino PID.

• Unfortunately, We are already at the limit of the amperage for the machine design. Do you know how to do it using the chamber? Mar 16 '20 at 23:24

Unfortunately, I faced the same problem. The heated chamber will not be accurate enough due to lack of PID tuning. As a result, the temp will differ up to 10 degrees celsius when the heater is on. Is a big difference that will either not dry your filament enough or in the worst scenario will melt it. You will need to enable other features in order to bypass the issue. Find below how I enabled the 2nd heater element with the exact same setup as yours. You need to define the following:

#define EXTRUDERS 2


On the following part you must change the SERVO_NR to -1 otherwise you will face issues in case you are using a BLTouch, for example:

// A dual extruder that uses a single stepper motor
#define SWITCHING_EXTRUDER
#if ENABLED(SWITCHING_EXTRUDER)
#define SWITCHING_EXTRUDER_SERVO_NR -1
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1[, E2, E3]
#if EXTRUDERS > 3
#define SWITCHING_EXTRUDER_E23_SERVO_NR 1
#endif
#endif

// A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles
#define SWITCHING_NOZZLE
#if ENABLED(SWITCHING_NOZZLE)
#define SWITCHING_NOZZLE_SERVO_NR -1
//#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
#endif

-----------------------------

#define TEMP_SENSOR_1 1

-----------------------------


And finally, you must #define PID_PARAMS_PER_HOTEND in order to be able to PID tuning the 2nd heater which will be used for your inline filament dryer.