Supply Voltage vs. Current Control
Continuing with the topic of stepper motors, this time Ed looks at back electromotive force (EMF) and its effects. He examines the relationship between running stepper motors at high speeds and power supply voltage requirements.
By Ed Nisley
Early 3D printers used ATX supplies from desktop PCs for their logic, heater and motor power. This worked well enough—although running high-wattage heaters from the 12 V supply tended to incinerate cheap connectors. More mysteriously, stepper motors tended to run roughly and stall at high printing speeds, even with microstepping controllers connected to the 12 V supply.
In this article, I’ll examine the effect of back EMF on stepper motor current control. I’ll begin with a motor at rest, then show why increasing speeds call for a much higher power supply voltage than you may expect.
— ADVERTISMENT—
—Advertise Here—
Microstepping Current Control
As you saw in my March 2018 article (Circuit Cellar 332), microstepping motor drivers control the winding currents to move the rotor between its full-step positions. Chips similar to the A4988 on the Protoneer CNC Shield in my MPCNC sense each winding’s current through a series resistor, then set the H-bridge MOSFETs to increase, reduce or maintain the current as needed for each step. Photo 1 shows the Z-axis motor current during the first few steps as the motor begins turning, measured with my long-obsolete Tektronix Hall effect current probes, as shown in this article’s lead photo above.

Photo 1 Each pulse in the bottom trace triggers a single Z-axis microstep. The top two traces show the 32 kHz PWM ripple in the A and B winding currents at 200 mA/div. The Z-axis acceleration limit reduces the starting speed to 18 mm/s = 1,100 mm/min.
The upper trace (I’ll call it the “A” winding) comes from the black A6302 probe clamped around the blue wire, with the vertical scale at 200 mA/div. The current starts at 0 mA and increases after each Z-axis step pulse in the bottom trace. Unlike the situation in most scope images, the “ripple” on the trace isn’t noise. It’s a steady series of PWM pulses regulating the winding current.
The middle trace (the “B” winding) increases from -425 mA because it operates in quadrature with the A winding. The hulking pistol-shaped Tektronix A6303 current probe, rated for 100 A, isn’t well-suited to measure such tiny currents, as you can see from the tiny green stepper motor wire lying in the gaping opening through the probe’s ferrite core. Using it with the A6302 probe shows the correct relation between the currents in both windings, even if its absolute calibration isn’t quite right.
Photo 2 zooms in on the A winding current, with the vertical scale at 50 mA/div, to show the first PWM pulse in better detail. The current begins rising from 0 mA, at the rising edge of the step pulse, as the A4988 controller applies +24 V to the motor winding and reaches 110 mA after 18 µs. The controller then applies -24 V to the winding by swapping the H bridge connections. This causes the current to fall to 40 mA, whereupon it turns on both lower MOSFETs in the bridge to let the current circulate through the transistors with very little loss.

Photo 2
Zooming in on the first microstep pulse of Photo 1 shows the A4988 driver raising the stepper winding current from 0 mA as the motor starts turning. The applied voltage and motor inductance determine the slope of the current changes.
The next PWM cycle starts 15 µs later, in the rightmost division of the screen, where it rises from the 40 mA winding current set by the first pulse. It will also end at 110 mA, although that part of the cycle occurs far off-screen. You can read the details of the A4988 control algorithms and current levels in its datasheet, with the two-stage decreasing waveform known as “mixed decay” mode.
Although the H-bridge MOSFETs in the A4988 connect the motor windings directly between the supply voltage and circuit ground, the winding inductance prevents the current from changing instantaneously. The datasheet gives a nominal inductance of 4.8 mH, matching what I measured, but you can also estimate the value from the slope of the current changes.. . …
Read the full article in the May 334 issue of Circuit Cellar
Circuit Cellar's editorial team comprises professional engineers, technical editors, and digital media specialists. You can reach the Editorial Department at editorial@circuitcellar.com, @circuitcellar, and facebook.com/circuitcellar