A friend of mine recently discovered a hardware bug in the Arduino Duemilanove:
arduino.cc/cgi-bin/yabb2/YaB … 1284034373
It seems some manufacturers are using a bad replacement for the NDT2955 MOSFET. This
replacement does not switch the USB and input power correctly
I have recently purchased some Arduino Duemilanove boards from Pololu that do not have this MOSFET labeled and they do not work properly. I wanted to make sure you are aware of this issue so you can correct it. I would also like to know what you intend to do to fix the boards I and others have purchased that have this problem. We also need to be assured before purchasing any more boards from you that they come with the proper NDT2995 MOSFET.
You can also read more information about this bug and some tests to see if the MOSFET is
david-laserscanner.com/forum … f=9&t=2261
Please discuss here if you have similar issues with an Arduino purchased from Pololu.
Thanks for letting us know - we will look into the issue soon. Can you tell us what external power supply you are using and measure both your supply voltage and the Arduino +5V line when USB is disconnected? Also, was your Arduino or power supply connected to anything else when you experienced the problem?
Thanks for the prompt response. I have measured ~5V at the gold fuse when the USB is disconnected from the computer and the arduino is powered with a 12V or 9V wall adapter at the barrel jack. This happens with or without another load on the power supply. As I understand it there should never be any voltage at the gold fuse in this situation because the NDT2995 MOSFET is suppose to sense the external power and disconnect it from USBVCC. Having 5V here means the unlabeled MOSFET on my board is not cutting the power properly and could cause problems, E.G. Walter who has the same problem but purchased his arduino elswhere has reported that he was unable to boot his computer while he had the arduino powered externally and plugged into the USB port of his computer. There should never be 5V supplied to the computer’s USB port like this and the problem should be corrected.
Im curious to know if anyone else has this unmarked MOSFET and/or are seeing 5V at the gold fuse?
Here you can see the duemilanove schematic for reference:
arduino.cc/en/uploads/Main/ardui … ematic.pdf
Can you measure both your supply voltage and the Arduino +5V line? Without that, we cannot be sure that we are reproducing your situation exactly.
We have looked into this problem and verified that it occurs on a board we have here. I see that you posted the same question on Sparkfun’s page; since we get the boards from Sparkfun, we will need to wait until they or the Arduino people give us an answer. Perhaps they will come up with a simple fix, but it seems like the problem was there in the original design (at least for a supply between 4.5-7.5V.)
Sparkfun has finished looking into the problem, and it sounds like they are not going to do anything about it. We have put a warning on our page for the Arduino, but there is not much more we can do, either.
After looking into the design, it seems to us that the circuit is just fundamentally flawed, and there is little reason to expect it to work well regardless of which MOSFET is used. The newer MOSFET makes the problem more evident, so it is easily verifiable in all kinds of tests. (These were not just contrived tests: on the one laptop we tried, we measured almost 200mA flowing into the USB port after powering it off. We verified that this occurred across the entire recommended operating range of 7-12V on VIN.) The new Arduino Uno looks like it will have the same basic problem, but we have not tried one yet.
While we do not know of any cases of damage to computers, 200mA is not a trivial amount of current, so we do not recommend leaving an externally-powered Arduino connected to your computer, especially while the computer is off.
We now have the Arduino Uno in stock. It appears that the Uno uses a rail-to-rail op-amp, so the threshold voltage of the MOSFET should not matter any more. Since the schematic still shows the same non rail-to-rail op-amp as on the Duemilanove, we do not know whether it is being used specifically to address this issue, or even if it is present on all Uno boards. The unit I tested seems to work as designed, but we are still not happy that the design sends current back into the USB +5V line below about 7.4V.
Could we consider this bug fixed for the Arduino Uno?
It is “fixed” in the sense that the circuit now works as designed. However, it has been designed to have the ability to send power into your USB port if your main power supply ever drops below about 7.4 volts. While we have not heard about any computers being damaged by this, USB devices are definitely not supposed to behave this way, and it has the potential to cause damage. I recommend not having both USB and external power connected at the same time.