Skip to content
Switch branches/tags
This branch is up to date with xmegaduino.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Port of the Arduino IDE, core, libraries and bootloader to support the Atmel XMEGA family of chips.

Currently supported boards:

  • AVR xplain board
  • Akafuino X board
  • Sparkfun xmega100 breakout board

The following boards should work with a little tweaking:

  • Magnetovore
  • Megavore
  • Boston Android

This project has replaced the xmegaduino project on Google Code ( and has been active since September 2011. It supersedes the earlier xplainduino.


Download from here.

  • Windows
  • OS X
  • Linux 32-bit
  • Linux 64-bit


  • AVR xplain board

The LUFA project provides a replacement USB firmware that can act as a PDI programmer. You can also use a PDI programmer such as the AVR Dragon.

Requires a PDI programmer, such as the AVR Dragon in order to upload sketches and burn bootloaders.

Comes with a bootloader pre-installed and can be used directly from the Xmegaduino IDE.


The Xmegaduino project is beta quality, and not all the features of the Arduino IDE are supported yet.

Working features:

  • digitalRead and digitalWrite
  • millis and delay
  • micros and delayMicroseconds
  • Serial on USB (USARTC0), Serial1 on pins D2/D3 (USARTD0) and Serial2 on D6/D7 (USARTD1).
  • analogRead
  • analogWrite
  • attachInterrupt, detachInterrupt, interrupts, noInterrupts
  • Upload using bootloader over usb port, D2/3, or D6/7.
  • Burning bootloader from arduino IDE
  • DAC (using xmDAC library)
  • Wire
  • shiftOut, shiftIn, pulseIn (not tested)
  • tone
  • SPI library
  • EEPROM library


  • analogReference
  • Ethernet library
  • Servo library
  • Stepper library


Beta5 (based on Arduino 1.5.2-rc2):

  • New avr-gcc 4.8.1, avrdude 6.1
  • Many many updates

Beta4 (based on Arduino 1.0.1-rc2):

  • New avr-gcc 4.5.1, avr-libc 1.7.1 for all platforms (Windows, Mac OS X, Linux 32/64)
  • Linux now comes with bundled avr-gcc and avr-libc
  • Use correct SPI port on Akafuino X (pin 10-13)
  • Upload sketch to XPlain using PDI
  • Translated to 23 different languages (Thanks to Arduino)

Beta3 (based on Arduino 1.0):

Big thanks goes out to Brendan Powers and Russell for their contributions

  • xmDAC now works again
  • EEPROM library fixed
  • All baud rates are now dynamically calculated
  • SPI library ported
  • shiftIn function implemented
  • tone implemented using timer TCC1
  • LEVEL interrupt mode
  • Replicated Arduino's pullup behavior when writing to an input pin