Odrive v3.6 M0 port not working in ENCODER_MODE_HALL mode and cannot be written back to incremental mode

Dear odrive community,

My name is Goro and I bought an Odrive v3.6 56v board.

At first, we test M0 port using a hub motor (with encoder)

We use ENCODER_MODE_Incremental mode and everything seems to be alright.

However, after we change our motor into another hub motor(with hall sensor, 10 pole pairs, 60 cpr)

the Odrive board couldn’t find odrive (for 10 minutes long)

Then, we try to unplug the “encoder port” of our motor,

i.e. we only connect the motor’s “current wire” to M0 port and left the encoder port unplugged,

the Odrive could detect odrv0 now, and after dump_errors:

we got illegal hall state encoder error.

It seems reasonable since we didn’t connect the hall sensor wires to the Odrive.

However, if we connect the wires, then type any command,

the odrivetool program would crash and no longer listen to any command (not even “exit” command)


We have checked every wire connection, upgrade firmware to v4.0.12, and use multimeter to measure the voltage output of encoder port, and everything seemed to be fine.

Eventually, we tried to write back the encoder_mode to ENCODER_MODE_INCREMENTAL but the program crashed again.

It seemed like the odrive board’s M0 port couldn’t be wrote back since we tried the same thing to M1 port and everything was normal and functional.

We have suffered from this problem for weeks and still couldn’t solve it after viewing so many forums on Odrive Community.

Do you have any idea of experience similar to this situation?

Really need helps!!
Thank you very much.


Hi Goro,
It sounds as if there is a ground loop between the USB and your power supply.
Can you try running from a battery temporarily to see if this fixes the USB issue?

Dear towen,

Thanks for your quick advice,
Unfortunately I did use a 24V Li-ion Battery instead of power supply,
But the problem remained.