How do I choose the right stepper motor for a DIY 3D printer?
Hi everyone! I'm building a 3D printer and I'm planning to buy a stepper motor online from https://www.skysmotor.co.uk. What models (e.g., NEMA 17) do you recommend for the X/Y/Z axes? Is it better to buy pre-wired cables or separate cables? Also, how can I check compatibility with Arduino/RAMPS-type boards? Any tips would be greatly appreciated!
skysmotor.co.uk
www.skysmotor.co.uk

Chris Annin
When building a 3D printer with an Arduino and RAMPS setup, you’ll almost always use bipolar 4-wire hybrid stepper motors, typically in the NEMA 17 size (about 42x42 mm). NEMA 17 just refers to the mounting size, not the power or torque, so you still need to look at the electrical specs.
Here’s what matters most when choosing stepper motors:
1. Rated current per coil:
Make sure your stepper driver (like an A4988, DRV8825, or TMC2208) can handle the motor’s current. Most 3D printer motors are in the 1.2-2.0 amp range.
2. Holding torque:
For good performance, look for motors with 40-80 N·cm (around 56-110 oz-in) of torque. Lighter printers can use less, heavier beds or gantries need more.
3. Motor length:
Longer motors usually provide more torque. Typical lengths are 34 mm, 40 mm, 48 mm, or 60 mm.
4. Inductance and resistance:
Lower inductance helps at higher speeds but requires a better driver and wiring.
5. Step angle:
Most motors are 1.8 degrees per step (200 steps per revolution), and microstepping in the driver increases resolution.
For the X and Y axes, choose a mid-torque NEMA 17 around 1.5-1.7 amps and 40-60 N·cm torque.
For the Z axis, especially if lifting a heavy bed, you might want a higher torque version or use a leadscrew for mechanical advantage.
Some common models you’ll see are:
Pre-wired vs separate cables
Pre-wired motors are convenient if you want plug-and-play simplicity. The connectors are already attached, and the wiring is consistent. However, the cable length might not match your layout, and if the connectors don’t match your RAMPS board, you may have to adapt them.
Separate cables let you choose your own wire gauge, length, and connectors. It’s more flexible but requires more work and more chance of wiring mistakes. For your first build, pre-wired motors are fine as long as the cables reach your control board.
If you wire your own, twist each motor’s coil pair together to reduce interference, and avoid running stepper wires right alongside heater or power wires.
Checking compatibility with Arduino/RAMPS
Practical tips:
samlevy0515
I've purchased NEMA 23 stepper motor (https://www.stepperonline.co.uk/nema-23-stepper-motor.html) from StepperOnline before, and they are also an excellent source for 3D printer motors. For your X, Y, and Z axes, a standard NEMA 17 stepper motor is the common choice.