Arduino NG external power problem solved

I am using the Arduino NG to teach a class on embedded development under Linux and was having the same external power problem as has been stated. In fact all ten of the Arduino's in the class exhibited the same exact problem. So I decided to dig into the problem to solve it instead of just patching it with a resistor. Besides, the resistor prevented me from using that pin for what I needed.

Anyway, the fix is to replace the 1K resistor, R12, with a 10K resistor so that the ATmega168 (pin 3) won't back-feed power into the FT232 usb-to-serial chip (pin 5.) When allowed to back-feed power the FT232 would actually attempt to run which was causing a recurring spike on the RX pin every 35 milliseconds. That spike was enough to make the bootloader think that you were trying to download a program so it never got past the 10 second delay to start your program.

You can find R12 by locating the two LEDs, TX and RX, over by the crystal (silver metal can) then moving to the second resistor from the TX LED. That should be a 1K resistor. Remove and replace it with a 10K resistor.

Once I did that I checked to make sure that the USB pin of the PWR_SEL jumper no longer showed 3.5 volts when I had it jumpered for external power and plugged in. I can now program without any extra resistors or capacitors added to the board. All my sketches run normally on external power, too.

-Mark S.

PS. If you don't have a 10K resistor you might be able to get by with anything from 6.8K to 12K but you'll have to test it to be sure.


R12 is between the Atmega TX and the FTDI RX on this diagram. So if I'm understanding the fix correctly, you found that the FTDI was getting enough power through the 1K (R12) from the Arduino's TX pin that the FTDI chip would, instead of being disconnected and inactive as we thought it was, start up and in turn send a glitch to the Atmega RX pin, preventing the bootloader from ever booting properly? Just trying to get a grip on why this works as a fix.


You've got it, exactly.

I didn't include everything that I'd found but I believe the reason a pull-up/down didn't always work is because enough current was being drawn from the ATmega chip to prevent it from powering up properly. One of the additional things I noticed is that the AREF pin would normally go HI but not when external power was plugged in.

You might want to dig a little deeper as I just chose 10K as a starting point and it worked. I didn't check my math so you might be able to get by with a much smaller resistor. That may be necessary because once I got an error that the programmer wasn't responding properly.

-Mark S.

I just wanted to add that this solution worked great for me. Thanks for doing the research into solving this problem.

Cheers guys. Works for me too. I’m so glad, it’s a big relief. Makes my board useful again!

I must say, that was the most intense bit of soldering I’ve ever done! I’m new to this SMD lark… not had to use a magnifying glass to solder before!! :o

Next… add a 0.1uf cap to do this Diecimila ‘auto-reset’ thing.



Could one of you take a quick look at a post I just made in the FAQ section - called "Yet another Bootloader stability problem" and see if the problem I describe there is the same as what you were having - I suspect my problem is likely the same as the one you solve here - if that's the case, then I'm a really happy camper -

I'd repost, but its long, and that seems like more trouble to everyone than just directing you to it -

thanks in advance!!!!