I was chasing a problem with an Arduino / Ethernet Shield / TMP421 temperature sensor combination. The Arduino would write to the online database with the USB hooked up but not when powered by the external supply only. I could not tell this as, well, the USB was not connected, so I couldn’t see the failures in the serial window.
Probing around, I was assuming the Ethernet Shield was deriving some of its power from the USB chipset, or some such, but no… I found 3.6 V on the 5 volt rail. I found a perfect 3.3 on the 3.3 rail.
I found with all the losses through the polarity protection diode, the regulator itself, and the USB vs. external supply decision circuitry, was dropping my Vcc voltage to 3.6. I turned up the 5 volt supply feeding it to a perfect 5 and then up to 5.3-ish with no joy.
Ultimately I switched the Arduino supply to the +12V supply that is driving other circuitry in the project and the Ethernet Shield is happy again.
That is all… don’t feed an Arduino a perfect 5V supply unless you want to bypass all the regulation and USB vs. external supply decision circuitry.