Powering Duemilanove via VIN and external 12V power supply and USB power problem

I have a project I am working on where I am supplying 12V to the VIN pin on a Duemilanove using an external 12V power source that also powers some LEDs and I have run into a problem. If a USB connection is made I am seeing 5 volts at VIN which I was not expecting to feed through and in my current setup I have actually blown a board because at one point I did not have the external 12V power supply on and then the 5V coming from the USB connection was trying to power my LEDs which seems to have blown the FTDI chip due to too much current. Is this how the board is supposed to work?

More importantly, if I want to prevent this from happening can I just put a diode in between VIN and my external 12V power supply? I think that would work and if so can someone provide me with any diode suggestions?

I know I could also either cut the 5V wire on my USB cable or possibly the 5V trace on the board coming from the USB connector but I think the diode would do the trick too, any advice would be much appreciated.

I’ve used USB with 9V battery on Vin with no problem. Maybe your arduino has a defective voltage selecting chip? If too much current is drawn on the USB your computer will disconnect it USB and the arduino fuse can also act. Check for solder bridges on the small 8-pin chip maybe?

The first part makes sense: if 5V is present but your Vin (12V) is not then current can flow backwards through the voltage regulator (which damages it) and light your LED's. So don't do that :) As you suggested, a diode from your 12V node to Vin will prevent this. But there is already such a diode on the Duemilanove, connected to the external power connector. Why not just use that? Connect your 12V supply to a 2.1mm power jack and plug it in to the DC power input. Or you can use a diode :)

I don't understand why your FTDI chip fried though. It does not supply any current except to the +3.3V supply.

-- The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected

How are the LEDs wired up? You have some external chip or transistor controlling them? Post your schematic for review.

This could an be the same issue that some reported about on the old forum. Can't find it now, so from possible faulty memory, they changed the voltage switching FET used on the board to one that had a lower gate/source threshold value and the auto voltage switching comparator op-amp output voltage does not go low enough to ground to turn off the mosfet causing USB voltage if present to 'leak' past the mosfet and backfeeding through the on-board 5 volt regulator and appearing on the Vin pin. I don't know if they ever came up with a fix or not.

Anyone else recall that symptom?


I recall lots of posts about folks claiming the mosfet was designed in wrong, and others explaining how the design was being misinterpreted was actually correct. I supply my own 5v to VCC and don't use the internal regulator (I use more 5V current elsewhere than the regulator can support), and suppy 12V to LEDs for control via transistor.

Thanks for all the quick replies. I thought I read somewhere that if too much current was being pulled from the USB connection that it would disconnect but when the incident occurred the USB port was VERY hot and then after it cooled down and I reconnected JUST the board it was no longer accessible via a virtual COM port and also the RX/TX lights do not blink at all which made me think the FTDI chip got toasted.

The reason I don't want to use the 2.1mm power jack is because I prefer to not have the 12 volt power pass through the board and then to the LEDs, I have plans on adding more LEDs and figure if I don't have to have the 12 volt power current to the LEDs pass through the board there is less chance of damaging the board. So this is why I run my 12 volt external power to the VIN pin as well as to the LEDs common anodes. With this setup then only the power needed to run the board itself passes into the VIN pin. I need the USB connection for serial communication but NOT power so that is why I thought I could possibly just cut the 5V wire on the USB cable or the 5V trace from the USB connector but if a diode would work to prevent the USB 5V from going out of VIN to my LEDs that would be much cleaner in my opinion and if anyone has a suggestion of what diode to use that would be great.

I do not currently have a schematic made up but can put one together if needed, for now I will just describe the circuit. I am using an ULN2003 transistor to connect to the LEDs using the PWM pins on the Arduino and then the transistor bumps the 5V PWM signal from the board pins to 12V which are connected to the LEDs RGB pins. I have the 12v external supply connected to the VIN and ground pins on the Arduino and then I also connect the external supply positive wire to the common anodes on the LEDs and then the negative wire to the transistor emitter.

And where are your current limiting resistors in that? Please post a schematic.

Sorry about the delayed response, I have been sick the last couple of days. Anyway, from what I understand the ULN2003A transistor has built in resistors and I am using 5050 RGB LED strip which also has built in resistors so unless I am missing something (and I definitely am not an electronics expert so if I need them please tell me where) I shouldn’t need any other current limiting resistors. I made a schematic which shows what makes up the project including the external 12V power source. One note is the +12V connects to the VIN header connection on the Arduino and NOT the barrel plug connector that has a diode after it. Since I only need enough current from the 12V power supply going into VIN to power the Arduino (which I think takes around 200mA if I remember correctly) what recommendation would anyone have for a diode to use to prevent the 5V from the USB connection from feeding out of VIN and trying to power my RGB LEDs? I still have a lot to learn about electronics so any suggestions or comments you have about my schematic would be great.

The schematic is attached.


"from what I understand the ULN2003A transistor has built in resistors " You are misinformed.
Check the data sheet - it has a straight open collector output capable of 500mA sink current.

Given that,
“5050 RGB LED strip which also has built in resistors”
This kind of thing?
Okay, maybe it has resisisters in it.

Need to see your schematic while I type - dang…


This data sheet may tell us what is happening

The datasheet has no information about Vout being greater than Vin - everything is in terms of Vin being Vout +3V for example.

Looking at the schematic and how it is applied in the duemilanove, it looks like a zener that is supposed to provide some protection may be the path that lets Vout appear at Vin.


Thanks for the replies and for correcting some information I had wrong, I definitely should have just looked at the documentation but my setup seemed to operate fine so I didn't investigate further.

I also found another thread where a person mentioned seeing the +5V at VIN when a Duemilanove was plugged into a USB port and the issue seems to be caused because when the Duemilanove was released a mosfet was changed to a different type which fudges things up. Basically the Duemilanove uses FDN340P mosfets and if they are swapped with the previous designs NDT2955 mosfets the problem goes away.

In the meantime I think I am just going to put a 1N4001 diode in front of VIN to prevent my problem of the USB +5V passing to VIN which may be the reason my board was fried and I only want power to flow into VIN anyway so I should have added the diode from the start of my project. I have also tested the ULN2003 transistor and my RGB LED strips using a new board and they operate just fine so the only reason I can figure my board fried was from the USB +5V passing through VIN before my external 12V power was turned on and the current draw of the LED strips was too much for the board to handle. If anyone sees a problem with the diode I have chosen to use please let me know.

Anyway, here is the link to the other thread I came across where a person had a similar issue to what I have run into: