This video is the most informative I have found yet. You managed to cover all of the points regarding this subject. Now I'm finally able to program hex files from Atmel Studio through an Arduino (as ISP) with avrdude to ANY AVR chip! Thank you very much!
Have always been confused if UNO as isp could program sketches other then just bootloader; from your great video now have a good understanding. Thank You : - ))
Pro Micro 5V as Programmer :- tools -> programer -> arduino as isp (ATmega32U4) which work for me. other than this, all are same as uno as programmer as well as wiring diagram.
I've actually got a hat for the uno. But will only take pic chips. But very useful. Ralph Bacon suggested it. It was really cheap. I can't remember how much i paid but was less than £3.
Very useful. I just happen to have a problem with ISP programming a self developed board with an Atmega 328P-MU (QFN package) that I have trouble with progamming via isp. I just don't know which target board i should select, because it's not a board but a single chip. Or do I have to use avrdude to do the Job. Do I need the bootloader? Programming board is an Uno. OS is Windows. Have to do more testing tonight. Thank you very much!
If it’s got 328P, I would wonder if just choosing Uno would work, it may depend also on what other things you have on the board like how fast is the Crystal, if it’s 16 MHz then I would think Uno would work. And also if there’s any onboard circuitry that would interfere with SPI or reset that you are trying to control from the programmer. If you’re already set up with an Arduino as a programmer and you already have access to AVRdude, you could try running that command I used to read the fuses on 328P from the command prompt and see if you can at least talk to the board. And I guess it also depends what kind of errors you are seeing. And using Uno as the programmer, do you have the 10 µF capacitor on reset? I found I needed that if I was trying to use Arduino IDE but I was able to use AVRdude on the command prompt without the reset capacitor for some reason. I forgot to include the AVRdude command line options I used in the description so I will go add those to the description within the next short while.
If you run $ avrdude -p atmega328p -c usbasp # (usbasp is my programmer) and you get the "-p" chip type wrong, avrdude spits out that it is "probably an X" because the signature of the chip did not match. So no worries, even if you got the suffix p, pu, a, au part of the chip designation wrong, or even the wrong chip type, avrdude will simply tell you what kind it is. You never really need a bootloader. However, since most of us are debugging with serial, serial over usb (ACM), or USBasp ... it makes sense to program (bootload) with the same interface with which we debug. Less junk on the desk. It is puh-sible to debug through the SPI (ISP) interface, or even borrow the MOSI/MISO pins to do SoftSerial ... but few do this. QFN is the no-lead package? It is a little odd these are more expensive now than the DIP's, at only $1.15. I've only messed with the QFPs. www.aliexpress.com/item/1PCS-ATMEGA328P-PU-ATMEGA328-PU-ATMEGA328P-ATMEGA328-DIP-28/32949410741.html?spm=a2g0s.9042311.0.0.27424c4dFYZ3Wf These need 2 Vcc and 3 ground hookups, in addition to the AVcc driven high. A factory-shipped AVR is usually fused for "div8," making the internal RC clock so slow that the ISP has to be set to slow mode to make it work. The first thing I often do is fuse it for 8mhz, or an external crystal ... so no more dividing the clock by 8.
Wow, you have some old-school AVR's there: that tiny26 and mega8515. I have an unhealthy obsession with interfacing and building dev boards, so have made ISPs for AVRs out of a lot of things. First with a RaspberryPi, then a dedicated ones with atmega8a's (www.fischl.de/usbasp). The easiest: Digispark clones that have attiny85's (littlewire). The cheapest AVR MCU that I found that will do USB ISP is the attiny44a -- but it needs a 12mhz crystal, while the tiny85 has an internal PLL, needing no crystal. Just need to fuse out the reset pin to use the 85's reset as an output. Oddly, I do not own an Arduino.
I found those AVR’s in the basement in digikey labelled antistatic bags and tubes from early to mid 2000. One 8515 was still in the tube and another 8515 was actually on a breadboard and I have no idea what that project was. I am thinking about doing some sort of dedicated high-voltage programmer board layout so I don’t have to keep fumbling around on the breadboards.
@@GadgetReboot Components, boards, and MCU's are so inexpensive that I often heat up the iron before experimenting on a breadboard. I find breadboards a little frustrating ... you can get bad spots, wonky connections, stray capacitance... Only in the last few months, have bought Arduino-shaped boards, win an inner row of correctly squared pins to standardize MCU projects. Kind of nice to have one layout ... and the ability to use 20 cent 4x6cm/5x7cm standard perfboards on my MCU dev boards. www.aliexpress.com/item/Prototype-PCB-Expansion-Board-For-Arduino-ATMEGA328P-UNO-R3-Shield-FR-4-Fiber-PCB-Breadboard-2mm/32844041549.html
It´s not working for me ??? My programmer Arduino is gettimg reprogrammt when I want to use it as Programmer ! The Sketch ends up on the Programmer ! Atmel Studio 7 isn´t working with this kind of programmer, either ! Why is it working for you and not for me ! I did the same that You show here in this video ! It´s not working !
If the programmer Arduino is getting programmed instead of the actual target device, it sounds like either the capacitor on the reset pin of the programmer isn’t there or maybe it needs to be increased in value for some reason, or in the Arduino IDE the programming hardware has to be selected as Arduino as ISP, or whatever it’s actually called I can’t remember, which tells the software to use that first Arduino as the programmer itself and not to program that as a target. I can’t think of any other reason it would actually program the programmer Arduino because otherwise it sounds like everything is hooked up properly and it can communicate with the programmer Arduino. When the reset capacitor is not there or it is not big enough in value, it causes the programmer Arduino to get reset and then get programmed so the capacitor keeps the programmer Arduino active and the actual target gets programmed instead.
I don’t think I had to do anything special other than upload a sketch to the Uno, of course making sure that the normal programmer type is selected in the menu instead of Arduino as ISP.
@@GadgetReboot Sorry it wasn't meant to be a horrible statement , you produce some brilliant work and at the moment I am trying to learn programming stuff , but at times it does give me a brain ache !! Thank you for the video
I am a programmer trying to learn EE so I feel you. Just like you guys would tell me to learn Ohm's Law etc. .... you need to start with architecture and assembler and work your way up (gonna take a while of course). Check out Ben Eater's 8 Bit computer series. Good luck. To us all. 😬👍
This one made my brain hurt as well and it wasn’t one of the more fun ones to produce either. There was lots of trial and error and whether or not I needed that extra reset capacitor, I filmed things in a certain sequence and then realized I had to redo one of the earlier tests but the way I was speaking it sounded like I had already done stuff when the video presented it as initial run through so I had to chop out individual words to make sentences make sense. Owwww. 🤕
I remember Motorola assembler in the mid 90s on 6811, load accumulator A. Then pic and atmel assembler in the late 90s to early 2000’s. I think all I ever did was a lot of spaghetti jumping around. Then I took about 15 years off of software and now I’m back hacking at it again. I think I have a book somewhere for 100 ready to run programs for GW-BASIC. When I get my old 386 computer up and running maybe I should try typing in some of those to see if they work.
This video is the most informative I have found yet. You managed to cover all of the points regarding this subject. Now I'm finally able to program hex files from Atmel Studio through an Arduino (as ISP) with avrdude to ANY AVR chip! Thank you very much!
Thank you very much for clarifying in detail the case of the additional 10uF capacitor.
Have always been confused if UNO as isp could program sketches other then just bootloader; from your great video now have a good understanding. Thank You : - ))
You're great. You made it perfectly clear. Thnx..
Go go Gadget ICSP!
Great video as usual.
this is amazing! Thank you
Pro Micro 5V as Programmer :- tools -> programer -> arduino as isp (ATmega32U4) which work for me.
other than this, all are same as uno as programmer as well as wiring diagram.
Excelent, thanks a lot dude!
Very useful video 👍
how can I do this without the 10 farad capacitor? Using the Arduino UNO as the programmer.
I've actually got a hat for the uno. But will only take pic chips. But very useful. Ralph Bacon suggested it. It was really cheap. I can't remember how much i paid but was less than £3.
Nice, I use mine as an isp on a regular basis mostly when OSX refuses to accept the usb>uart adapters.
Very good info. Thx.
Very useful. I just happen to have a problem with ISP programming a self developed board with an Atmega 328P-MU (QFN package) that I have trouble with progamming via isp. I just don't know which target board i should select, because it's not a board but a single chip. Or do I have to use avrdude to do the Job. Do I need the bootloader? Programming board is an Uno. OS is Windows. Have to do more testing tonight. Thank you very much!
If it’s got 328P, I would wonder if just choosing Uno would work, it may depend also on what other things you have on the board like how fast is the Crystal, if it’s 16 MHz then I would think Uno would work. And also if there’s any onboard circuitry that would interfere with SPI or reset that you are trying to control from the programmer.
If you’re already set up with an Arduino as a programmer and you already have access to AVRdude, you could try running that command I used to read the fuses on 328P from the command prompt and see if you can at least talk to the board. And I guess it also depends what kind of errors you are seeing.
And using Uno as the programmer, do you have the 10 µF capacitor on reset? I found I needed that if I was trying to use Arduino IDE but I was able to use AVRdude on the command prompt without the reset capacitor for some reason.
I forgot to include the AVRdude command line options I used in the description so I will go add those to the description within the next short while.
Gadget Reboot Thank you very much. I will report when I‘ve checked all that out. Till now the error message from the IDE reads „Error“. 😂
If you run
$ avrdude -p atmega328p -c usbasp # (usbasp is my programmer)
and you get the "-p" chip type wrong, avrdude spits out that it is "probably an X" because the signature of the chip did not match. So no worries, even if you got the suffix p, pu, a, au part of the chip designation wrong, or even the wrong chip type, avrdude will simply tell you what kind it is.
You never really need a bootloader. However, since most of us are debugging with serial, serial over usb (ACM), or USBasp ... it makes sense to program (bootload) with the same interface with which we debug. Less junk on the desk. It is puh-sible to debug through the SPI (ISP) interface, or even borrow the MOSI/MISO pins to do SoftSerial ... but few do this.
QFN is the no-lead package? It is a little odd these are more expensive now than the DIP's, at only $1.15. I've only messed with the QFPs.
www.aliexpress.com/item/1PCS-ATMEGA328P-PU-ATMEGA328-PU-ATMEGA328P-ATMEGA328-DIP-28/32949410741.html?spm=a2g0s.9042311.0.0.27424c4dFYZ3Wf
These need 2 Vcc and 3 ground hookups, in addition to the AVcc driven high.
A factory-shipped AVR is usually fused for "div8," making the internal RC clock so slow that the ISP has to be set to slow mode to make it work. The first thing I often do is fuse it for 8mhz, or an external crystal ... so no more dividing the clock by 8.
i loaded the isp sketch but cant find the programer "arduino as isp" under tools on the online editor can u help pls
Wow, you have some old-school AVR's there: that tiny26 and mega8515. I have an unhealthy obsession with interfacing and building dev boards, so have made ISPs for AVRs out of a lot of things. First with a RaspberryPi, then a dedicated ones with atmega8a's (www.fischl.de/usbasp). The easiest: Digispark clones that have attiny85's (littlewire). The cheapest AVR MCU that I found that will do USB ISP is the attiny44a -- but it needs a 12mhz crystal, while the tiny85 has an internal PLL, needing no crystal. Just need to fuse out the reset pin to use the 85's reset as an output. Oddly, I do not own an Arduino.
I found those AVR’s in the basement in digikey labelled antistatic bags and tubes from early to mid 2000. One 8515 was still in the tube and another 8515 was actually on a breadboard and I have no idea what that project was.
I am thinking about doing some sort of dedicated high-voltage programmer board layout so I don’t have to keep fumbling around on the breadboards.
@@GadgetReboot Components, boards, and MCU's are so inexpensive that I often heat up the iron before experimenting on a breadboard.
I find breadboards a little frustrating ... you can get bad spots, wonky connections, stray capacitance...
Only in the last few months, have bought Arduino-shaped boards, win an inner row of correctly squared pins to standardize MCU projects. Kind of nice to have one layout ... and the ability to use 20 cent 4x6cm/5x7cm standard perfboards on my MCU dev boards.
www.aliexpress.com/item/Prototype-PCB-Expansion-Board-For-Arduino-ATMEGA328P-UNO-R3-Shield-FR-4-Fiber-PCB-Breadboard-2mm/32844041549.html
It´s not working for me ??? My programmer Arduino is gettimg reprogrammt when I want to use it as Programmer ! The Sketch ends up on the Programmer ! Atmel Studio 7 isn´t working with this kind of programmer, either ! Why is it working for you and not for me ! I did the same that You show here in this video ! It´s not working !
If the programmer Arduino is getting programmed instead of the actual target device, it sounds like either the capacitor on the reset pin of the programmer isn’t there or maybe it needs to be increased in value for some reason, or in the Arduino IDE the programming hardware has to be selected as Arduino as ISP, or whatever it’s actually called I can’t remember, which tells the software to use that first Arduino as the programmer itself and not to program that as a target.
I can’t think of any other reason it would actually program the programmer Arduino because otherwise it sounds like everything is hooked up properly and it can communicate with the programmer Arduino.
When the reset capacitor is not there or it is not big enough in value, it causes the programmer Arduino to get reset and then get programmed so the capacitor keeps the programmer Arduino active and the actual target gets programmed instead.
Thanks for recponse ! I got it, yes it was the cap. ! I took a bigger one and it worked ! Thanks !
how can i restore an arduino uno used as a programmer to its factory form so i can upload normal sketches to it?
I don’t think I had to do anything special other than upload a sketch to the Uno, of course making sure that the normal programmer type is selected in the menu instead of Arduino as ISP.
Sorry-my brain hurts!!
Yeah it’s not easy to make that topic fun, more like need to know basis material.
@@GadgetReboot Sorry it wasn't meant to be a horrible statement , you produce some brilliant work and at the moment I am trying to learn programming stuff , but at times it does give me a brain ache !!
Thank you for the video
I am a programmer trying to learn EE so I feel you. Just like you guys would tell me to learn Ohm's Law etc. .... you need to start with architecture and assembler and work your way up (gonna take a while of course). Check out Ben Eater's 8 Bit computer series. Good luck. To us all. 😬👍
This one made my brain hurt as well and it wasn’t one of the more fun ones to produce either. There was lots of trial and error and whether or not I needed that extra reset capacitor, I filmed things in a certain sequence and then realized I had to redo one of the earlier tests but the way I was speaking it sounded like I had already done stuff when the video presented it as initial run through so I had to chop out individual words to make sentences make sense. Owwww. 🤕
I remember Motorola assembler in the mid 90s on 6811, load accumulator A. Then pic and atmel assembler in the late 90s to early 2000’s. I think all I ever did was a lot of spaghetti jumping around.
Then I took about 15 years off of software and now I’m back hacking at it again.
I think I have a book somewhere for 100 ready to run programs for GW-BASIC. When I get my old 386 computer up and running maybe I should try typing in some of those to see if they work.