Maximum Recomended Voltage for Neo Motors?

In order to protect the health of the motor, my team has been using current limits of 60 amps and it has significantly reduced the amount of problems we’ve seen in our neo motors over time. I was wondering if there is a similar thing we should do with voltage, such as clamping our voltage inputs at 8v (or any other number). In general I’d like a better understanding of the effects of current vs voltage on motors, so my questions are

  1. What’s the difference, in terms of motor output, between current and voltage?

  2. Is there a maximum recommended voltage that you should not exceed on neo motors? If so, what is it?

  3. How does running motors on increasingly higher voltage affect how many motors you can be running on that voltage simultaneously? (in other words, can you run out, or is that just based on current?)

  4. How does increasing the voltage applied to a motor (i.e. motor.setVoltage(volts)) affect how much current it is drawing?

  5. How does the FRC battery being 12v impact these things?

Our team only uses the old neo motors (not the vortexes), so info relating to those is particularly useful. Regardless, any help with increasing my understanding of this topic would be greatly appreciated. Thank you!

1 Like

REV specify a nominal voltage of 12V for the NEO, this is the voltage at which the motor should not pull excessive current for its wind. Without proper intelligent current limits and/or thermal protection I wouldn’t go above this but it can be done. I’ve seen a 4S nominal (16.8V) drone motor run very happily at 12S (50.4V) with proper protection (VESC). The maximum voltage a NEO can take would be the insulation breakdown I assume.

The reason for concern is that doubling the voltage roughly doubles the current the motor wants to pull. As heat is generated to the square of current, in a simple resistive element, this can run away quickly.

Motors have power and efficiency curves if you want to get into specifics but their output power is approximately equal to the input voltage multiplied by the input current (P=V*I). As a general rule the higher the voltage the better for the same power, as this means less current. But power electronics often have a hard voltage limit so don’t run those over manufacturer spec without being sure.

For FRC the motor controllers and most motors themselves are designed for the 12V use case in mind. I think hard limiting input voltage would only be used to hard limit motor speed here when the option to current limit is available. For a given load running the motor at a higher rpm with more gearing will decrease current and heat too.

Setting a sensible current limit like you have done is a good step. Designing around the happy output of the NEO will go far as well, such as gearing a shooter to sit at about 80% free motor speed as this is a typical efficient power range. If you are running an elevator that never sees the motor go above 50% spinning speed, gearing it more will reduce the load on the motor and thus risk of excessive current/heat.

Excellent questions! # 1 is the place to start - I think an understanding there will help you reword some of the other questions to be more meaningful.

Voltage is a “push” or a “force”. It has the ability to move electrons through wires, but needs to push against something moveable before any motion occurs.

Current is the actual flow of electrons through a wire - literally, 1 amp is a count of a certain number of electrons past a given point in a wire.

Motor current is a function of the voltage applied by the motor controller, and the speed of the shaft.

Batteries apply some voltage to the motor controller. Motor controllers chop this voltage to apply some fraction of it to the motor itself. This in turn changes how much current the motor draws.

Batteries apply 12 volts when there’s nothing attached. But when some current is drawn, that voltage goes down.

Electrical energy is, conveniently, found by just multiplying voltage and current together. If you have non-zero amps and non-zero volts, you have non-zero watts of energy.

Motors are devices which convert electrical energy (supplied from the battery, metered by the motor controller) into mechanical energy (shaft rotation) and thermal energy (heat).

When motors are under “heavy load”, we mean that a lot of the energy is going into heat, rather than shaft rotation.

Heat build up is a common cause of failure in FRC motors - the insulation on wires inside the motors melts, causing short circuits, smoke, and reduced ability to spin.

Good news, there is test data for how motors perform when under load for a long period of time.

3 Likes

Thank you so much for the help! That all makes a lot more sense now. If you don’t mind, I have some new questions regarding current.

Researching battery brownout, I came across this page of the WPILib docs

which contains information about making a current budget. Since reading, I have been attempting to create a current budgeting system within our code base. However, I am unsure about how to decide the maximum current I should allow to be drawn from the battery at once. Their example, highlighted in the below image, uses 180 Amps as their data shows that 240 amps is dangerous.

However, I became confused after reading this paper here on chief delphi: https://www.chiefdelphi.com/uploads/default/original/3X/f/2/f2c7116c9b8c3dd1bb1f95250289778af1ca36dc.pdf

On page 1 and two (the exact section highlighted in the photo below), they mention how it is "common knowledge) to not exceed 250 amps, making me think that a limit somewhere around 230-240 would be pretty good, a significant amount larger than 180.

My questions are the following: what is a reasonable number to have as a maximum total current draw on the battery, and how would I go about finding experimental value on my team’s individual batteries?

If you are able to help me with these questions, or can direct me to some source of information that can, that would be awesome.

Thanks again!

Using current limits like you are the right way to limit it.

The SparkMax will actually reduce the effective voltage by lowering the duty cycle so that the motor windings pull the amount of current you set.

If you limit the voltage, you will artificially reduce the free speed of the motor and reduce your torque at higher RPMs where the back emf of the motor starts to approach the winding voltage and the current begins to drop.

1 Like

The main breaker is designed to pop at just over 120A after a few seconds, thats typically your first limiter. Honestly I wouldn’t worry too much about current budgeting above that level as if you’re pulling that much regularly something is probably up (or it’s a funky drivetrain).

Better to give each mechanism as much individual current as it wants/should have to enable best performance. Note that the main breaker allows ~200A for a brief period of time, they are quite forgiving.

It’s not a very technical solution, but letting physics limit the high current peaks is the safest way. Actually pulling 180-250A on an FRC robot for more than an instant is pretty hard. As more current is pulled from the battery it’s voltage drops off a cliff, soon it’ll hit 8V and the roborio will start cutting out. If that’s happening, limit current somewhere, aiming for about 10V max drop. Battery test units exist that can tell you the health of a battery (think Battery Beak is one?), useful to picking out pristine units for competition and other ones for practice.

If you really want a software budgeting system, aim to budget continuous currents not peak current. It has a bigger effect on the runtime/life of the battery. ~40A for drive and heavy mechanisms (climber, elevator), ~30A for stuff in-between (say shooters), 20A for light things like flaps or intake rollers. Consider which mechanism will run at the same time as each other less the total overall.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.