loading
What's with mint boxes and electronics? Beats me, but they are somehow made for each other. I had built ladyada's USBtinyISP v1.0 circuit on a breadboard which I used every other day. It worked sporadically(and never at hour of need), used up half of my breadboard and looked ugly. So I decided to try my hand at home PCB fabrication and build it in, of course, a tiny tic-tac box. Since I was a beginner, the circuit is easy and single-sided and uses crystal instead of ceramic oscillator.

Frankly, I didn't even expect it to work so didn't take any photographs. I recently decided to make it again with a few improvements(notice the old orange one has the top backwards) and document it for Instructables. You have to make one of these if you:
  • want to use bare-bones super-cheap arduinos in your projects
  • want to burn bootloader to a blank AVR for your Arduino
  • love working with AVRs
  • are thinking of buying a programmer

 
Note: You need to break out of the chicken-n-egg problem and get the program onto the ATtiny2313 used in this project. Check out  Step 4 for detailed information and possible solutions.

Edit: Modified board so resonator can also be used for timing! If using crystal, middle pin for resonator can be ignored. If using resonator, no need to solder capacitors C1 and C2.

Step 1: Chicken-egg Downloads

The chicken-n-egg situation while working with microcontrollers is that you need to get your program in a microcontroller to program another microcontroller. I know that's whacky but it's only one-time. There are some ways which I'm listing below. You only need one:

I will be using the earlier version of USBtinyISP I made. I had used a parallel programmer to program it's ATtiny2313. You only need a few minutes to upload the USBtinyISP code onto your ATtiny2313, so you can get someone's help who has a PC with parallel port/serial port/AVR programmer/Arduino.

If you're going to someone's place to get ATtiny2313 programmed, remember to download and keep these files in a pendrive:

To use, install all that you've downloaded and extract the firmware zip file to a convenient location.

Step 2: Stuff You Need

Components required:
  1. ATtiny2313 x1
  2. 20-pin DIP IC holder x1
  3. USB type-B female jack x1
  4. USB type-B cable x1
  5. Crystal 12 MHz x1
  6. Zener Diode 3v6 x2 (3v3 will work too)
  7. 27-68 ohm resistor x2 (I used 33 ohm)
  8. 1.5K ohm resistor x5
  9. 10K ohm resistor x1
  10. 0.1uF ceramic capacitor x1 (cap. code: 104)
  11. 12-22pF ceramic capacitor x2 (I used 15 ohm; Cap. code is same as value)
  12. 100uF 25V electrolytic capacitor x1
  13. Green LED 3mm x1
  14. Red LED 3mm x1
  15. Male header
  16. Ribbon cable
  17. 6 pin ICSP header x2
  18. Female header (optional)
Female headers are not required if you manage to get your paws on ICSP headers. If you can find a pre-made IDC cable, no need for headers or ribbon cable.

Tools required:
  1. Cutter/blade
  2. Plier
  3. Soldering iron + solder
PCB fabrication stuff required:
  1. Single sided copper clad board
  2. Etchant
  3. Drill
  4. Sandpaper
  5. Double sided copper clad board(optional)
Double sided copper board is only needed if you don't have a 6 pin ICSP connector and decide to follow my instructions for a work-around.
Rest of the stuff needed depends on your PCB fabrication method. I use toner-transfer so I need clothes-iron, glossy paper, laser printer etc.

And last but not least, TIC-TAC!

Step 3: Etch That PCB

Download the Eagle files attached at Intro step and etch the circuit into your single-sided copper clad board. This is not an instructable on how to etch PCBs so I'll breeze through it. If you need to learn how to etch PCBs, there are tons of cool instructables out there. I'll be using the famous toner-transfer method.

Recipe for PCB fabrication:
  1. Select only the 16 Bottom, 17 Pads, 18 Vias, 20 Dimension and  45 Holes for viewing. Hit Ratnest.
  2. Click on print. Check Black and Solid and uncheck Mirror options. Set scale to 1.
  3. Print the circuit on a glossy paper(preferably photo-paper) using a laser printer.
  4. Cut a piece of copper board slightly bigger than the printout by scoring with a cutter and snapping.
  5. Use scotch-brite to vigorously scrub the copper board with water.
  6. Wipe with a clean cloth and do not touch the surface.
  7. Iron the circuit  printed onto glossy paper.
  8. Dunk the hot PCB in water. Let the paper soften for 5 minutes. Peel away paper and rub away the sticking paper with a toothbrush.
  9. Dunk the circuit into your favorite etchant. I like hydrocholic acid+hydrogen peroxide. While you're waiting for circuit to be etched, pop a few tic-tacs.
  10. After all the unwanted copper is etched away, wash PCB and dip it in acetone(aka nail-polish remover) for a while. Pop some more of those tasty mints. Use scotch-brite to scrub away all the toner ink.
  11. Ta-da! Shiny PCB is served along with fresh minty breath.

Step 4: Drilling, Sanding and Silkscreening

Start drilling holes in the PCB. Use a bigger drill bit for IC pins, LEDs, ICSP header, male header jumper, crystal and an insanely big drill bit for the 2 USB jack pins used for latching it to board.

Now cut off the excess board material from the sides and sand the edges. I also made little grooves for the USB jack's claw-like thingies to sink into. Keep popping tic-tacs throughout this step. It will help you get through the tedious drilling/sanding while increasing concentration and skill(not scientifically proven).

Silkscreen is the outline of components and neat descriptive labels on top of the PCB. Since this is a single sided board, I pasted a printout on the top side of the board. It got blotched and soggy after I cleaned the bottom side with rubbing alcohol but that was just my stupidity. You can also iron the silkscreen the same way as toner-transfer method.

Just select 20 Dimension, 21 tPlace and 51 tDocu layers and print. Cut and paste it but use glue sparsely else it will plug your laboriously drilled holes. If you are using toner transfer to apply silkscreen, leave out 51 tDocu layer and check Mirror option while printing.

Step 5: Program ATtiny2313

Put your ATtiny2313 on a breadboard. The most important pins for programming are: VCC(pin 20), GND(pin 10), SCK(pin 19), MISO(pin 18), MOSI(pin 17), RST(pin 1). The programmer will have atleast 4 wires: MISO, MOSI, SCK and GND. It might have VCC and RST as well. Connect the wires from programmer to respective ATtiny2313 pins. Put a 10K ohm resistor between RST and VCC pins. If VCC from programmer provides 5V, attach it to  VCC pin. If not, you will have to provide regulated 5V to your ATtiny2313. If RST is not provided, put a button between RST pin to GND pin. Press this button whenever you upload code to your IC.

Now let's burn the firmware onto ATtiny2313:
  1. Open command prompt and navigate to the location where you extracted USBtinyISP firmware and go to spi folder in it.
  2. Type:
                   avrdude -p attiny2313 -c usbtiny
    Replace usbtiny with your programmer's name. List of programmers can be generated using:   avrdude -c ?
    You should get output-1(lablled in image) which means everything is working fine. If you are getting error like Output-3 in 2nd image, check wire connections again.
  3. Set the fuse:
                   avrdude -p attiny2313 -c usbtiny -b 19200 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m
    You should see something like Output-2.
  4. Run the command in step-1 once more. You should get an error as in Output-3. This is because you have set the fuse to run off external 12 MHz crystal. Connect crystal across XTAL pins(pins 4 & 5) and connect both pins to ground via 22pF ceramic capacitors. Try again. The error should go away like in Output-4.
  5. Time to burn the firmware:
                   avrdude -p attiny2313 -c usbtiny -B 1 -U flash:w:main.hex -b 19200
    This should also end successfully. If not, did you have a button connected to RST and did you press it?
Congrats! Your ATtiny2313 is programmed with USBtinyISP firmware code. You can return the programmer you borrowed with heartfelt gratitude and a pack of tic-tac. :)

Step 6: Soldering

Try to keep the solder joint heights low, especially near the USB jack. The USB jack is the thickest part of this project and will make your tic-tac box swollen if the "claws" are not pressed flat or if soldering in that area is of considerable height.

Start soldering the IC holder pins first. Then solder everything else except ICSP pins, electrolytic capacitor, male jumper header and USB jack.

Step 7: Soldering Electrolytic Capacitor

The electrolytic capacitor, if soldered the traditional way, stands pretty tall and will not fit in the tic-tac box. So time to lay it down horizontally.

Solder it in place keeping the polarity in mind, but keep a few mm of leads separating the capacitor from board. Now bend it into a horizontal position. Don't worry if you kept the leads a bit too long and it ends up resting on a pillow of the adjoining resistor, instead of being flush against the board. You just need to make sure that it is low enough to fit in the box.

Step 8: Soldering Male Headers

Now let's solder those male headers. Break away 2-pin male headers and solder them in their place next to the capacitor. Now take your pliers and bend the pins by about 90 degrees.

This easily accessible jumper option is available so that you can power the AVR IC you are programming with USB power supply. Connecting a jumper means target IC will be delivered USB 5V. Removing it will cut it off. Never have a jumper on this if you are powering your AVR with some other source. Clashing power supplies are not good for your AVR and programmer.

Also, if you have a 6 pin ICSP header or IDC cable(cable with ICSP headers pre-connected with ribbon cable), then solder 3x2 male headers in the holes labelled ISP. I couldn't find any of them in local stores, so I made a small hack to replace the cable. If you follow in my footsteps, do leave the ISP holes as is for now.

Solder the USB jack as well and bend those claws flat against the bottom of board.

Step 9: Fitting USB Jack in Top Lid

Hopefully you've managed to empty a tic-tac box by now. Take a blade and cut through the tic-tac labels so the top cap can come off. The top cap's lid will open to reveal the USB jack. For a good connection between the cable and jack, the jack needs to be flush against the top of the tic-tac box lid opening. If you try to fit the USB jack into the cap, it will not reach the opening because of the PCB being stopped by the cap's sides. Mark and cut off a few mm of the cap side as shown, so the board can slide in and the USB jack can sit flush with the opening.

Step 10: Making Makeshift IDC Cable

This is where we may go down slightly different paths. If you have ICSP connector with ribbon cable, then follow the instructions at bottom of this page where ladyada shows how to make the IDC cable from ICSP connector and ribbon cable. Make a hole at the bottom of tic-tac box big enough for your connector and cable to pass through and attach it to the male header pins you soldered earlier, keeping in mind that the dot on silkscreen and key/bump on connector are on the same side.

If you are following my method, then cut off a 6 wire ribbon cable choosing the edge with stripe. Then I stripped and twisted the wire ends and arranged the wires in 3x2 kind of formation. Every alternate wire was on kept on the same side. This then went into the ISP 3x2 holes in the PCB with the pink striped wire going into the pin with the dot(MISO) and soldered. Keep it like this if you are only going to use it on breadboard. But if you want to use ICSP headers on boards like Arduino, then read on. Also, now is a good time to test whether this is working or not.

If it's working fine, cut a slit at the bottom of your recently-emptied tic-tac box and thread the unsoldered end of the ribbon cable through it. Take the mini tic-tac box and cut a slit in it's top cap and a pretty big one at the bottom. Thread the ribbon cable through the top and out of the bottom.

Step 11: Making ICSP Connector

Etch the simple ICSP connector circuit whose Eagle schematics I have provided at Intro step. This is a double sided circuit. I tried using pre-drilled single sided prototyping PCB for this step in my previous version but that was extremely difficult to solder. I find double sided to be the best option as the ribbon cable wires emerge at the top side while female header pins emerge at the bottom side.

First solder the 6 vias in the PCB which are providing connection between top and bottom layers. Put a thin bare wire through the vias, solder it at both ends and snip off the excess wire.

Cut off 2 3-pin female headers and stick them together so they form a 3x2 female connector. Now place it on top side and solder it's pins on the bottom side. Finally, bring the wires from ribbon cable emerging from the bottom of mini tic-tac and solder them the same way they went into the main board. Insert the pink striped wire into the hole with the dot(MISO) and the next one in VCC, then SCK and so on.

Notice this is a mirror image of the layout of these pins in the main board. This is because these female headers will connect to male headers on board and need to be mirrored so they align properly.

Just glue the ISCP connector PCB to the bottom of mini-tic-tac box and we're done! 

Step 12: Program Away!

Give yourself a pat on the back for doing such a fine work and pop a few mints as a reward if you still have some left. :-)

You can see a close-up of the old and new version's ICSP connectors. The old one was compact but the header was on the bottom of the big tic-tac box and so the PCB couldn't be slid out for repairs without snipping the wires connecting header with board ISP pins. Also, the big enclosure would sometimes not let the male and female headers to interact properly due to tall vertical components on some boards. The whole weight of the programmer also bore down on the connector and slight movement of USB wire caused it to jiggle.

Try it out and program arduino codes onto stand-alone AVR ICs using this to make cheap and simple bare-bones Arduinos for your projects. Or you can put a fresh AVR into your Arduino and program it using Arduino's built in ICSP headers with this. Have fun programming!

Thanks to catlinsdad for motivating me to make my first Instructable...

If you liked this, please vote for the UP contest. 
Just finished mine works perfectly. I've had an old arduino uno in the draw for a while the usb on it dropped dead. TBO i though the entire unit was fried, I just brought it back to life with the Tic-Tac USBtinyISP Programmer. Usb on the uno is still not working but everything else is good, and now i can programme it again, <br> <br>Thank you for the clear instructable, I'm new to making my own pcb's and i had a lot of fun making this one. <br> <br>Cheers
yours looks cool too
Woah! Can't believe someone tried out one of my crazy designs! And that looks awesome. Hard to believe you're new to PCB fabrication.<br><br>I also fried my Arduino long back. A change of IC brought it back, except for USB connection. Just like your case, Tic-Tac USBtinyISP came to the rescue. Later I tried DFU programming and managed to restore serial transmission from Arduino to PC, but could not fix PC to Arduino. That meant I still had to rely on USBtinyISP for programming but could now read serial data sent by Arduino.<br><br>You should give DFU a go. Here is the thread I started for it:<br>http://forum.arduino.cc/index.php?topic=127017.0;wap2<br>Hope it helps.<br><br>I'm really really really glad you made and shared it. :-)
Thanks for the tip i'll check it out :) <br> <br>I actualy wanted to make your ArrDrownHo! which is what got me to this instructable, this one seemed easier so i decided to start with this. I'll be building the ArrDrownHo! this week i'll post the images as I go wish me luck with my first double sided board! <br> <br>Thanks again <br>Dave <br>
That's great. You'll love ArrDrownHo! Now I hardly ever use my Arduino as ArrDrownHo! does all that, and is also breadboard friendly. It's harder to solder than tic-tac USBtinyISP, and all the components are a bit crammed together but the end product will be worth it. Best of luck for the build.
<p>Hey ,</p><p>Tried to recreate the schematic on a test board ,bought new parts etc, but I'm always gettin the message &quot;This device has malfuctioned , This usb device has not been recognized &quot; and it doesnt appear in the Device Manager as USbtiny but rather as an unrecognized device with error code 43.Tested it on win 7 x64 , win 8.1 x64 , win XP x86 with the same success. The circuit is tested by multiple people including myself and it seems to be correct . Any thoughts on resolving this ? (Firmware appears to be installed correctly onto the chip)</p>
the same for me :(
<p><a href="https://learn.adafruit.com/usbtinyisp/drivers" rel="nofollow">https://learn.adafruit.com/usbtinyisp/drivers</a></p><p>Try downloading driver for USBtinyISP from this link. New signed drivers for 64 bit windows are now available!</p>
<p>These drivers doesnt seem to help as the none of the pc's I've tested it on seem to recognise it as USBtiny but rather as &quot;malfunctioned device &quot;. The error code is 43 which is standard for the usb failures on the hardware end however I've checked the hardware and everthing seems to be in order ( checked multiple times and made other people verify my work ) Can't really figure out what I'm doing wrong.</p>
<p>Try using different USB cable.</p><p>Try uninstalling and reinstalling driver(even if device isn't discovered).</p><p>Check polarity of diodes, capacitors etc.</p><p>Make sure you followed the step-5 EXACTLY and burned the fuses properly.</p><p>Make sure you are using components of proper value.</p><p>Triple check all soldering with a magnifying glass. There could be cold solder joints.</p><p>Make sure with a magnifying glass no traces are touching each other.</p><p>Lastly, try making a fresh circuit on a breadboard (that's how I used to program AVRs before learning to make PCBs).</p>
<p>If you got it working, please hit the 'I Made it!' button and maybe post a pic if possible :)</p>
<p>Hey man awesome guide , I soldered the parts together but i'm having trouble using an arduino to program the attiny2313. I particularly have difficulties finding the code to burn onto the attiny. Can you give me some pointers ?</p>
<p>Do read through this:</p><p><a href="http://arduino.cc/en/Tutorial/ArduinoISP" rel="nofollow">http://arduino.cc/en/Tutorial/ArduinoISP</a></p><p>In short, the whole process is: </p><p>In Arduino IDE, go to File &gt; Examples &gt; ArduinoISP and &quot;Upload&quot; the code to Arduino. (the board should be Arduino Uno and correct port should selected).</p><p>Wire up the ATtiny to Arduino as mentioned in this link: <a href="http://www.ernstc.dk/arduino/2313.htm" rel="nofollow">http://www.ernstc.dk/arduino/2313.htm</a></p><p>Now you can follow step-6 of this instructable. The only difference is instead of using <em>-c usbtiny, </em>use <em>-c avrisp</em> for every command.</p>
<p>Hey , </p><p>Followed your instructions and the attiny was successfully programmed ! However i ran into some other troubles . When i plug in the device into the PC, a message pops up saying &quot; USB device not recognized . The device has malfunctioned. &quot; Tried the various solutions posted on the adafruit forums and some other helpful sites , installed numerous drivers even through the hdwwiz.exe but i couldn't get my PC to recognize the usbtiny. This was done on win7 x64 and win8.1 x64. Got any suggestions on how i should proceed ? </p>
<p>u mentioned BOOT LOADING ,actually when you programmed the chip is it necessary to boot load or what actually , i am lil confused as am new to this stuff :) can u plz explain</p>
<p>A programmer(like USBtinyISP) is necessary to program an AVR IC(which is the brain of the Arduino). Instead of using a programmer everytime to write a new code, AVR used in Arduinos have a special program called bootloader written on them during manufacture using a programmer. This takes up a small part of the AVR's memory space.</p><p>The benefit it provides is now you don't have to use a programmer and program it using serial communication. Since IC for serial is already on the Arduino for connecting to PC via USB(Universal &quot;Serial&quot; Bus), the Arduino IDE software on PC can talk to the bootlader and send it your code. The bootloader writes it in the remaining memory on the AVR. So simply said, mainly bootloader is a program to allow you to write another program using serial communication.</p><p>Keep in mind that the bootloader takes care of a few other functions, and that both your program and bootloader are coexisting on the IC. The AVR just runs the bootlader and the bootlader in turn runs your code. If you upload your code using a programmer, you will overwrite the bootloader. If you need the bootloader again, you'll need to write it again using a programmer. I hope this clarifies things a bit....</p>
<p>i am gonna sure try this ,thanks for the awesome post :)</p>
<p>Cool!</p><p>Nice Job :)</p><p>would it be ok if i asked you to post a schematic picture ?</p><p>(my computer is running on the old version so i can't open Eagle)</p>
<p>Thanks!</p><p>Here's a screenshot of the schematic...</p>
<p>Hey! Great 'structable! Much Thanks for sharin' the info! Q: if I wanted to use a 328 instead of the ATiny and changed the crystal to a 16 mhz and, a 28 pin IC holder. would everything else be the same / work using a 328 to load 328s?</p>
<p>Using a 16MHz crystal is not possible since the USB protocol will require very accurate timing which will be off since the code is written according to a 12MHz crystal. The code is written in avr-c, so to use it on an ATmega328P, you might need to change the pins as well in code.<br>If you are talking about uploading this code onto an Arduino or one of its clone(ATmega328P and 16MHz sounds like an arduino), then I'd suggest to go with <a href="http://arduino.cc/en/Tutorial/ArduinoISP" rel="nofollow">ArduinoISP</a>.</p>
<p>Uh..Duh! I wondered about that 12 mhz thing...of course not knowing WHAT I dont know...I bought 2 USBasp s! Thanks, this is the first clear answer / direction I've gotten on this. On the flip, I'm looking at a UNO clone that has the 10 pin header for asp connection. Hey, so now I have 4 atmega chips and 3 different type boards to put 'em on! ...I'll keep buildin' until I can get a programmer to work on one! Much Thanks!</p>
<p>just finished mine, i uploaded the main.hex file and avrdude said it verified correctly, but windows won't recognize it, and it says the diver file is not compatible with my hardware. do you have any idea why it would be doing that? did i need to burn a different hex file?</p>
<p>Which windows are you using? If it's Windows 8 or 8.1, the procedure is slightly complicated. Instructions to install drivres on all Windows systems can be found here:</p><p><a href="http://learn.adafruit.com/usbtinyisp/drivers" rel="nofollow">http://learn.adafruit.com/usbtinyisp/drivers</a></p><p>Give it a through read. If it still won't install the driver, send me a screenshot of the error, and I'll try my best to help you out.</p><p>P.S. If your project is finished, can you please post an image? I love to see people making my Instructable :)</p>
what ur telling is right but if avrdude don't have atmega8L in his file then how it is reading the atmega8L chip when I connect it with usbasp?? I type &quot; avrdude -c usbasp -p m8 &quot; it gives me the proper answer. but when I change the programmer from usbasp to usbtiny den the errors comes. I'll try again troubleshooting as yesterday night I read the whole adafruit tutorial which u have described in ur tutorial also they have told the same error message which am getting. and they are telling if u get the error message den the programmer is not spking with atmega8L or there is wiring errors. but I've checked for wiring errors it's not there. pls u also once see that tutorial. so that u'll exactly understand what problem am facing. pls check under &quot; stuff that can go wrong&quot; thanks for ur quick replies. but slowly slowly am loosing my hopes on the programmer :-(
Hi,<br> Did you have any breakthrough with your problem?<br> I recently bought an ATmega328 instead of ATmega328P. avrdude wouldn't accept it. I followed this instructable to fix the problem:<br> <a href="https://www.instructables.com/id/Bootload-an-ATmega328/step6/ATmega328-PU-workaround/" rel="nofollow">https://www.instructables.com/id/Bootload-an-ATmega328/step6/ATmega328-PU-workaround/</a><br>
heyy, just now I tried to check weather the atmega8L is spking with usbtiny or not and its not spking it's giving me an error &quot; initialization failed , rc=-1 double check connections or try again or use -f to override this check &quot; and the same error is even been seen on arduino IDE when I burn bootloader on atmega8L or I upload any sketch. and this problem is only with atmega8L not with atmega328. and if I try to do same thing with usbasp then no problems. so can you pls tell me some solution. :-)
I checked my avrdude and there is no ATmega8L listed in its parts. It's possible there is significant difference between ATmega8 and ATmega8L. I checked the ones I programmed and they are without an L. If you have one, can you try with ATmega8? If this is the problem, you will have to change avrdude config file to include ATmega8L.
the programmer does works with atmega328 it burns the bootloader on atmega328 but not on atmega8L. the error is lyk &quot; avrdude fail and not in sync&quot; u can find these errors on internet if u look for arduino as isp. people have came across these types of errors. besides that the main aim to burn the bootloader on atmega8L is its of Rs. 70 only. whereas atmega328 is of 500 and above. I'll check weather the usbtiny is reading atmega8L or not. but everything works gr8 if I try with usbasp. pls any other alternative would be helpful
actually finally I finished the Project and I was eagerly waiting for ur rply. the programmer works but it's not burning the bootloader on atmega8L. and my main purpose was to program atmega8L. &quot; Mehenat ka faal mitha nahi mila meko &quot; :'( but. am able to program atmega8L with usbasp. pls can you give me some suggestions or can help me. I have even posted on ur site.
By your comment 'the programmer works', do you mean you are able to program other ICs? Or just that the computer recognizes it? What is the error you are receiving with ATmega8L? Are you selecting a board with ATmega8 in the Arduino IDE?<br> <br> You can try checking through command line using avrdude if it can talk to the ATmaga8L. If using windows, open cmd and type: <em>avrdude -c usbtiny -p atmgea8</em><br> Detailed tutorial here:&nbsp;<a href="http://www.ladyada.net/learn/avr/avrdude.html" rel="nofollow">http://www.ladyada.net/learn/avr/avrdude.html</a><br>
it's really very very very very very best instructable on this website. u have shared the most detailed things for making this project which people usually don't share easily. again thanks for the instruuctable. I have one question :-) in the video of ArrDrowHo. which avr u used? was it atmega8L ?
Thank you! I think I used ATmega328P in the video. I tried using Atmega8 earlier but the bootloader takes about 8 seconds to start code execution after power-up(which looked alarmingly long in video), while ATmega328P's bootloader takes 1 second or less usually. But the bootloader burning time is waaay longer for ATmega328P so I sped it up in the video.
cool!
Hello <br>First of all very nice instructable, but could you explain me something? <br>I dont understand the purpose of R2 and R3. Why are they necessary, to prodect the pins after the target has been programmed? Also C3 is for smoothing the power supply, but what is C6 used for? I saw a instructable that used ATtiny85-20 with only the zener diode part for the programmer, no resistors on MOSI SCK and no C6.. <br> <br>Thank you
<a href="http://forums.adafruit.com/viewtopic.php?f=20&t=40741" rel="nofollow">A discussion thread on adafruit</a> tells us that R2 and R3 are not strictly needed and are there just for safety, probably from some externally connected load to MOSI/SCK pins while being programmed.<br> <br> C3(0.1uF) and C6(100uF) are both decoupling capacitors, connected across the power supply to remove both high frequency and low frequency noise. This combination ensures a smooth power supply to ATtiny2313 over a wide range of power supply noise frequency.<br> <br> I'll quote the following text from a <a href="http://www.thebox.myzen.co.uk/Tutorial/De-coupling.html" rel="nofollow">decoupling tutorial</a>:<br> <em>For effective supply de-coupling that frequency has to cover as wide a range as possible and certainly the range of noise being generated by the circuits. So this is why we often see two different values of capacitor used in parallel. One large one to filter out the low frequency variations and a small on for the high frequency noise. Typical values are 47uF and 0.1uF or 0.01uF (10nF)</em><br> <br> Glad you liked my Instuctable. :)
Thank you very much for your reply, it helped a lot.
In all actuality, it will hurt even more than,&nbsp;<em>'like hell',</em>&nbsp; for that chicken to lay an IC ... mainly because that's a picture of a rooster! &nbsp;OUCH! &nbsp;;-)<br> <br> Nice instructable! &nbsp;I'm going to give one of these a go.
Hahahaha. Nice catch. Then instead of laying, it probably came out in the rooster's toilet pot in the morning ;P
great project, but does it actually work and can I use a 3 pin 12 MHz resonator?
I've uploaded a video of it in action as well. There is some problem with audio channels though.
How dare you doubt the authenticity of my project!!! Just joking... :P <br>Yes, it does work. I've been using it extensively the past few months. I don't have any other programmer and trust me, I've been coding a lot of AVRs. So it has been holding up exceptionally well. I recorded a short video of it in action but was too lazy to edit it. Will try to finish it an put it up soon. <br> <br>Your comment gave me an idea. I've modified the board design so it can be used with either crystal or resonator, whichever is easily available for you. You can look at the board design's comments to see how it can be used with a resonator(on the intro page).
hey can i use this ? usb to parallel port? http://www.cdrking.com/?mod=products&amp;type=view&amp;sid=2483&amp;main=140 it says &quot;Ideal to connect parallel port interface equipment from your USB port &quot;
It's better to invest in an AVR programmer if you are going to spend money anyways. I tried using a usb to serial port convertor once and it didn't work out. These convertors sometimes barely fulfill the protocol requirements and the parallel port programmers lie in the grey areas of protocol usage.<br><br>So I'd say if you are just starting out and don't have access to any of the devices to get out of chicken and egg problem, and you are ready to spend a bit of money, you should definitely buy an avr usb programmer.
hey guys im very sad today that my place is the hindrance for my dreams i always wanted to make that one but i dont know if a PREPROGRAMMED 2313 is available here in PH :( . . i dont have a parallel port in my laptop either :( can i use my USB PORT to preprogram these chips Plsss .. i need your help
You can read through step 1 to find out how to begin.<br><br>Do you know anyone who has a desktop with parallel port or owns an Arduino or some Arduino clone?
for the diodes, can a 1n4148 diode work?
1N4148 is a switching diode. We need 3v6 zener diodes for this. The purpose for these is to cap the maximum signal voltage to 3.6V. Since AVRs use 5V, this is a cheap and easy hack to make AVR's signals USB compatible. <br>If you don't have 3v6 zeners, you can use 2 other diodes in series to drop voltage like this guy did: <br>http://hex.ro/wp/projects/atmel-usb-programmer/ <br>No guarantee if it will work or not... :)
Hi can this be used as an arduino clone??
Arduino's primary functions are just <em>powering up your AVR</em>(Arduino's brain) and <em>providing a serial interface</em>&nbsp;so a computer can talk to and program the AVR.<br> If you only connect Arduino to computer for uploading your program and then use it in isolation from the computer, then instead of using a whole Arduino, you can just power an AVR with 5V and use USBtinyISP to upload your code. That is a bare-bones Arduino with the only missing feature being the ability to talk to a computer(not required in most cases). This setup will cost you waaay less than an Arduino.<br> <br> So, this cannot be used as an Arduino clone. But it can let you upload code onto your bare-bones Arduino clones.<br> <br> -Antzy

About This Instructable

63,400views

292favorites

License:

Bio: I'm programmer and an electronics hobbyist. I try to find that point where software meets hardware meets art. "Necessity is the mother of all ... More »
More by Antzy Carmasaic:IoT Time Warp Dali Clock Pure White Background Photography Using Smartphone Rainbow Roller 
Add instructable to: