Hoverboard motor keep disconnecting

Hi
I am planning my 6 DOF motion simulation and using 6 actuators for each actuator i am using 2 hoverboard motors. I am controlling each actuator via one Odrive V3.6 and 56 volt. And running the system via Uart.
My problem is one motor is located far away from the Odrive and the motor keep disconnecting. I believe due to the long cables. Cables are about 1.5 meters for the motor that keeps disconnecting. the other motor is running without any issue sofar. Even when I do switch the motors it is always the one with longer cable will have the issue. I tried many things like different cables. Even using shielded internet cables did not help. I used also Ferrite ring and 22nF capactiors and still the motor get disconnected.
I am sure it must be something related to the length of the cables because i followed up strictly the instruction and i am able to run both motors sometimes for 10 minutes before the one motor get disconnected.
Looking for help or any ideas ?
Below the codes i am using
Best regards

Shaker
odrv0.erase_configuration()
odrv0.save_configuration()
odrv0.reboot()

odrv0.config.enable_uart_a = True
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis1.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.save_configuration()

odrv0.config.enable_brake_resistor = True

odrv0.axis0.motor.config.pole_pairs = 15

odrv0.axis0.motor.config.resistance_calib_max_voltage = 4

odrv0.axis0.motor.config.requested_current_range = 25

odrv0.axis0.motor.config.current_control_bandwidth = 100

odrv0.axis0.motor.config.torque_constant = 8.27 / 16

odrv0.save_configuration()

odrv0.axis0.encoder.config.mode = ENCODER_MODE_HALL

odrv0.axis0.encoder.config.cpr = 90

odrv0.axis0.encoder.config.calib_scan_distance = 150

odrv0.axis0.encoder.config.bandwidth = 100

odrv0.axis0.controller.config.pos_gain = 1

odrv0.axis0.controller.config.vel_gain = 0.02 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr

odrv0.axis0.controller.config.vel_integrator_gain = 0.1 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr

odrv0.axis0.controller.config.vel_limit = 100

odrv0.axis0.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL

odrv0.axis0.motor.config.calibration_current = 5

odrv0.save_configuration()

odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION

odrv0.axis0.motor.config.pre_calibrated = True

odrv0.axis0.requested_state = AXIS_STATE_ENCODER_HALL_POLARITY_CALIBRATION

odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION

odrv0.axis0.encoder.config.pre_calibrated = True

odrv0.save_configuration()

M1

odrv0.config.enable_brake_resistor = True

odrv0.axis1.motor.config.pole_pairs = 15

odrv0.axis1.motor.config.resistance_calib_max_voltage = 4

odrv0.axis1.motor.config.requested_current_range = 25 #Requires config save and reboot

odrv0.axis1.motor.config.current_control_bandwidth = 100

odrv0.axis1.motor.config.torque_constant = 8.27 / 16

odrv0.save_configuration()

odrv0.axis1.encoder.config.mode = ENCODER_MODE_HALL

odrv0.axis1.encoder.config.cpr = 90

odrv0.axis1.encoder.config.calib_scan_distance = 150

odrv0.axis1.encoder.config.bandwidth = 100

odrv0.axis1.controller.config.pos_gain = 1

odrv0.axis1.controller.config.vel_gain = 0.02 * odrv0.axis1.motor.config.torque_constant * odrv0.axis1.encoder.config.cpr

odrv0.axis1.controller.config.vel_integrator_gain = 0.1 * odrv0.axis1.motor.config.torque_constant * odrv0.axis1.encoder.config.cpr

odrv0.axis1.controller.config.vel_limit = 100

odrv0.axis1.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL

odrv0.axis1.motor.config.calibration_current = 5

odrv0.save_configuration()

odrv0.axis1.requested_state = AXIS_STATE_MOTOR_CALIBRATION

odrv0.axis1.motor.config.pre_calibrated = True

odrv0.axis1.requested_state = AXIS_STATE_ENCODER_HALL_POLARITY_CALIBRATION

odrv0.axis1.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION

odrv0.axis1.encoder.config.pre_calibrated = True
odrv0.axis1.config.startup_closed_loop_control = True
odrv0.axis1.config.startup_closed_loop_control = True
odrv0.save_configuration()
odrv0.reboot()

Plase anyone can help?

Try CAN. It’s much less successible to noise and works with long lines.
Or reduce UART baud rate.

Thank you for your feedback.
The issue is not related to the uart, it is related to the cables of the hall sensor of the hoverboard motor.
Best regards
Shaker

Hi - what specific error are you getting on the ODrive when the motor fails? And can you post a picture of how you’re using the ferrite rings and capacitors?

Hi,
Thanks for your feedback.
I used another Odrive that i have and the issue is solved.

Best regqrds
Shaker