How to program your own AVR board

This explains how to use an Arduino as ICSP. Wiring needed, points to be considered, etc

So, you have a custom-made Board and you wish to program it... Here are the main steps!

Use an Arduino as ICSP

Load an Ardino sketch called "Arduino as ISP" or similar. Once you load it, the Arduino behaves as a translator between your PC and the 6 pin ICSP header

Adjust levels

The Arduino outputs signals at 5V. You have to use a voltage divider to bring down the level of the signals going from Arduino to your Board. This means that:

  • MOSI
  • CLK

need a suitable voltage divider.

The RST pin is somewhat different. The Arduino has a 10K pull-up to 5V. The input protection diodes on the microcontroller of your Board are sufficient to bring this signal to safe levels.

The MISO pin is an input to the Arduino. There is nothing needed here: 3.3V will be interpreted as "high" by the Arduino.


Once you have everything OK, you have to select a similar target in the Arduino IDE. For the XBee + Accelerometer board, you have to select "Mini or ProMini, 328, 3.3V 8 MHz" as this matches.

Program fuses accordingly (or burn bootloader?)