The Leonardo was my first Arduino, I bought it because it's native USB capabilities. After experimenting with Arduino, I decided to migrate from my Arduino Leonardo to a standalone Atmega328p or, for smaller projects, to a microcontroller from the Attiny family.

After some research I found this guide by PeterVH: http://petervanhoyweghen.wordpress.com/2012/09/16/arduinoisp-on-the-leonardo/
After several failed attempts, I was able to burn the bootloader and upload sketches successfully and wanted to share that with this Instructable.

I can not be held responsible for any damages that could occur to you or your equipment while following the procedures present on this page. Also, I give absolutely no warranty on the correctness and usability of the information on this Instructable. Please note, however, that these procedures have worked in my case without any damages or problems.

Step 1: Materials

- Arduino Leonardo (with usb cable)
- A computer (all steps are based on computer running Windows)
- Wires
- Target Atmel microcontroller 

<p>Thanks a lot for this helpful instructable.</p><p>However, in Step 5 there to upload a Sketch you tell us to use the menu item &quot;Upload using programmer&quot; to upload a sketch. This does not work. It returns an error message: &quot;Error while uploading: missing 'program.tool' configuration parameter&quot;. </p><p>If I use just &quot;Upload&quot; it works. </p><p>Can you tell me why?</p>
<p>if your IDE 1.6.4 software doesnt find the programmer Leonardo option, you need to past that text not in leofix folder, but go to hardware-&gt;arduino and find an existing programmers.txt file there, and paste that tet at the end of the ones already in.</p>
<p>thanks a lot!! made it with a little help from these guys</p><p>https://daflabs.com/arduino-leonardo-with-headers.html</p>
<p>I Need help at Programming my Attiny85<br>I get this error when uploudin the Blink sketch to it via Arduino Leonardo:</p><p><br>avrdude: stk500_recv(): programmer is not responding<br>avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03<br></p>
<p>Are you using the VCC and GND from the Leonardo? Try a different power source. In my case it was the other way around: I was using a battery and I had to feed my breadboard from the Leonardo. EVEN if the voltages were the same, the equipment didn't sync. Fiddle with this. Whatever works. In 2-3 days of searching I couldn't find anything else.</p><p>i know it may technically may not make sense, but, it's all i got as info</p><p>Also make sure your pins connect properly (I soldered my pieces, I do not have a breadboard), and some were not entirely well connected</p>
<p>You can use different power sources but gorund must be connected so the 0v reference for the devices is the same when communicating.</p>
<p>I don't understand step 5, the wiring from RX(pin2) to leonardo digital pin 0 and the wiring rom TX(pin3) to leonardo digital pin 1. These connections are not needed for programming the target (imho). I would suggest to mention the pin numbers for GND and VCC in the table, instead of the RX and TX pins.</p>
<p>there are not necessary when programming via ISP but are used for serial communication</p>
<p>Hi</p><p>I would like to do the same but I want to use the Arduino Leonardo with circuit with atmega32u4 can you tell me how can I burn bootloader to the atmega</p>
Do you mean Arduino Leonardo bootloader to an atmega32u4? yes, its possible, i just burned it into my leonardo that did not respond. <br>Use any arduino board running the &quot;arduino as isp&quot; program or an avr programmer to burn. At the Arduino IDE, select the proper programmer and &quot;Arduino Leonardo&quot; ad board. Then click at &quot;burn bootloader&quot;. It may take a couple of minutes.<br>If something is unclear do not hesitate to ask.
<p>Thank you so much for this great instructable! There are so many instructions out there explaining how to use the Uno to do this, but this is the best for ATmega32u4 based boards. I used the SparkFun 3.3v Pro Micro to program an ATtiny45. This demonstrates that you don't have to use a 5v Arduino and you don't have to have an ISP header. Because I intend to make a custom ribbon cable for this, the red and black wires are going to A0 &amp; A1. To get that to work I just set those pins HIGH and LOW in the setup(). It worked a treat! Thank you so much for taking the time to give back! I'll post a video of this soon.</p>
<p>As promised, here is a video demonstration.</p><p>https://www.youtube.com/watch?v=c4k59CFpYCA</p>
<p>Very nice video! glad it helped.</p>
<p>Great instructable. All info I could find prior to this was that you needed an arduino with removable IC (aka not a leonardo) in order to use it as ISP.</p><p>I tried this method on my leo yesterday and it worked fine :) Or well, I did have some initial issues with the atmega328 not being recognized....... But as it turned out I hadnt pushed it all the way down in the breadboard lol After I did that everything went perfect :P</p>
<p>Error while burning Bootloader.....</p><p>avrdude: stk500_getsync(): not in sync: resp=0x00</p><p>Help Required</p>
hey,friend it's look like u have a great knowlage on arduino programming,i need ur help,i m new to arduino..i want to run arduino programme which i'hv (made for leonardo board only) and check whether there is any error in programme or not..and than i want to upload this programme in programme board and acorrding to programme it'll run 2 gear motor,so how can i check it and load it..can u please tell me step wise instruction or put this instructable type vedio..i'll be thankfull,thank you
great guide, just one question: can you change the reset from 10 to another number, lets say 2 or 3? then you can make a small board with ICSP header on it for reprogramming chips without needing to use alot of board space.
Ive never tried it but it would work. Please give it a try and let me know the results, thanks.
I like the way you stickered your ICs <br> <br>did you like the way I pined my LCDs <br> <br>Joe
Yeah, it is a great method to remember and memorize the pinouts
I am great at imbedded code (100101) but I am lousy at C and other programing code so I got Arduino to practice and work on my weak spots. <br> <br>When I work with ICs I have the data book in front of me or print out the pdf data to track the pin outs, there is no standard on even Vcc and Vdd. <br> <br>Did you do that on your printer with stickers because it looks good? <br> <br>If you did you should do an Instructable on snickering ICs that is a fantastic idea I never thought of that. <br> <br>Joe <br>
Thanks for reminding me to look for vdd and vcc, was something I was curious to know but I never remember to ask or search. Here is the answer, I think: http://encyclobeamia.solarbotics.net/articles/vxx.html <br> <br>No, I didn't use stickers or adhesive paper, they were printed on regular office paper and pasted using a paper glue stick (no conductive). But it is a good idea to use stickers, I am going to try that some day. <br> <br>Jose
Now isn&rsquo;t that funny in my data sheets I get Vcc and GND, Vdd and GND or Vdd and Vss I even checked and couldn&rsquo;t find one with Vee. <br> <br>Even the manufactures don&rsquo;t stick to the standard of Vcc and Vee or Vdd and Vss. <br> <br>Joe
For me, as a electronics hobbyist, I only check if it is negative or positive voltage, but maybe for professionals those letters indicate useful information. <br> <br>Jose
It is useful some ICs work with positive and negative current that is why Vcc and Vee ICs marked Vcc and GND are mostly 5 volts+ and ground. <br> <br>Joe
Yes, that is exactly what I suppose when looking the new ic datasheet <br> <br>Jose

About This Instructable


49 favorites


More by scrlk: Arduino Leonardo as ISP
Add instructable to: