Running below 8V and MOSFET changes in V3.6

I’m looking at buying Odrive V3.6 for use down to 6.6V. I found a 2017 post by Oskar where he explained that the lower limit to GVDD is set by the heat dissipation of the MOSFETS. For my situation, I would not be running the motor above 22A. Looking at the NTMFS4935NT1G MOSFET datasheet in the V3.5 schematic on GitHub, the Rdson with a 6.6V gate voltage is 3mOhm giving a power dissipation of around 1.5W at 22A. This appears ok to me. However, in the post I saw you were not recommending GVDD dropped below 9V. Was that for maintaining full rated Odrive current? Also, have the MOSFETS used in V3.6 changed to those in v3.5 or are they still NTMFS4935NT1G?

Assuming this was ok then I was planning on modifying dc_bus_undervoltage_trip_level (in odrive_main.h) down to somewhere in 6V-6.6V range. Bearing in mind I don’t want to use full Odrive rated current are my assumptions missing something? Thank you very much for your time

Hm. Obviously you must have a very good reason for using such a low voltage. However, it will severely affect control performance, depending on the inductance of your motor. The higher the inductance, the more voltage you need to quickly change or reverse the current in the motor phases, which you need to do to get high torque or power performance from your motor.
Also, at such a low voltage the system power/weight is also pretty poor. Efficiency tends to go up with increasing voltage, because resistive losses go as I^2 R.

Can I ask what is your application?
How about an extra cell or two in your battery? :stuck_out_tongue:

Hi towen, thanks for your reply! It’s for an autonomous car competition which doesn’t let us use more than a 2 cell LiPo, so without going to a different chemistry (Where the voltage limit rule does not exist) which would limit our torque or increase the car mass there’s not a lot we can do. Ah, the motor is a hobby type 150W Bldc designed to operate at 7.4V but measurements beyond the Kv and max current aren’t available because it’s a hobby motor. And ideally we don’t want to resort to hobby ESCs as they don’t offer closed loop speed control, sketchy current limiting, and I feel like designing an external controller to close the loop would be a major headache given the black box nature of these hobby controllers.

Are switching DC-DC boost converters allowed?
Some of these can reach >98% efficiency at a few hundred watts, for not a lot of weight.

Nobody should ever be using 6-step hobby ESCs…
Do you have an encoder on the motor?
To get the best out of a BLDC motor, you really need an encoder. Magnetic types e.g. AS5047P are great for size/weight constrained systems

However, using one axis of the ODrive in a size/weight-limited competition robot seems a bit wasteful.
Oskar @madcowswe is working on a compact single-axis version, but I don’t know if it would be ready in time for your competition

Hmm we’ve not thought of that, I’ll find out regarding boost converters and wether we could use one

No we were going to rely on just the motor’s hall effects, but I’ll look into this thanks

Ah okay, we weren’t too concerned with size, and the weight was lower compared to alternatives, we would have taken the additional heatsinks and ports off to save a bit more weight

About the issue of switching inductance, I assumed that the MOSFET’s ‘built in’ diode would deal with the flyback current? Looking at the MOSFET datasheet, there are some characteristics for the diode though no actual current limits, just forward voltage characteristics based on 30A. Could you explain why a lower voltage would affect this and how it relates to the inductive load?

@andrew700andrew
Nothing to do with the MOSFETs
Say you want a current-loop bandwidth of 1kHz. That means that you need to be able to change the current in the coil by 50% in the space of 1ms.
An inductor limits the rate of change of current, by generating an opposing voltage V = L . dI/dt
If you only have V = some low voltage, then the maximum dI/dt will be low - especially if your inductance L is high.
In addition to that, you have the voltage developed by the resistance of the coil, V = IR. This subtracts from the voltage you have available i.e. the maximum rate of increase in current reduces as the current itself increases - it’s a first-order system.
If your motor is already generating a voltage by back-EMF, then this BEMF voltage also subtracts from the volts you have available to overcome both the resistance and inductance of your motor, i.e. your control performance reduces at high speeds as well as at high torques, unless you have a lot of voltage headroom available.

Now, I come from a robotics background i.e. “servo control”, where control bandwidth is of the utmost importance. Maybe for an autonomous car this is less of an issue i.e. it doesn’t matter if you can’t go from zero to full torque in a few milliseconds - however, if you are trying to produce power (torque * speed), you still need to reverse the current in your coils over each electrical cycle - so you still need a high current-loop bandwidth to run at high speeds and high torque, even if you don’t need torque bandwidth.

Ah right I see, thanks for the explanation. I take it you’re saying the problem is much more fundamental than controller hardware limitations.

I am willing to buy an Odrive and experiment to see if it gives us an acceptable level of control, but I was hoping to clarify if the controller hardware would stop me doing this (so long as the firmware was modified)? This is the post by Oskar where he mentioned MOSFETs and what made me believe that they were responsible for the limitations:

Yes exactly. In servo control, which is what ODrive is meant for, it makes very little sense to have a low voltage. In fact even if your motor is “designed” to run at 7V, ODrive will happily run it with 50V without damage, because it has fast, closed-loop current control.

There may well be a limitation on the ODrive MOSFETs (or the more likely the DRV8301 gate-drive chip)
The limitation there is that the MOSFETs themselves have a gate capacitance - the DRV8301 needs to charge/discharge the gate capacitance in minimum time, because the MOSFET generates a lot of heat when it is in between on/off states. As the current rating of the MOSFET increases, so tends the gate capaitance to go up.
Again, resistance, capaitance and parasitic inductance, the gate driver needs a certain amount of voltage to get a fast swing on the gate charge.

Below 8V or so, motor controller designs tend to be “dumb” i.e. no closed-loop current control, low PWM switching frequency, six-step commutation, i.e. hobby ESC style.

@andrew700andrew As per Oskar’s post, the DRV8301 chip has an undervoltage lock-out feature where it will shut down the gate driver to prevent damage to the power MOSFETs. I believe this is configurable in software via the DRV8301’s SPI interface - ODrive sets it at 8V, but by editing the ODrive firmware you could set it down as low as 2.5V (the minimum in the DRV8301 datasheet). Note that by doing this, you will lose switching efficiency and may overheat the FETs as a result. But yes, it is possible.

1 Like