Over Temperature Current Limiting

There are two temperature sensitive currrent limiting modules on the ODrive Pro, <axis>.motor.fet_thermistor and <axis>.motor.motor_thermistor. The temperature reading (in Celcius) from each thermistor can be monitored from <thermistor>.temperature. Both modules can be enabled by setting <thermistor>.config.enabled to True.

When enabled, either module will start limiting the motor current when the <thermistor>.config.temp_limit_lower threshold is exceeded. The current limit will then ramp down, ending with 0A once <thermistor>.config.temp_limit_upper is reached. If the temperature continues to rise past <thermistor>.config.temp_limit_upper + 5°C, the ODrive will exit CLOSED_LOOP_CONTROL with an error of either INVERTER_OVER_TEMP or MOTOR_OVER_TEMP, depending on which thermistor exceeded this threshold.


Current Limit vs. Thermistor Temperature


The lower and upper thresholds for <axis>.motor.fet_thermistor can be changed, but this is not recommended.

Motor Thermistor Configuration

All motors with an integrated thermistor offered by odriverobotics are compatible, otherwise make sure you have an NTC type thermistor before use.


For users migrating from ODrive v3.*, no external circuitry is required to use a motor thermistor. The ODrive Pro has a built in 1k ohm voltage divider.

Fan Control (Pro only)

The ODrive Pro has one 12V supply with a switched negative lead (Fan-) on J12. This is designed to power an offboard fan which can be controlled by one of two modules:

  • <odrv>.config.odrv_fan

    Used for cooling the ODrive FETs. Feedback is received from the integrated fet_thermistor

  • <odrv>.config.motor_fan

    Used for cooling the motor. Feedback is received from an offboard motor_thermistor

Both <fan> modules use hysteresis control, where the fan is engaged once the temperature reading reaches <fan>.upper and remains on until the temperature drops below <fan>.lower, either module can be enabled by setting <fan>.enabled to True.