I am new to the Arduino world but I have some practice with the Atmega outside Arduino.
I am running Windows XP and Arduino 0022.
Lately, I bought an Atmega328 on eBay with Duemilanove bootloader already flashed.
I put it on a breadboard with a 16 MHz crystal and its two capacitors, a reset button to GND (with 10k pull-up resistor), a led on digital pin 13 and a "USB to TTL converter" bought for less than $5 on eBay.
The TTL converter gives me the Rx and Tx signals for digital pins 0 and 1, as well as +5V and GND from USB.
On powering the system, the led 13 was already flashing, showing that the blink sketch was already loaded.
I tried to change the timing of the delay within the program and load it to the atmega. I new that I had to push the reset button before uploading the program. The first try was a success and the led started flashing at a different rate.
But for the next few tries, I got an error : avrdude: stk500_getsync(): not in sync: resp=0x00
As the uploading worked fine at the first try, I was sure the wiring of the breadboard was correct, so I started reading the "Troubleshooting page" and the forum threads commenting that error. I realized it is not rare, even with official boards with auto-reset feature.
I finally found what was the origin of the failure : the timing of the Reset (which is not clearly explained in the Troubleshooting Page).
The reset button has to be pressed before clicking on the upload button and released as soon as the "Binary sketch size: ....." message appears.
Hoping this will help other newbies.