Home / Programming with AVR

The chip used on an Arduino Uno is ATMega328p. This is the AVR family of micro-controllers made by Atmel. You purchase the chip by itself for the fraction of the cost of an Arduino and directly program on it.

If you are interested in Arduino programming, its likely that you will do more than one project. If you would like to leave a project as-is and work on another one, you could either buy a new Arduino or just buy the chip (ATMega328p) that is on the Arduino Uno R3. You can buy the chips from:

$5.95 from Adadruit at Arduino bootloader-programmed chip (Atmega328P)
$5.90 from Amazon at ATMEGA328P-PU with Arduino Bootloader - Uno

If you buy the chip, you will need an AVR Programmer. This is something that will write your code to the chip. This process is called flashing. This tutorial describes how you can also use your Arduino to flash a chip. If your do not have an Arduino, here are a few programmers that you can consider.

$14.95 from Sparkfun at Pocket AVR Programmer. Designed in collaboration with Ladyada.
$11.95 from Amazon at SainSmart USB ISP Programmer for ATMEL AVR ATMega ATTiny 51 Board
$22.00 from Adafruit at USBtinyISP AVR Programmer Kit (USB SpokePOV Dongle) - v2.0
$19.95 from Pololu at Pololu USB AVR Programmer
$34.00 from Atmel at Atmel AVRISP mkII In-System Programmer (ATAVRISP2)
$37.50 from Digi-Key at ATAVRISP

Typically you would write the code in C. See blinkLED.c from the book AVR-Programming by Elliot Williams.


  1. AVR-Programming by Elliot Williams is a good book. You can find more about it on his website.
  2. Code examples from the AVR-Programming book by Elliot Williams can be found on GitHub here