I have a motor, the phase register is 8 ohm.
I want to drive this motor using odrive34 board, the firmware is newest.
when I set motor_type = MOTOR_TYPE_HIGH_CURRENT, odrive34 report error ERROR_PHASE_RESISTANCE_OUT_OF_RANGE
when I set motor_type = MOTOR_TYPE_GIMBAL, odrive35 report error ERROR_CONTROLLER_FAILED
log info of two case as below:
================
Reconnected to ODrive 2058306A354B as odrv0
In [72]: odrv0.erase_configuration()
In [73]: odrv0.axis0.motor.config.current_lim = 4
In [74]: odrv0.axis0.controller.config.vel_limit = 500
In [75]: odrv0.axis0.motor.config.calibration_current = 4
In [76]: odrv0.config.brake_resistance = 0.47
In [77]: odrv0.axis0.motor.config.pole_pairs = 7
In [78]: odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT
In [79]: odrv0.axis0.encoder.config.cpr = 4096
In [80]: odrv0.save_configuration()
In [81]: odrv0.reboot()
Oh no odrv0 disappeared
ChannelBrokenException Traceback (most recent call last)
/usr/local/lib/python3.5/dist-packages/fibre/shell.py in
----> 1 odrv0.reboot()
/usr/local/lib/python3.5/dist-packages/fibre/remote_object.py in call(self, *args)
160 for i in range(len(args)):
161 self._inputs[i].set_value(args[i])
–> 162 self._parent.channel.remote_endpoint_operation(self._trigger_id, None, True, 0)
163 if len(self._outputs) > 0:
164 return self._outputs[0].get_value()
/usr/local/lib/python3.5/dist-packages/fibre/protocol.py in remote_endpoint_operation(self, endpoint_id, input, expect_ack, output_length)
307 try:
308 if wait_any(self._resend_timeout, ack_event, self._channel_broken) != 0:
–> 309 raise ChannelBrokenException()
310 except TimeoutError:
311 attempt += 1
ChannelBrokenException:
Reconnected to ODrive 2058306A354B as odrv0
In [82]: odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
In [83]: odrv0.axis0.error
Out[83]: 64
=====================
Reconnected to ODrive 2058306A354B as odrv0
In [82]: odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
In [83]: odrv0.axis0.error
Out[83]: 64
In [84]: odrv0.erase_configuration()
In [85]: odrv0.axis0.motor.config.current_lim = 4
In [86]: odrv0.axis0.controller.config.vel_limit = 500
In [87]: odrv0.axis0.motor.config.calibration_current = 4
In [88]: odrv0.config.brake_resistance = 0.47
In [89]: odrv0.axis0.motor.config.pole_pairs = 7
In [90]: odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
In [91]: odrv0.axis0.encoder.config.cpr = 4096
In [92]: odrv0.save_configuration()
In [93]: odrv0.reboot()
Oh no odrv0 disappeared
ChannelBrokenException Traceback (most recent call last)
/usr/local/lib/python3.5/dist-packages/fibre/shell.py in
----> 1 odrv0.reboot()
/usr/local/lib/python3.5/dist-packages/fibre/remote_object.py in call(self, *args)
160 for i in range(len(args)):
161 self._inputs[i].set_value(args[i])
–> 162 self._parent.channel.remote_endpoint_operation(self._trigger_id, None, True, 0)
163 if len(self._outputs) > 0:
164 return self._outputs[0].get_value()
/usr/local/lib/python3.5/dist-packages/fibre/protocol.py in remote_endpoint_operation(self, endpoint_id, input, expect_ack, output_length)
307 try:
308 if wait_any(self._resend_timeout, ack_event, self._channel_broken) != 0:
–> 309 raise ChannelBrokenException()
310 except TimeoutError:
311 attempt += 1
ChannelBrokenException:
Reconnected to ODrive 2058306A354B as odrv0
In [94]: odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
In [95]: odrv0.axis0.error
Out[95]: 0
In [96]: odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
In [97]: odrv0.axis0.error
Out[97]: 0
In [98]: odrv0.axis0.controller.pos_setpoint = 1000
In [99]: odrv0.axis0.error
Out[99]: 512