In the interest of public information, I wanted to warn people to make some precautions when using the 20D motors near [or past] their limits. Running a DC motor near it’s stall current is often past it’s limits, but dealing with ripple current might improve your ability to edge close to the limits.
The motor has low quality brushes relative to the abilities of the rest of the motor (of course, one part of the equation always does have to be the weakest link.)
The effect of this is that if you’re having a low duty cycle PWM signal (for us it was 60%), at a low frequency (say, arduino’s default analogwrite which is roughly 450hz), and a higher input voltage (for us 12v), then you can damage the brushes over time. Even though you might never break the gearbox or overheat the motor, the brushes fail much sooner on this motor.
[size=150]Long Version[/size] [I wrote this as an email and decided to post it on the forums instead, so that more people might benefit from the heads up. I obviously still like Pololu and their products, this is not their fault or inherently a faulty product.]
In the course of our work we came across a few details I thought would reporting about your geared motors. We were busting a few of your 15.5D motors because of excessive torque damaging their gearbox [Edit To be clear, they busted because we were stalling them past their torque limits == bad. Eventually we realized we should upgrade to the 20D 29:1 motor, which was much stronger for our application (did not struggle nearly as much).
We ended up destroying two of those before we discovered why those were dying. I made some simplified calculations on the forum that so long as the gearbox can tolerate it, 3A would not remotely overheat the 20D motor over our 15 second actuation stroke. We also had high quality thrust washers to prevent these motors susceptibility to axial loads [they have bronze radial sleeves/bushings on both ends but not much to help axial loads].
On the second dead motor teardown, I realized the cause of the destruction of these 20D motors was the poor quality brushes they use, combined with our low frequency PWM (the brushes are seriously just a thin strip of metal). We were using 12V Vin at 160/255 duty cycle (~7.5V). Even at stall current (4A)- which we were not drawing- this 7.5V equivalent did not seem likely to immediately overheat the motor. However we were only running 450hz pwm, which likely damaged the brushes by causing a high current ripple. We could even hear this in the healthy-but-pulsating sound of the linear actuator.
The solution was to pick up your MCP 5A driver board, enable a current limit of 2.8A in the code [extra precaution, not inherently needed for this problem], and use a 19.6khz pwm signal to drastically remove/eliminate the ripple. The other solution could have been to add choke inductors (these are really regular inductors just called choke), if changing the PWM signal frequency is not possible in your application. So far it’s been holding up and sounding much better. The teardown of both failed motors made us realize that the brushes were overheating and warping and that’s how they died. It’s just that I didn’t notice that until the second motor that failed - because I was incorrectly assuming the windings mysteriously overheated despite my believe they shouldn’t.