How can I know if a specific BLDC motor works with ODrive or no?


There are many motors on my list and most of them are expensive and I cannot purchase all of them to try them with ODrive. Also, I don’t want to bother you all by posting a topic about each motor asking if it is ODrive compatible or no. I have tried multiple motors from Hobby king and they work perfectly with ODrive, but I am currently looking for better motors and they have values way different than these hobby motors. For example, sometimes motors require high currents while other require low currents, also some motors come with 4 or more cables.

So, is there a guideline or parameters that I should look for when selecting a motor for ODrive?

The main guidelines to use are the ODrive specs themselves… Mainly its maximum voltage and current ratings. You have to work back from the motor’s spec and your own mechanical spec to see if they are suitable for your application.

The ODrive will “Work” with almost any 3-phase electric motor. (there is even a branch for induction motors).
It does NOT (yet) work for 2-phase motors such as stepper motors.

It is obviously designed for low-voltage “permanent-magnet synchronous motors” (PMSMs), specifically “hobby brushless motors”.
You can use industrial motors, but you need to be aware that their back-EMF constant is usually much higher than hobby motors, because they are designed for higher voltages.
They will still “work” with ODrive, but if you select an industrial motor with a 140V/krpm back-EMF constant, you will only be able to drive it at about 300rpm no-load speed, and the torque will drop off sharply due to its high resistance. This means you have less control headroom available for acceleration. Basically, the performance will be terrible compared to when used with the mains-fed controller it was designed for.

When you say you have a “4-wire” motor, one of them is probably a ground connection to the casing. You should connect this to the negative supply of the ODrive. (It could be a stepper motor, but that should be obvious when you try to turn the shaft)
If it has more wires than that, then it probably has a built-in encoder and/or Hall sensor.
There are a few motors that have six “power” wires. This normally just means that you can connect it in either “star” or “delta” configuration. You need to RTFM on the motor’s datasheet to find out how to wire them, but pretty much any 3-phase permanent-magnet motor will work (to varying degrees of performance, due to the low voltage)

If you’re still unsure, post details of some motor here and we can tell you if it is compatible or not. See the other thread here: 10 Nm torque motor selection


Thank you very much for the detailed answer.

Let me summarize your reply into bullet points to check that I understood your comment:

  1. Maximum Voltage of the motor should be between 12-24V or 12-56 (in case 56V version is used)
  2. Maximum Current of the motor should be less than 120A.
  3. The motor should be a 3-phase motor with low back-EMF constant
  4. ODrive is not designed for heavy power motors such as industrial motors and induction motors.
  5. The motor should have a minimum of 3 wires. A 4th wire might be ground wire, more than 4 then there are sensors in the motor such as encoders, temperature sensors, or hall effect sensors.

About point #2: is there a minimum preferred max current? What about motors with a maximum current of 2 or 3A. For example these:

About point #5: If the motor had a built-in encoder then I simply connect their wires to the encoder wires, but what if there other sensors such as temperature sensors, or hall effect sensors?

Thank you again for your valuable comment.

Not exactly.

  1. Back-EMF of the motor at your maximum required RPM should be lower than 40V. Ideally, it should be about half of your power supply voltage.
    Personally, I would ignore the 24V ODrive and always use the 56V version, whatever motor & power supply I am using. I see no advantage at all in owning the 24V version.
  2. The current needed for your continuous torque requirement should be less than 50A (with passive cooling). You can exceed that up to 120A for short bursts e.g. for acceleration. With active cooling you could increase the continuous rating to 90A (but the peak rating would remain the same at 120A) and with liquid cooling you could perhaps sustain 120A continuously, but your efficiency would be terrible.
  3. Back EMF constant is the ‘opposite’ of “Kv”. Back EMF constant is usually defined as volts/krpm (or even volts/rad/s), whereas “Kv” is defined as rpm/volts at zero load, simply because it is easier to measure it this way with hobbyist equipment such as an ESC and an optical tacho.
  4. ODrive is not designed for high voltage motors such as the vast majority of industrial motors and induction motors. (some heavy high-power motors such as those designed for automotive use are designed for the same voltage range as ODrive, but maybe a higher current range). Generally they can still work, but performance will usually be poor.
  5. Correct. You need a minimum of 3 wires for a 3-phase motor. :stuck_out_tongue:

With regards to low-current motors: The ODrive’s current measurement system has configurable gains (four different gains, IIRC). The lowest of these is set up for motors up to 40A, I think. That means with a 4A motor, you are losing most of the dynamic range of the current sensor. That doesn’t mean it won’t work, but you might get poor performance compared to a controller designed for low power motors.

RTFM. Read the documentation on connecting Thermistors and Hall sensors to ODrive.

TL;DR: “Suck it and see” :stuck_out_tongue:

1 Like

@towen can you please comment on this?

Is it possible to sink both channels with 1 motor?