Driving motors with LED drivers

A project log for Wearable Haptic Sensor

A wearable haptic sensor for gaming

Peter WalshPeter Walsh 06/29/2022 at 17:270 Comments

A good idea that doesn't work

Two of my favorite phrases nowadays are "correct, but not complete", and "a good idea that doesn't work".

Using the internet and the hackaday search box, I found that you can use LED drivers to drive pager motors. I have a couple of LED driver chips lying around (16 LEDs each), they are good for 5 to 120 mA per channel, constant current set by an external resistor, and I've got one on a breakout board already.

Rapid development, good idea, right?

Problem is, it doesn't work. At least, it doesn't work very well.

We don't know what the actual problem is with the LED driver, but sometimes the motor stalls and the leads have to be swapped, the response is sluggish, and a host of other feel-type problems make this not a good solution.

Motor PWM frequency

One issue with the LED drivers might be PWM frequency. The LED drivers allow individual current/brightness setting over and above the base current. This is most likely done with a PWM signal that determines the average current. That can be a problem for motors.


As shown in the image, the motor is essentially an inductor, and will have an exponential rise in current when turned on. The magnetic field builds, causing a back EMF that opposes the incoming current, until peak current is reached.

When the PWM frequency is shorter than the time constant of the coil, the result is much less current given to the motor. This can result in sluggish behaviour and low apparent power.

Error detection

Another possible problem is that the LED drivers have built-in short and open detection. I don't know what the chip actually does when it discovers a shorted LED, but that's probably the root cause of the motors stalling. When we unplug the motor and reverse the leads, this probably removes the short condition and the chip reverts to normal.

Constant Current or Voltage?

Another potential issue is that the LED driver is driving a constant current load, which is appropriate for devices that have a constant voltage, such as LEDs. A motor, once the back-emf has risen, looks like a constant resistance and so should be driven by a constant *voltage*, not a constant *current*.

A constant current driver will adjust the voltage to enforce a specific current, which means that it might use a potentially huge voltage at the outset and then reduce the voltage as the device ramps up.

This is probably the root cause of the motor sluggish behaviour and problems with the general feel of the tactile sensation.

Summary: Don't use LED drivers

So in summary: LED drivers may seem to be a good solution, but are probably not optimal. There are actual motor driver chips, such as the ULN2003 that we are currently using, that are a better match for driving pager motors. These also have kickback diodes onboard, so the final circuit requires fewer components.