Some questions about Odrive and motors current ratings


#1

Hello everyone!

First of all, I am new in the community. I discovered ODrive a couple of weeks ago because I want to build a robot that uses brushless motors and I am seriously considering about getting one (or even several) ODrives.

But first, I would like to know the answers to some questions that I have. First I explain the context: my application is quite demanding and I would like to have quite a bit of torque specially at start up and also I would like to use the sensorless feature. Now, even though I think that I know just enough about motors in general, I am having a hard time understanding the specs that robotics suppliers provide about their motors. Here are the questions:

  • I was having a look at the motor: ‘9235-100KV Turnigy Multistar Brushless Multi-Rotor Motor’. According to their page, they have a spec that is Max Current = 57 Amps. My question is: this current refers to maximum continuous current? I mean, if I constantly apply a current of 57 amps, it should be fine, right?

  • For the same motor as before, what could happen if I apply higher currents? I would like to have a bit more torque for short periods of time (for acceleration) without using gearboxes. I could accomplish this by applying more current. Is it ok as long as the temperature of the motor does not raise too much? Or the motor could break? According to the datasheet, its resistance is just 0.055 Ohm. This means that at 48 volts, I could potentially reach around 400 amps (taking into account battery internal resistance). Is it ok to do so for short periods of time while monitoring that its temperature is not too high?? What would be that maximum temperature?? 100 degrees?

  • Regarding the ODrive: I have seen that it was designed with the use of encoder feedback in mind. However, I would like to use it in sensorless mode. Does it perform comparable to other ESCs in this mode?

  • I read the very nice article by Richard Parsons about the thermal performance of the ODrive. My question here is similar as for the motor. Is it ok if I apply large currents (of up to 300-400 amps) for a short period of time, as long as the temperature does not reach the 100 degrees? Or is there any risk of blowing up the board?

I really like the idea of the project, and I am an embedded system developer myself, so I will probably get one board anyway for experimentation, but some help regarding those questions will very much appreciated.

Thanks a lot beforehand!

Jorge.


#2

Hi Jorge, thanks for taking the time to formulate your questions so thoroughly.

The current rating given by the Chinese hobby motor manufacturers is a bit imprecise. I’ve come to understand them as “Very optimistic continuous current”. This means that you could probably run that current with very good forced air cooling, or conversely with no significant airflow you can maybe run about half. Usually the windings in these motors use “B class insulation” which has a rated temperature of 130 degrees C. So that would be your max motor temperature generally.

Yes in general you can pulse a higher current, as long as you keep the temp below the required value. This means keeping the RMS current (over ~5s window) to below the equivalent continuous current. However one thing you need to keep in mind is that the motors will exhibit magnetic saturation above a certain current. That is, the torque is generally linear with current, but beyond a certain current, the torque produced will not go beyond a certain value. @Nathan did some tests, and it turns out that the saturation current is about 2x the rated current of at least the hobby motor he tested.

On a motor rated 35A:

As for the ODrive, sure you can pulse very high currents for a short time, though I wouldn’t recommend going over 150A. Also, in sensorless mode, the main restriction is that you need the motor to be spinning at some minimum speed to be able to control it well. So we have a low power, low robustness “blind start ramp” that will spin the motor up. Once it is at speed we can do high torque and good velocity tracking. In other words, we cannot have any position control, and the velocity control doesn’t exist at zero speed in sensorless mode.


#3

Thanks a lot for your reply Oskar! It was really helpful and it actually made up my mind :smiley:

In my application I will not need position control. Just speed control, because I want to build a battle robot and I was planning to use the Odrive as the ESC for the drivetrain. Especially because I want to fine tune the control parameters and adapt its firmware to my needs, and being open source is perfect for me. With other ESCs I would not be able to do it I think.

Due to the nature of battle robots, I need it to be as robust as possible…so I think that I have to go for sensorless mode, even though I sacrifice a bit of low speed torque. However, hopefully by inserting a gearbox I can reduce the problem a bit.

Thanks a lot again and I will keep you updated in case I go ahead with this!

Jorge.


#4

Okay cool.
FYI we don’t have any “dynamic” twitch start for the sensorless, we only have a one-shot ramp start. This means with the current firmware you are stuck if you come down to a standstill again.
We could add twitch start as a feature, then it would behave similar to other ESCs at startup.

I would recommend that you consider designing in hall sensor feedback, that would make the low speed torque more robust even if we do implement the twitch start. There are some people selling kits that let you add hall sensors to outrunners, and Hobbyking have hall feedback on their “SK8” series of outrunners.


#5

Hi Oskar,

What do you mean with ‘dynamic twitch’ start? Whats the difference (with respect to the working principle) of a standard ESC and your sensorless algorithm?

I will try to include hall sensors in my design in any case. But in any case, if the hall sensors break down in the middle of a battle, I would like to be able to switch to sensorless mode for more robustness.

Cheeers.


#6

Here is an example of twitch start (or jitter start):

And here is ODrive doing a ramp start: