Stall testing 775 Pro, surprisingly poor result

It’s really easy to do in your own code though.

Curious where this value came from (0.2uH). I measure 90uH on a CIM and 40uH on a 775. This kinda changes things a lot.

Nope, DC brushed motor speed is a function of armature current and magnetic field strength. By varying the “on” time, a motor controller varies the average armature current. In testing **with a variable voltage source **the armature current will vary with input voltage. However, it is not efficient nor feasible to vary voltage as too much power is lost. Think what adding a variable resistor in series with the motor actually accomplishes. The voltage across the motor varies because the current through both the motor and the series resistor varies as the resistor changes value. Simple Ohm’s Law. If the motor had a series resistance of 0.09 ohms and the series resistor also was 0.09 ohms, then the voltage across the resistor and the motor would be 6 volts. However, the resistor would also be dissipating 400 watts in that condition.

The switching regulators vary output voltage by varying the switching frequency and therefore current in the series inductor(s) or transformers. As the frequency varies, the inductance provides a different impedance and therefore varying current. There is also a feedback circuit that manages the voltage regulation and an output filter to smooth the switching frequency in the output. Typical values for these little devices is in the 100kHz + range because components become very small as the frequency goes up.

You will need to look at the output of motor controllers with a scope to see that the switching circuitry does not change output voltage. The FRC controllers use a common method to vary current in DC motors by pulse width modulation of the output voltage swing. In the Talons, this is the input voltage less the wiring voltage drop, the series current sense resistor and the “ON” resistance of the MOSFETs. For all intents and purposes, this is ~10.5 volts (typical) with a fully charged battery. The output of the Talon is a varying pulse width, 10.5 volt peak square wave at full charge. Search “pwm motor controller output waveform” for some great pictures and discussion.

Well you can look most anywhere for details on DC motor control. I was first introduced to this issue when investigating a motor control circuit for a model train in about 1965. Without the pulse to get the motor moving, model trains have a “jump” response when started. That means that when advancing the throttle, the train would not move even though lights on the train might glow until the throttle reached a high enough value to get the motor moving. Then all of a sudden it was moving pretty fast. Slowing down is a different story as the motor is already moving. It will eventually stop even with some voltage on the motor, but the friction has been overcome and the energy of the moving train will make that throttle value less than the start throttle value.

I knew I was going to screw that up. I was doing more than one problem at a time. I got the value of 59uH from here…

I figured a nice value would be a third of that, but put 0.2uH into the calculation instead of 20uH. That makes the numbers significantly higher. Full voltage across the motor would take ~1mSec not 11uSec. So the voltage across the motor will never reach full value until at full throttle.
I should have looked back a previous discussion with Ether many years ago where this effect caused a more linear response in higher switching frequencies. The IFI controllers switching frequency was 150 Hz.

Ah, so now I see why your confused. Your knowledge is from early pulsed power model trains which replaced rheostats (actual current control motor drivers).These controllers typically would pulse at 120 times per second leaving enough time for the inductor to decay before receiving it’s next pulse. In this case your understanding would be correct.

The issue is modern FRC controllers pulse at 15000 times per second, 125 times faster. In this case the inductor does not have enough time to decay fully leading to a smoothing effect on the voltage. The reason we do this is because it generates far less heating in the motor and smoother control.

Microchip Brushed DC Motor Fundamentals

The speed of a BDC motor is proportional to the voltage
applied to the motor. When using digital control, a
pulse-width modulated (PWM) signal is used to generate
an average voltage. The motor winding acts as a
low pass filter so a PWM waveform of sufficient
frequency will generate a stable current in the motor
winding. The relation between average voltage, the
supply voltage, and duty cycle is given by:


Speed and duty cycle are proportional to one another.
For example, if a BDC motor is rated to turn at 15000
RPM at 12V, the motor will (ideally) turn at 7500 RPM
when a 50% duty cycle waveform is applied across the
The frequency of the PWM waveform is an important
consideration. Too low a frequency will result in a noisy
motor at low speeds and sluggish response to changes
in duty cycle. Too high a frequency lessens the
efficiency of the system due to switching losses in the
switching devices. A good rule of thumb is to modulate
the input waveform at a frequency in the range of 4 kHz
to 20 kHz. This range is high enough that audible motor
noise is attenuated and the switching losses present in
the MOSFETs (or BJTs) are negligible. Generally, it is a
good idea to experiment with the PWM frequency for a
given motor to find a satisfactory frequency.

New data!

Last week, one of our mentors asked “if the safe stall current on a 775 pro is so low because it’s fan isn’t doing any cooling, why not add cooling?” Well 5406 can’t let a good idea go without obsessive study, so yesterday we repeated our stall test + reverse-dyno health test, but with a slight modification to the test rig. The attached photo shows a 120V, 8A Shop Vac, connected to back end of the test motor, blowing as much air as possible through the wrong way :slight_smile:

The test results are also attached. With this setup we were able to increase the stall current limit to 29A (into the Talon, ~55A into the motor) without observing any damage. We probably could have gone higher. This is a pretty significant improvement! It’s enough that we could run the same current limit at stall as we do for regular driving (15-20A for an 8x775 pro drive, maybe 25-30A for 6x775 pro?).

The next question is how much of the Shop Vac’s airflow is actually needed per motor, and what are the best frc-legal ways to deliver it to each potentially-stalled motor. We’ve already got a bunch of ideas churning. Maybe the whole effort won’t be worth it, but at least my team is excited to be doing legit science.

Sounds like you guys are blowing a lot of hot air over there…


1 Like

Cool results! Pardon the pun :slight_smile:

Moving a modest amount of air over a hot component can increase the amount of heat removed quite dramatically.

Har har. I can tell these puns have been smoldering for a while.

To be thoroughly clear, you used the exhaust end of the shop vac?

Considering the traditional legalities of pneumatic vs. vacuum systems that could impact implementation of these findings, I’m curious how much the numbers vary if you pull a vacuum instead.

“The test results are also attached. With this setup we were able to increase the stall current limit to 29A (into the Talon, ~55A into the motor) without observing any damage.”

Please explain how the current roughly doubles through the motor. Please keep in mind, that when the switches are conducting, the load (motor) and source (battery) currents are identical.

Blowing air is fine too, as long as you don’t create a pressure vessel with it. See the fairly common inflatable hangers / blockers / etc of other years like 2016, 2013, etc.

Yep. It was easier to attach to the motor vents that way.

Considering the traditional legalities of pneumatic vs. vacuum systems that could impact implementation of these findings, I’m curious how much the numbers vary if you pull a vacuum instead.

I believe there was a Q&A this year that said a fan blowing into a vented system was not considered a “pneumatic system” for the purposes of the rules. However I can’t vouch for future rules / interpretations.

(Or what Chris said)

That explanation is above my pay grade (maybe Marcus or Al can try), but the Talon is not a simple on-off switch. It’s switching on and off thousands of times a second which, against an inductive load, reduces the voltage from 12 (input) to something (around 5.5V) on the output. The Talon wastes very little power in this conversion, so the output current must be higher (at low voltage) than the input current (at higher voltage). 29A*~11V in = 320 Watts in. 55A * 5.5V out = 303 Watts out. (All numbers listed from memory, subject to handwaviness)

If you’re a fluids guy, it’s very similar to a compressed air nozzle - the volumetric flow rate (current) on the high pressure (voltage) side of the nozzle is slow, but the flow rate on the low pressure side is really fast. But the power (pressure * flow) is roughly the same on both sides of the nozzle (less what the nozzle loses to heat and noise)

This discussion has taken place a couple of times throughout this thread. I suggest reviewing those responses or doing research on chopper drive circuits, inductors and DC-DC convertors.

Short answer is at the high 15.63 Khz switching frequency of a Talon SRX (measured) the motor is a large enough inductor that the motor acts as a low pass filter. This effect is the same reason a DC-DC convertor can produce more current at the output than the input. The assumption that “that when the switches are conducting, the load (motor) and source (battery) currents are identical.” is incorrect as a permanent magnet DC motor is not a purely resistive load.

The assumption that “that when the switches are conducting, the load (motor) and source (battery) currents are identical.” is incorrect as a permanent magnet DC motor is not a purely resistive load.

The drive H bridge is comprised of 4 switches. Suppose we number these Clockwise from the top left 1, 2, 3, 4. When driving, either 1 and 3 are on or 2 and 4 are on.

The electrical motor circuit is modeled as:
Va = Ra * Ia + La * d (Ia)/dt + Ke * omega

Do you agree that Va from this equation is the midpoint Voltage on either side of the H bridge? Assuming that you do, then there is no other current carrying path in the circuit.

When switches 1 and 3 turn on, battery current flows through switch 1 through the motor, through switch 3, and returns to the battery.
Thus, while the switches are on, the source and load currents are identical.

This is not true while synchronous rectification is active. While synchronous rectification is active - let’s assume switches 1 and 2 - current circulates from the motor to switch 2, to switch 1, and returns to the motor.

The switches always carry the same current as the motor. During the On time of the PWM waveform, the battery currents and the motor currents are the same. During the Off time, the battery current is zero, and the motor currents continue to circulate through the switches.

We had an interesting revelation tonight. Our single motor stall test at 9A dropped the vbus to 11V. Our comp bot got away with a current limit of 15 A without blowing motors. But at that current, 8 motors drops the vbus to 7ish volts**, which gives the same power through each motor (because the Talon current limit isn’t voltage compensated). So no need to panic (unless you only stall one gearbox :slight_smile: )

So I have another CTRE feature request: a voltage compensated current limit (aka a power limit).

** Which is a bit weird, because with a system resistance of ~.03 ohms, the voltage drop should have been only 15A8.03ohms = 3.6V.

Your descriptions are misleading. The output of all FRC motor controllers are pulsed between the battery voltage and zero volts. The PWM output will cause motor current to vary with pulse width. The peak output voltage of the controller will vary dependent on motor inductance and the width of the pulse. **However, the controller is not varying the output voltage. **The voltage when measured at the motor may be less than battery input because the combination of the motor inductance and series impedance of the controller and wiring at specific pulse widths will cause a voltage drop in the controller. Please refer to Fig. 8 in the Microchip doc you reference. Please note that the devices are connected to Vsupply and GND. The active devices are never biased in a linear mode as that would cause damage to the devices used. Q1-Q4 are operating in the switch mode where significant device dissipation occurs only during the transition from “ON” to “OFF”.
The discussion in this thread relates only to the 775 motor and not to all legal FRC motors and for a chop frequency of 15kHz. Motor controllers that may not be FRC legal can have chop frequencies as low as 100Hz where the effects of the motor inductance are much less pronounced.
The article you linked to train controls is still the reason motor controllers use PWM switching to this day. (The inductance of HO train motors is much less that of the 775 motor in this discussion) The full supply pulse still allows the motor to move during even short pulse durations because the full motor stall current (less other losses) flows the moment the pulse is applied. Please remember that “stall current” is defined as the current that flows when specified voltage is applied and the motor is not turning.

Brendan, You are correct in that the Talon is low loss, it is not a transformer however. When the voltage across the motor terminals is modified by the inductance of the motor and the series resistance, then the current is also modified. Full specified stall current will flow only when the voltage across the motor is 12 volts. When the voltage across the motor is 5 volts, approx. 55 amps will flow when stalled.

I do want to stress that the voltage measured at the motor is AC at 15kHz and most meters will not accurately measure that voltage/current (ammeters in particular).

The wire in the motor has a specific resistance that can be used for most of these calculations. At 12 volts, stall current of 134 amps will show that resistance to be about 0.09 ohms. This is the minimum resistance of the motor and may be (by motor design) the parallel resistance of two windings because the brush assembly will often bridge two windings (or more). Inductance is also static (when specified) as the magnetic structure of the armature is changing during rotation. If two windings are bridged then the total inductance is the result of the two inductors in parallel. The magnetic structure of the inductor includes the magnets and frame of the motor in addition to the core of the armature.

In analyzing the motor currents, it is assumed the series resistance of the motor is the resistance of the wire in series with a perfect inductor (one that has no resistance). The synchronous rectifier action will carry current only when the motor is turning and converting rotational energy into electrical energy. However, this current is also modified by the series inductance. Your calculations then have to be modified as the circuit resistance had now changed as it only includes the motor wire, motor leads and the “ON” resistance of the MOSFETs in the controller. During the conversion, the effective voltage is also modified by the efficiency of the motor. Power is lost in both cases. It is given up as heat during when voltage is applied or during the time when current is shunted in the controller.

I think the initial confusion in this thread is that the post that spawned this said the controller was directly varying the output current. This sort of implies that the controller as behaving by going “okay, let’s allow 20 amps through”, and that’s not how speed controllers work either. The controller is rapidly opening and closing the electrical connection. This results in an increase or decrease in average current, given a fixed load on the motor. But this is not the only variable controlling the current - the current is highly dependent on the load. This is why I think it’s misleading to say “motor controllers control current” - yes they literally allow or deny current flow, but they are not regulating the amount of current consumed in amps. And the

The switching mechanism of a speed controller also results in, effectively, an increase or decrease in average voltage, and the average voltage is less dependent on other factors than the average current draw is (voltage drop excluded for a minute). Under negligible load, an FRC motor connected to an FRC motor controller allowing a 100% duty cycle from a 6V power source will perform essentially identically to a motor connected to a motor controller allowing a 50% duty cycle from a 12V power source. This is why, as shorthand, we talk about motors as being commanded to particular voltages - effectively, they are - and it’s a lot easier to talk about “a motor running at 6 volts” than saying “a motor connected to a speed controller connected to a 12V power source with the speed controller running at 50% duty cycle”