Identifying the cause of ODriveError.TIMING_ERROR

Hello, so just for some context, we’ve got a single leg robot in our lab with two geared 105Kv 21 pole pair 2Nm BLDC motors which are both controlled by a 56V (48V supply) v3.6 ODrive (fw 0.5.5). We’re controlling them in torque control mode over CAN at 500hz with the control bandwidth turned down to 500rad/s. Each motor has a 4096cpr encoder and the maximum velocities I’ve seen are about 15 turns/s. We also aren’t using any of the GPIO’s.

Recently we’ve been trying to get it to jump higher, but for higher impact landings the ODrive appears to cut out and dump_errors displays the system error ODriveError.TIMING_ERROR, and I’m really not sure what could be causing this. I also can’t work out what error in the firmware corresponds to this error in odrivetool. Any help very much appreciated!

I’ve just had a look at the ODrive specifications page and I think I could be hitting the 35000 eRPM / # of motor pole pairs speed limit with ground impacts. This gives 27.7 turns/s which it could be getting close to. @madcowswe would this cause the timing error?

Timing error results from the processor taking too long to calculate and missing the deadline for setting PWM outputs.

Sounds to me like your power supply is having issues during transients and the ODrive is browning out maybe?

1 Like

That could be a possibility, but it should be quite a decent power supply (TTi QPX1200SP) and we haven’t had any issues in the past. I’ve tried lowering the torque control bandwidth from 500rad/s to 100rad/s but this didn’t seem to change when it cuts out.

@Wetmelon @madcowswe I’m really struggling to find what could be triggering this error in the firmware because searching for TIMING_ERROR in the github firmware doesn’t have any results?

So I finally got to the bottom of this. dump_errors was actually reporting the error incorrectly. The system had an error value of 4 which corresponds to a ODRIVE_ERROR_DC_BUS_OVER_VOLTAGE error. A scope on the power supply also showed the bus voltage rising higher than it should so I just enabled the brake resistor voltage ramp and now everything is working great.