This is how to hack an Evil Mad Scientists Lab Arduino ISP Shield so that you can use the Arduino environment to program some nifty little microcontrollers.

The Arduino is a great little development environment for creating electronic projects http://www.arduino.cc/ but there are times when you just want the minimum possible pieces, and don't want the expense, or size, of a full Arduino plus breadboard/prototyping shield.

That's when you want to use a dinky microcontroller.

Fortunately AtMel (who make the AtMega inside the Arduino) also make a bunch of little ones called AtTiny. These range from 6 pin to 28 pin chips, and use almost the same instruction set as the big guys - they are part of the same AVR family.

My chip of choice for these kinds of projects is the ATtiny85

It has 8K of program memory, comes in a PDIP 8 pin package and has 5 (or 6) I/O pins. It also has 512 bytes of static RAM, and 512 bytes of EEPROM. It can run on two AA batteries (3 Volts, some version will go as low a 1.8V), and doesn't use much power.

For the technically inclined see http://www.atmel.com/dyn/resources/prod_documents/2586S.pdf for a summary of its capabilities.

Step 1: Things you will need


- for this instructable an older Arduino is better than the latest.  The UNO has a problem, soon to be resolved, which prevents it from working as an ISP.    I use a Diecimila with an older atMega168 - this is a good use of an older device.

- if you don't already have one, I can recommend Adafruit http://www.adafruit.com/ as a supplier

Arduino ISP Shieldhttp://evilmadscience.com/productsmenu/tinykitlist/253

- this image is from EMSL website
- build the ISP kit, and make sure it works.
- you most likely will want the jumper connection set to


- also load the Arduino ISP example sketch  Files -> Examples -> ArduinoISP and upload it into your Arduino.

Software follow the instructions here: http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585

- this is a really nice page with good information about how you can wire up your own breadboard to achieve the same thing.
- in particular you will need to install the AtTiny45_85 support files http://hlt.media.mit.edu/wiki/uploads/Main/attiny45_85.zip


- AtTiny45 or AtTiny85 chips to program - they are available from Mouser, DigiKey and many other places.


- connecting wire - I used bits of wire wrap because it is small and neat; but any insulated wire, you can solder, will do!

<p>Nice mod -- I almost always use attiny85 or atmega328, so this mod was perfect; I followed @ArtificerMade's lead.</p><p>Using solid core wire definitely helps make it easier. Take your time and you get get it nice and clean. </p><p>@cyclicedundancy has a good idea. If you carry it a bit further, you could add multiple sets of headers (to go into the EVM shield) wired to the ZIF socket; for attiny2313, attiny84, etc so you could just position the daughter board in a few positions for your specific chip.</p>
<p>This has been up for 3 years or so, but ... I just built it and thought I would say thanks.</p><p>Thanks!</p><p>Only addition I made was to tie pin 14 to pin 3 (the green wire with the cracked jacket). Pin 14 went to the &quot;Hello&quot; led. After burning the bootloader, running the &quot;blink&quot; sketch is a common way to check that the chip is working. Blink is the &quot;hello world&quot; for arduino type projects. With my setup, I just have to modify the output pin to 4 in the sketch (physical pin 3 is called 4 by arduino)</p>
<p>Nice add!</p>
thank you for finally replying. I was wondering about this, but had moved on to build8ng my own perfboard shield for my 85s
Doesn't routing those 3 wires on the right side take away the 328 program capability? I would think you wouldn't want to bridge those connections back into the chip.
Sorry for the delay - the atMega168/368 still work fine. The extra pins wired for the atTiny85 are not used when programming the bigger chips. Of course the wires are still there, the 168/328 just ignore them.
<p>does it still work for the atmega328/168/8 microcontroller??</p>
<p>It works fine for the 128/168 also. The signals on the extra pins are simply ignored when programming.</p>
This is so much simpler than what I came up with: <a href="http://www.flickr.com/photos/heyvikram/sets/72157635589697575/with/9740290024/" rel="nofollow">http://www.flickr.com/photos/heyvikram/sets/72157635589697575/with/9740290024/</a><br> Wish I had googled it first... :-)

About This Instructable




More by rleyland:Hacking an Arduino ISP Shield for AtTiny45 / AtTiny85 
Add instructable to: