Standalone Setup

We seem to be making suggestions to GarageGeek & JoeN, but in either case, I would put a 0.1uF cap on Aref to be able to make ADC measurements at maximum accuracy if needed. Lot easier to add it early vs reworking it back in later when the card is designed into something.

Can I just use the Uno as an ISP to burn the sketches directly to the blank chip? Do I need the bootloader for this?

Yes you can. You do not need any bootloader. You also do not need to swap chips.
Read this tutorial: http://pdp11.byethost12.com/AVR/ArduinoAsProgrammer.htm

Arduino Uno R3 loaded with Arduino ISP behaves like an ordinary ISP programmer.

Thanks, guys, I will build them that way from now on just to be careful/correct. I will despike the top VCC-in also. Right now I already have several boards built the wrong way as far as AREF goes, but I have never used the analogRead features of the system so far anyway, and sparingly the misnamed analogWrite. I got a few precision ADCs from TI recently (ADS1281) and a few precision voltage references from ADC and I was going to try those out as my first AD project instead of using Atmel's built-in feature - too easy anyway!

Got it working!

First I went without the bootloader and used the tutorial provided by simplex. FYI, the tutorial labeled the MOSI and MISO pins incorrectly. The pin numbers are correct, but the labels are reversed. Anyway, I uploaded the ArduinoISP sketch to the Uno then compiled the blink example. I copied the .hex file location into the command prompt and had avrdude upload the .hex file as the tutorial detailed.

Bam! It worked. Sorta. The LED blinked about once every 15 seconds instead of once every 1 second as the sketch was written. I figured this must be because the blank chip fuses were still set to use the internal oscillator. So...

Keeping the Arduino configures as the ISP, I used the optiLoader sketch I'd found earlier to burn the bootloader. I then reloaded the blink example and it is working just as it is supposed to.

I'm thrilled to have figured out how to use the Arduino as an ISP, however, I'm taking the advice I've received here and ordering a programmer.

Thanks to everyone for the help!!! This had opened up a LOT of doors for projects down the line!

Good news.

GarageGeek:
Anyway, I uploaded the ArduinoISP sketch to the Uno then compiled the blink example. I copied the .hex file location into the command prompt and had avrdude upload the .hex file as the tutorial detailed.

There’s an easier way, available since Arduino 1.0. Just select File->Upload using Programmer from the menu. Alternatively, hold the Shift key down while you clock the Upload button - this does the same thing. No need to mess around with hex files and avdrdude command lines, except when you want to burn the fuses.

Oh. Thats handy. I'll give it a try this evening. :-)

What is the difference between the normal "Upload" and "Upload using Programmer"?

GarageGeek: Oh. Thats handy. I'll give it a try this evening. :-)

What is the difference between the normal "Upload" and "Upload using Programmer"?

Upload uploads to the selected board using it's built-in programming logic (e.g. Arduino Mega R3). Upload using Programmer uploads via the selected dedicated programmer (e.g. AVR ISP II)

JoeN:

GarageGeek: Oh. Thats handy. I'll give it a try this evening. :-)

What is the difference between the normal "Upload" and "Upload using Programmer"?

Upload uploads to the selected board using it's built-in programming logic (e.g. Arduino Mega R3). Upload using Programmer uploads via the selected dedicated programmer (e.g. AVR ISP II)

More precisely, the normal IDE upload option uses the USB serial communications link to the board to burn the sketch via the bootloader program the resides permanently in the AVR chip.

Upload using programmer from the IDE uses an attached 'hardware programmer' to burn a sketch onto a 'target' board or AVR chip that is wired to the hardware programmer using the chips internal hardware ICSP capablities and pins and does not involve or need a bootloader program to be resident on the target chip. In fact if there is bootloader code on the target chip if will be erased and gone when the sketch is uploaded using the upload using programmer method.

Lety

Awesome. Thanks for the explanations.

I tried this out tonight and it worked pretty well. It seems to work fine when uploading a sketch, but when I attempted to burn a bootloader (just because) it never finished. It must have run for 5 minutes. No errors, just never finished. The bootloader burns in about 15 seconds when I use the other method. Any idea why? Sketches upload in no time using either method.

Burning a bootloader is different, you have to program the fuses as well. Use Tools->Burn Bootloader in the Arduino IDE menu to do that.

Well, it finally happened. I was working on another project and accidentally applied 12V to a digital I/O pin of my Uno. I began to run out of long hookup wires of the proper color so I started using random colors. Probably shouldn’t have put 12v orange and 5v orange wires next to each other. :-(

It just so happens that I’ve got a pile of blank ATMega328P’s. I only burned the bootloader to one chip (the others are blank/unconfigured). I replaced the Uno chip with the one I had successfully burned the bootloader to in this thread, but it still doesn’t work. I’m getting a sync error. I’m assuming that when I burned the test blink sketch after the bootloader it wiped the chip. So the fuses are set properly, but the bootloader is gone. Is that right? Or, maybe I did more damage to the Uno.

So I’ve ordered the AVR ISP II (along with another package of hookup wires) and should have it in a day or two. I’m hoping I can burn the bootloader with my new ISP and replace the chip in the Uno.

Any advice?

Is that right? Or, maybe I did more damage to the Uno.

Could be, you should run the loop-back test to be sure the USB serial converter chip is still operational.

Lefty

Loop-back test? Is that just jumping the serial TX-RX so that the data sent is returned? Can I do this with the chip out?

GarageGeek: Loop-back test? Is that just jumping the serial TX-RX so that the data sent is returned? Can I do this with the chip out?

Yes, it's best done with the chip out or with the chip in permanent reset by using a wire jumper from ground to the board's reset pin. Jumper pins 0 and 1 together and then plug in the board, the PC should acknowledge the new USB connection, then open the arduino IDE, select the proper com port number, and then open the serial monitor and anything you type in the send window and press send should echo back in the receive window.

Lefty

Yep, that worked fine. It replies with no problems.

GarageGeek: Yep, that worked fine. It replies with no problems.

Great, then all you should need is a new functioning 328p chip with a bootloader installed on it.

Lefty

My AVR ISP II is in the mail. Is it pretty much plug and play? Do I need additional software or can I use it with the Arduino IDE? I see that AVR ISP II is in my programmers dropdown menu.

GarageGeek: My AVR ISP II is in the mail. Is it pretty much plug and play? Do I need additional software or can I use it with the Arduino IDE? I see that AVR ISP II is in my programmers dropdown menu.

Yes that is a supported programmer type by the IDE. However I don't know how one installs the needed software driver for that programmer for the PC. Once the PC has the correct driver for the programmer and you then plug it into the PC the arduino IDE should be able to find it and use it if you select it from the programmer menu on the IDE.

Lefty

It appears that the IVR ISP II ships with a CD-ROM. I'm assuming that has the required drivers on it.

Thanks for the info. I'm reasonably sure this will be an easy repair.