fbpx
stepper motors

Six Common Challenges in Stepper Motor Control

Motors are an essential and growing part of many medical instruments nowadays, especially as designers work to automate much of the workflow to reduce the manual work required by the operator.  Devices and instruments are expected to perform tasks such as pulling in and clamping disposable cartridges, driving channel selectors, and actuating various internal pumps, valves and other mechanisms.  As such, the number of motors in device design has steadily increased over the years. While a brushless DC motor is inexpensive and suitable for certain tasks, motor applications have been growing in medical devices that require precise control over position and velocity – a task perfectly suited for a stepper motor. There are many variables and challenges that go into designing a stepper motor control system, with a few of the more common challenges highlighted below.

Closing the Loop

Stepper motors generally provide accurate positioning, but there’s always a chance of slippage and stalls if the motor is under significant load. In cases where precision is key, an encoder can help detect these error conditions. While it adds some cost to the motor, implementing closed-loop feedback with an encoder is a great way to boost reliability and mitigate the chances of a system malfunction involving stepper motors.

To Microstep or not to Microstep?

Microstepping can seem like a magical improvement to a motor control system—it can provide more precise control over your motor’s position; smoother movement at low speeds; reduced system noise to improve user experience; and an increase in the resolution of your motor without having to buy a more expensive part. Unfortunately, there are a few drawbacks when using microstepping – most noticeably, the output torque from the motor will be reduced.

If you need more precise resolution for motor control but need all the torque you can get, a mechanical gearbox might be a good alternative. However, this introduces drive efficiencies and backlash, so you will need to weigh the tradeoffs before pursuing one option over the other.

Homing

When a device powers on, you need a way to establish a home position for your motor’s movement range. Simply stalling the motor at its limit of travel can work in some cases, but precise and reliable positioning often calls for a homing switch. While we’ve had decent performance with optical homing switches, optical trigger zones are not infinitely small, and the motor control software should consider handling of edge cases.  For instance, consider cases when the motor approaches the home switch from different directions or if the system turns on with the motor already triggering the switch.

We need more motors!

When designing medical devices that automate complex workflows, “we need more motors” is a phrase the software development team might often hear from the mechanical and industrial design team.  Increasingly, devices need to control more than a dozen stepper motors independently and some in parallel.  The chances are good that one microcontroller doesn’t have enough processing time to split between controlling that many motors and other tasks, let alone enough pins. In order to control that many steppers, a separate and dedicated processor may be a good approach for continuous closed-loop motor control.

Key Tech has developed a custom motor control platform, Key Step, which uses an FPGA to easily manage low-level stepper control. Key Step handles acceleration profiles, microstepping, and closed-loop position monitoring for all motors concurrently, significantly freeing up the central microcontroller’s time.  The Key Step platform is also flexible on the number of motors it can support, and can be rapidly customized for each unique application.

Calibration

An example application requiring high-quality stepper motor control is a 3D gantry system, which is a common subsystem in in-vitro diagnostic instruments. This type of system needs to provide position control over three axes, and it is vital that positioning is accurate and reliable over time.

Unfortunately, the step counts for the same position across individual instruments may vary due to physical differences in the position of the homing switches, or the alignment of the gantry between devices, or even the gross tolerance stack up in disposable parts with certain rapid-turn fabrication techniques. Adding a calibration routine in your software is a great way to mitigate these effects. Motor calibration can help relax the requirements for the mechanical design (e.g., homing switches) as well as improve reliability over the life of a device.

Avoiding Obstacles

A 3D gantry is also a good example where the designer needs to consider and accommodate obstacles, such as mechanical features that block path of travel or create fluid spills that can drip on sensitive assay wells underneath. Modifying the mechanical design to eliminate these obstacles may be prohibitively expensive, and requiring the user to create scripts manually to avoid gantry obstacles is time-consuming and can risk damage to the instrument.  We recommend using firmware to create gantry obstacle maps and algorithmically control gantry movements based on multi-dimensional constraints. While this requires a bit more time to implement, the result is faster, simplified scripting with no chance of accidental collisions.

Understanding common pitfalls in firmware development and stepper motor control is integral to minimizing miscues and keeping your project on schedule. In addition to Key Step, we’ve leveraged our years of firmware development experience to build a software library for a wide range of peripherals such as heating controllers and fluidic control systems.  This helps shorten design time as you move from a conceptual design to production. We would be happy to share our experience.  Reach out at TalkToUs@keytechinc.com and start a conversation on how Key Tech can help with your next product.

Frank Sinapi
Latest posts by Frank Sinapi (see all)


Every challenge is different – Tell us about yours.