A template for firmware for AVR microcontrollers
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


AVR Template



The AVR toolchain, C libraries, and the avrdude downloader/uploader, can be installed from the Ubuntu repositories:

apt-get install gcc-avr avr-libc avrdude


  1. Clone the avr-template repository (or fork it and clone your own repository).

     git clone git@github.com:uctools/avr-template
  2. Modify the Makefile:

    • Set TARGET to the desired name of the output file (eg: TARGET = main)
    • Set SOURCES to a list of your sources (eg: SOURCES = main.c two.c three.c)
    • Set MCU to the AVR part number to build for (eg: MCU = atmega328p)

    By default, the Makefile will build code for the ATmega328p, which is the microcontroller on the Arduino

  3. Run make

  4. The output files will be created in the 'build' folder


  1. Modify the Makefile
  • Set PROGRAMMER to your programmer. This will be the -c option for avrdude

  • Set PORT to the port your programmer is on. This will be the -P option for avrdude

    By default, the Makefile will flash an Arduino conenected over USB on /dev/usbACM0 using the Arduino bootloader.

  1. Run make flash. You may need to run this command as root (sudo make flash) if your user cannot access the port.