ArduinoISP Deluxe shield for programming ATtiny & ATmega328P

UPDATE: I've got a more recent version out now that does ATtiny2313 and ATtiny4313 chips as well.

I've gotten into the habit of using the bare ATmega328P and ATtiny chips in my projects. The problem is that programming them / burning the bootloader to new chips can be annoying. You have to either get a programmer, or wire up an Arduino every time you need to program them.

I decided to make a shield where all of the chips I use can be programmed from one single socket. All you have to do is load the ArduinoISP sketch onto your Arduino, pop this shield on, and you can program an ATtiny 24/25/44/45/84/85 or an ATmega328P. For the ATMega328P, there's an external 16MHz crystal so you don't have to rely on the internal one. There's also a test LED so you can verify that the chips are working properly.

Questions and critiques welcome. This is the first real PCB I ever designed, I'm still learning! I may also do a second revision of the board so suggestions for that would also be welcome.

I also decided to sell my extra ones (with components)!


Pics:

Features:

  • Extra long, stackable headers
  • Support for: ATtiny 24/25/44/45/84/85 and ATMega328P **
  • Blink LED for testing purposes
  • 16MHz crystal for programming an ATmega328P
  • ZIF socket: simple to insert and remove chips for programming
  • One socket for programming all different chips!

It's super easy to use. Just load up your Arduino with the ArduinoISP sketch, pop the shield on, and you're ready to program your chips and / or burn the Arduino bootloader to them.

I just came across this post. Looks like a nice first PCB.
I would have recommended some 0.1uF decoupling caps on the VCC/AVCC pins.
Maybe a 10K reset pullup resistor depending on how the reset pin is controlled.
Designed in Eagle? something else?
Who made the PCBs?

Thanks. What'd be the purpose of the decoupling capacitors? The reset pin actually does have a 10K pullup resistor on it already. I can't remember what the problem was exactly but when I had the whole thing laid out on a breadboard, I was having issues (I think related to uploading and bootloading) and the resistor solved 'em.

I designed it in Fritzing. I'd opened up Eagle and played around a little, but I found the interface a bit intimidating as a beginner. I had designed one PCB in Fritzing before (a fairly simple one that "syncs" an analog clock using an RTC) so I had a decent knowledge of how to use it. The only real challenge in Fritzing for this project was that I had to create the part for the ZIF socket. I'll definitely be looking into using Eagle for future projects though. It's definitely a more widely-used application.

The PCBs were made by iTeadStudio. After I submitted my other clock PCB to OSHPark I kept looking around for places to get PCBs made out of curiosity. iTeadStudio popped up and their prices were amazing compared to everyone else. 10 PCBs up to 5x5cm for only $12? Awesome. I ended up needing more than 5cm, so I went with the 'up to 10x10cm' option. Because I knew that the ZIF and switches would be red, I decided to pay the $6 premium and get red PCBs. Overall it was only $35 + shipping for 10 boards (they randomly gave me 2 extras actually) with 100% e-test. Not a bad price, and the quality was awesome, save for the silkscreen missing for one of my resistors (but that was only on one of the 12 boards).

Decoupling caps help with power stability at the power pins.
Maybe not as critical here where the IO is not being connected to anything for sinking/sourcing current.

I use eagle & iteadstudio a lot, they do have very good pricing. Have not seen any stenciling issues.
You can see some of my board designs here.
http://www.crossroadsfencing.com/BobuinoRev17
Most came from iteadstudio. Some are from InternationalCircuits. Cost is a little more, but they can do 5-7 day delivery if needed.