Is there a problem with this circuit?

Hi guys,

I’m trying to build a driver for 4 DC motors, and experiencing lots of difficulties.
I’ve built the circuit in this picture:

it works perfectly fine when it is only for 1 dc motor, but 4 in parallel just won’t work:

  • when i input PWM value from 0 to 255 i get this “tick” (what the hell is that?), and the motors won’t work.
  • it works only when all 4 PWM’s get 255 - maximum duty cycle.

I’m using IRLML2502 Mosfets, but i don’t believe that the problem is in the components because everything works fine with only 1 dc motor.

I really don’t want to buy a driver, part of this project is building all on my own.
but in the meantime the only thing this driver drives is me crazy.
I would be so happy to hear some suggestions.


Most likely, your power supply can’t supply enough current for all four motors.
What is the power supply current rating?
What is the stall current of the motors?

You need a 220 Ohm (minimum) resistor between the MOSFET gate and the Arduino output pin. Otherwise you will eventually destroy the output pin circuitry.

I'm using a simple 3.7v lipo battery (to 5v pin) + USB connection (arduino nano). shouldn't that be enough?

the motors are simple and small DC motors, that is what i know about them- Rated voltage: 3.2V DC Rated current: Standard value 150mA. Specification 200mA max Rated load current: Standard value 1620mA. Specification 1750mA max Starting voltage: Standard value 0.8V DC. Specification 1.0V max

About the resistor- I've tried with that resistor also, i removed it cause i didn't see any change. I will add it but it does not help me with my problem...

I don't know what you mean by a "simple" battery -- the battery capacity in mAh and the discharge rating in "C" would be informative.

The motor should be powered COMPLETELY SEPARATELY from the Arduino. Do not connect the battery to the +5V pin.

However, it seems likely that the battery cannot supply the stall current, which is probably quite a bit higher than the "Rated load current" of 1.7 amperes maximum. Motors briefly draw the stall current [u]every time they start up.[/u]

If all motors will be starting at once, you may need a power supply capable of 10 or more amperes. Or try a high current LiPo or NiMH battery pack intended for RC cars.

i removed it cause i didn't see any change.

The only "change" you will see is when your port pin stops working completely, for failing to use the resistors.

Thank you for your reply. But i don't understand- eventually the battery will power up everything- the arduino, the motors... I need to plug it in somewhere, the +5v pin is the only option.

the battery i'm using is Eachine 3.7V 500mah 25C used for small quadcopters. i'm using compatible motors as well (for my own quadcopter). so sorry for the newbie questions, but how can it be good for their quad but not for me? I can't use any bigger batteries, this thing has to fly eventually.

how can it be good for their quad but not for me?

The quadcopter designers are professional electronic engineers, who know their jobs.

There are many possible problems, including inadequate or incorrect wiring, but you haven't posted the required, complete wiring diagram or the code, so it is anyone's guess which.

Maybe it will be easier to understand this diagram:


The Driver block, is as i posted earlier (+220 Ohm resistors in the gate). The code is irreverent, as i said it is working for one motor - i just don't understand why not for few of them. anyway what it does in this early stage of development is just to determine the duty cycle of all PWM's by the user's input.

I know i'm not an expert, but i'm trying to learn. The battery is the same as used in small RC quadcopters. If it's current draw isn't enough, what can i do to the driver without replacing the battery? Do i need to amplify the current? i see a lot of methods, what is the right one for me and where should i put it?

Thanks again for your help

Do you have 3.7volts from the battery powering the 5v pin on the Arduino?


Yes, not ideal but it is either 3.7v or 7.4v. 7.4v is too much for those motors. As other people say, there shouldn't be a problem powering up the arduino with 3.7v as long as i plug it in the 5V pin, not the Vin. I'm not sure if that is the problem, because I've tried this configuration with USB also plugged in.

When you start getting weird/intermittent results, look at raising the voltage to 5 volts. Maybe get a boost converter.

3.7v, actually a bit less, is just asking for problems, ~4-4.5v is not usually a problem.


Actually the real voltage of the battery is 4.2v. if that's any help... anyway I've already ordered some boost converters, but do you really think that's the problem? The USB gives me 5v, and motors still are not working properly.

Can you get one motor circuit to work?

Edit: OK I see one works. What is the resistance of the motors?


LarryD: Can you get one motor circuit to work?


yes, no problem there..

Debugging If the motor resistance is 200 ohms, replace the four motors with 180 ohm resistors. Do the circuits then work?


battery i’m using is Eachine 3.7V 500mah

Rated voltage: 3.2V DC
Rated current: Standard value 150mA. Specification 200mA max
Rated load current: Standard value 1620mA. Specification 1750mA max

As mentioned/implied above:
500ma < 4X200 (800ma)
500ma very much < 4X1.75 (7amps)

You need to know the value of the motor resistance.


Ok, i can see how current draw can be a problem. So my question is what do they do in other motor drivers? How do they get those DC motors to run with this battery? this specific battery is used for these specific motors...

I don't know the motor's resistance, it is not specified...

By the way, mah for what i know is current draw per hour, but does it say that the max current draw is X ma? Edit: from what i'm seeing online, the max current draw for a lipo battery is (C-Rating) X (AH). Meaning i can draw max of 25 X 0.5A = 12.5 Amper! So still, i don't understand the problem :

If one motor works but 4 do not, it points to either noise or too much current is being drawn for your battery.

You could try adding a 10,000uF @~10volts capacitor across the battery (observe polarity). Do 2 motors then work, how about 3?

If you cannot measure the resistance of the motor with a DVM i.e. you do not have a DVM, get one!

Measure the battery voltage droop with an oscilloscope, don't have access to a scope, then play with low current LEDs instead of high current motors.


I'll try to get a hold on one of these capacitors, what exactly is it's purpose? Also, i would appreciate if you could tell me how you came up with this specific capacitor. what is the math?

And i'll try to run the circuit with some LEDs. Thanks!

The capacitor 'might' be able to supply the surges of current taken by the motors.

The point about the leds was high current projects might be beyond the hardware available to you right now.


Small update: so it is definitely a current problem. I was now able to run 2 motors just fine.

I'll try what you suggested with the capacitors, but still be happy if you could explain the math (so i could purchase several capacitors for experimentation). I found some 470uF @ 16v from old hardware, will that be ok?

Thanks you so much!