I plan on creating a homebrew Arduino breakout board using the ATMEGA328P smd version. I'm geeting confused by the wealth of information out there as to whether I should be using ICSP or ISP to program it. It is a blank chip, aka no Arduino bootloader on it yet. I'd rather not have to buy a specialized programmer to burn the bootloader, I do have another Arduino I could use to burn the bootloader and upload sketches to it with.

So the question is; Do I use ISP or ICSP, or both?


To program it you could use an ISP programmer. In which case you would not need the bootloader. You can use an Arduino as an ISP programmer, but that's not really a long term solution, as you can no longer use the arduino for anything else.

The other option is to program it using a usb-to-serial. In this case you do need the arduino bootloader. To program this bootloader (once) you can use the above method, using an arduino board.

Third option would be implement USB into the bootloader, just like the completely Open Source Pro Trinket (bootloader and schematic). You'd have to add some resistors, zener diodes and a usb plug (just strip an old usb cable). A bit more technical and challenging, but definitely the cheapest

  • 1
    Using an Arduino as an ISP in no way means you cannot use it for other purposes - load the ISP sketch, add your reset defeat component, use it to ISP your target, remove the component, load a different sketch... – Chris Stratton Oct 19 '16 at 5:26

ICSP is used for PICs, not AVRs. Use ISP, which can be performed either by an Arduino via ArduinoISP or by a dedicated programmer.

  • I'm currently holding an Arduino Uno that has a 6 pin male header that says on the silk screen next to the header "ICSP". – Sam W Oct 30 '14 at 18:39
  • Yeah, it's mislabeled. It's supposed to read "ISP". – Ignacio Vazquez-Abrams Oct 30 '14 at 18:42
  • The OP question still remains I think: I would interpret it as: "should I use a programmer or an Arduino as ISP? What are the advantages of each?" – jfpoilpret Oct 30 '14 at 19:14
  • 1
    I think both terms mean pretty much the same thing. In-System-Programmer vs In-Circuit-Serial-Programmer. I didn't know one was PIC, and the other AVR. I usually call it ICSP, as ISP sounds a lot like SPI (and both use MISO, MOSI, SCK). – Gerben Oct 30 '14 at 19:14
  • 1
    @Gerben: At a high level, I agree. At a low level, they are subtly different (ICSP more resembles AVR's HVSP at the electrical level, but uses different signaling). – Ignacio Vazquez-Abrams Oct 30 '14 at 19:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.