How does o-drive determine q-axis current

How does O-drive determine q-axis current without knowing the motor’s winding
type (wye vs delta)? For example, does it assume all motors are wye wound?

I’m aware that there’s a transformation from line current (what can be measured by the drive) to q-axis current, but
that relationship depends on the winding type, so I was wondering how this transformation is possible without knowing the winding type. It seems possible, since all line current goes to q-axis current with proper, in-phase commutation (i.e. d-axis current is zero). Can anyone help me understand this?

The math in the ODrive firmware always assumes wye configuration.

This means that if you connect a motor that is actually delta-wound, the true phase current amplitude (and thus Iq) will be sqrt(3) lower than what ODrive thinks and the true phase voltage amplitude (in this case line-to-line voltage amplitude) will be sqrt(3) higher than what ODrive thinks.
Likewise if you measured phase resistance and inductance with the ODrive, the values you get out will be off by a factor of 3.

However practically it doesn’t make a difference, unless you care about the absolute values inside the motor. The factors all cancel out so that from the outside the delta and wye configurations are indistinguishable. The true power that is delivered to the motor will be equivalent to what the ODrive thinks, regardless of motor configuration.


Hello Samuel,

Thank you for your reply – it is really helpful know that the O-drive assumes wye wound motor. I agree that at the end, the power consumptions are agnostic to winding configuration; however, I think it can still cause an issue when users try to model the motors. For example, the torque estimation can be inaccurate if q-axis torque constant is used with q-axis current from different winding type. To solve this issue, what would it be hard for O-drive to provide an option to switch between these two winding types?

Please let me know what you think and thanks again.
Ung Hee

1 Like

Yes it’s true that the torque constant setting would need to be corrected by some factor.

Applying a correction factor to all exposed variables would be possible in principle but require due diligence. If there’s strong interest in such a setting It might be better to add it to the GUI. But the easiest way would be to just provide a section in the documentation about this topic. Feel free to make a PR to that extent.

1 Like

Thanks for your reply and suggestion.

We noticed the issue of assuming one type of winding (or not specifying the info in datasheet) is not only the case for O-drive but also for other driver/motor manufactures. This is important for us because we build robots based on the current and voltage. To this end, we are currently writing a technical note, and would like to hear your feedback on this topic, and potentially invite you to consult the paper. I can send you more information if you are interested (email address:

Thanks again and please let me know your thoughts,
Ung Hee