More Adventures in Tiny Stepper Motors and Drivers

A tiny stepper motor being driven by a TMC2208 Stepstick

Last summer I posted about some tiny stepper motors from the internet, thinking about them as an alternative to mechatronic standbys like those terrible SG90 type servos or larger and differently terrible 28BYJ-48 geared steppers driven through a ULN2003.

At the time, I tried one with an A4988 stepstick from the top of my parts bin, and it didn’t work, so I figured there was some limitation and stuck to directly driving with H-bridges.
…it turns out the “limitation” was that the cheap current-setting potentiometer on that particular stepstick was broken so it was driving no output current.


  • Those little bipolar stepper motors work fine with bipolar stepper drivers.
  • Generational gains in bipolar stepper driver ICs are substantial (eg. A4988 -> TMC2208).
  • The venerable 28BYJ-48 unipolar stepper motor is easily modified to run from bipolar drivers.

Being able to drive motors from bipolar driver ICs makes them enormously better for small electromechanical projects since you can control them with two wires, either step/dir (and maybe an enable), or with the fancier drivers, a chain of them via serial protocol, rather than chewing up a minimum of 4 pins per motor and a bunch of processor time like directly stepping through an H-bridge, or one of your PWM channels like a servo.

The magic phrase for weird little motors in this configuration is “Two Phase Four Wire” – and you can get them in a wide variety of sizes, shapes, output shafts, integrated linear motion gadgets, and all kinds of other nifty mechanical options from the usual scumbags.

The other lesson here is that stepper drivers have leveled up again. When I was first playing with this sort of thing, drivers like the Allegro A3982 were the new hotness replacing the venerable L297/L298, and cost 10s of dollars. A few years ago, things like the Allegro A4988 were the standard, and cost a few dollars. I recently picked up some cheap TMC2208 based stepsticks for about $1.75/pc (actually, the pictured one belongs to the lab I work with at UK, and they were a bit more because buying from AliExpress with UK money is trouble), and they are hilariously better.

The motors heat up less at the same nominal current and voltage because of the better chopping, lessened resonance, and active snubbing. Motors driven this way make absurdly less noise and sub-audible vibration. Sometime I need to try swapping the drivers in one of the Anycubic Linear Kossel 3D Printers that shipped with A4988s to TMC2208s just to compare noise levels.

And as a final trick from this summer’s dumb motor games, it turns out to be very straightforward to mod a 28BYJ-48 to operate as a bipolar motor. There is a great ardufocus post that goes into the details, you simply have to pop the little blue cover off, cut the middle trace between the coils (above the red wire), then hook it up ignoring the now disconnected red center tap, treating the other 4 wires like a bipolar motor (because now it is). On the examples I’ve tried, the two now-separated coils are on Orange/Pink and Yellow/Blue. You should see resistance across the pairs of wires that correspond to a coil, and an open connection between the coils; I get just shy of 50Ω per phase, which is higher than most bipolar motors you come across, but still easily in the range of standard drivers.

Doing this appears to slightly clip your top speed, but works better in every other way. You can microstep it for better precision. The bipolar configuration increases the delivered torque considerably, and using a modern current-limiting bipolar drivers improves torque even more since you can drive the coils at substantially higher voltages. Current limiting and better sinusoidal approximation also lets it run cooler; I set one bouncing through a full output shaft rotation at 9V through a TMC2208 for an hour and it didn’t even warm up .

This entry was posted in DIY, Electronics, General, Objects. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *