3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

Adding ICSP header to your Arduino/AVR board

Adding ICSP header to your Arduino/AVR board
So you may have been playing with Arduino's, or rather, Hackduino's. If you made your own Hackduino or similar project, you may be wondering how to add the ICSP header. Basically, using the ICSP header will allow you to use an external programmer to 'upload' software to your MCU (microcontroller unit). This will work for non-Arduino's nicely as well.

ICSP is basically "in circuit serial programming" which allows you to upload software to your MCU without having to pull it out every time.

So if you are pulling your MCU out each time you want to update the software on it and putting it into a programmer, or if you are just testing out your MCU and don't know what you're going to do with it yet, you can add the ICSP pins. If you have tried this before, but can't programme it, I will also tell you how to fix that from my own experience. If that isn't enough feel free to comment and I'll help you as best as I can!

By writing this Instructable (my first, by the way), I assume you have completed an instructable such as the following: http://www.instructables.com/id/Perfboard-Hackduino-Arduino-compatible-circuit/ - thanks jmsaavedra! This should, however, be compatible with any kind of breadboard-connected MCU or any other set up you have, too.

This Instructable tells you how to add a 6-pin ICSP header. The 10-pin header doesn't really add anything in ICSP mode. In step 3 you can also see the pinout for the 2x5 header, which works just the same. All you'd have to do is connect slightly differently - just follow the image and it'll work fine.

Below you will see my slightly unorganised remotecontrol repeater, but hey, it works :)

I'm a bit new to the world of electronics, so if you find a mistake please feel free to comment!
 
Remove these adsRemove these ads by Signing Up
 

Step 1Gather components

Gather components
First of all you need any kind of AVR controller and the datasheets that relate to it. You can download datasheets from www.atmel.com

Besides the AVR MCU and board, you will also need:
 - External programmer, such as STK 500, AVRISP or AVR Dragon
 - 2x3 pin header*
 - 2x3 connector, to connect to your external programmer**

You can actually just stick the MCU in a board, connect the pins as mentioned, and you can upload software to the MCU, too. Same method goes to PIC's, just check if it supports ICSP and where the pins are!

And of course some standard tools:
 - Soldering equipment (or a breadboard will work too, but the pins may be too short to fit properly!)
 - Some wire

* If you don't have a 2x3 pin header, but instead a single row pin, you can just solder two lines next to eachother in your perfboard.

** Simply using 6 F/F cables works, too, in case you don't have 2x3 connectors. 2x5 connectors will work too as long as you leave enough room. Be sure to position the cable correctly!
« Previous StepDownload PDFView All StepsNext Step »
4 comments
Dec 13, 2011. 1:52 PMdiy_bloke says:
Great instructable.
Just a question, though it might not be entirely in the scope of this product:
If I have a bootloader in this chip, what will ISP programming do? Will it just overwrite the bootloader?
Dec 14, 2011. 2:12 PMdiy_bloke says:
Thanks for your extensive reply. That helps.

Now if you want to send a hex file to the arduino (the one that acts as ISP), I presuem you vannot do that through the Arduino software but rather you have to use AVRdude or something to send that hex file to the arduino who then sends it to the blank chip.
Jul 4, 2011. 2:15 AMBarnaby Walters says:
Nice instructible, I would point out that 'ICSP' is (strictly speaking) a PIC thing, and is a Microchip trademark. I believe Atmel use 'ISP' (In-system programming). But I doubt anyone'll be suing you ;)

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
1
Followers
1
Author:barttech