Okay so I’ve learned a lot and figured a lot of my previous issues out!

Encoder seems to work fine now, as well as the calibration.

It doesnt show me any errors after a full calibration.

However, as soon as I go into AXIS_STATE_CLOSED_LOOP_CONTROL and touch the motor ever so slightly it will freak out and shut off and gives me these errors:

dump_errors(odrv0)^M

…:

axis0

axis: Error(s):

ERROR_CONTROLLER_FAILED

motor: Error(s):

ERROR_CONTROL_DEADLINE_MISSED

encoder: no error

controller: Error(s):

ERROR_OVERSPEED

I can reboot and recalibrate fine- but I cant seem to find what is causing this issue!

These are my motor and encoder values:

odrv0.axis0.motor

Out[469]:

error = 0x0000 (int)

armed_state = 0 (int)

is_calibrated = True (bool)

current_meas_phB = -0.0031413733959198 (float)

current_meas_phC = -0.05141142010688782 (float)

DC_calib_phB = -0.3596027195453644 (float)

DC_calib_phC = 0.13180579245090485 (float)

phase_current_rev_gain = 0.02500000037252903 (float)

thermal_current_lim = 135.91555786132812 (float)

get_inverter_temp()

current_control:

p_gain = 0.0023307488299906254 (float)

i_gain = 6.409842014312744 (float)

v_current_control_integral_d = -0.21043384075164795 (float)

v_current_control_integral_q = -0.9467928409576416 (float)

Ibus = 0.4909997582435608 (float)

final_v_alpha = 0.9636579155921936 (float)

final_v_beta = 0.13029392063617706 (float)

Iq_setpoint = -10.0 (float)

Iq_measured = -8.584746360778809 (float)

Id_measured = 1.273858666419983 (float)

I_measured_report_filter_k = 1.0 (float)

max_allowed_current = 60.75 (float)

overcurrent_trip_level = 67.5 (float)

gate_driver:

drv_fault = 0 (int)

timing_log:

TIMING_LOG_GENERAL = 0 (int)

TIMING_LOG_ADC_CB_I = 2582 (int)

TIMING_LOG_ADC_CB_DC = 12854 (int)

TIMING_LOG_MEAS_R = 6606 (int)

TIMING_LOG_MEAS_L = 6606 (int)

TIMING_LOG_ENC_CALIB = 6938 (int)

TIMING_LOG_IDX_SEARCH = 0 (int)

TIMING_LOG_FOC_VOLTAGE = 6886 (int)

TIMING_LOG_FOC_CURRENT = 7114 (int)

config:

pre_calibrated = True (bool)

pole_pairs = 7 (int)

calibration_current = 10.0 (float)

resistance_calib_max_voltage = 2.0 (float)

phase_inductance = 2.3307487936108373e-05 (float)

phase_resistance = 0.06409841775894165 (float)

direction = -1 (int)

motor_type = 0 (int)

current_lim = 30.0 (float)

inverter_temp_limit_lower = 100.0 (float)

inverter_temp_limit_upper = 120.0 (float)

requested_current_range = 60.0 (float)

current_control_bandwidth = 100.0 (float)

odrv0.axis0.encoder

Out[475]:

error = 0x0000 (int)

is_ready = True (bool)

index_found = True (bool)

shadow_count = -1095 (int)

count_in_cpr = 7097 (int)

interpolation = 1.0 (float)

phase = -0.07473278045654297 (float)

pos_estimate = -1094.00634765625 (float)

pos_cpr = 7097.97509765625 (float)

hall_state = 1 (int)

vel_estimate = 1.25 (float)

calib_scan_response = 9418.0 (float)

config:

mode = 0 (int)

use_index = True (bool)

find_idx_on_lockin_only = False (bool)

pre_calibrated = False (bool)

zero_count_on_find_idx = True (bool)

cpr = 8192 (int)

offset = -4591 (int)

offset_float = 0.06299999356269836 (float)

enable_phase_interpolation = True (bool)

bandwidth = 100.0 (float)

calib_range = 0.019999999552965164 (float)

calib_scan_distance = 50.26548385620117 (float)

calib_scan_omega = 12.566370964050293 (float)

idx_search_unidirectional = False (bool)

ignore_illegal_hall_state = False (bool)

set_linear_count(count: int)

Got an Idea which changes could help my hyperactive motor calm down?