loading
     Arduino projects are very popular but also big and expensive. There are many times that we don’t need so many input or output pins. As a matter of fact, most projects could be accomplished with only 2 or 3 inputs and outputs. Besides the size, using one Arduino board for each small project can be costly.
     So the solution is given (again) by Atmel with the ATtiny microcontrollers. Especially the ATtiny85 chip, which has 8 Kb flash memory, 6 input/output pins, low power supply at 1.8-5.5V, small 8-pin packaging and costs only 2-3$.
     It is very easy to program the ATtiny85 using our own Arduino board based on the tutorial Arduino-based ATtiny programming published by MIT’s High-Low Tech research group.
     In this instructable I will try to guide you step by step, through the whole procedure of constructing a small board – shield for the Arduino, so that the programming can be made easily and fast. This is what I named the ATtinyShield.

For more Arduino and ATtiny85 projects, check my blog: http://attiny85.blogspot.com

If anyone needs the PCB and/or the Shield premade check here:
(WITH NEW PCB CHECK PHOTO 4 below)
http://www.ebay.com/itm/221324819158

Step 1: What Are We Gonna Do...

     Before we start, let’s overview what our objective is.
     As pointed out by the MIT’s High-Low Tech tutorial, we have to connect the ATtiny85 (pins 1, 5, 6, 7) with 4 digital outputs of our Arduino (pins 10, 11, 12, 13), give 5V and Ground to pins 8 and 4 of the microcontroller and finally place a 10uF Electrolytic Capacitor between the Reset and Ground of the Arduino.
     In my project I have added an indicator LED on pin 9 of the Arduino that shows that the programmer is running properly and a reset tact switch for the ATtiny85.
     All this can be seen on both the schematics above.
     So by creating a small shield with all these connections, it’s easy to plug it on our Arduino and worry only about the programming stuff.

Step 2: Gathering the Components...

     Let's start by gathering all the necessary components. I’ve bought them from taydaelectronics.com but you can find them anywhere.
     The total cost is about 3 dollars without calculating the etching procedure you’ll follow.

    Electronic Components:
    • ATTINY85V-10PU Microcontroller IC [$2.38]
    8 pin DIP IC Socket [$0.03]
    10uF Electrolytic Capacitor 25V [$0.02]
    Resistor 200 Ohm (Red-Black-Brown) [$0.01]
    • Tact Switch 2 pins SPST-NO [$0.04]
    12 Pin Header 2.54 mm (in three parts of 5-4-3) [$0.15]
    11 Female Pin Header (in three parts of 4-4-3) [$0.39]
    Jumper Connector for 2 pins (any old CD-Rom should have)

    Pcb (you can skip if use a prototype board):
    • Small 6cm X 2.5cm one side copper board
    Etching solution like Ferric Chloride or Sodium Persulfate.

     And of course an Arduino board (mine is an Uno Rev. 3, but any other will do) and the Arduino IDE version 1.0.1 installed.

Step 3: Making the PCB...

     PCB is a Printed Circuit Board and it will make this shield very easy to build and use. The two rows of pins that should be connected on the Arduino board must be aligned for easy fit, and for that a PCB is the best solution. So let’s make one.

     • Download the rar file that contains the files of the PCB schematics and some pictures of the circuit to be printed as silkscreen.
     • Print the circuit on a glossy paper with a laser printer. As shown on the pictures it must be the negative version of the circuit.
     • Prepare the small part of one side copper board by scrubbing and cleaning it. It should be 6cm X 2.5cm.
     • Put the printed paper on the board and press it with a hot iron. After 5 minutes, soak it in warm water, then peal the paper and you will have the toner transferred on the copper. (If you want, you can find more info about this procedure by searching for Toner transfer method.)
     • Prepare your etching solution by dissolving Ferric Chloride or Sodium Persulfate on water. Then place the board in it and wait for the etching to be completed. (Be very careful with these stuff and if needed find more info about this procedure by searching for etching PCB.)
     • Clean the finished board and it must look like the last picture, with only the copper tracks - that where protected by the toner - left. Nice work.

Step 4: Finishing the PCB...

     Once you have finished the PCB etching, its time for drilling. With a small 1mm drill bit (or smaller), open the holes indicated by the copper schematic.
     The board side that was left with no copper is blank, but not for long. We are going to place a little card known as the Silkscreen. In the rar package you’ve downloaded earlier, there is an image file called ATtinyShield Silkscreen. Print it – in colour if available – and place it on the board. A little tip here is to laminate the paper, because the soldering might affect it in the next step.
     Now, with the Silkscreen glued on the surface of the PCB, we are ready to proceed to the soldering stage.

Step 5: Soldering the Components...

     Here is the easy and fun part. Place the components on the board with the help of the Silkscreen layer and one by one solder the parts on the PCB.
     It’s better to start with the pins that connect the shield to the Arduino. Make sure after the soldering that you have a nice fit on your board.
     Note that the ATtiny85 chip isn’t attached to the shield, during the soldering process. We will add it to the next stage.

Step 6: Finished Shield...

     Attach the ATtiny85 on the shield and the little jumper connection on the 5V selection (5V - SEL). We are ready to place it on the Arduino board.
     The connections are as following:
     • The 5 pins connector (DATA) of the ATtinyShield to pins 9 – 13 (DIGITAL) of the Arduino board.
     • The 4 pins connector (POWER) of the ATtinyShield to pins RS – 3.3 – 5V – GND (POWER) of the Arduino board.
     If everything went normally, you must have an easy fit. If not you could tilt the pins a bit.

Step 7: Setting Up the Arduino IDE and Uploading...

     Now that the construction part is over, we have to set the software of the Arduino IDE for the programming phase.
     As seen on the photos above, we have to follow some more steps:
     • 1: Open your Arduino IDE 1.0.1 version. Make sure you have the COM port and your Arduino board set correctly.
     • 2: Go to File Preferences.
     • 3: Copy the Sketchbook location mentioned on this window.
     • 4: Navigate to this folder and you’ll find a subfolder named Hardware in it – if not create it.
     • 5: Download the necessary files for the ATtiny85 ATtiny (from this GitHub repository) and put it in this folder (Hardware).
     • 6: Restart the Arduino IDE and in the Board section you must have a lot of new choices. Do not change the board yet.
     • 7: Select Arduino as ISP on the Programmer menu.
     • 8: Now let’s run the script that will turn our Arduino into and ISP programmer. Go to File – Examples ArduinoISP.
     • 9: This sketch will also test our shield. The LED we have connected on pin 9 is the Heartbeat LED that shows the programmer is running fine. Let’s upload it and see if it will light.
     • 10: Now that the sketch is uploaded the LED must light, like a heartbeat… If not, check the ATtiny85 installation on the DIP socket and rerun steps 5 to 9.
     • 11: Go to Tools, change the Board and select the ATtiny85 with internal 1 MHz clock.
     • 12: Now it’s time to upload the Blink sketch to ATtiny85. Load it from the Examples menu.
     • 13: Change the pin of the LED on line 10, from 13 to 0. Refer to the ATtiny85 pin-out image on Step 1.
     • 14: Finally uploaded it and ignore the 2 avrdude error messages. You are DONE.

Step 8: Testing...

     The small microcontroller is ready to be tested. You can leave it on the ATtinyShield and test it there, while it is powered by the Arduino. But let’s try it out on a breadboard and see if the Blink function is activated.
     Connect pin 4 of ATtiny85 to the Ground and pin 8 to 5 Volts. Then connect the pin 5 (that is referred as pin 0 on the pin-out schematic) to a LED (through a small 200 Ohm resistance). It must blink with a second of period. The programming worked!

Step 9: Finally...

     We finally got here. After constructing the PCB, soldering the components, setting up the software and testing it, we have a working shield which can be used to quickly upload any sketch to our small ATtiny85. By doing so, a lot of our projects can shrink and fit anywhere and furthermore reduce the cost significantly.

Thanks for your patient and since this is my first instructable, I’ll be waiting for your comments and corrections.
<p>ATtinyShield files.rar, need password please....</p>
<p>it is down below</p><p>Anyone having problem with the Rar file the pass (if needed) is: <br>koursaros</p>
<p>Thank you very much!</p>
<p>Looks great!!</p>
<p>Made it and it works First chip programmed :) great instructable, thanks!</p>
<p>Glad you ve liked it friend!!</p>
<p>I made it, I just added the green LED with resistor at pin 3 for testing purposes. Thanks !</p>
<p>great addition!!</p>
my dip8 programming shield of choice! thank you so much
<p>nice friend!!</p>
<p>I've got the best results with printing the PCB in GIMP using those values of sizes... Might be useful for someone! I'll add some pictures with the finished thing! Cheers! :)</p>
<p>nice printing on pcb friend</p>
<p>Awesome project!</p><p>Made my own version of it... ^^</p><p>Thanks!</p>
<p>Great</p><p>glad you ve liked it</p>
<p>Really nice instructable!!!</p><p>Great job.</p>
<p>thanks friend :)</p>
<p>Thank you Koursaros!!!! I was able to make my own shield thanks to your steps. The only question I have is how does pin 9 connected to the LED come into play with the tiny85? I was also wondering if I am have a copy of your PDF guide booklet? Oh yea, do you like how I added a small breadboard? </p>
<p>Great idea adding a breadboard =D</p>
<p>Thanks, the breadboard comes real in handy </p>
<p>Hi friend</p><p>Great making</p><p>I saw your message a bit late so if you have any question please tell me again.</p><p>bye</p>
<p>great. but what is the function of the switch? id dint see it used during the programming, or did i overlook something?</p>
The switch is for reset. <br>When u press it the sketch that was uploaded restarts and the sequence starts from the beginning. <br>It's a useful function.
<p>ok, thanks, but not necessary for the programming itself. Clear! :-)</p>
koursaros, have you considered making a Eagle .BRD file of your schematic so people can get them fabbed by someone like OSHpark?
hi friend <br> <br>Sorry it took me so long to chack the post. <br>I have it on another programm because that was what i was working on then. <br>But there is a print out so the idea is there... <br>thanks
<strong>If you want the board:<br> <a href="http://www.ebay.com/itm/221324819158" rel="nofollow">www.ebay.com/itm/221324819158</a></strong>
I thought this used a soft reset from the uno, hence the reason for the capacitor. could you please explain? Do I still have to press the button to reset right after the upload?
Hi <br>As the http://hlt.media.mit.edu says about the capacitor: <br>&quot; <br> The capacitor prevents the Arduino board from resetting (which starts the bootloader), thus ensuring that the Arduino IDE talks to the ArduinoISP (not the bootloader) during the upload of sketches. (The capacitor is needed if you&rsquo;re using an Arduino Uno, and might also be necessary for an Arduino Duemilanove.) <br>&quot; <br>The button on the shield resets the program thats already uploaded and starts the sketch from the top. <br> <br>I hope i understood your question. <br> <br>Thanks for your comment.
would you be willing to sell one of these? maybe in the form of a kit or something?
Hi. <br>I think it is very easy to make one of your own. <br>That's why i have all these instruction step by step. <br> <br>But if you want to make one for you - with no interest to make money - contact me in kours3@gmail.com. <br>I could make u one and pay only the materials and shipping costs. <br> <br>Thanks for your interest in my istructable :)
I got some time and went ahead and etched and assembled it myself. Thank you for this instructable! really helped me work through etching my first board
Hey I am glad u made it by yourself. <br>Happy to help. <br>I d like to see a photo of it assempbled by u just for fun... :) <br> <br>See ya.
Not the author here, but I actually make and sell a shield that can program ATtiny and ATmega microcontrollers. Just google &quot;ArduinoISP Deluxe Shield.&quot;
Anyone having problem with the Rar file the pass (if needed) is: <br>koursaros

About This Instructable

26,958views

125favorites

License:

More by koursaros:Arduino ATtiny85 programmer Shield on PCB [ATtinyShield] 
Add instructable to: