PTC Protection Code Suitable for Competition?

One of the sophomores in my school’s robotics organization found this video by vamfun and now he really wants to use it in competition for next year (his robot this year had problems with motors overheating). As a retiring senior this year, I recommended against using it, but he still wants to do it. Why I recommended against it was because 1) the limiters in the (pseudo) code vamfun provides in the video might interfere with his driving, much like one should never use PID in driving code, and 2) I think there are simpler solutions to keeping the PTCs happy, such as not getting into situations where the PTCs trip in the first place, or gearing enough motors together to provide plenty of headroom in terms of torque for the task at hand. Then again, we’ve not written and tested out the code for ourselves, so I don’t have any concrete evidence to confirm my misgivings about using the code in competition.

My question is, has anyone used the code in competition, and regardless of using it or not, what are your thoughts about it?

Search for my Smartmotor library, that was the end result of the work vamfun and I did. Many teams have used it in completion.


Code is here

We’re aware of this library. I am asking if any teams have specifically used any such PTC protection code on their robots.

While I haven’t used any such code in competition, for a while during testing and driver practice I had an algorithm running that didn’t try and predict the temperature of the PTCs, but instead determined when motors were being unnecessarily strained pushing against something and immediately slowed them down to prevent them from heating up. We had an X-Drive at that time so it could even detect where the obstacle was around the robot when we were hitting it and limit movement in that specific direction. The reason it never made it to competition was because as our driver got better and better, it became unnecessary as he learned how not to push the motors.

One thing that’s prevented me from using jpearman’s motor library is that I’m afraid that because we are pushing our motors to their absolute limit, it could trip early and unnecessarily slow us down. If we could actually get a current readout from the cortex (like VEX-IQ can), I would be far more apt to use temperature prediction code.

I’ve used it, it doesn’t completely keep things from burning out but it does prevent it largely

I agree.

Last year we were new to vex so we had a robot entirely made out of steel, simply because that is what we had. We tripped our drive constantly, however once I figured out how the slew rate control worked it definitely helped us tremendously. I haven’t tried using the SmartMotorLibrary, but it would likely help even more than simple slew rate because it looks ahead to prevent trips meaning you could probably push a little harder rather than just stepping the power.

One of my teams used SmartMotor Library last year, and it made a huge positive difference. Much of the trouble came from “enthusiastic driving” which is where SML is particularly useful with its slew rate control.