I've found that Arduino (Duemilanove) has a current limit of 40mA per pin. Does this include the Vin pin? Or does the Vin pin have some sort of work around in place on the board to allow for higher currents?

If this is the limit on the Vin, is there good way of using still using the power supply jack on the board and allowing other sources to draw on that supply without it needing to pass through the chip first?

Thank you much.

EDIT: For the second part, what should I do if I wanted to get up to something like 2 amps?

  • $\begingroup$ I think i read somewhere on the Arduino page that the current limits are not for any of the power supply pins (which should include Vin). $\endgroup$
    – asheeshr
    Dec 3 '12 at 10:12
  • $\begingroup$ @AshRj: If you have the source for this it would be helpful. $\endgroup$
    – golmschenk
    Dec 3 '12 at 17:00
  • $\begingroup$ Its somewhere on the main site, i ll link if i find it. $\endgroup$
    – asheeshr
    Dec 3 '12 at 17:08

The 40mA current limit is the Absolute Maximum that an I/O pin on the ATmega328P can supply. Vcc on the ATmega can draw up to 200mA.

From page 313 of the datasheet:

absolute maximums

The 5V that connects to Vcc and powers your chip comes from one of two places. Either the USB connection, which in most cases is limited to supplying 500mA. Or an external power supply (wall wort or otherwise) which can supply as much current as is labeled on package.

Vin is your external power supply if connected. USBVCC is your USB power if connected. +5V is whichever has a higher voltage.

You seem to be interested in using an external power supply to run your Arduino and a motor. No problem. You just need to branch off of Vin before the regulator that turns Vin into +5V and powers your chip.

Have a look at this Motor Shield tutorial by Adafruit. In the below diagram, they are powering a motor off of a +9V Vin. In this diagram they are branching off before IC1 which is a 78L05Z. On your Duemilanove, this should be IC4, an MC33269.

motor shield connection

This way the motor can take as much current as it wants from your external supply. And the AVR microcontroller can take as much current as it wants and be protected from any nasty spikes the motor puts on the line by the MC33269 voltage regulator.


According to this discussion on the Arduino forums, you can draw about 1 amp through the Vin pin before frying the "polarity protection" diode that sits between the power supply and the pin.

  • $\begingroup$ For the second part of my question then, what if I wanted to go higher. Say 2 amps? $\endgroup$
    – golmschenk
    Dec 3 '12 at 16:57
  • $\begingroup$ Something is powering your Arduino... what is preventing you from using that same source to power all your "high current" components? $\endgroup$
    – Ian
    Dec 3 '12 at 17:24
  • $\begingroup$ Right now I'm just testing using a wall jack. The motors I'm using can draw more than 2 amps. So I hoping to still use the simple power jack on the Arduino, but let the current flow to the motors without passing through the chip. $\endgroup$
    – golmschenk
    Dec 3 '12 at 17:44
  • $\begingroup$ @golmschenk -- Not sure I understand what you want exactly, but you could just solder your motor controller power wires to the pins of the input jack directly in front of the protection diode. This would use the DC input jack, but bypass the diode and other current limited components. $\endgroup$ Dec 4 '12 at 3:03
  • $\begingroup$ @DrFriedParts: Yeah, that's kind of the discussion I was looking for. I think Kyle outlined it nicely. $\endgroup$
    – golmschenk
    Dec 4 '12 at 3:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.