CAN encoder_rate_ms problem

hello. i’m using odrive v3.6 board. my goal is to read encoder estimate information with 1ms. I set encoder_rate_ms to 1, and nothing has changed. whatever value i set, it’s less than 50Hz…

i tried to set both encoder_rate_ms and heartbeat_rate_ms to 0. but it gives me those datas with less than 50Hz.

Hi there - what speed do you have your CAN bus configured to? 1kHz is quite high and may saturate a lower speed CAN bus.

Also, what USB-CAN dongle are you using? That may also be saturating and dropping packets.

thanks for your answer! i set CAN bus baud rate to 1000kbps.
i tried several ways by myself but i think it’s not possible to get velocity feedback with 1khz.

is there any way that i can get velocity feedback with 1khz? not using CAN communication?

You should definitely be able to hit 1kHz velocity feedback. Do you have an oscilloscope or similar to see if the issue is the ODrive output or your CAN dongle?

Are you running odrv0.save_configuration() after setting the encoder_rate_ms message?

i think my CAN dongle was a problem. I tried to connect CAN using NI9853 module with cRIO and i could get 500hz. But at this moment, i set encoder_rate_ms for axis1 to 0. What would happen if i use axis1 as well? it would become 250hz? or 500 hz for each? hmm not sure…

If you set encoder_rate_ms to 0 it’ll disable it. Each axis has seperate CAN IDs, so if you set a rate of 1ms for each then they’ll both transmit at 1kHz.