Abnormal behavior with the same parameters

Hi everyone!

I`ve got a ODRIVE 3.6 and BLDC configured in sensorless mode.

I observe strange behavior: sometimes everything works correctly, and sometimes the BLDC rotates in the reverse direction at low speed when starting the test and seems struggling.

I’m running a simple test in python:

import odrive
from odrive.enums import *
import time

odrv = odrive.find_any()

try:
for i in range(1):
odrv.axis0.requested_state = AxisState.CLOSED_LOOP_CONTROL
time.sleep(1)

    odrv.axis0.controller.input_vel = 15
    time.sleep(5)
    
    odrv.axis0.controller.input_vel = 5
    time.sleep(3)
    
    odrv.axis0.controller.input_vel = 0
    time.sleep(1)
    

    odrv.axis0.requested_state = AxisState.IDLE 
    time.sleep(1)

What could be the reason? I have over 50% tests going this way.

Hi! Sensorless mode isn’t supported at low speeds, especially not zero speed. If you want deterministic/precise control at low speeds, you’ll need to use an encoder.

1 Like

I unplugged second BLDC from axis1. Now 10/10 tests passed for axis0. Some noise problems?

Hm, that could be the case. v3 definitely has bad cross-coupling issues. What’s your end goal / use case?

1 Like

I wanted to control two motors for my project. Now it looks like I’ll have to buy a second controller and connect them via CAN.

I’d definitely recommend grabbing an S1 or similar, the reliability and performance is higher. Why can’t you use an encoder though?

1 Like

I have two hoverboard motors with hall sensors. I`ve configured Odrive for position control, tested both BLDC - the same results. As soon as I turn off the second motor, the test is successful.

Thanks for the recommendation! I will focus on this option.

Wait - if you have hall sensors, why are you using sensorless mode?

Because my project is related with the sea. To do this, I bought two thrusters. They don’t have sensors.