V5 Overheating Threshold

I am trying to write code that will display an error message on the controller and the brain preemptively before a motor overheats, the problem being that I cannot find the threshold. Does anyone have information on the temperature when overheating, or even just normal use?

Check out this post, and others in its thread:

1 Like

Perfect, thank you.

Also, please be aware, that temperature sensor on the V5 motor will display average temperature inside the motor (possibly with significant delay).

It could be accurate for steady slowly increasing loads, but if motor experiences sudden increase in the load and internal current, then it may have been well after the thermal shutdown when you will start getting increased temperature readings:

1 Like

Last season we kept track of the flywheel temperature. During practice this let us know when the flywheel had been running for too long and needed a cool-down period. If you are using PROS, you can do something similar to:

float temp = fw.get_temperature();
    if(temp <= 40){
      m.print(0, 0, "Safe: %1.0f", temp);
    }else if(temp <= 55){
      m.print(0, 0, "Good: %1.0f", temp);
      m.print(0, 0, "STOP: %1.0f", temp);

The code is very basic, but a short message is simple for a driver to interpret. We also had tactile feedback via a controller rumble, since our driver never looked at the controller while driving. Eventually, we took it out since the flywheel never overheated during a match, and it was distracting during long practice sessions while we tested other components as the flywheel was cooling down.

We determined the the STOP temperature by observing when the flywheel visibly slowed-down due to the thermal limiting of motor’s built-in efuse. This is not an exact method of determining the motor’s overheating threshold, but a very strong indication.

I also want to add that this temperature monitoring was:

such as a flywheel. Depending on your application, it may not react fast enough to be useful. To predict quicker anomalies, you could experiment with get_current_draw, get_efficiency or something similar.


I’ll check the reliability of temperature before I move onto efficiency. I plan to have this system on all motors, even though I don’t ever expect them to overheat. The rumble idea is smart, and i’ll probably add it to my current code. Thanks.