Component Selection

Power Supply


Generally, if you want to max out the capability of your motor controller and/or minimize conduction losses, you should pick the highest possible DC voltage. This will maximize the achievable speed with a given motor and at the same time reduce DC current (and therefore losses).

If you don’t plan to do active braking, the maximum system voltage is equivalent to the motor controller’s rated voltage.

During active braking the DC voltage at the motor controller can rise a bit, especially if the power sink (battery or active clamping circuit) is not close to the motor controller. Therefore, if you’re going to use active braking, pick the nominal system voltage to be a few volts below the motor controller’s voltage rating.

The voltage rating of the ODrive is based on its internal components (capacitors and FETs) and must not be exceeded.

If you already selected a motor and don’t need high velocities, you can save cost by using a lower DC voltage. See the equations in the Motor section for details.


Some motors have a voltage rating, which makes people wonder “can I use this 24V motor with a 48V power supply?”. The answer is almost always yes. These voltage ratings are usually just a cryptic way of specifying a velocity rating. See below for the relationship between DC voltage and motor velocity.

The real voltage limit of most motors usually comes from its internal isolation and is on the order of 100V or more.


The mechanical power \(P_{mech}\) exerted by a spinning axis is equal to the exerted torque \(T\) multiplied by angular velocity \(\omega\). The electrical power \(P_{elec}\) is equal to mechanical power plus losses \(P_{loss}\):

\[P_{elec} [\mathrm{W}] = \underbrace{T [\mathrm{Nm}] \cdot \omega [\mathrm{rad/s}]}_{P_{mech}} + P_{loss} [\mathrm{W}]\]

Note that when the motor is braking (regenerating electricity) \(T\) and \(\omega\) will have opposing signs and \(P_{elec}\) can become negative (after feeding losses).

The losses are dominated by conduction losses in the cables (both DC and AC side) and in the motor controller. They can be minimized by using thicker and shorter cables and minimizing operating current (by maximizing system voltage).

To pick a suitable power rating for the power supply, we recommend that you determine (or define) the load profile of your application. That means, for any velocity, define how much average and maximum torque will be needed. This will give you an estimate of the peak and continuous power usage of your system.

If you don’t require maximum torque all the way up to maximum velocity, you can save cost on picking a lower power rating.

Other Considerations

If you use active braking, the power needs to go somewhere. Most AC/DC power supplies cannot take reverse power and attempting to push power into them will raise the DC voltage and eventually destroy the power supply or the ODrive or both (unless you have set a DC overvoltage trip level).

There are various ways to mitigate this:

  • Use batteries instead of an AC/DC supply

  • Use an active clamping circuit on the DC bus.

  • Coming soon: Use an ODrive active braking module.

  • Coming soon: ODrive S1 will include terminals for a braking resistor.


Kv-number / Torque Constant

The kv-number \(k_v\) and the torque constant \(k_t\) are two sides of the same coin. The kv-number specifies how much max velocity (RPM) you get per volt of DC voltage and the torque constant specifies how much torque you get per amp of AC current. They are inversely proportional:

\[\begin{split}k_v [\mathrm{rpm/V}] = 8.27 / k_t [\mathrm{Nm/A}] \\ k_t [\mathrm{Nm/A}] = 8.27 / k_v [\mathrm{rpm/V}]\end{split}\]

Either of the two is usually specified by the motor vendor, although for hobby motors the specified value can be inaccurate.

In an ideal system, the maximum no-load speed \(v_{max}\) of a motor is proportional to the DC voltage \(V_{DC}\) of the system and \(k_v\):

\[v_{max} [\mathrm{rpm}] = V_{DC} \cdot k_v [\mathrm{rpm/V}]\]

(With field weakening it is possible to exceed this limit, however the ODrive does not yet support field weakening.)

In reality, you need to factor in some margins to account for things like voltage drop in the power source under load and friction in the motor.

For ODrive Pro with an average hobby motor:

\[v_{max} [\mathrm{rpm}] = (V_{DC} - 2 \mathrm{V}) \cdot k_v [\mathrm{rpm/V}] \cdot 0.95\]

For ODrive S1 with an average hobby motor:

\[v_{max} [\mathrm{rpm}] = (V_{DC} - 2 \mathrm{V}) \cdot k_v [\mathrm{rpm/V}] \cdot 0.74\]

Analogously, the maximum zero-speed torque \(T_{max}\) of the system is proportional to the current rating of both motor and controller and \(k_t\):

\[T_{max} [\mathrm{Nm}] = I_{max} \cdot k_t [\mathrm{Nm/A}]\]

The current capability of both motor and controller is usually thermally limited and therefore depends on cooling.

Therefore, given a specific motor controller and power supply, you can trade off maximum no-load velocity and maximum zero-speed torque by choosing the kv-number accordingly.


As specified in the section above, there is a direct proportional relationship between torque and motor current. You can use the same formula to determine the motor current requirement based on the desired maximum torque.

To get maximum torque capability, choose a motor with a current rating that matches the current rating of the motor controller.

Other considerations

  • Some hobby motors have low quality bearings and are not recommended for long heavy-duty loads.

  • If you apply unusual load on the motor (e.g. significant axial load), make sure the bearing arrangement suits your use case.

  • If you need high positioning accuracy or smoothness, it is recommended that you choose a motor with low cogging torque. Some motors have a skewed magnet arrangement to reduce cogging torque.

  • ODrive motors have a shaft on both ends to make it easier to mount encoders.