Wiring Your Z Stepper Motors in Series




This instructable is meant for owners of RepRap and other 3d Printers which use 2 stepper motors for the Z axis, as commonly seen in the Prusa or Mendel styles of printers, among many others.

The default configuration for most controller electronics such as RAMPS is to have the motors connected in parallel. However as I will attempt to explain, it can be more beneficial to connect the motors in series instead.

So the purpose of this instructable is to describe a method of creating a "plug and play" wiring harness that will convert your motors from parallel to series.

Pictured are conceptual diagrams which hopefully illustrate the path of the circuit and how this makes the motors series connected.

Step 1: The What and Why of Series Stepper Motor Wiring

On my printer I used DRV8825 stepper drivers which don't behave very well with parallel wired motors. Due to some specifics about how the driver works it basically ends up "skipping" parts of the microstepped waveform. That's not to say it misses any steps and loses its position, just that it flattens out parts of what should be a smooth sinusoidal current waveform making for louder more jerky operation. This is particularly noticeable if autoleveling is enabled on your printer. Autoleveling compensates for a bed which is not parallel to the toolhead movement by constantly making small Z adjustments as it moves across the X and Y axes. In my case this caused very audible "pop" sounds from my Z motors as it skipped a bunch of microsteps during a print.

For a way more detailed and technical explanation of what's going on and another solution to the issue involving diodes, see this informative blog post. (not my blog)

So the gist of it is that wiring the Z motors in series rather than parallel significantly reduces this effect, by making the motors act like one of a higher voltage rating/higher resistance (4x compared to parallel configuration).

Another benefit is that the motors will only require 1/2 the current for the same amount of motor output torque, allowing the stepper driver to run cooler.

Step 2: Parts and Tools

Here is a list of items used to build my harness. If you find this instructable useful and require any parts or tools, using these amazon affiliate links for your shopping would help me out.

This project requires to following parts:

And tools:

  • Wire cutters flush cutters great for clipping wires or component leads
  • Soldering iron / station (includes wire cutters) the HAKKO FX888 is basically the gold standard of soldering stations
  • Wire strippers I've had an older version of these wire strippers for over a decade and they are still my favorite, very reliable and quick
  • optional Tweezer nose pliers very nice for fine work bending wires or pins

The jumper wires typically come in a ribbon of 40 wires at a time, and you can peel away contiguous strips of any number. This project only requires 4 such wires. I find these style of jumper wires incredibly handy for electronics protoyping and tinkering, they are great for connecting arduinos, breadboards, and other quick connections. There are three types: Male to Male, Male to Female, and Female to Female. As long as your wires have female on at least one end it will work here.

Step 3: Prepare Wires

Peel 4 wires from your breadboard jumpers(with female ends), fold in half and clip in the middle.

Take a side with female connectors, and splay out the wires and strip a small amount from the ends (about the length of the shorter side of the header pins).

Tin the ends of your wires with a small amount of solder, and place some heat shrink tubing over them, 1/16" size fits just right. Make sure the wires are peeled backed far enough that the heatshrink won't get heated during soldering.

Step 4: Prepare Pins

Clip off a 4x2 piece of your male header pins.

Placing these pins on a breadboard(with the longer end facing into the breadboard) helps to hold everything in place while its being worked on. Pictured is a random Arduino shield with built in breadboard.

Now two pairs of diagonal pins will need to be electrically connected, as shown. I do this by carefully bending them toward each other, and then soldering with a small amount of solder. Tweezer nose pliers are helpful here as they can fit in very small spots.

Care should be taken when bending and soldering these pins as they can slide up and down in the plastic header(the breadboard helps somewhat to keep the pins from slidingn). If the heat from the soldering iron is left too long it can melt the plastic holder causing the pins to fall loose, and you may need to start with a fresh header piece. Also when soldering, avoid globbing on too much which could cause unwanted bridging to other pins, space is somewhat tight.

You should end up with four remaining unbent pins in a staggered pattern, which we will solder our wires to.

Step 5: Solder Wire Ends to Pins and Finish

Now we can solder our previously tinned wires to the header pins. Lay the wire ends straight along each pin and solder. Try to solder it along the outside edge, giving more room to avoid bridging the connection with the diagonal connections.

When soldering the wires, be sure not to swap the orientation of them; they will be staggered, but should still stay in the same ordering from left to right.

Visually inspect that no unwanted pins were bridged. A multimeter can also be used to verify this.

Push the heat shrink down over the soldered connections and heat with a heat gun.

Now the other end of the wires, the 4 female pins can be held together with a piece of 3/8" heatshrink. Again be sure not to change the ordering of the wires when heating shrinking these.

That's all, now it can be plugged into a single RAMPS(or other controller) Z-motor output, and the two Z motors plugged into the other end of the harness. The motors are now connected in series.

7 People Made This Project!


  • Tape Contest

    Tape Contest
  • Arduino Contest 2019

    Arduino Contest 2019
  • Trash to Treasure

    Trash to Treasure

11 Discussions


2 years ago

I have 3 motors on my z axis! Any diagram how to connect 3 motors in series?

1 reply

Reply 9 months ago

Take the connection to the second motor in the series, repeat the process.


1 year ago


good explanation for a noob also, I'm setting my new printer with dual Z axis Nema17 motors (from Anet A8) and a MKS Gen with DRV8825. In this way, if I connect the motors in serial mode to the DRV8825 (board powered at 12V), what's the VREF should I use?

I think my motors are similar to SL42STH40-1684A (2,8V / 1.65ohm / 1.68A).

Thanks for your help

1 reply

Reply 1 year ago

Note: at this time my board it's set up on double Z drivers (E1 used for second Z axis), VREF of two drivers is 0,64V (with 1/16 microstep) and it's working fine even though motors warms up a bit. But now I need the second extruder so this's the reason for changes..


3 years ago

Great 'ible. I'm going to try this and also mechanical synchronisationof the z axis motors, using gt2 belt and pulleys, will compare


3 years ago

How can the motor have the same torque if you apply half the voltage to it ? Putting both motors in series makes a voltage divider, yes you have the same current across the line but you have half the voltage ... it means less torque. And, augmenting the inductance will make the second motor having more trouble to get it's current due to the L di/dt formula.

I have the same problem on my prusaI3, the "tok tok" of the z axis due to the autolevel feature.

2 replies

Reply 3 years ago

Motor torque is a function of current, not voltage.  Normally the current would be dependent on the voltage, but the stepper drivers are using PWM, along with the inductance of the motor coils to regulate the current.

As long as you have enough voltage to hit your desired current level, it is fine.  For example the motors I use are rated 4.2V, 2.8Ohm, 1.5A per phase. By the way the voltage rating for a stepper motor is just based on ohms law given the resistance and current rating for a coil. So V = IR , 4.2V = 1.5A * 2.8 Ohm
So in order to reach the max rated current on this motor you will need at least 4.2V. Since my power supply is 12V(pretty standard) even putting two in series is still over that threshold: 12V > 8.4V. So the holding torque can be the same when supplying 12V to two 4.2V motors in series. Also that assumes running the motors at their max rating, which I don't, I usually set my stepper drivers to about 1.2A,requiring even less voltage than stated.

One other thing to keep in mind is that in order to have the current setting the same per motor, when going from parallel to series, you will need to adjust the trim pot on the stepper driver, since that current is split between the motors in parallel, but not when in series.

Lastly the effect of increasing the inductance of the system is that the stepper driver can't alter the current as quickly; L di/dt as you mentioned. The consequence of this is limiting the absolute maximum speed that the stepper motors can turn.  But they aren't being driven close to that limit for typical z axis, so its not an issue.


Reply 3 years ago

Well thank you ! I knew that the torque is a function of the magnetic flux that os function of the frequency and the voltage for ac motors. I'm not used to stepper formula. Your answer is complete and seems pretty accurate. Thanks a lot for the explanation, I will try it this week when my driver board will be repaired !!


3 years ago

I would read through the data sheet to ensure the driver will handle the impedance. when the motors are wired in parallel, the resistance is halved, which causes the motors to pull additional current. this causes the driver to most likely over work/over heat which causes it to skip steps.

1 reply

Reply 3 years ago

The types of stepper drivers used in have built in current sensing, there is a trim pot for setting the target current, changing motor impedance alone does not affect the current setting.


3 years ago

I always wondered how I could get a large bed to offset correctly...