An AVR or Alf and Vegard's RISC processor programmer is a device used to program an AVR microcontroller. The AVR microcontroller is based off an 8-bit RISC (reduced instruction set computing) microcontroller. An AVR programmer allows the user to place operating instructions on the microcontroller that tell it to perform a specific task. AVR microcontrollers are often used in hardware development and robotics. An AVR programmer is typically expensive compared to the price of the microcontroller itself and can be purchased by itself or as a kit.
The AVR programmer puts code from the computer onto the AVR microcontroller. The code is compiled on the computer into binary. This code is typically saved as a HEX file and can then be uploaded onto the microcontroller. The AVR programmer is usually plugged into the serial port of the computer, and a special program is required to get the code from the computer to the microcontroller.
The code from the computer is then transferred to the microcontroller's flash memory. The programmer is connected to certain pins on the microcontroller that allow it to be programmed. Most AVR microcontrollers have only a few kilobytes of memory, so programs put on the microcontroller must be fairly small. This process of transferring the program from the computer to the microcontroller is called flashing.
AVR microcontrollers are useful for many applications. A microcontroller is essentially a tiny computer and can be programmed to do many things. Input and output are handled through the numerous pins on the microcontroller. It is possible to hook up sensors, switches, lights, motors, and many other items to the pins, which allow it a great range of uses. Thus, AVR microcontrollers are often used for prototyping and robotics projects.
An AVR programmer can be purchased pre-assembled, built from a kit, or built completely from scratch. The programmers are not extremely complicated, but it is a good idea for an amateur to buy a kit or pre-assembled programmer because it can be confusing for a novice. Pre-assembled programmers are usually more expensive than kits, but are also typically more durable and reliable. Most kits require soldering and take a few hours to put together. For those who are using their microcontroller for prototyping or other professional work, it is probably best to purchase a pre-assembled programmer, but hobbyists are probably better off with a kit.