No matter how fine your fine motor skills may be, it’s really hard to manipulate anything on the stage of a microscope with any kind of accuracy. One jitter or caffeine-induced tremor means the feature of interest on the sample you’re looking at shoots off out of the field of view, and getting back to where you were is a tedious matter of trial and error.
Mechanical help on the microscope stage is nice, and electromechanical help is even better, but a DIY fully motorized microscope stage with complete motion control is the way to go for the serious microscopist on a budget. Granted, not too many people are in [fabiorinaldus]’ position of having a swell microscope like the Olympus IX50, and those that do probably work for an outfit that can afford all the bells and whistles. But this home-brew stage ticks off all the boxes on design and execution. The slide is moved across the stage in two dimensions with small NEMA-8 steppers and microstepping controllers connected to two linear drives that are almost completely 3D-printed. The final resolution on the drives is an insane 0.000027344 mm. An Arduino lives in the custom-built control box and a control pad with joystick, buttons, and an OLED display allow the stage to return to set positions of interest. It’s really quite a build.
Adjust the phase current, crank up the microstepping, and forget about it — that’s what most people want out of a stepper motor driver IC. Although they power most of our CNC machines and 3D printers, as monolithic solutions to “make it spin”, we don’t often pay much attention to them.
In this article, I’ll be looking at the Trinamic TMC2130 stepper motor driver, one that comes with more bells and whistles than you might ever need. On the one hand, this driver can be configured through its SPI interface to suit virtually any application that employs a stepper motor. On the other hand, you can also write directly to the coil current registers and expand the scope of applicability far beyond motors.
Stepper motors divide a full rotation into hundreds of discrete steps, which makes them ideal to precisely control movements, be it in cars, robots, 3D printers or CNC machines. Most stepper motors you’ll encounter in DIY projects, 3D printers, and small CNC machines are bi-polar, 2-phase hybrid stepper motors, either with 200 or — in the high-res variant — with 400 steps per revolution. This results in a step angle of 1.8 °, respectively 0.9 °.
In a way, steps are the pixels of motion, and oftentimes, the given, physical resolution isn’t enough. Hard-switching a stepper motor’s coils in full-step mode (wave-drive) causes the motor to jump from one step position to the next, resulting in overshoot, torque ripple, and vibrations. Also, we want to increase the resolution of a stepper motor for more accurate positioning. Modern stepper motor drivers feature microstepping, a driving technique that squeezes arbitrary numbers of microsteps into every single full-step of a stepper motor, which noticeably reduces vibrations and (supposedly) increases the stepper motor’s resolution and accuracy.
On the one hand, microsteps are really steps that a stepper motor can physically execute, even under load. On the other hand, they usually don’t add to the stepper motor’s positioning accuracy. Microstepping is bound to cause confusion. This article is dedicated to clearing that up a bit and — since it’s a very driver dependent matter — I’ll also compare the microstepping capabilities of the commonly used A4988, DRV8825 and TB6560AHQ motor drivers.