Control a 9053 Double Horse Helicopter motor with Arduino PWM?

Okay, this one has been stumping me. My son wants to turn his crashed 9053 Double Horse helicopter into a semi-automated drone (just to see if he can do it).

At first we tried to hook up an L298n motor controller, but couldn't get the main motors to spin all the way up. We could effectively control the speed, but couldn't get them to drive fast enough to lift off.

So, we decided to rip the mosfets and diodes off of the controller board and use those (assuming they would work for the Arduino since they worked for the 9053's controller board). We came up with the same situation. We were able to change the speed of the motors, but they wouldn't spin all the way up.

If we hook the batteries directly to the motor it spins to it's full capacity, but can't for the life of us get that to happen through the L298n or the mosfets straight from the heli's controller board.

My first thought was that maybe I needed to adjust the PWM frequency (was hearing a slight high pitch whine), so I used the PWM.h library and went from a low enough frequency to make the motors stutter to a frequency that made them whine and a few values between that drover the motors smooth, but still not fast enough.

We wired the MOSFETs exactly like this picture (

Are we missing something?

Thank you in advance!

Edit: I want to make note that I checked the voltage with a multimeter and I'm getting the full 7.5v from the lipo battery.

Here is the datasheet for the MOSFETs that are used in the 9053 Double Horse.

I am fairly new to the robotics scene, so I just used a 10k ohm resistor on the gate pin since that's what they used in the image linked above.

The 10k resistor is there to ensure that the gate stays grounded during Arduino's bootup.

It is wise to add a 220ohm resistor between Arduino pin and gate. This fet has a fairly large (2150pF) gate capacitance. Without a 220ohm resistor, the Arduino pin sees a dead short during switching. Leo..

Thank you for the advice! I'll give that a shot.

Another question, I was noticing that on a lot of RC controller boards there are some electrolytic capacitors. The 9053 Double Horse board has 2 16v capacitors.

I was reading up on bootstrap capacitors and was wondering if maybe this mosfet may need it. Again, fairly new to the electronics components, but the datasheet LOOKED like it just needs a 3-4v signal in order to open the gate. I don't THINK it's a high side mosfet, which means I shouldn't have to supply more voltage to the gate than the drain, but I could be wrong on this.

Do the capacitors play a different role that may be effecting my motor speed? I was also reading a lot of information about how DC brushed motors are pretty harsh when dealing with PWM signals and adding capacitors can really help smooth things out, but haven't gotten into the nitty gritty details as of yet.

After doing some more research on this, I'm starting to think that the mosfet is a logic mosfet rather than a high side mosfet. Honestly, from the graph it looks like I could get enough current through the mosfet by switching the gate on and off at 2.8v - 3v.

With that, I'm assuming it's either the missing 220 ohm resistor on my Arduino -> gate pin, or the lack of 16v capacitors.

This mosfet is indeed a logic fet. Threshold voltage is where the fet [u]starts[/u] conducting. Graph Fig.1 in the datasheet shows the [u]minimum[/u] gate voltage for a certain drain current.

The 220ohm resistor does nothing when the fet is on or off, because the gate, when static, has a very high impedance. It only limits the current in/out of the Arduino pin to ~20mA [u]during switching[/u].

You always are left with some voltage across the fet, depending on the current draw of the motor. In this case it could be ~0.5volt. Again, look at the graph. Make sure the fet does not get hot. Losses will get higher...

Caps are probably local supply bypass caps. Needed for current spikes. Leo..