Arduino IDE software eats my atmega168s!

I've got half a dozen atmega168s sitting here which don't respond to ISP programming or queries through Averdude. The problem is that they used to! Brand new out of the tube, I tried to load the Arduino bootloader using the built in function of the Arduino IDE software ver. 0011, ( under tools/burn bootloader/ w/parallel programmer). I'm using a homebuilt programming board on veroboard, with just the ISP connections (only SCL, MISO,MOSI, RESET, GND), power, ground, AVCC, AGND, and a 16 Mhz crystal with 2x 22pf caps to ground, 10K to +5V on RESET. The whole thing is powered by 5V from the machine's PS2 keyboard connector (4.97V). I've been able to happily recognize the chip, read fuses, write fuses etc. with each of the 3 unbuffered parallel dongles I've built (DAPA, BSD and STK200) without problems using Averdude. However the moment I attempt to load the bootloader with the Arduino IDE software, it toasts the chip, and I can never talk to it after that with Averdude. I realize that it's likely enabling the crystal (as they are shipped for internal OSC from factory), but neither an 8 Mhz or 16 Mhz crystal has any effect (no oscillations on the scope from clock pins after Arduino bootloader "programming"). I've tried this on both Linux (Ubuntu) and WinXP with the exact same results. I've even scoped the lines to see if it's SCK noise (everything looks fine), as some people put 100-500 pf filters on that line. My dongle resets are running with 33 ohm resistors, SCK, MOSI at 330/470 ohms, with 220 ohm on MISO. The signals look good, no ringing, as the cables are only 20 cm. Again, Avrdude can talk to these chips fine, on two different computers (so it's not a deficient or blown parallel port). Averude works both in Linux and XP (Linux running Avrdude with sudo) and I can read signature, set, read fuses etc. I tried to manually set the fuses and follow a procedure outlined on these forums, namely setting fuses to 0x00, 0xDD, 0xFF (for E, H, L fuses respectively). E and H fuses set and read back fine, but as soon as I touch the L fuse, Averdude complains that H has also changed and requests to changed it back (both cases result in "dead chips"). Some posts have suggested the fuses should be set 0xF8, 0xDF, 0xFF (for E, H, L) and others that E should be set to 0x00 as it's only 3 bits long. I tried both ways and cooked 2 more chips. Is there something I'm clearly doing wrong or missed? Limor mentioned making sure that the AVCC and AGND were connected for proper programming (I can't see the connection but hooked them up anyhow - no change!). I've even tried to adjust the timing using Averdude's -B flag using from 1 to 10 usec as suggested by Ladyada, but all my dongles work at all speeds. I went as far as to build a buffered STK200 (HC224s) and it made no difference. I know I should buy a proper programmer, but I don't care for USB or serial port programmers.

So, does anyone have any ideas? I've used a purchased Arduino before and love it, so I tried to used it for some embedded projects by building my own (my purchased one was a TQFP). So far I've blown 6 devices of my tube of 25. Please help before I run out of chips! (I suppose these dead ones can hopefully be saved by erasing fuses with a high voltage programmer..) Thanks in advance! - Heinz

Build this mod ! ^^

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1217113409/

Worked really fine for me. I made some batch files (under windows) so that it's all semi-automated.

That's a great idea - thanks! Too bad I don't have that Arduino anymore :frowning: I'll need to pick up another one.
Still, I'd like to get this parallel method working and rescue my dead chips if possible. BTW I checked out your web
site - super work interfacing those Wiichucks to the Arduino and #DS via midi! Brilliant!
cheers!
h

thanks, but that's not the most efficient way, i'm slowly working on something else ^^