Some people might know that Celt-X went with an 8x 775 pro drivetrain this year, building off of Pwnage’s successful experiments in 2017. We were still a little unsure about burning out drive motors going into the season though, so we played it safe. “Tipsy’s” gearboxes were single speed, and geared to be traction limited so that we didn’t have to worry about stalling the motors at high power.
Tonight we set out to see if we were overly cautious in our design. Using our practice bot chassis, we programmed the drive talons to current limit each motor to 15 amps (60 amps per gearbox). This limit was chosen because it corresponds to ~4V at stall which according to Vex’s testing, should be good for over 5 minutes. We then stuck a rod through the wheels to stall them, as shown in the attached photo, and then floored the throttle. Using the Talon’s current sensor (and checked with a clamp-on DC ammeter) we confirmed that the max current to each motor was < 16A, and the voltage to each was < 4.2ish V. (The battery voltage dropped to about 10 during this test) Still, after about 30s of this test we could see and smell smoke :(. We repeated the test with just one motor, and sure enough, after a short while - magic smoke. This seemed to be a partial failure - the motor still turned, but its performance was reduced - as I’ll describe in a bit.
My question is this: Have I read the VEX curves wrong and 4V/15A is not a safe stall limit for 775 pros? Or is there some variation between motors that showed up in our testing but not Vex’s? I would love to hear CD’s thoughts on the matter. We won’t risk a higher speed 775-pro drive gearbox until we understand the stall current limits better.
Incidentally, the motor we smoked in the test described above still ran - so if we hadn’t seen the smoke, we might not know it was bad. This is similar to some other times this season where we (eventually) noticed a 775 pro (or Redline) had partially (but not fully) failed. We’ve been looking for a way to test the health of motors since the first time we discovered the problem, but it isn’t easy. Our multimeters cannot detect any difference in internal resistance, nor could we see any real difference in the free (unloaded) speed of bad vs good motors. Ideally we’d connect a suspect motor to a dyno, but who has that, and it isn’t always easy to disassemble the motor from the robot (in fact we’d like a test to tell us we didn’t have to disassemble it).
Tonight we finally came up with a test that is relatively easy to run, and showed a strong signal between good and bad motors. What we did was:
disconnect the leads of the suspect motor and join them together (in future we might connect the leads through a power resistor).
back drive the motor to a known RPM.
measure the current through the suspect motor leads with our clamp-on ammeter (measuring voltage across the known resistor would be equivalent). If it’s a bad motor, it’s also a bad generator. The results tonight showed our bad motor put out a quarter the current at a given speed compared to a good motor.
We think it will often be easier to back drive a motor, than it would be to measure its torque output, so this could be a reliable approach to motor testing. Tonight we used the other motors in the gearbox to do the job, but we’re thinking about building a little self contained servo that could be attached to motors / drivetrains / mechanisms (even those with only a single motor) in future. If it works out, I’ll post instructions on how to make this “reverse dyno”. Feel free to add any comments about the idea, or suggestions for other ways teams test their suspect motors.
You would need a heck of a power resistor. What I’ve done in the past to put a fairly constant load on a motor was I had the motor and gearbox drive a drill powered pump, and pump water in a closed loop against a pressure head and flow restriction caused by a gate valve. It actually worked pretty well, and adjusting the valve varied the load fairly proportionally.
While the stall torque curve doesn’t show the motor outright dying, it does show significantly reduced performance over time - I wouldn’t be surprised if that reduced performance is permanent. That would mirror what we’ve found, actually. Even at 2v, you can see the effects of that long term stall performance. I personally find you can’t reliably stall a 775 long term at anything above around 1-1.5v. I’d approach this from an obnoxiously utilitarian standpoint and say that the solution may be training your drivers not to stall the motors for too long
I’d say that your testing is not entirely inconsistent with the Vex data. Smoke does not imply motor death. You can see on the 4V curve from Vex that the torque cuts sharply down (~28%) in the first 30 seconds, but still produces some torque until absolute death.
Secondly, pretty much any amount of stall is too much for 775s given enough time, even over many cold starts. On our elevator this year we started with a design constraint of <3v stall, but eventually settled on a more conservative 1.5v after a little bit of testing. However, after one and a half events and some practice, both motors failed, ending up with me attaching powerpoles while running onto the field for a match that should have started 3 minutes ago. IIRC JVN’s blog also mentions that they usually replace 775s before each event to prevent failures. I don’t know exactly why this is, but there’s probably not a good way to fix it other than preventative maintenance or using so little power that whatever is melting inside can’t heat up.
I like the idea of the “reverse dyno” for testing. If your subsystem is sensored and well modeled, you could also compare the deviation between the system and the model when healthy vs. damaged.
Tangent about controlling torque… let’s say you’re holding a wrist. You lose some torque per volt because your motor heats up. This causes your controller to compensate by increasing voltage. I’d hazard a guess that this effect grows exponentially, so unless your stall power (torque * voltage) is small enough that passive convection/conduction/radiation can cool down the 775 faster than you can heat it up, eventually the motor will fail even at the smallest of voltages. I also guess that any current limit liberal enough to allow for any motion at all is probably too high to prevent this effect. So the only way to prevent this are (two sides of the same coin) a) make sure you don’t stall your 775s for very long even at a “safe” voltage, or b) choose a “safe” voltage low enough that this effect doesn’t run away in the time that you need to stall the motors.
Alternately c) use active air cooling or d) use a CIM
Option b seems popular, but knowing how long 775s can be stalled before they heat up too much may be helpful in being able to choose more aggressive gear ratios and stall voltages. Probably the other big thing is how much this “runaway” effect of torque control compares to the actual power draw due to naive I*V, because I have no idea, and there’s a chance it’s marginal enough not to matter.
I’ve attached a spreadsheet that contains my current work on trying to calculate the magnitude of this effect.
Hopefully though, you’re not stalling your drivetrain for 30 seconds. I’d say anything over 5 seconds is excessive for a drivetrain. This is a bit more upsetting for mechanisms like arms, elevators, and wrists which need to stay at stall for extended periods of time.
How do you get that 15A is the stall current for 4V? I am getting
A_stall = A_stall_spec/V_spec * V
which gives 134A / 12V * 4V ~= 45A
4V applied to a STALLED 775 should give you 40ish Amps motor current and 14ish Amps battery current. This according to a PSPICE model. More specifically, a triangle wave starting at 40Amps going up to 43.6Amps then back down to 40Amps. This also lines up with the VEX graphs (1/3 of 12V applied will give you 1/3 the stall torque and 1/3 the current, 134/3). We’ve done tests similar to what Brendan has done using a 400khz bandwidth current sensor viewed on an o’scope and the above is what we observed.
All motor physics still line up. I suspect the current Branden is measuring is fooling us. At the end of the day you are still dumping 180 Watts into said stalled motor (12Vx15AMPS or 4V x 45AMPS however you want to look at it).
You’re not wrong. I swear the math worked out in our heads last night, but it was late . If the stall current scale linearly with voltage (V=IR with constant* resistance) the motor voltage at our current limit should have been 15A/134A*12V = 1.3V? I thought we read 4V, but that might have been a different test.
I’m pretty confident in our current readings (they agreed in two places) so if we burnt at 1.3V, the results are even worse for motor performance
*It’s possible the resistance changes when the motor fries, but iirc we couldn’t reliably measure values down around 0.1 Ohms with our multimeter.
Ignoring voltage for now, the clamp on ammeter, and the talon measurements agreed on 15A to the motor [edit-wrong]. So something still doesn’t line up. I’d be happy to be wrong.
[edit] i think I’ve got it. The ammeter was clamped on the upstream side of the talon, so at 12V. The talon must be measuring current into (at 12V) rather than out of itself (at 4V) too.
Brendan’s motor dyno concept should work. It might be easier to make something like a “rolling road” to back drive one of the wheels on one side of the drivetrain while all the motors are disconnected from the motor controllers. The robot chassis would have to be strapped down to minimize slip between the drive roller and the wheel. A jumper would be used to short out the motors one at a time for the test. The jumper should be long enough that you can get the clamp meter around it easily without removing the motor from the gearbox. Adding resistance in series with the jumper just changes the operating point of the “generator”. Using a low load resistance value should give the highest generated currents and make the test more sensitive.
The resistance of the motor windings is probably in the range of a few Ohms or less. So is the lead resistance of your DVM and the contact resistance of the probes. One would have to use a 4-terminal resistance measurement method to get a meaningful measurement for resistances in this range. It is still tricky to make this measurement work correctly as I found last week.
Often, the windings in a small DC motor are “random wound” instead of being layered nicely so there can be “pressure points” between two adjacent pieces of wire. If the thin enamel insulation fails, the result is a winding-to-winding short that reduces the number of turns in that winding. Since many of the original turns are still working, the motor is still able to turn but will work at reduced efficiency (as a motor and generator). The DC motors I have seen disassembled had no extra insulation between the metal rotor and the windings. Another possible failure point would be where the first layers of the windings are bent over a sharp edge on the rotor. If the thin enamel coating on the wire is penetrated, you would then have a winding-to-rotor-to-winding short.
It would be interesting to see a dissection of one of the motors that had lost magic smoke. Cut the winding free from the commutator and start unwinding the wire and look for burnt spots and sections missing the enamel insulation.
As I stated in my previous post, I suspect the failures you are experiencing are some sort of winding-to-winding short. How often such failures occur is probably affected more by the variations in the manufacturing process than the design of the motor. There are many factors such as variances in the thickness of the insulation on the wire, burrs on the rotor pieces, sharpness of the corners on the rotor… that do not show up in any calculation.
The chart Brendan linked to looks like it was made by using as little as 4 motors to collect the data. This small sample size will not show up variations due to manufacturing process that occur over time. For VEX (or any other manufacturer) to be aware of manufacturing variations causing such failures, they would have to repeat these tests with some significant sample size on each manufacturing batch (see SPC).
15A/134A is wrong. It would be 45/134. 15A IS NOT what was going though the motor, 45A is going through the motor. The 16A reading on the current probe is lying to you unless the probe is on the battery side of the Talon. Instead of calculating the motor voltage, measure it with a fluke.
Motor resistance will change with heat and the Talons response (if operating in current limit) will be to increase the duty cycle on the motor. My gut guess, your 30 second test didn’t damage the brushes but just overheated the rotor. I can’t overstate enough that you dumped 180 watts into the rotor so 30 seconds to smoke seems right.
I agree that we were at 180W - I fixed the math in my post above. What surprised me was that this amount of power (partially) damaged the motor permanently. My previous read of the VEX testing was that it would be fine for > 300s, but that’s clearly not the case.
I’m tempted to do more testing to see what amount of power you can run through a 775 pro at stall and not smoke it. At 2V we would be down to only 2*(2/12*134) = 45W, but even the 2V line shows a drop in torque during Vex’s locked rotor stall testing which may or may not be permanent. I wonder how many motors we can afford to burn to get an answer :o
The conclusion is the same though - A 2-speed 775 pro drive gearbox will require careful thought since straight current limiting (at a useful value) would not be enough to protect the motors. You’d either have to have an auto-shift to a traction limited ratio to allow the wheels to spin, or else detect a stall and sharply reduce the current (and lose the pushing match).
Just wanted to clear up/reiterate our testing methodology to confirm our tests were valid.
We stalled a good 775 Pro in a gearbox with a 15 amp current limit set on the Talon SRX.
With a DC clamp ammeter placed before Talon could confirm that the Talon was being only drawing 15A and that the motor was being correctly limited. We confirmed this using PDB and Talon Current data.
We also measured current at the motor side using the DC ammeter. It appeared to draw about 40 amps. We were concerned about how the controller’s modulation might affect our ammeter hall-effect measurement making it inaccurate so we decided to stop recording from the motor side of the talon. Though on second thought the 40 amp measurement was actually pretty accurate.
Through either measurement we can see that the motor is dissipating roughly 180W. While this is a lot, from reading the motor.vex.com data we expected to be able to maintain this for at least 30 seconds without significant damage. We decided to discontinue our test after seeing significant smoke 15-20 seconds in.
We wanted to try to measure the performance degradation so we used our 4 775pro gearbox to preform a “reverse dyno test” by electrically disconnecting a known good motor and the smoked motor (open circuit). We used the remaining two good motors to preform a velocity control loop that would try to maintain a set RPM. We then shorted only the smoked motor and measured it’s current using the clamp ammeter. We then preformed the same test this time only shorting the good motor.
We don’t expect this test to be entirely accurate but we did record significant degradation. The smoked motor was producing about 50% of the current as the good motor. This was far past what we’d consider acceptable and would need immediate replacement.
The intention of this post is to share and discuss the data we’ve collected with the community. Previously our dataset was only the one provided by Motors.Vex.com and these new findings have significantly changed our understanding of the 775 Pro. We don’t intend to disparage the 775 Pro in anyway. We used them very successfully in our robot this year and we hope to continue to do so even more effectively in the future.
If I understand correctly, the only load on the powered motors during your test was the shunted motor under test. What (roughly) were the magnitudes of the currents you were measuring in either case, and what was the input speed?
One possibility is that you are effectively measuring current very close to the “no load” point on the motor curve. Current draw at this point can vary tremendously from motor to motor (or throughout the life of one motor) in my experience, since you are really only measuring the amount of friction present.
Target input speed was 7500 rpm (at the motor), but it only reached ~6200 rpm with a good motor shunted, and ~6800 with the bad motor shunted (on account of the current limiting maybe). I’m forgetting the exact values for the output, but I just checked with Marcus and we both remember ~40A for the good motor, and ~20A for the bad motor.
If I understand correctly what you are doing, I would say that your measurement methodology is correct. It would be interesting to see if you get the same or different results if you test multiple motors that had been purchased at different times.
I suspect you should get the same current reading regardless of whether you have your current clamp on the wires running to the motor or on the wires between the controller and the PDP. The Hall-Effect sensors generally have bandwiths greater than 100 kHz. These sensors were able to detect ringing in the motor currents on the 3-phase motor controllers I worked on at previous day-jobs.
I believe all the motor controllers used in FRC only have an H-Bridge between the input terminals and the output terminals with no energy storage devices (capacitors in parallel with the input or inductors in series with the input) so the input current should have the same modulaton waveform as the output current other than a small difference due to the current for the internal circuitry. If you are worried about the modulation messing up the reading in the DVM (a form of aliasing), see if you can get access to an oscilloscope with a long Acquire buffer (at least 1000 points) and a current probe. Most recent (digital) oscilloscopes have the ability to measure the RMS value of the waveform on the screen.