ATtiny In System Programmer (ISP) Arduino Shield

Shrinking your Arduino designs by switching to the Atmel ATtiny microcontrollers is a nice feature if you do not need a lot of pins or want to save space in your design. In this context it is also nice to (mis)use an existing Arduino board (in my case an Arduino Uno revision 3) as an ISP/programming device. A nice tutorial how to achieve this can be found on this, this, and this project page (MIT High-Low Tech Group). I’ve generated a PDF-Version from these three pages for offline reading (and in case their pages move again). I used the MIT group’s research as a reference for this Arduino shield. It’s always nice to add some extra design… 😉 This is only a small project of mine, but it was already helpful on several occasions.

You have to be a bit careful when sticking the shield onto the Arduino Uno as I did not add all (for this purpose unnecessary) pin headers to the shield. The shield can be connected into the wrong pin headers — I added labels to some of the pins for orientation. I was only able to test it on my Arduino Uno revision 3 board, but it should be backward compatible to the previous Uno revisions and the Arduino Duemilanove. Please notify me if you find compatibility issues.

Left and right side of the Arduino ISP shield on an Arduino Uno. Two pins on each side were not added to the shield for backward compatibility.

You will need the ATtiny master files (GitHub). When programming the ATtiny microprocessor with the Arduino software, you can ignore the following error message

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtinyXX

that might pop up — your microprocessor should be programmed fine. I’ve made a small video showing the shield in action…

Just in case you’re interested in this little project: The Eagle CAD board file of the ATtiny ISP Arduino Shield is available in my ISP-HVP-Shield Repository on GitHub (CC-BY-SA 3.0 license), and I’ve added the schematics as PDF and as an image below. Keep in mind that they are without any warranty… 😉 I only request you to give me and my site (www.kaibader.de) credits when using it.

ATtiny ISP Arduino Shield SchematicATtiny ISP Arduino Shield Board

I still have a few unpopulated PCBs lying around — Two of them are enough for me, so: for a small fee (postage+envelope) I can send you one as long as I still have them.Update: all PCBs are gone now.

BTW: I’m aware that the shield was attached rotated by 180° on the first photo. It was taken before making the video tutorial and the other photos. (It was kept for aesthetic reasons, and out of laziness.)

This looks brilliant. I was thinking of wiring up a perf board for some attiny85’s. Any chance you still have a pcb left?
If not perhaps you would like to upload your design to a service like batchpcb marketplace etc. so that people can order it from there.
Again thanks for sharing this!

Hi Philip, I’m currently not planing to order a second batch. But I’m playing around with a combined ISP and high voltage programmer shield. Currently it only exists as a ‘breadboarded’ version but I think about ordering PCBs if it works as intended. Kai.

Thanks!! One more thing. I ordered sockets and capacitors from digikey.com, but I can’t tell what kind of capacitors those are in your drawings. I ordered a .1uF Aluminum and a 10uF film cap, but the 10uF is rectangular and waaaay too big.

in the first revision (the one in the post) I’ve used parts I already had. The parts were ordered at a German shop (Pollin). I (just in case) added links to the parts I ordered/used (for you to re-check):

By the way: I was told by others that there is some tolerance regarding the capacity of the caps… Depending on the Arduino board you have other ones might work just as well or even better. In a future revision (I was persuaded to release another one) I will add more pins/pads to allow multiple designs. — Kai

Hi Kai,
great board! I’m going to try to build one myself, but I’m so new to this kind of things.

When you have time could you answer couple of questions:

1) I see the positives lines in the board, I guess the negative is the entire space around it.
2) the film 0.15uF can be replaced by a standard electrolytic 0.15uF? I just started and I have the basic bad material as I still blow up things.

Thanks for the great board! I looked forever for an “all-in-one” that would program the 85/84/2313 series MCUs! I printed 3 of the boards from Oshpark before I even found your blog (I only found it thanks to your web address on the back of the board!).

I’m still a electronics noob so I do have one question: what is the capacitor at C1 for? I ask because I read it wrong and soldered in a 1uF cap instead. It seems to work (I uploaded a blink script to a 2313 without problems) but I can remove the 1uF and replace it with a 10uF easily enough if I need to.

Hi Ben, the capacitor C1 connects the Reset pin to GND and thereby prevents the Arduino board from resetting during the programming process (to put it simple). I was told that different capacitor sizes were also successfully used so feel free to stick to it. — Kai

Hi kai!
I’d like to know how to upload a sketch with a library like manchester o servo8bit using arduino as ISP, could you help me?
I cant make it from arduino because of the error compiling, and when I use the CMD I dont know what to enter as comands
thank you

If u get a compilation error it is no use trying a different way to burn the chip as your code has a problem.
could it be your error is about ‘vector 4’??
your manchester and servo8Bit library may use the same timer interrupt. In the new servo8Bit library it is timer 1 and the manchester library uses that too I guess

I realise it is about a year ago, but maybe someone else is helped by this. Open your Servo8bit.h file and go to the lines:
//#define USE_TIMER0
#define USE_TIMER1
make that:
#define USE_TIMER0
//#define USE_TIMER1
I guess that should do it 🙂

any chance you could upload the sch file too. I would like to play with it and see if I can make it single sided to mill on my cnc. It might not be possible but I would leave the 2313 out as I don’t think I will ever use that MC. Or, it might be easier to send to my email, thanks. PS if I ever publish a resulting file I will credit you!

Hi Frank, the top and bottom layer consist of ground planes. The respective pins are connected to it. If you have problems to display them just let the ratsnest tool (or autorouter, without ripping up the old routes) run over the board file. The SCH-file was too ‘hacky’ to be published. I actually started a new revision but, shame on me, never found the time or pressure to finish it. — Kai

Hello Kai, found your site while searching for a programming solution for ATtiny on a Arduino shield. Great page here, I also apprecaite very much the pdf you made of the lowhightech pages.

I downloaded the .brd and .sch files and will make a set of ten boards (Elecrow), so if people are interested they may contact me through you.
However, I would like to add a LED indicated start or end of prgramming, or a busy signal: how would you propose to add this, and where should the program be altered?