How to Power a Stepper Motor: Driver, Voltage & Wiring

Powering a stepper motor requires three things: a power supply, a motor driver, and a controller. You never connect a stepper motor directly to a power supply or to a microcontroller’s output pins. The driver sits between the power source and the motor, regulating current to protect the motor while delivering the torque and speed you need. Getting the voltage and current right is the most important part of the setup.

Why You Need a Driver, Not Just a Power Supply

A stepper motor’s rated voltage is surprisingly low. A typical motor might be rated at just 2.5 volts with a maximum current of 2.8 amps. If you connected it directly to that voltage, it would draw its full rated current constantly and overheat, and you’d have no way to control the stepping sequence that makes the motor actually rotate in precise increments.

A stepper motor driver solves both problems. It sends precisely timed pulses to each motor winding in the correct sequence, and it uses high-frequency switching to limit the current flowing through those windings. This current-limiting function is what allows you to safely run stepper motors at voltages far higher than their rating. The driver monitors current through a small sense resistor and rapidly switches power on and off to keep the average current at the level you set, regardless of the supply voltage. Stepper motors are designed to work this way, and it is safe to run them at up to 20 times their rated voltage.

A microcontroller like an Arduino can only supply around 20 to 40 milliamps per pin. A NEMA 17 stepper motor draws 1 to 2.8 amps per phase. The microcontroller’s job is limited to sending step and direction signals to the driver. All motor power comes from an external supply.

Choosing the Right Voltage

Higher supply voltage gives you better performance. When a driver switches current on, it needs to push that current through the motor winding’s inductance before the motor can respond. A higher voltage overcomes that inductance faster, which means the motor maintains more torque at higher speeds. At low speeds, this difference is barely noticeable. At high speeds, it’s dramatic.

Oriental Motor’s speed-torque data illustrates this clearly: a motor driven at 24V drops off in torque much sooner as speed increases compared to the same motor driven at 162V, which holds its torque out to significantly higher RPMs. For most hobby and desktop CNC applications, 12V or 24V supplies work well. If you need the motor to spin faster while maintaining pulling power, go with 24V or higher. Just make sure your driver board is rated for the voltage you choose.

Calculating Current Requirements

Your power supply needs to deliver enough current for all the motors in your system. A NEMA 17 motor typically draws between 1 and 2.8 amps per phase, and both phases can be energized simultaneously. As a practical rule, size your power supply for at least the rated phase current multiplied by the number of motors, then add some headroom. If you’re running two motors rated at 1.7 amps each, a supply rated for at least 5 amps at your chosen voltage gives you a comfortable margin.

A laptop power brick rated at 16V and 3A can handle a single NEMA 17 motor adequately. For multi-motor setups like a 3D printer or CNC router, a dedicated switching power supply (the kind used for LED lighting or industrial equipment) is more practical and typically less expensive per amp.

Wiring: Bipolar vs. Unipolar Motors

The number of wires coming out of your motor tells you what type it is and how to connect it. Four-wire motors are bipolar. They have two separate coils (called phases), each with two leads labeled A+, A-, B+, and B-. These connect directly to the four output terminals on your driver.

Six-wire motors are unipolar. Each phase has a center tap wire connected to the motor supply voltage in traditional unipolar circuits. You can run a six-wire motor in unipolar mode using a specialized driver, or you can convert it to bipolar mode by leaving the two center-tap wires disconnected and taped off. Running in bipolar mode gives you more torque because current flows through the full winding rather than just half of it.

Five-wire motors are also unipolar, but the two center taps are internally joined into a single wire. These can only run in unipolar mode. Eight-wire motors offer the most flexibility, letting you wire the coils in series or parallel depending on whether you want higher voltage tolerance or higher current capacity.

Setting the Current Limit on Your Driver

Most driver boards have a small potentiometer or trimmer that sets the maximum current the driver will allow through the motor windings. This is the single most important adjustment in your setup. Set it too low and the motor will be weak and skip steps. Set it too high and you risk overheating both the motor and the driver.

Set the current limit to match your motor’s rated phase current, or slightly below if your driver doesn’t have adequate cooling. Some popular driver boards can only deliver their maximum rated current with a heatsink and active airflow. The A4988, for example, is rated for up to 2 amps but realistically handles about 1 amp per phase without additional cooling. Check your driver’s documentation and adjust accordingly.

Protecting Your Circuit

Stepper motors generate voltage spikes when windings switch on and off rapidly. A decoupling capacitor placed between the power input and ground on your driver board absorbs these spikes and prevents damage. Most setups benefit from two capacitors: a small ceramic capacitor (typically 0.1 µF) placed as close to the driver chip as possible to filter high-frequency noise, and a larger electrolytic capacitor (100 µF or more) to smooth out lower-frequency voltage dips caused by the motor’s current demands.

Placing the ceramic capacitor far from the driver reduces its effectiveness and can cause the switching noise to radiate as electromagnetic interference. Keep the leads short and the capacitor snug against the board.

Keeping the Driver Cool

Stepper drivers are sensitive to heat. Most are rated for operating temperatures between 0°C and 50°C, and exceeding that range can cause permanent damage or failure. The driver generates heat proportional to the current it’s delivering, so higher current settings demand better cooling.

At minimum, attach the heatsink that ships with your driver (many come with a small adhesive aluminum block). If you’re running motors at or near the driver’s maximum current rating, add a small fan blowing across the heatsinks. In enclosed setups like 3D printer electronics cases, ventilation becomes critical. Temperature swings of more than 20°C can also shorten the driver’s lifespan, so aim for a stable, moderate environment.

Powering Steppers From Batteries

Battery power works for portable or off-grid projects, but the current demands of stepper motors drain batteries quickly. A lithium polymer (LiPo) battery pack is the most practical option because of its high discharge rate. If you’re running four motors that each draw 2 amps, your battery needs to sustain at least 8 amps of continuous discharge. Check the battery’s C rating to confirm it can handle the load.

One additional consideration with batteries: their voltage drops as they discharge. A fully charged 4-cell LiPo reads 16.8V but drops to 12V when nearly empty. Your motor performance will change across that range. Also, if you’re powering a microcontroller from the same battery pack, use a separate voltage regulator. Most Arduino boards have onboard regulators rated for only up to 20V input, and some battery configurations exceed that when fully charged.

A Typical Wiring Setup

For a common setup using an Arduino, a single NEMA 17 motor, and an A4988 driver, the wiring looks like this:

  • Power supply positive connects to the driver’s VMOT (motor voltage) pin
  • Power supply ground connects to the driver’s GND pin and also to the Arduino’s GND
  • Decoupling capacitor bridges VMOT and GND, right at the driver board
  • Motor wires connect to the driver’s four output pins (1A, 1B, 2A, 2B), matching your motor’s phase wiring
  • Arduino digital pins connect to the driver’s STEP and DIR inputs
  • Arduino 5V connects to the driver’s VDD (logic power) pin

The Arduino sends a pulse on the STEP pin each time you want the motor to advance one step, and the DIR pin controls rotation direction. The driver handles everything else: sequencing the coils, regulating current, and protecting the motor from overcurrent. A 12V or 24V supply rated for 2 to 3 amps is sufficient for a single NEMA 17 in this configuration.