I’ve recently started work on replacing the 28byj steppers with NEMA14. They’re a pricier, but faster alternative that brings us a little bit more flexibility than the 28byj, which comes with its own 1/64 reduction. They’ll require software and hardware electronic changes too, so this is extremely experimental / exploratory.
STL files below. I also have .fcstd FreeCAD files, but am unable to upload them to the forum since only a few extensions are allowed.
28byjToNema14Zaxis-28byjToNema14ZAxis.stl (341.5 KB)
small_gears.stl (248.5 KB)
28byjToNema14-28byjToNema14.stl (248.3 KB)
I ordered 14HR08-0654S steppers, modified the small gear model, so the shaft cutout matches them. They’re the same diameter, but the 28byj has a deep cutout on both sides, as opposed to a shallow one on one side for the NEMA14 steppers. These steppers are larger, have the shaft in the middle as opposed to the 28byj which has it 8mm off centerline, are rated for double the torque of the 28byj.
To drive these, I purchased two hats for the RPi.
- HRB8825 Stepper Motor HAT For Raspberry Pi, Drives Two Stepper Motors, Up To 1/32 Microstepping | Stepper Motor HAT (B)
- Adafruit DC & Stepper Motor HAT for Raspberry Pi - Mini Kit : ID 2348 : Adafruit Industries, Unique & fun DIY electronics and kits
There are some downsides to both of them. The waveshare one can run two steppers and isn’t stackable, but offers additional features like software selection of microstepping (which I’ll explain shortly). I have already tried this one and got it to move a NEMA17 stepper with precision and speed. I have a vid of it, which I’ll share in a comment if I’m able to.
The adafruit one can be stacked on top of itself. I haven’t delved deep into this one, but it has microstepping selection. I’m hoping that I’ll be able to either use software microstepping selection on the adafruit, or be able to stack the adafruit on top of the waveshare one (didn’t check the pinout yet either).
Microstepping is a setting that allows the driver to divide a stepper motor’s steps into smaller increments. Most stepper motors have 1.8 degrees as a full step, for 200 steps per revolution. You can set microstepping to 1/2 (halfstep), which would get you 400 steps per revolution, or 0.9 degrees per step. A similar thing is achieved for the 28byj with manual reduction, about which I’ll write in a moment. This setting has some drawbacks though - the higher you go in resolution, the less torque it has and the slower it is.
You can imagine microstepping as two electromagnets that are next to eachother - which get turned on when you apply current to a specific coil, attracting a permanent magnet on a bearing to themselves. If you turn magnet 1 on, the permanent magnet will “point” at it. If you turn magnet 2 on, it will “point” at magnet 2. If you power both magnet 1 and 2, the permanent magnet will “point” in between them. If you increase the number of the electromagnets (or stators, as they are called in this case) to 48, you get a stepper motor with 1.8 degrees per step.
We want to be on the lowest microstepping setting possible for the resolution we need. To find out the resolution, we need to check the 28byj and see its steps per revolution count. The motor inside the unit is a 5.625 degrees per step. This is then divided by the mechanical gearing system - 1/64. We divide 360 by the result, and we get 4096 steps per revolution. There’s a catch though - the 28byj is a cheap stepper, users have reported differences of 40 - 80 steps per revolution from unit to unit.
We bought NEMA14 steppers, with 0.9 degrees per step, giving us 400 steps on fullstep mode. 1/10 microstepping can get us close, but the Waveshare driver only goes in powers of two - so 1/8 or 1/16. 1/8 is most likely enough, but I’ll be doing more testing on this. This gets us repeatable stepper motors with a resolution that is similar to the 28byj.
The Waveshare driver has software microstepping selection though. We have to solder a few pads on the reverse of the driver board to activate it. You can also SMD mount 0 ohm resistors there, which is automation friendly. What this gives us, is rapid movement or precision, depending on the microstepping setting we choose. When scanning for instance, we can move the field of view of the microscope rapidly in X and Y and don’t have to wait for a motor with a large reduction to slowly pan the view. This will also help with smaller objective magnifications, which are problematic with the 28byj and the project being geared to 100x magnification.
The waveshare driver also allows for current setting, so we don’t provide too much current to the steppers, which just gets turned into heat. Also, the waveshare driver has the ability of driving the 28byj too.
I have JST connectors and pins on the way to put on the ends of the stepper motors and I’ll be testing the X and Z actuators soon-ish. I’ll probably write up a Thing to control the stage with the stepper motors, but it’ll still be a while before I get to it and before it’s ready.
Since these steppers have double the torque, I should be able to get rid of the gears altogether and connect a spider coupling for direct drive, while doubling the microstepping setting. This gets rid of the backlash between the large and small gears. This means more precise and repeatable movements of the stage. The smaller couplings cost around 2 euro each. All of that will come later, the files above use a very rudimentary printed bracket to mount the steppers where they need to be.


