Configuring Hoverboard Motor - Console Hangs.. then ChanelBrokenException

I am new to oDrive, following the Getting Started and Hoverboard Guide successfuly until this section…

odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.vel_setpoint = 120
# Your motor should spin here

Once the motor starts spinning (yay!), I cannot change the vel_setpoint = 0 or type anything at all. The console freezes. Keystrokes after this (besides a control break back) do not seem to matter, the odrivetool remains unresponsive.

Eventually, I get a ChanelBrokenException message.

After the ChannelBrokenException message, I can type again. The commands seem to work. I can stop the motor (yay! again)

odrv0.axis0.controller.vel_setpoint = 0

but I eventually get another ChannelBrokenException message, just like the first one. Each subsequent command results in no noticeable response but I get the same error message.

I have not been able to find an explanation of or solution to this issue. Honest, I tried. Please feel free to point me at any references that might be helpful.

Full disclosure, I have not yet installed the 22nf resistors on the Hall Sensor connections, since from what I read that solves a problem related to M0 and M1 crosstalk. I am not there yet. Are they needed with a single hoverboard motor?

HW Ver 3.6 56 V
FW Ver 0.4.10
Anaconda Python
Windows 10

Update ---- Now the motor will not spin up at all and console hangs after

odrv0.axis0.controller.vel_setpoint = 120

I can only interrupt it by quiting odrivetool ((control break). To try and fix it, I redid the motor and encoder calibrations.

odrv0.axis0.motor.config.pre_calibrated = False
odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION
odrv0.axis0.motor.config.pre_calibrated = True

odrv0.axis0.encoder.config.pre_calibrated = False
odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION
odrv0.axis0.encoder.config.pre_calibrated = True

odrv0.save_configuration()
odrv0.reboot()

Still hangs.

I found instructions on resetting the oDrive default configuration

odrv0.erase_configuration()
odrv0.reboot()

I reentered everything on the Hoverboard Guide again. This time I got the console prompt after starting up the motor. I was able shut it down.

odrv0.axis0.controller.vel_setpoint = 0
odrv0.axis0.requested_state = AXIS_STATE_IDLE
quit

and turn it all off.

After working on this for several days, I am calling it resolved for now.

We’ll see if it works later.


Update - Original symptoms returned…

odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.vel_setpoint = 120
# Your motor should spin here

Once the motor starts spinning, I cannot change the vel_setpoint = 0 or type anything at all. The console freezes for 25 seconds.

Eventually, I get a ChanelBrokenException message.

Then I can enter comands as long as I wait 25 seconds for the next ChanelBrokenException message. (copy above)

Any help would e apreciated.

may you please show us what’s the solution of this error?
“ChannelBrokenException message”

To be honest, I do not know the solution. I think the message is what happens when the odrivetool can’t reach the odrive.

Perhaps one of the people who know what they are doing can chime in on the ChannelBrokenException message.

2 Likes

I am running into the same issue and have followed your instructions will little improvement. Have you found a solution?