List of ALL commands

Heya guys, in my effort to get a better understanding of what option I have to fuck with I decided to make a list of ALL the commands that can be sent to or gotten from an ODrive

I am using hardware v3.6-56V and software v0.5.5.0

I haven’t been able to format it well, but I think it’s still useful as a reference, on my end there are spaces to align everything, but I can’t format it to show it on your end, lemme know if there is a way to fix that

It has the default values from a freshly wiped ODrive

‘’’

axis0:

…acim_estimator:

…config:

…slip_velocity: 14.706000328063965 (float)

…phase_offset: 0.0 (float)

…rotor_flux: 0.0 (float)

…slip_vel: 0.0 (float)

…stator_phase: 0.0 (float)

…stator_phase_vel: 0.0 (float)

…calibration_lockin:

…accel: 20.0 (float)

…current: 10.0 (float)

…ramp_distance: 3.1415927410125732 (float)

…ramp_time: 0.4000000059604645 (float)

…vel: 40.0 (float)

…can:

…encoder_rate_ms: 10 (uint32)

…heartbeat_rate_ms: 100 (uint32)

…is_extended: False (bool)

…node_id: 0 (uint32)

…dir_gpio_pin: 2 (uint16)

…enable_sensorless_mode: False (bool)

…enable_step_dir: False (bool)

…enable_watchdog: False (bool)

…general_lockin:

…accel: 20.0 (float)

…current: 10.0 (float)

…finish_distance: 100.0 (float)

…finish_on_distance: False (bool)

…finish_on_enc_idx: False (bool)

…finish_on_vel: False (bool)

…ramp_distance: 3.1415927410125732 (float)

…ramp_time: 0.4000000059604645 (float)

…vel: 40.0 (float)

…sensorless_ramp:

…accel: 200.0 (float)

…current: 10.0 (float)

…finish_distance: 100.0 (float)

…finish_on_distance: False (bool)

…finish_on_enc_idx: False (bool)

…finish_on_vel: True (bool)

…ramp_distance: 3.1415927410125732 (float)

…ramp_time: 0.4000000059604645 (float)

…vel: 400.0 (float)

…startup_closed_loop_control: False (bool)

…startup_encoder_index_search: False (bool)

…startup_encoder_offset_calibration: False (bool)

…startup_homing: False (bool)

…startup_motor_calibration: False (bool)

…step_dir_always_on: False (bool)

…step_gpio_pin: 1 (uint16)

…watchdog_timeout: 0.0 (float)

…controller:

…anticogging_valid: False (bool)

…autotuning:

…frequency: 0.0 (float)

…pos_amplitude: 0.0 (float)

…torque_amplitude: 0.0 (float)

…vel_amplitude: 0.0 (float)

…autotuning_phase: 0.0 (float)

…config:

…anticogging:

…anticogging_enabled: True (bool)

…calib_anticogging: False (bool)

…calib_pos_threshold: 1.0 (float)

…calib_vel_threshold: 1.0 (float)

…cogging_ratio: 1.0 (float)

…index: 0 (uint32)

…pre_calibrated: False (bool)

…axis_to_mirror: 255 (uint8)

…circular_setpoint_range: 1.0 (float)

…circular_setpoints: False (bool)

…control_mode: 3 (uint8)

…electrical_power_bandwidth: 20.0 (float)

…enable_gain_scheduling: False (bool)

…enable_overspeed_error: True (bool)

…enable_torque_mode_vel_limit: True (bool)

…enable_vel_limit: True (bool)

…gain_scheduling_width: 10.0 (float)

…homing_speed: 0.25 (float)

…inertia: 0.0 (float)

…input_filter_bandwidth: 2.0 (float)

…input_mode: 1 (uint8)

…load_encoder_axis: 0 (uint8)

…mechanical_power_bandwidth: 20.0 (float)

…mirror_ratio: 1.0 (float)

…pos_gain: 20.0 (float)

…spinout_electrical_power_threshold: 10.0 (float)

…spinout_mechanical_power_threshold: -10.0 (float)

…steps_per_circular_range: 1024 (int32)

…torque_mirror_ratio: 0.0 (float)

…torque_ramp_rate: 0.009999999776482582 (float)

…vel_gain: 0.1666666716337204 (float)

…vel_integrator_gain: 0.3333333432674408 (float)

…vel_integrator_limit: inf (float)

…vel_limit: 2.0 (float)

…vel_limit_tolerance: 1.2000000476837158 (float)

…vel_ramp_rate: 1.0 (float)

…electrical_power: 0.0 (float)

…error: 0 (uint8)

…input_pos: 0.0 (float)

…input_torque: 0.0 (float)

…input_vel: 0.0 (float)

…last_error_time: 0.0 (float)

…mechanical_power: 0.0 (float)

…move_incremental(obj: object_ref, displacement: float, from_input_pos: bool)

…pos_setpoint: 0.0 (float)

…start_anticogging_calibration(obj: object_ref)

…torque_setpoint: 0.0 (float)

…trajectory_done: True (bool)

…vel_integrator_torque: 0.0 (float)

…vel_setpoint: 0.0 (float)

…current_state: 1 (uint8)

…encoder:

…calib_scan_response: 0.0 (float)

…config:

…abs_spi_cs_gpio_pin: 1 (uint16)

…bandwidth: 1000.0 (float)

…calib_range: 0.019999999552965164 (float)

…calib_scan_distance: 50.26548385620117 (float)

…calib_scan_omega: 12.566370964050293 (float)

…cpr: 8192 (int32)

…direction: 0 (int32)

…enable_phase_interpolation: True (bool)

…find_idx_on_lockin_only: False (bool)

…hall_polarity: 0 (uint8)

…hall_polarity_calibrated: False (bool)

…ignore_illegal_hall_state: False (bool)

…index_offset: 0.0 (float)

…mode: 0 (uint16)

…phase_offset: 0 (int32)

…phase_offset_float: 0.0 (float)

…pre_calibrated: False (bool)

…sincos_gpio_pin_cos: 4 (uint16)

…sincos_gpio_pin_sin: 3 (uint16)

…use_index: False (bool)

…use_index_offset: True (bool)

…count_in_cpr: 0 (int32)

…delta_pos_cpr_counts: 0.0 (float)

…error: 0 (uint16)

…hall_state: 0 (uint8)

…index_found: False (bool)

…interpolation: 0.5 (float)

…is_ready: False (bool)

…phase: 0.0 (float)

…pos_abs: 0 (int32)

…pos_circular: 0.0 (float)

…pos_cpr_counts: 0.0 (float)

…pos_estimate: 0.0 (float)

…pos_estimate_counts: 0.0 (float)

…set_linear_count(obj: object_ref, count: int32)

…shadow_count: 0 (int32)

…spi_error_rate: 0.0 (float)

…vel_estimate: 0.0 (float)

…vel_estimate_counts: 0.0 (float)

…error: 0 (uint32)

…is_homed: False (bool)

…last_drv_fault: 0 (uint32)

…max_endstop:

…config:

…debounce_ms: 50 (uint32)

…enabled: False (bool)

…gpio_num: 0 (uint16)

…is_active_high: False (bool)

…offset: 0.0 (float)

…endstop_state: False (bool)

…mechanical_brake:

…config:

…gpio_num: 0 (uint16)

…is_active_low: True (bool)

…engage(obj: object_ref)

…release(obj: object_ref)

…min_endstop:

…config:

…debounce_ms: 50 (uint32)

…enabled: False (bool)

…gpio_num: 0 (uint16)

…is_active_high: False (bool)

…offset: 0.0 (float)

…endstop_state: False (bool)

…motor:

…DC_calib_phA: 0.6815751791000366 (float)

…DC_calib_phB: -0.28510013222694397 (float)

…DC_calib_phC: -0.39604896306991577 (float)

…I_bus: 0.0 (float)

…config:

…I_bus_hard_max: /inf (float)

…I_bus_hard_min: -inf (float)

…I_leak_max: 0.10000000149011612 (float)

…R_wL_FF_enable: False (bool)

…acim_autoflux_attack_gain: 10.0 (float)

…acim_autoflux_decay_gain: 1.0 (float)

…acim_autoflux_enable: False (bool)

…acim_autoflux_min_Id: 10.0 (float)

…acim_gain_min_flux: 10.0 (float)

…bEMF_FF_enable: False (bool)

…calibration_current: 10.0 (float)

…current_control_bandwidth: 1000.0 (float)

…current_lim: 10.0 (float)

…current_lim_margin: 8.0 (float)

…dc_calib_tau: 0.20000000298023224 (float)

…inverter_temp_limit_lower: 100.0 (float)

…inverter_temp_limit_upper: 120.0 (float)

…motor_type: 0 (uint8)

…phase_inductance: 0.0 (float)

…phase_resistance: 0.0 (float)

…pole_pairs: 7 (int32)

…pre_calibrated: False (bool)

…requested_current_range: 60.0 (float)

…resistance_calib_max_voltage: 2.0 (float)

…torque_constant: 0.03999999910593033 (float)

…torque_lim: inf (float)

…current_control:

…I_measured_report_filter_k: 1.0 (float)

…Ialpha_measured: 0.0 (float)

…Ibeta_measured: 0.0 (float)

…Id_measured: 0.0 (float)

…Id_setpoint: 0.0 (float)

…Iq_measured: 0.0 (float)

…Iq_setpoint: 0.0 (float)

…Vd_setpoint: 0.0 (float)

…Vq_setpoint: 0.0 (float)

…final_v_alpha: 0.0 (float)

…final_v_beta: 0.0 (float)

…i_gain: nan (float)

…p_gain: 0.0 (float)

…phase: 0.0 (float)

…phase_vel: 0.0 (float)

…power: 0.0 (float)

…v_current_control_integral_d: 0.0 (float)

…v_current_control_integral_q: 0.0 (float)

…current_meas_phA: -0.6820801496505737 (float)

…current_meas_phB: 0.2854480445384979 (float)

…current_meas_phC: 0.3966292440891266 (float)

…effective_current_lim: 10.0 (float)

…error: 0 (uint64)

…fet_thermistor:

…config:

…enabled: True (bool)

…temp_limit_lower: 100.0 (float)

…temp_limit_upper: 120.0 (float)

…temperature: 22.62201499938965 (float)

…is_armed: False (bool)

…is_calibrated: False (bool)

…last_error_time: 0.0 (float)

…max_allowed_current: 60.75 (float)

…max_dc_calib: 6.075000286102295 (float)

…motor_thermistor:

…config:

…enabled: False (bool)

…gpio_pin: 4 (uint16)

…poly_coefficient_0: 0.0 (float)

…poly_coefficient_1: 0.0 (float)

…poly_coefficient_2: 0.0 (float)

…poly_coefficient_3: 0.0 (float)

…temp_limit_lower: 100.0 (float)

…temp_limit_upper: 120.0 (float)

…temperature: 0.0 (float)

…n_evt_current_measurement: 2238511 (uint32)

…n_evt_pwm_update: 2238515 (uint32)

…phase_current_rev_gain: 0.02500000037252903 (float)

…requested_state: 0 (uint8)

…sensorless_estimator:

…config:

…observer_gain: 1000.0 (float)

…pll_bandwidth: 1000.0 (float)

…pm_flux_linkage: 0.0015800000401213765 (float)

…error: 0 (uint8)

…phase: 0.0 (float)

…phase_vel: 0.0 (float)

…pll_pos: 0.0 (float)

…vel_estimate: 0.0 (float)

…step_dir_active: False (bool)

…steps: 0 (int64)

…task_times:

…acim_estimator_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 296 (uint32)

…start_time: 0 (uint32)

…can_heartbeat:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 2616 (uint32)

…start_time: 0 (uint32)

…controller_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 660 (uint32)

…start_time: 0 (uint32)

…current_controller_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 164 (uint32)

…start_time: 0 (uint32)

…current_sense:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 220 (uint32)

…start_time: 0 (uint32)

…dc_calib:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 88 (uint32)

…start_time: 0 (uint32)

…encoder_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 488 (uint32)

…start_time: 0 (uint32)

…endstop_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 88 (uint32)

…start_time: 0 (uint32)

…motor_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 620 (uint32)

…start_time: 0 (uint32)

…open_loop_controller_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 224 (uint32)

…start_time: 0 (uint32)

…pwm_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 252 (uint32)

…start_time: 0 (uint32)

…sensorless_estimator_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 424 (uint32)

…start_time: 0 (uint32)

…thermistor_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 260 (uint32)

…start_time: 0 (uint32)

…trap_traj:

…config:

…accel_limit: 0.5 (float)

…decel_limit: 0.5 (float)

…vel_limit: 2.0 (float)

…watchdog_feed(obj: object_ref)

axis1:

…acim_estimator:

…config:

…slip_velocity: 14.706000328063965 (float)

…phase_offset: 0.0 (float)

…rotor_flux: 0.0 (float)

…slip_vel: 0.0 (float)

…stator_phase: 0.0 (float)

…stator_phase_vel: 0.0 (float)

…config:

…calibration_lockin:

…accel: 20.0 (float)

…current: 10.0 (float)

…ramp_distance: 3.1415927410125732 (float)

…ramp_time: 0.4000000059604645 (float)

…vel: 40.0 (float)

…can:

…encoder_rate_ms: 10 (uint32)

…heartbeat_rate_ms: 100 (uint32)

…is_extended: False (bool)

…node_id: 0 (uint32)

…dir_gpio_pin: 2 (uint16)

…enable_sensorless_mode: False (bool)

…enable_step_dir: False (bool)

…enable_watchdog: False (bool)

…general_lockin:

…accel: 20.0 (float)

…current: 10.0 (float)

…finish_distance: 100.0 (float)

…finish_on_distance: False (bool)

…finish_on_enc_idx: False (bool)

…finish_on_vel: False (bool)

…ramp_distance: 3.1415927410125732 (float)

…ramp_time: 0.4000000059604645 (float)

…vel: 40.0 (float)

…sensorless_ramp:

…accel: 200.0 (float)

…current: 10.0 (float)

…finish_distance: 100.0 (float)

…finish_on_distance: False (bool)

…finish_on_enc_idx: False (bool)

…finish_on_vel: True (bool)

…ramp_distance: 3.1415927410125732 (float)

…ramp_time: 0.4000000059604645 (float)

…vel: 400.0 (float)

…startup_closed_loop_control: False (bool)

…startup_encoder_index_search: False (bool)

…startup_encoder_offset_calibration: False (bool)

…startup_homing: False (bool)

…startup_motor_calibration: False (bool)

…step_dir_always_on: False (bool)

…step_gpio_pin: 1 (uint16)

…watchdog_timeout: 0.0 (float)

…controller:

…anticogging_valid: False (bool)

…autotuning:

…frequency: 0.0 (float)

…pos_amplitude: 0.0 (float)

…torque_amplitude: 0.0 (float)

…vel_amplitude: 0.0 (float)

…autotuning_phase: 0.0 (float)

…config:

…anticogging:

…anticogging_enabled: True (bool)

…calib_anticogging: False (bool)

…calib_pos_threshold: 1.0 (float)

…calib_vel_threshold: 1.0 (float)

…cogging_ratio: 1.0 (float)

…index: 0 (uint32)

…pre_calibrated: False (bool)

…axis_to_mirror: 255 (uint8)

…circular_setpoint_range: 1.0 (float)

…circular_setpoints: False (bool)

…control_mode: 3 (uint8)

…electrical_power_bandwidth: 20.0 (float)

…enable_gain_scheduling: False (bool)

…enable_overspeed_error: True (bool)

…enable_torque_mode_vel_limit: True (bool)

…enable_vel_limit: True (bool)

…gain_scheduling_width: 10.0 (float)

…homing_speed: 0.25 (float)

…inertia: 0.0 (float)

…input_filter_bandwidth: 2.0 (float)

…input_mode: 1 (uint8)

…load_encoder_axis: 0 (uint8)

…mechanical_power_bandwidth: 20.0 (float)

…mirror_ratio: 1.0 (float)

…pos_gain: 20.0 (float)

…spinout_electrical_power_threshold: 10.0 (float)

…spinout_mechanical_power_threshold: -10.0 (float)

…steps_per_circular_range: 1024 (int32)

…torque_mirror_ratio: 0.0 (float)

…torque_ramp_rate: 0.009999999776482582 (float)

…vel_gain: 0.1666666716337204 (float)

…vel_integrator_gain: 0.3333333432674408 (float)

…vel_integrator_limit: inf (float)

…vel_limit: 2.0 (float)

…vel_limit_tolerance: 1.2000000476837158 (float)

…vel_ramp_rate: 1.0 (float)

…electrical_power: 0.0 (float)

…error: 0 (uint8)

…input_pos: 0.0 (float)

…input_torque: 0.0 (float)

…input_vel: 0.0 (float)

…last_error_time: 0.0 (float)

…mechanical_power: 0.0 (float)

…move_incremental(obj: object_ref, displacement: float, from_input_pos: bool)

…pos_setpoint: 0.0 (float)

…start_anticogging_calibration(obj: object_ref)

…torque_setpoint: 0.0 (float)

…trajectory_done: True (bool)

…vel_integrator_torque: 0.0 (float)

…vel_setpoint: 0.0 (float)

…current_state: 1 (uint8)

…encoder:

…calib_scan_response: 0.0 (float)

…config:

…abs_spi_cs_gpio_pin: 1 (uint16)

…bandwidth: 1000.0 (float)

…calib_range: 0.019999999552965164 (float)

…calib_scan_distance: 50.26548385620117 (float)

…calib_scan_omega: 12.566370964050293 (float)

…cpr: 8192 (int32)

…direction: 0 (int32)

…enable_phase_interpolation: True (bool)

…find_idx_on_lockin_only: False (bool)

…hall_polarity: 0 (uint8)

…hall_polarity_calibrated: False (bool)

…ignore_illegal_hall_state: False (bool)

…index_offset: 0.0 (float)

…mode: 0 (uint16)

…phase_offset: 0 (int32)

…phase_offset_float: 0.0 (float)

…pre_calibrated: False (bool)

…sincos_gpio_pin_cos: 4 (uint16)

…sincos_gpio_pin_sin: 3 (uint16)

…use_index: False (bool)

…use_index_offset: True (bool)

…count_in_cpr: 0 (int32)

…delta_pos_cpr_counts: 0.0 (float)

…error: 0 (uint16)

…hall_state: 0 (uint8)

…index_found: False (bool)

…interpolation: 0.5 (float)

…is_ready: False (bool)

…phase: 0.0 (float)

…pos_abs: 0 (int32)

…pos_circular: 0.0 (float)

…pos_cpr_counts: 0.0 (float)

…pos_estimate: 0.0 (float)

…pos_estimate_counts: 0.0 (float)

…set_linear_count(obj: object_ref, count: int32)

…shadow_count: 0 (int32)

…spi_error_rate: 0.0 (float)

…vel_estimate: 0.0 (float)

…vel_estimate_counts: 0.0 (float)

…error: 0 (uint32)

…is_homed: False (bool)

…last_drv_fault: 0 (uint32)

…max_endstop:

…config:

…debounce_ms: 50 (uint32)

…enabled: False (bool)

…gpio_num: 0 (uint16)

…is_active_high: False (bool)

…offset: 0.0 (float)

…endstop_state: False (bool)

…mechanical_brake:

…config:

…gpio_num: 0 (uint16)

…is_active_low: True (bool)

…engage(obj: object_ref)

…release(obj: object_ref)

…min_endstop:

…config:

…debounce_ms: 50 (uint32)

…enabled: False (bool)

…gpio_num: 0 (uint16)

…is_active_high: False (bool)

…offset: 0.0 (float)

…endstop_state: False (bool)

…motor:

…DC_calib_phA: 0.6815751791000366 (float)

…DC_calib_phB: -0.28510013222694397 (float)

…DC_calib_phC: -0.39604896306991577 (float)

…I_bus: 0.0 (float)

…config:

…I_bus_hard_max: inf (float)

…I_bus_hard_min: -inf (float)

…I_leak_max: 0.10000000149011612 (float)

…R_wL_FF_enable: False (bool)

…acim_autoflux_attack_gain: 10.0 (float)

…acim_autoflux_decay_gain: 1.0 (float)

…acim_autoflux_enable: False (bool)

…acim_autoflux_min_Id: 10.0 (float)

…acim_gain_min_flux: 10.0 (float)

…bEMF_FF_enable: False (bool)

…calibration_current: 10.0 (float)

…current_control_bandwidth: 1000.0 (float)

…current_lim: 10.0 (float)

…current_lim_margin: 8.0 (float)

…dc_calib_tau: 0.20000000298023224 (float)

…inverter_temp_limit_lower: 100.0 (float)

…inverter_temp_limit_upper: 120.0 (float)

…motor_type: 0 (uint8)

…phase_inductance: 0.0 (float)

…phase_resistance: 0.0 (float)

…pole_pairs: 7 (int32)

…pre_calibrated: False (bool)

…requested_current_range: 60.0 (float)

…resistance_calib_max_voltage: 2.0 (float)

…torque_constant: 0.03999999910593033 (float)

…torque_lim: inf (float)

…current_control:

…I_measured_report_filter_k: 1.0 (float)

…Ialpha_measured: 0.0 (float)

…Ibeta_measured: 0.0 (float)

…Id_measured: 0.0 (float)

…Id_setpoint: 0.0 (float)

…Iq_measured: 0.0 (float)

…Iq_setpoint: 0.0 (float)

…Vd_setpoint: 0.0 (float)

…Vq_setpoint: 0.0 (float)

…final_v_alpha: 0.0 (float)

…final_v_beta: 0.0 (float)

…i_gain: nan (float)

…p_gain: 0.0 (float)

…phase: 0.0 (float)

…phase_vel: 0.0 (float)

…power: 0.0 (float)

…v_current_control_integral_d: 0.0 (float)

…v_current_control_integral_q: 0.0 (float)

…current_meas_phA: -0.6820801496505737 (float)

…current_meas_phB: 0.2854480445384979 (float)

…current_meas_phC: 0.3966292440891266 (float)

…effective_current_lim: 10.0 (float)

…error: 0 (uint64)

…fet_thermistor:

…config:

…enabled: True (bool)

…temp_limit_lower: 100.0 (float)

…temp_limit_upper: 120.0 (float)

…temperature: 22.62201499938965 (float)

…is_armed: False (bool)

…is_calibrated: False (bool)

…last_error_time: 0.0 (float)

…max_allowed_current: 60.75 (float)

…max_dc_calib: 6.075000286102295 (float)

…motor_thermistor:

…config:

…enabled: False (bool)

…gpio_pin: 4 (uint16)

…poly_coefficient_0: 0.0 (float)

…poly_coefficient_1: 0.0 (float)

…poly_coefficient_2: 0.0 (float)

…poly_coefficient_3: 0.0 (float)

…temp_limit_lower: 100.0 (float)

…temp_limit_upper: 120.0 (float)

…temperature: 0.0 (float)

…n_evt_current_measurement: 2238511 (uint32)

…n_evt_pwm_update: 2238515 (uint32)

…phase_current_rev_gain: 0.02500000037252903 (float)

…requested_state: 0 (uint8)

…sensorless_estimator:

…config:

…observer_gain: 1000.0 (float)

…pll_bandwidth: 1000.0 (float)

…pm_flux_linkage: 0.0015800000401213765 (float)

…error: 0 (uint8)

…phase: 0.0 (float)

…phase_vel: 0.0 (float)

…pll_pos: 0.0 (float)

…vel_estimate: 0.0 (float)

…step_dir_active: False (bool)

…steps: 0 (int64)

…task_times:

…acim_estimator_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 296 (uint32)

…start_time: 0 (uint32)

…can_heartbeat:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 2616 (uint32)

…start_time: 0 (uint32)

…controller_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 660 (uint32)

…start_time: 0 (uint32)

…current_controller_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 164 (uint32)

…start_time: 0 (uint32)

…current_sense:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 220 (uint32)

…start_time: 0 (uint32)

…dc_calib:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 88 (uint32)

…start_time: 0 (uint32)

…encoder_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 488 (uint32)

…start_time: 0 (uint32)

…endstop_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 88 (uint32)

…start_time: 0 (uint32)

…motor_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 620 (uint32)

…start_time: 0 (uint32)

…open_loop_controller_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 224 (uint32)

…start_time: 0 (uint32)

…pwm_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 252 (uint32)

…start_time: 0 (uint32)

…sensorless_estimator_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 424 (uint32)

…start_time: 0 (uint32)

…thermistor_update:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 260 (uint32)

…start_time: 0 (uint32)

…trap_traj:

…config:

…accel_limit: 0.5 (float)

…decel_limit: 0.5 (float)

…vel_limit: 2.0 (float)

…watchdog_feed(obj: object_ref)

brake_resistor_armed: False (bool)

brake_resistor_current: 0.0 (float)

brake_resistor_saturated: False (bool)

can:

…config:

…baud_rate: 250000 (uint32)

…protocol: 1 (uint8)

…error: 0 (uint8)

clear_errors(obj: object_ref)

config:

…brake_resistance: 2.0 (float)

…dc_bus_overvoltage_ramp_end: 59.92000198364258 (float)

…dc_bus_overvoltage_ramp_start: 59.92000198364258 (float)

…dc_bus_overvoltage_trip_level: 59.92000198364258 (float)

…dc_bus_undervoltage_trip_level: 8.0 (float)

…dc_max_negative_current: -0.009999999776482582 (float)

…dc_max_positive_current: inf (float)

…enable_brake_resistor: False (bool)

…enable_can_a: True (bool)

…enable_dc_bus_overvoltage_ramp: False (bool)

…enable_i2c_a: False (bool)

…enable_uart_a: True (bool)

…enable_uart_b: False (bool)

…enable_uart_c: False (bool)

…error_gpio_pin: 0 (uint32)

…gpio10_mode: 11 (uint8)

…gpio11_mode: 2 (uint8)

…gpio12_mode: 12 (uint8)

…gpio13_mode: 12 (uint8)

…gpio14_mode: 2 (uint8)

…gpio15_mode: 7 (uint8)

…gpio16_mode: 7 (uint8)

…gpio1_mode: 4 (uint8)

…gpio1_pwm_mapping:

…endpoint: None (object_ref)

…max: 0.0 (float)

…min: 0.0 (float)

…gpio2_mode: 4 (uint8)

…gpio2_pwm_mapping:

…endpoint: None (object_ref)

…max: 0.0 (float)

…min: 0.0 (float)

…gpio3_analog_mapping:

…endpoint: None (object_ref)

…max: 0.0 (float)

…min: 0.0 (float)

…gpio3_mode: 3 (uint8)

…gpio3_pwm_mapping:

…endpoint: None (object_ref)

…max: 0.0 (float)

…min: 0.0 (float)

…gpio4_analog_mapping:

…endpoint: None (object_ref)

…max: 0.0 (float)

…min: 0.0 (float)

…gpio4_mode: 3 (uint8)

…gpio4_pwm_mapping:

…endpoint: None (object_ref)

…max: 0.0 (float)

…min: 0.0 (float)

…gpio5_mode: 3 (uint8)

…gpio6_mode: 0 (uint8)

…gpio7_mode: 0 (uint8)

…gpio8_mode: 0 (uint8)

…gpio9_mode: 11 (uint8)

…max_regen_current: 0.0 (float)

…uart0_protocol: 3 (uint8)

…uart1_protocol: 3 (uint8)

…uart2_protocol: 3 (uint8)

…uart_a_baudrate: 115200 (uint32)

…uart_b_baudrate: 115200 (uint32)

…uart_c_baudrate: 115200 (uint32)

…usb_cdc_protocol: 3 (uint8)

enter_dfu_mode(obj: object_ref)

erase_configuration(obj: object_ref)

error: 0 (uint8)

fw_version_major: 0 (uint8)

fw_version_minor: 5 (uint8)

fw_version_revision: 5 (uint8)

fw_version_unreleased: 0 (uint8)

get_adc_voltage(obj: object_ref, gpio: uint32) -…voltage: float

get_dma_status(obj: object_ref, stream_num: uint8) -…status: uint32

get_drv_fault(obj: object_ref) -…drv_fault: uint64

get_gpio_states(obj: object_ref) -…status: uint32

get_interrupt_status(obj: object_ref, irqn: int32) -…status: uint32

hw_version_major: 3 (uint8)

hw_version_minor: 6 (uint8)

hw_version_variant: 56 (uint8)

ibus: 0.0 (float)

ibus_report_filter_k: 1.0 (float)

misconfigured: False (bool)

n_evt_control_loop: 69686 (uint32)

n_evt_sampling: 69690 (uint32)

oscilloscope:

…get_val(obj: object_ref, index: uint32) -…val: float

…size: 4096 (uint32)

otp_valid: True (bool)

reboot(obj: object_ref)

save_configuration(obj: object_ref) -…success: bool

serial_number: 54345082875952 (uint64)

system_stats:

…i2c:

…addr: 0 (uint8)

…addr_match_cnt: 0 (uint32)

…error_cnt: 0 (uint32)

…rx_cnt: 0 (uint32)

…max_stack_usage_analog: 308 (uint32)

…max_stack_usage_axis: 424 (uint32)

…max_stack_usage_can: 216 (uint32)

…max_stack_usage_startup: 524 (uint32)

…max_stack_usage_uart: 284 (uint32)

…max_stack_usage_usb: 484 (uint32)

…min_heap_space: 47432 (uint32)

…prio_analog: -2 (int32)

…prio_axis: 3 (int32)

…prio_can: 0 (int32)

…prio_startup: 0 (int32)

…prio_uart: 0 (int32)

…prio_usb: 0 (int32)

…stack_size_analog: 1024 (uint32)

…stack_size_axis: 2048 (uint32)

…stack_size_can: 1024 (uint32)

…stack_size_startup: 2048 (uint32)

…stack_size_uart: 4096 (uint32)

…stack_size_usb: 4096 (uint32)

…uptime: 8831 (uint32)

…usb:

…rx_cnt: 2202 (uint32)

…tx_cnt: 0 (uint32)

…tx_overrun_cnt: 0 (uint32)

task_timers_armed: False (bool)

task_times:

…control_loop_checks:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 720 (uint32)

…start_time: 0 (uint32)

…control_loop_misc:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 884 (uint32)

…start_time: 0 (uint32)

…dc_calib_wait:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 1600 (uint32)

…start_time: 0 (uint32)

…sampling:

…end_time: 0 (uint32)

…length: 0 (uint32)

…max_length: 184 (uint32)

…start_time: 0 (uint32)

test_function(obj: object_ref, delta: int32) -…cnt: int32

test_property: 0 (uint32)

user_config_loaded: 0 (uint32)

vbus_voltage: 47.560768127441406 (float)

‘’’

I found a similar exercise very useful as I was getting started. I also found out that if I run

 odrivetool backup-config my_config.json

The json file contains all the writeable properties, and my editor (VS Code) will format it nicely with folding. (open the file, RMB on the text, “Format Document”)

1 Like

Why do I keep getting errors when I try that?

In [1]: odrivetool backup-config my_config.json
File :1
odrivetool backup-config my_config.json
^
SyntaxError: invalid syntax

In [2]: backup-config my_config.json
File :1
backup-config my_config.json
^
SyntaxError: invalid syntax

If you are already running odrivetool, exit first. Then run the backup

Ha! That’s the issue.

Now, how do I read the file? Visual Studio shows it as an unformatted mess. :slight_smile:

You can fetch the first endpoint in the Native Protocol, it is a JSON dump of the whole interface (see docs)

Alternatively, odrive-interface.yaml in the git repo is the same thing

Or just go look at the API docs
https://docs.odriverobotics.com/v/latest/fibre_types/com_odriverobotics_ODrive.html