Thermal Protection Status Undefined

On the Sensor page entry for Motor Thermal Protection Status Notify the definition of Thermal Protection Status is not defined.

Can you define them here, please?

Hi Rud,

You can find the names and values in the Python code here: https://github.com/sphero-inc/sphero-sdk-raspberrypi-python/blob/3ac04ab7164053a3acab209c96109e0fc281ee18/sphero_sdk/common/enums/sensor_enums.py#L62

The warning state has 10°C of hysteresis on it, so once the estimated motor temperature reaches the warn threshold it has to drop 10°C before it goes back to OK. There are no restrictions in the warn state, it’s only an early warning.

Once the critical temperature threshold is reached, both motors are disabled until the estimated temperature of the overheated motor drops below (T_warn-10). So the allowable state changes are as follows:

  • OK to Warn
  • Warn to OK
  • Warn to Critical
  • Critical to OK (note that Warn is skipped in this case)

Since RVR estimates motor temperatures and doesn’t have an RTC to track the passage of time when turned off, it must stay powered on in order for the thermal model to update. Thus, if you hit the Critical state and then turn off RVR right away, it will still be in the Critical state when you turn it on again, regardless of how much time has passed.

Better overall documentation of commands and SDK methods is on the list, but I need to dig into automatic documentation generators first so it could be a while before that gets published.

Jim

1 Like

Thanks. I probably found the enum at some point but forgot. The state machine information is useful.

The retention of state implies you are saving some information in non-volatile memory. Would removing the battery reset the state?

That’s correct, thermal state information is retained in nonvolatile memory and will not be cleared by battery removal. That kind of loophole would have defeated the whole thermal protection system.

Jim

SPHERO Email Marketing -