CAN Bus Not Responding

Hello,

I have an ODrive 24V (not the PRO version) with the latest firmware update.

The axis ID is 0.

The CAN communications seems to be working:

  1. I see the heartbeat rate of both axis and the sensor estimates on the CAN. But I set their rate to 0 in the config to reduce CAN traffic for my application.

  2. I send “closed loop control mode” command and the “velocity control” command and the “vel_input” command, and the motor moves as expected.

Now, things do not work if I send any command that needs to receive a response.

  1. For example, after sending “Get_Encoder_Estimates” command, there is no response from the ODrive on the CAN bus. The axis ID is 0. I tried sending both:

0x009 [8] 00 00 00 00 00 00 00 00

and

0x009 [0]

to the CAN bus. None of them lead to any response from the ODrive on the CAN bus.

  1. None of the other commands that expect a response from the ODrive on the CAN bus receive any response. Another example that I tried is:

Get motor error: 0x003 [8] 00 00 00 00 00 00 00 00

Any guidance is appreciated.

Thanks,

Farbod

1 Like

Hmm. Can you check odrv0.fw_version_minor and odrv0.fw_version_revision? You may need to set the RTR bit for those messages in older firmware versions (I believe the newest master has DLC == 0 as a valid option)

Hi,

Thanks for the help. Here is what I get:

In [1]: odrv0.fw_version_minor
Out[1]: 5

In [2]: odrv0.fw_version_revision
Out[2]: 4

In [3]:

I hope this helps.

Thanks,
Farbod

Update to 0.5.5, then you won’t have to set the RTR.
pip install --upgrade odrive then odrivetool dfu

Hi there!

The upgrade worked fine. But despite backing up and restoring the config, the motor stopped working.

No worries though! I reconfigured the motor and all is working perfectly now without having to set the RTR bit.

Thanks so much for the valuable help. :slight_smile:

1 Like