Hi I recently purchased a Odrive for a work project. I am a novice programmer . I have played with the odrive for about a week now and I can’t get it to work for me.
My Setup:
24vdc power supply
47 ohm resister hooked up
Odrive v3.6
motor: https://www.faulhaber.com/fileadmin/Import/Media/EN_2057_B_FMM.pdf
The motor has only 1 pole and has a hall effect sensor that I have hooked up
What I need:
I need to be able to spin the motor to 15000 rpm
The problem I am having:
It calibrates fine- it beeps, then slowly turns one direction… then the other and stops. So I know everything seems to be connected properly.
Any time I try to run it the motor will not turn or if it does it is less then 1 rotation and flags the following errors below. I know I am doing something wrong, but I am hopeless at the moment and would greatly appreciate help.
Thanks for your help in advance.
axis0
axis: Error(s):
ERROR_MOTOR_DISARMED
ERROR_MOTOR_FAILED
motor: Error(s):
ERROR_CURRENT_UNSTABLE
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
encoder: no error
controller: no error
In [233]: odrv0.axis0
Out[233]:
error = 0x0060 (int)
step_dir_active = False (bool)
current_state = 1 (int)
requested_state = 0 (int)
loop_counter = 357282 (int)
lockin_state = 0 (int)
config:
startup_motor_calibration = True (bool)
startup_encoder_index_search = True (bool)
startup_encoder_offset_calibration = True (bool)
startup_closed_loop_control = False (bool)
startup_sensorless_control = True (bool)
enable_step_dir = False (bool)
counts_per_step = 2.0 (float)
watchdog_timeout = 0.0 (float)
step_gpio_pin = 1 (int)
dir_gpio_pin = 2 (int)
calibration_lockin: …
sensorless_ramp: …
general_lockin: …
motor:
error = 0x1000 (int)
armed_state = 0 (int)
is_calibrated = True (bool)
current_meas_phB = -0.4219663441181183 (float)
current_meas_phC = 0.2119901180267334 (float)
DC_calib_phB = 0.019366221502423286 (float)
DC_calib_phC = -0.5742654800415039 (float)
phase_current_rev_gain = 0.02500000037252903 (float)
thermal_current_lim = 4.4958343505859375 (float)
get_inverter_temp()
current_control: …
gate_driver: …
timing_log: …
config: …
controller:
error = 0x0000 (int)
pos_setpoint = 0.0 (float)
vel_setpoint = 0.0 (float)
vel_integrator_current = 0.0 (float)
current_setpoint = 0.0 (float)
vel_ramp_target = 0.0 (float)
vel_ramp_enable = False (bool)
config: …
set_pos_setpoint(pos_setpoint: float, vel_feed_forward: float, current_feed_forward: float)
set_vel_setpoint(vel_setpoint: float, current_feed_forward: float)
set_current_setpoint(current_setpoint: float)
move_to_pos(pos_setpoint: float)
move_incremental(displacement: float, from_goal_point: bool)
start_anticogging_calibration()
encoder:
error = 0x0000 (int)
is_ready = True (bool)
index_found = False (bool)
shadow_count = 3 (int)
count_in_cpr = 3 (int)
interpolation = 0.5 (float)
phase = -1.059565544128418 (float)
pos_estimate = 3.234375 (float)
pos_cpr = 3.2343788146972656 (float)
hall_state = 6 (int)
vel_estimate = 0.0 (float)
calib_scan_response = 48.0 (float)
config: …
set_linear_count(count: int)
sensorless_estimator:
error = 0x0000 (int)
phase = -0.39534294605255127 (float)
pll_pos = -0.38636890053749084 (float)
vel_estimate = 7.5265045166015625 (float)
config: …
trap_traj:
config: …
watchdog_feed()