1. Introduction

The Atmel AVR ATmega328P is the latest in the mega48/mega88/mega168 series of microcontrollers, which are used on the Orangutan Robot Controllers, Arduino boards, and in many other robot controllers and individual electronics projects. The mega328 has twice as much program (Flash) memory, RAM, and EEPROM as the mega168, while keeping the same architecture and pinout as the earlier chips. This means that most projects based on the earlier processors can be easily upgraded to the 328, making it possible to fit more complex programs or deal with more much more data.

GCC support for the mega328P

The following systems have compiler support for the ATmega328 included:

  • Microsoft Windows with AVR Studio and WinAVR (so Windows users should be okay after upgrading to the latest version of WinAVR).
  • Ubuntu Linux versions 8.10 (intrepid) and up.
  • Fedora 9 updates / Fedora Development
  • Debian Linux 5.0.0 (lenny) and up.

Ubuntu 8.04LTS (hardy) does not currently offer a recent enough version of gcc to compile programs for the mega328, but future upgrades might provide support.

If you are using one if the systems with 328P support, just make sure that you have updated your system to use the latest version of WinAVR/avr-gcc. Otherwise, to install the latest version of the compiler and related tools, proceed to Section 3 and follow the step-by-step instructions.

AVRDUDE support for the mega328P

The popular AVR programming software AVRDUDE includes support for the mega328 in version 5.6 and up. Since this was released on 27 February 2009, it is not included in the latest WinAVR distribution. Windows users will need to modify their avrdude.conf file as described at the end of Section 5.