Multiple properties not found on device

Hello everyone,

I have just updated the firmware of one of my odrives to the latest release found on github. the odrive i am using is an odrive v3.6-56V.

When I now try to restore the configuration of the odrive I get a notification that multiple properties are not found on the device. Some of those properties are important for what I am using my odrive for.

Does anyone know if there is a way to fix this problem?
Kind regards

ps: this is the code from restoring the callibration

pi@raspberrypi:~ $ odrivetool restore-config odrive1config.json
Waiting for ODrive…
Restoring configuration from odrive1config.json…
Could not restore axis0.config.can_heartbeat_rate_ms: property not found on device
Could not restore axis0.config.can_node_id_extended: property not found on device
Could not restore axis0.config.can_node_id: property not found on device
Could not restore axis0.config.startup_sensorless_control: property not found on device
Could not restore axis0.config.turns_per_step: property not found on device
Could not restore axis0.controller.config.anticogging.calib_anticogging: ‘anonymous_interface_3032150492’ object has no attribute ‘exchange’
Could not restore axis0.controller.config.anticogging.cogging_ratio: ‘anonymous_interface_3032147028’ object has no attribute ‘exchange’
Could not restore axis0.controller.config.anticogging.index: ‘anonymous_interface_3032151900’ object has no attribute ‘exchange’
Could not restore axis0.encoder.config.idx_search_unidirectional: property not found on device
Could not restore axis0.encoder.config.offset_float: property not found on device
Could not restore axis0.encoder.config.offset: property not found on device
Could not restore axis0.encoder.config.zero_count_on_find_idx: property not found on device
Could not restore axis0.fet_thermistor: property not found on device
Could not restore axis0.max_endstop.config.pullup: property not found on device
Could not restore axis0.min_endstop.config.pullup: property not found on device
Could not restore axis0.motor.config.acim_slip_velocity: property not found on device
Could not restore axis0.motor.config.direction: property not found on device
Could not restore axis0.motor_thermistor: property not found on device
Could not restore axis1.config.can_heartbeat_rate_ms: property not found on device
Could not restore axis1.config.can_node_id_extended: property not found on device
Could not restore axis1.config.can_node_id: property not found on device
Could not restore axis1.config.startup_sensorless_control: property not found on device
Could not restore axis1.config.turns_per_step: property not found on device
Could not restore axis1.controller.config.anticogging.calib_anticogging: ‘anonymous_interface_3032150492’ object has no attribute ‘exchange’
Could not restore axis1.controller.config.anticogging.cogging_ratio: ‘anonymous_interface_3032147028’ object has no attribute ‘exchange’
Could not restore axis1.controller.config.anticogging.index: ‘anonymous_interface_3032151900’ object has no attribute ‘exchange’
Could not restore axis1.encoder.config.idx_search_unidirectional: property not found on device
Could not restore axis1.encoder.config.offset_float: property not found on device
Could not restore axis1.encoder.config.offset: property not found on device
Could not restore axis1.encoder.config.zero_count_on_find_idx: property not found on device
Could not restore axis1.fet_thermistor: property not found on device
Could not restore axis1.max_endstop.config.pullup: property not found on device
Could not restore axis1.min_endstop.config.pullup: property not found on device
Could not restore axis1.motor.config.acim_slip_velocity: property not found on device
Could not restore axis1.motor.config.direction: property not found on device
Could not restore axis1.motor_thermistor: property not found on device
Could not restore config.enable_ascii_protocol_on_usb: property not found on device
Could not restore config.enable_i2c_instead_of_can: property not found on device
Could not restore config.enable_uart: property not found on device
Could not restore config.uart_baudrate: property not found on device
Some of the configuration could not be restored.
Configuration restored.

They’ve probably just been moved or renamed. The CAN stuff, for example, mostly went to odrv0.axsi0.config.can.<thing> instead of can_<thing>

1 Like

Thanks for your answer!
I have been searching on github and I have now managed to install the firmware that still has al those properties.
Now just out of curiousity, the propertie: zero_count_on_find_idx, what is this called in the newest firmware, because I would love to always use the most up-to-date firmware is possible.

kind regards

1 Like

Hmmm… good question. It’s called encoder.config.use_index_offset, and you can set a custom offset with encoder.config.index_offset. That way, it has the same behaviour by default (sets position to 0 when the index is found), but you can also use it to set any arbitrary position (in turns) when the index is found:

if (config_.use_index_offset)
    set_linear_count((int32_t)(config_.index_offset * config_.cpr));
1 Like

I see. So with this I can give the position where the encoder finds the index any value that I want, which will then be seen as the current position of the motor.
Big thanks for your help!

1 Like

And if you don’t mind me asking, how do you know all these things? Because I can’t find a lot of the things that you can tell us on the Odrive website. Is there another public available source where all those things are documented so that I can try to solve the issues I stumble upon myself without having to bother you :sweat_smile:?

Precisely!

Hah! I wrote a good chunk of this code. I will take your comment as a recommendation to improve the documentation :slight_smile:

2 Likes

Wow, I can imagine it takes a great amount of effort and time to do all that work and then also help people on this forum.
I really appreciate all the work you put into it!