PWM Brushed High-Torque DC Motor Controller

Hello everyone,

I'm currently stuck on my customer off-road drone project. I purchased a set of these high-torque DC brushed motors from an RC hobby shop which are used for RC rock crawlers. The motors have fifty five windings inside so they spin slower with more torque.

The issue I am having is trying to control the speed of them without loosing their torque and power. When I am running them off the battery directly, I can't even stop them with my hand, yet, when I try using PWM via Arduino and a NTE2395 MOSFET I can slow them down fairly easily when I try to pinch the shaft (not enough torque behind them).

Here's the schematic of what I currently have setup:

My peers suggested I try hooking up capacitors to smooth out the voltage spikes from the MOSFET via PWM, one large one near the MOSFET to absorb the spikes and a smaller one near the motor to filter noise?

Do I need to wire the capacitor in a series or parallel configuration?

Also, do I need a diode to stop the back EMF coming when the motor is spinning? I can't seem to find a DIODE that will support my 10.5AMPS?

(I used a multi meter to check the Volt and Amperage pull on the RC motor when I had it connected directly to the LIPO battery). That's how I determined the AMP draw.

The capacitors aren't the problem (I'd remove them). The NTE2395 is not a logic-level MOSFET thus needs more than 5V at its gate to turn on. I suggest something like the NDP6060L (25milliohms Rds(on)). You will also need good heatsinking if you're truly going to draw 10.5A, and/or pick a MOSFET with even lower Rds(on).

For these kinds of currents you might want to go with a dedicated motor driver rather than doing it yourself with a MOSFET.

Check out our new shield:


When I use the NTE2395, it works perfectly fine and is able to power the motor, if the 5V from the Arduino was not enough, then the MOSFET would not even turn on and the motor would not even work right?

The NTE2395 is rated for 28milliohms (maximum, probably less) of resistance when gate-to-source voltage is 10V. When you only apply 5V gate-to-source voltage, resistance will be higher. This is why, as you noted, you can easily slow the motors down when using the MOSFET vs. connecting directly to the battery.

Check out our new shield:

My knowledge and understanding of MOSFETs is very limited, but something tells me here that this particular MOSFET is not a "logic level" MOSFET.

Unfortunately, the datasheet doesn't show the appropriate graphs, so it is difficult to tell; a good way to possibly try (?) would be to apply more than 5V (ideally, the same voltage as the motor) to the gate of the MOSFET. You might find you can still easily stop it, but if you find it is more difficult this time, then you know you need a different MOSFET (or switch it with a separate smaller logic-level MOSFET, or a transistor). Likely, based on the spec sheet and my limited knowledge, this MOSFET works best with a gate-source of 10V (or greater) and a drain-source of 10V (or greater).

As far as the caps go, they should (likely) be across power and ground; you might also want similar small caps from the terminals of the motor to the case of the motor. This is mainly for noise supression more than anything else.

I am pretty sure that the MOSFET is the main issue, though; if you want to turn it on/off with an Arduino output, you need what is called a "logic-level" MOSFET (note that a MOSFET may be called "logic-level", yet still not switch the gate on hard enough for your motor; really, the only good way to tell is to look at the various specification graphs and such - unfortunately for the one you posted, there were none, but based on the numbers, and your results, it doesn't look like this MOSFET is a good match.

BTW - using only one MOSFET won't get you dual-directional control; for that you need to build an h-bridge from MOSFETs. This is easier if you can source both N and P channel MOSFETs for the sides of the bridge (P on high side, N on low side, IIRC); you can make an all N channel h-bridge, but it requires a bit of work for the high-side MOSFETs (charge pump controller or such).

You might find it better to just order and install a pre-built h-bridge for your motors that can be controlled via R/C signals or PWM; it will likely be cheaper (time and money) and work better in the long run.

Thank you guys for your support!

Do you guys have any recommended MOSFET's that are logic-level and suppor the AMP demand that I could pick up a a local Radio Shack or Frys?

I called the hobby store, and they sell the speed controller for these motors for $30 basically. They also have built in forward and reverse and brake.

This way I don't end up complicating my build and creating a H bridge etc... I purchased these MOSFET's for $5 each! It cost me $20 for them.

I called the hobby store, and they sell the speed controller for these motors for $30 basically. They also have built in forward and reverse and brake.

Yeah - typically, that's the best way to go (you might need one for each track, though - unless that's for a tank/differential steering controller?); still, a bargain even if you have to buy two. You can also find simpler controllers that take a PWM signal from the Arduino, or more complex controllers that use a TTL serial message stream. They are designed for robotics applications, and sometimes include extra functionality. But for basic use, standard RC controllers will work fine, and are easy to control with the Arduino using the Servo library.

This way I don't end up complicating my build and creating a H bridge etc... I purchased these MOSFET's for $5 each! It cost me $20 for them

Generally, the only time you want to build your own h-bridge using discrete MOSFETs is when you are trying to learn how to do it and how they work (or you are planning on releasing your own h-bridge product); for anything else, it is usually cheaper, easier, and better to use COTS (commercial off-the-shelf) products.

For the future - as far as where to purchase logic level MOSFETs, your best bet is thru Digikey or Mouser (for new components); you are unlikely to find them at Radio Shack, and you might find something at Frys, but you will have to do some research in the NTE cross-ref catalog book, and even then they might not carry the part.

Usually its best to go with one of the "big boys", or shop surplus online (which will mean finding a part, looking up the spec sheet, reading it, finding if it will work, then moving on).

BTW - $5 for a MOSFET, while not the cheapest, is still pretty cheap; I've seen surplus high-amperage MOSFETs that were real "logic-level" devices go for triple that and higher...


And of course good old E-bay can find a bargain now and the. I recalled I once found 10 logic level 50 amp N channel mosfets for $5 and scarfed them up. They went fast. :wink: