aboutsummaryrefslogtreecommitdiff
path: root/boards.txt
diff options
context:
space:
mode:
Diffstat (limited to 'boards.txt')
-rw-r--r--boards.txt616
1 files changed, 340 insertions, 276 deletions
diff --git a/boards.txt b/boards.txt
index 145d551..7d740bd 100644
--- a/boards.txt
+++ b/boards.txt
@@ -1,524 +1,588 @@
# See: http://code.google.com/p/arduino/wiki/Platforms
+menu.cpu=Processor
+
##############################################################
uno.name=Arduino Uno
+uno.upload.tool=avrdude
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
+uno.upload.maximum_data_size=2048
uno.upload.speed=115200
-uno.bootloader.low_fuses=0xff
-uno.bootloader.high_fuses=0xde
+
+uno.bootloader.tool=avrdude
+uno.bootloader.low_fuses=0xFF
+uno.bootloader.high_fuses=0xDE
uno.bootloader.extended_fuses=0x05
-uno.bootloader.path=optiboot
-uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
+uno.bootloader.file=optiboot/optiboot_atmega328.hex
+
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
+uno.build.board=AVR_UNO
uno.build.core=arduino
uno.build.variant=standard
##############################################################
-atmega328.name=Arduino Duemilanove w/ ATmega328
+atmega328diecimila.name=Arduino Duemilanove or Diecimila
-atmega328.upload.protocol=arduino
-atmega328.upload.maximum_size=30720
-atmega328.upload.speed=57600
+atmega328diecimila.upload.tool=avrdude
+atmega328diecimila.upload.protocol=arduino
-atmega328.bootloader.low_fuses=0xFF
-atmega328.bootloader.high_fuses=0xDA
-atmega328.bootloader.extended_fuses=0x05
-atmega328.bootloader.path=atmega
-atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
-atmega328.bootloader.unlock_bits=0x3F
-atmega328.bootloader.lock_bits=0x0F
+atmega328diecimila.bootloader.tool=avrdude
+atmega328diecimila.bootloader.low_fuses=0xFF
+atmega328diecimila.bootloader.unlock_bits=0x3F
+atmega328diecimila.bootloader.lock_bits=0x0F
-atmega328.build.mcu=atmega328p
-atmega328.build.f_cpu=16000000L
-atmega328.build.core=arduino
-atmega328.build.variant=standard
+atmega328diecimila.build.f_cpu=16000000L
+atmega328diecimila.build.board=AVR_DUEMILANOVE
+atmega328diecimila.build.core=arduino
+atmega328diecimila.build.variant=standard
-##############################################################
+## Arduino Duemilanove or Diecimila w/ ATmega328
+## ---------------------------------------------
+atmega328diecimila.menu.cpu.atmega328=ATmega328
-diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168
+atmega328diecimila.menu.cpu.atmega328.upload.maximum_size=30720
+atmega328diecimila.menu.cpu.atmega328.upload.maximum_data_size=2048
+atmega328diecimila.menu.cpu.atmega328.upload.speed=57600
-diecimila.upload.protocol=arduino
-diecimila.upload.maximum_size=14336
-diecimila.upload.speed=19200
+atmega328diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA
+atmega328diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0x05
+atmega328diecimila.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
-diecimila.bootloader.low_fuses=0xff
-diecimila.bootloader.high_fuses=0xdd
-diecimila.bootloader.extended_fuses=0x00
-diecimila.bootloader.path=atmega
-diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
-diecimila.bootloader.unlock_bits=0x3F
-diecimila.bootloader.lock_bits=0x0F
-
-diecimila.build.mcu=atmega168
-diecimila.build.f_cpu=16000000L
-diecimila.build.core=arduino
-diecimila.build.variant=standard
-
-##############################################################
+atmega328diecimila.menu.cpu.atmega328.build.mcu=atmega328p
-nano328.name=Arduino Nano w/ ATmega328
+## Arduino Duemilanove or Diecimila w/ ATmega168
+## ---------------------------------------------
+atmega328diecimila.menu.cpu.atmega168=ATmega168
-nano328.upload.protocol=arduino
-nano328.upload.maximum_size=30720
-nano328.upload.speed=57600
+atmega328diecimila.menu.cpu.atmega168.upload.maximum_size=14336
+atmega328diecimila.menu.cpu.atmega168.upload.maximum_data_size=1024
+atmega328diecimila.menu.cpu.atmega168.upload.speed=19200
-nano328.bootloader.low_fuses=0xFF
-nano328.bootloader.high_fuses=0xDA
-nano328.bootloader.extended_fuses=0x05
-nano328.bootloader.path=atmega
-nano328.bootloader.file=ATmegaBOOT_168_atmega328.hex
-nano328.bootloader.unlock_bits=0x3F
-nano328.bootloader.lock_bits=0x0F
+atmega328diecimila.menu.cpu.atmega168.bootloader.high_fuses=0xdd
+atmega328diecimila.menu.cpu.atmega168.bootloader.extended_fuses=0x00
+atmega328diecimila.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
-nano328.build.mcu=atmega328p
-nano328.build.f_cpu=16000000L
-nano328.build.core=arduino
-nano328.build.variant=eightanaloginputs
+atmega328diecimila.menu.cpu.atmega168.build.mcu=atmega168
##############################################################
-nano.name=Arduino Nano w/ ATmega168
+nano.name=Arduino Nano
+nano.upload.tool=avrdude
nano.upload.protocol=arduino
-nano.upload.maximum_size=14336
-nano.upload.speed=19200
-
-nano.bootloader.low_fuses=0xff
-nano.bootloader.high_fuses=0xdd
-nano.bootloader.extended_fuses=0x00
-nano.bootloader.path=atmega
-nano.bootloader.file=ATmegaBOOT_168_diecimila.hex
+
+nano.bootloader.tool=avrdude
nano.bootloader.unlock_bits=0x3F
nano.bootloader.lock_bits=0x0F
-nano.build.mcu=atmega168
nano.build.f_cpu=16000000L
+nano.build.board=AVR_NANO
nano.build.core=arduino
nano.build.variant=eightanaloginputs
+## Arduino Nano w/ ATmega328
+## -------------------------
+nano.menu.cpu.atmega328=ATmega328
+
+nano.menu.cpu.atmega328.upload.maximum_size=30720
+nano.menu.cpu.atmega328.upload.maximum_data_size=2048
+nano.menu.cpu.atmega328.upload.speed=57600
+
+nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF
+nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA
+nano.menu.cpu.atmega328.bootloader.extended_fuses=0x05
+nano.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
+
+menu.cpu.nano.atmega328.build.mcu=atmega328p
+
+## Arduino Nano w/ ATmega168
+## -------------------------
+nano.menu.cpu.atmega168=ATmega168
+
+nano.menu.cpu.atmega168.upload.maximum_size=14336
+nano.menu.cpu.atmega168.upload.maximum_data_size=1024
+nano.menu.cpu.atmega168.upload.speed=19200
+
+nano.menu.cpu.atmega168.bootloader.low_fuses=0xff
+nano.menu.cpu.atmega168.bootloader.high_fuses=0xdd
+nano.menu.cpu.atmega168.bootloader.extended_fuses=0x00
+nano.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
+
+nano.menu.cpu.atmega168.build.mcu=atmega168
+
##############################################################
mega2560.name=Arduino Mega 2560 or Mega ADK
+mega2560.cpu=2560 or ADK
+mega2560.upload.tool=avrdude
mega2560.upload.protocol=wiring
mega2560.upload.maximum_size=258048
mega2560.upload.speed=115200
+mega2560.bootloader.tool=avrdude
mega2560.bootloader.low_fuses=0xFF
mega2560.bootloader.high_fuses=0xD8
mega2560.bootloader.extended_fuses=0xFD
-mega2560.bootloader.path=stk500v2
-mega2560.bootloader.file=stk500boot_v2_mega2560.hex
+mega2560.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex
mega2560.bootloader.unlock_bits=0x3F
mega2560.bootloader.lock_bits=0x0F
mega2560.build.mcu=atmega2560
mega2560.build.f_cpu=16000000L
+mega2560.build.board=AVR_MEGA2560
mega2560.build.core=arduino
mega2560.build.variant=mega
##############################################################
mega.name=Arduino Mega (ATmega1280)
+mega.cpu=ATmega1280
+mega.upload.tool=avrdude
mega.upload.protocol=arduino
mega.upload.maximum_size=126976
mega.upload.speed=57600
+mega.bootloader.tool=avrdude
mega.bootloader.low_fuses=0xFF
mega.bootloader.high_fuses=0xDA
mega.bootloader.extended_fuses=0xF5
-mega.bootloader.path=atmega
-mega.bootloader.file=ATmegaBOOT_168_atmega1280.hex
+mega.bootloader.file=atmega/ATmegaBOOT_168_atmega1280.hex
mega.bootloader.unlock_bits=0x3F
mega.bootloader.lock_bits=0x0F
mega.build.mcu=atmega1280
mega.build.f_cpu=16000000L
+mega.build.board=AVR_MEGA
mega.build.core=arduino
mega.build.variant=mega
##############################################################
leonardo.name=Arduino Leonardo
+leonardo.upload.tool=avrdude
leonardo.upload.protocol=avr109
leonardo.upload.maximum_size=28672
+leonardo.upload.maximum_data_size=2560
leonardo.upload.speed=57600
leonardo.upload.disable_flushing=true
+leonardo.upload.use_1200bps_touch=true
+leonardo.upload.wait_for_upload_port=true
+
+leonardo.bootloader.tool=avrdude
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb
-leonardo.bootloader.path=caterina
-leonardo.bootloader.file=Caterina-Leonardo.hex
+leonardo.bootloader.file=caterina/Caterina-Leonardo.hex
leonardo.bootloader.unlock_bits=0x3F
leonardo.bootloader.lock_bits=0x2F
+
leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
+leonardo.build.board=AVR_LEONARDO
leonardo.build.core=arduino
leonardo.build.variant=leonardo
-
-##############################################################
-
-esplora.name=Arduino Esplora
-esplora.upload.protocol=avr109
-esplora.upload.maximum_size=28672
-esplora.upload.speed=57600
-esplora.upload.disable_flushing=true
-esplora.bootloader.low_fuses=0xff
-esplora.bootloader.high_fuses=0xd8
-esplora.bootloader.extended_fuses=0xcb
-esplora.bootloader.path=caterina
-esplora.bootloader.file=Caterina-Esplora.hex
-esplora.bootloader.unlock_bits=0x3F
-esplora.bootloader.lock_bits=0x2F
-esplora.build.mcu=atmega32u4
-esplora.build.f_cpu=16000000L
-esplora.build.vid=0x2341
-esplora.build.pid=0x803C
-esplora.build.core=arduino
-esplora.build.variant=leonardo
+leonardo.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid}
##############################################################
micro.name=Arduino Micro
+micro.upload.tool=avrdude
micro.upload.protocol=avr109
micro.upload.maximum_size=28672
+micro.upload.maximum_data_size=2560
micro.upload.speed=57600
micro.upload.disable_flushing=true
+micro.upload.use_1200bps_touch=true
+micro.upload.wait_for_upload_port=true
+
+micro.bootloader.tool=avrdude
micro.bootloader.low_fuses=0xff
micro.bootloader.high_fuses=0xd8
micro.bootloader.extended_fuses=0xcb
-micro.bootloader.path=caterina
-micro.bootloader.file=Caterina-Micro.hex
+micro.bootloader.file=caterina/Caterina-Micro.hex
micro.bootloader.unlock_bits=0x3F
micro.bootloader.lock_bits=0x2F
+
micro.build.mcu=atmega32u4
micro.build.f_cpu=16000000L
micro.build.vid=0x2341
micro.build.pid=0x8037
+micro.build.board=AVR_MICRO
micro.build.core=arduino
micro.build.variant=micro
+micro.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid}
##############################################################
-mini328.name=Arduino Mini w/ ATmega328
-
-mini328.upload.protocol=arduino
-mini328.upload.maximum_size=28672
-mini328.upload.speed=115200
+esplora.name=Arduino Esplora
+esplora.upload.tool=avrdude
+esplora.upload.protocol=avr109
+esplora.upload.maximum_size=28672
+esplora.upload.maximum_data_size=2560
+esplora.upload.speed=57600
+esplora.upload.disable_flushing=true
+esplora.upload.use_1200bps_touch=true
+esplora.upload.wait_for_upload_port=true
-mini328.bootloader.low_fuses=0xff
-mini328.bootloader.high_fuses=0xd8
-mini328.bootloader.extended_fuses=0x05
-mini328.bootloader.path=optiboot
-mini328.bootloader.file=optiboot_atmega328-Mini.hex
-mini328.bootloader.unlock_bits=0x3F
-mini328.bootloader.lock_bits=0x0F
+esplora.bootloader.tool=avrdude
+esplora.bootloader.low_fuses=0xff
+esplora.bootloader.high_fuses=0xd8
+esplora.bootloader.extended_fuses=0xcb
+esplora.bootloader.file=caterina/Caterina-Esplora.hex
+esplora.bootloader.unlock_bits=0x3F
+esplora.bootloader.lock_bits=0x2F
-mini328.build.mcu=atmega328p
-mini328.build.f_cpu=16000000L
-mini328.build.core=arduino
-mini328.build.variant=eightanaloginputs
+esplora.build.mcu=atmega32u4
+esplora.build.f_cpu=16000000L
+esplora.build.vid=0x2341
+esplora.build.pid=0x803c
+esplora.build.board=AVR_ESPLORA
+esplora.build.core=arduino
+esplora.build.variant=leonardo
+esplora.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid}
##############################################################
-mini.name=Arduino Mini w/ ATmega168
+mini.name=Arduino Mini
+mini.upload.tool=avrdude
mini.upload.protocol=arduino
-mini.upload.maximum_size=14336
-mini.upload.speed=19200
+mini.bootloader.tool=avrdude
mini.bootloader.low_fuses=0xff
-mini.bootloader.high_fuses=0xdd
-mini.bootloader.extended_fuses=0x00
-mini.bootloader.path=atmega
-mini.bootloader.file=ATmegaBOOT_168_ng.hex
mini.bootloader.unlock_bits=0x3F
mini.bootloader.lock_bits=0x0F
-mini.build.mcu=atmega168
mini.build.f_cpu=16000000L
+mini.build.board=AVR_MINI
mini.build.core=arduino
mini.build.variant=eightanaloginputs
+## Arduino Mini w/ ATmega328
+## -------------------------
+mini.menu.cpu.atmega328=ATmega328
+
+mini.menu.cpu.atmega328.upload.maximum_size=28672
+mini.menu.cpu.atmega328.upload.maximum_data_size=2048
+mini.menu.cpu.atmega328.upload.speed=115200
+
+mini.menu.cpu.atmega328.bootloader.high_fuses=0xd8
+mini.menu.cpu.atmega328.bootloader.extended_fuses=0x05
+mini.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328-Mini.hex
+
+mini.menu.cpu.atmega328.build.mcu=atmega328p
+
+## Arduino Mini w/ ATmega168
+## -------------------------
+mini.menu.cpu.atmega168=ATmega168
+
+mini.menu.cpu.atmega168.upload.maximum_size=14336
+mini.menu.cpu.atmega168.upload.maximum_data_size=1024
+mini.menu.cpu.atmega168.upload.speed=19200
+
+mini.menu.cpu.atmega168.bootloader.high_fuses=0xdd
+mini.menu.cpu.atmega168.bootloader.extended_fuses=0x00
+mini.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex
+
+mini.menu.cpu.atmega168.build.mcu=atmega168
+
##############################################################
ethernet.name=Arduino Ethernet
+ethernet.upload.tool=avrdude
ethernet.upload.protocol=arduino
ethernet.upload.maximum_size=32256
+ethernet.upload.maximum_data_size=2048
ethernet.upload.speed=115200
+ethernet.bootloader.tool=avrdude
ethernet.bootloader.low_fuses=0xff
ethernet.bootloader.high_fuses=0xde
ethernet.bootloader.extended_fuses=0x05
-ethernet.bootloader.path=optiboot
-ethernet.bootloader.file=optiboot_atmega328.hex
+ethernet.bootloader.file=optiboot/optiboot_atmega328.hex
ethernet.bootloader.unlock_bits=0x3F
ethernet.bootloader.lock_bits=0x0F
ethernet.build.variant=standard
ethernet.build.mcu=atmega328p
ethernet.build.f_cpu=16000000L
+ethernet.build.board=AVR_ETHERNET
ethernet.build.core=arduino
##############################################################
fio.name=Arduino Fio
+fio.upload.tool=avrdude
fio.upload.protocol=arduino
fio.upload.maximum_size=30720
+fio.upload.maximum_data_size=2048
fio.upload.speed=57600
+fio.bootloader.tool=avrdude
fio.bootloader.low_fuses=0xFF
fio.bootloader.high_fuses=0xDA
fio.bootloader.extended_fuses=0x05
-fio.bootloader.path=arduino:atmega
-fio.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
+fio.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
fio.bootloader.unlock_bits=0x3F
fio.bootloader.lock_bits=0x0F
fio.build.mcu=atmega328p
fio.build.f_cpu=8000000L
+fio.build.board=AVR_FIO
fio.build.core=arduino
fio.build.variant=eightanaloginputs
##############################################################
-bt328.name=Arduino BT w/ ATmega328
-
-bt328.upload.protocol=arduino
-bt328.upload.maximum_size=28672
-bt328.upload.speed=19200
-bt328.upload.disable_flushing=true
-
-bt328.bootloader.low_fuses=0xff
-bt328.bootloader.high_fuses=0xd8
-bt328.bootloader.extended_fuses=0x05
-bt328.bootloader.path=bt
-bt328.bootloader.file=ATmegaBOOT_168_atmega328_bt.hex
-bt328.bootloader.unlock_bits=0x3F
-bt328.bootloader.lock_bits=0x0F
-
-bt328.build.mcu=atmega328p
-bt328.build.f_cpu=16000000L
-bt328.build.core=arduino
-bt328.build.variant=eightanaloginputs
-
-##############################################################
-
-bt.name=Arduino BT w/ ATmega168
+bt.name=Arduino BT
+bt.upload.tool=avrdude
bt.upload.protocol=arduino
-bt.upload.maximum_size=14336
bt.upload.speed=19200
bt.upload.disable_flushing=true
+bt.bootloader.tool=avrdude
bt.bootloader.low_fuses=0xff
-bt.bootloader.high_fuses=0xdd
-bt.bootloader.extended_fuses=0x00
-bt.bootloader.path=bt
-bt.bootloader.file=ATmegaBOOT_168.hex
bt.bootloader.unlock_bits=0x3F
bt.bootloader.lock_bits=0x0F
-bt.build.mcu=atmega168
bt.build.f_cpu=16000000L
+bt.build.board=AVR_BT
bt.build.core=arduino
bt.build.variant=eightanaloginputs
+## Arduino BT w/ ATmega328
+## -----------------------
+bt.menu.cpu.atmega328=ATmega328
+bt.menu.cpu.atmega328.upload.maximum_size=28672
+bt.menu.cpu.atmega328.upload.maximum_data_size=2048
+
+bt.menu.cpu.atmega328.bootloader.high_fuses=0xd8
+bt.menu.cpu.atmega328.bootloader.extended_fuses=0x05
+bt.menu.cpu.atmega328.bootloader.file=bt/ATmegaBOOT_168_atmega328_bt.hex
+
+bt.menu.cpu.atmega328.build.mcu=atmega328p
+
+## Arduino BT w/ ATmega168
+## -----------------------
+bt.menu.cpu.atmega168=ATmega168
+bt.menu.cpu.atmega168.upload.maximum_size=14336
+bt.menu.cpu.atmega168.upload.maximum_data_size=1024
+
+bt.menu.cpu.atmega168.bootloader.high_fuses=0xdd
+bt.menu.cpu.atmega168.bootloader.extended_fuses=0x00
+bt.menu.cpu.atmega168.bootloader.file=bt/ATmegaBOOT_168.hex
+
+bt.menu.cpu.atmega168.build.mcu=atmega168
+
##############################################################
LilyPadUSB.name=LilyPad Arduino USB
+
+LilyPadUSB.upload.tool=avrdude
LilyPadUSB.upload.protocol=avr109
LilyPadUSB.upload.maximum_size=28672
+LilyPadUSB.upload.maximum_data_size=2560
LilyPadUSB.upload.speed=57600
LilyPadUSB.upload.disable_flushing=true
+LilyPadUSB.upload.use_1200bps_touch=true
+LilyPadUSB.upload.wait_for_upload_port=true
+
+LilyPadUSB.bootloader.tool=avrdude
LilyPadUSB.bootloader.low_fuses=0xff
LilyPadUSB.bootloader.high_fuses=0xd8
LilyPadUSB.bootloader.extended_fuses=0xce
-LilyPadUSB.bootloader.path=caterina-LilyPadUSB
-LilyPadUSB.bootloader.file=Caterina-LilyPadUSB.hex
+LilyPadUSB.bootloader.file=caterina-LilyPadUSB/Caterina-LilyPadUSB.hex
LilyPadUSB.bootloader.unlock_bits=0x3F
LilyPadUSB.bootloader.lock_bits=0x2F
+
LilyPadUSB.build.mcu=atmega32u4
LilyPadUSB.build.f_cpu=8000000L
LilyPadUSB.build.vid=0x1B4F
LilyPadUSB.build.pid=0x9208
+LilyPadUSB.build.board=AVR_LILYPAD_USB
LilyPadUSB.build.core=arduino
LilyPadUSB.build.variant=leonardo
+LilyPadUSB.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid}
##############################################################
-lilypad328.name=LilyPad Arduino w/ ATmega328
-
-lilypad328.upload.protocol=arduino
-lilypad328.upload.maximum_size=30720
-lilypad328.upload.speed=57600
-
-lilypad328.bootloader.low_fuses=0xFF
-lilypad328.bootloader.high_fuses=0xDA
-lilypad328.bootloader.extended_fuses=0x05
-lilypad328.bootloader.path=atmega
-lilypad328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
-lilypad328.bootloader.unlock_bits=0x3F
-lilypad328.bootloader.lock_bits=0x0F
-
-lilypad328.build.mcu=atmega328p
-lilypad328.build.f_cpu=8000000L
-lilypad328.build.core=arduino
-lilypad328.build.variant=standard
-
-##############################################################
-
-lilypad.name=LilyPad Arduino w/ ATmega168
+lilypad.name=LilyPad Arduino
+lilypad.upload.tool=avrdude
lilypad.upload.protocol=arduino
-lilypad.upload.maximum_size=14336
-lilypad.upload.speed=19200
-
-lilypad.bootloader.low_fuses=0xe2
-lilypad.bootloader.high_fuses=0xdd
-lilypad.bootloader.extended_fuses=0x00
-lilypad.bootloader.path=lilypad
-lilypad.bootloader.file=LilyPadBOOT_168.hex
+
+lilypad.bootloader.tool=avrdude
lilypad.bootloader.unlock_bits=0x3F
lilypad.bootloader.lock_bits=0x0F
-lilypad.build.mcu=atmega168
lilypad.build.f_cpu=8000000L
+lilypad.build.board=AVR_LILYPAD
lilypad.build.core=arduino
lilypad.build.variant=standard
-##############################################################
+## LilyPad Arduino w/ ATmega328
+## ----------------------------
+lilypad.menu.cpu.atmega328=ATmega328
+
+lilypad.menu.cpu.atmega328.upload.maximum_size=30720
+lilypad.menu.cpu.atmega328.upload.maximum_data_size=2048
+lilypad.menu.cpu.atmega328.upload.speed=57600
+
+lilypad.menu.cpu.atmega328.bootloader.low_fuses=0xFF
+lilypad.menu.cpu.atmega328.bootloader.high_fuses=0xDA
+lilypad.menu.cpu.atmega328.bootloader.extended_fuses=0x05
+lilypad.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
+
+lilypad.menu.cpu.atmega328.build.mcu=atmega328p
-pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
+## LilyPad Arduino w/ ATmega168
+## ----------------------------
+lilypad.menu.cpu.atmega168=ATmega168
-pro5v328.upload.protocol=arduino
-pro5v328.upload.maximum_size=30720
-pro5v328.upload.speed=57600
+lilypad.menu.cpu.atmega168.upload.maximum_size=14336
+lilypad.menu.cpu.atmega168.upload.maximum_data_size=1024
+lilypad.menu.cpu.atmega168.upload.speed=19200
-pro5v328.bootloader.low_fuses=0xFF
-pro5v328.bootloader.high_fuses=0xDA
-pro5v328.bootloader.extended_fuses=0x05
-pro5v328.bootloader.path=atmega
-pro5v328.bootloader.file=ATmegaBOOT_168_atmega328.hex
-pro5v328.bootloader.unlock_bits=0x3F
-pro5v328.bootloader.lock_bits=0x0F
+lilypad.menu.cpu.atmega168.bootloader.low_fuses=0xe2
+lilypad.menu.cpu.atmega168.bootloader.high_fuses=0xdd
+lilypad.menu.cpu.atmega168.bootloader.extended_fuses=0x00
+lilypad.menu.cpu.atmega168.bootloader.file=lilypad/LilyPadBOOT_168.hex
-pro5v328.build.mcu=atmega328p
-pro5v328.build.f_cpu=16000000L
-pro5v328.build.core=arduino
-pro5v328.build.variant=standard
+lilypad.menu.cpu.atmega168.build.mcu=atmega168
##############################################################
-pro5v.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
+pro.name=Arduino Pro or Pro Mini
-pro5v.upload.protocol=arduino
-pro5v.upload.maximum_size=14336
-pro5v.upload.speed=19200
+pro.upload.tool=avrdude
+pro.upload.protocol=arduino
-pro5v.bootloader.low_fuses=0xff
-pro5v.bootloader.high_fuses=0xdd
-pro5v.bootloader.extended_fuses=0x00
-pro5v.bootloader.path=atmega
-pro5v.bootloader.file=ATmegaBOOT_168_diecimila.hex
-pro5v.bootloader.unlock_bits=0x3F
-pro5v.bootloader.lock_bits=0x0F
+pro.bootloader.tool=avrdude
+pro.bootloader.unlock_bits=0x3F
+pro.bootloader.lock_bits=0x0F
-pro5v.build.mcu=atmega168
-pro5v.build.f_cpu=16000000L
-pro5v.build.core=arduino
-pro5v.build.variant=standard
+pro.build.board=AVR_PRO
+pro.build.core=arduino
+pro.build.variant=standard
-##############################################################
+## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
+## -------------------------------------------------
+pro.menu.cpu.16MHzatmega328=ATmega328 (5V, 16 MHz)
-pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328
+pro.menu.cpu.16MHzatmega328.upload.maximum_size=30720
+pro.menu.cpu.16MHzatmega328.upload.maximum_data_size=2048
+pro.menu.cpu.16MHzatmega328.upload.speed=57600
-pro328.upload.protocol=arduino
-pro328.upload.maximum_size=30720
-pro328.upload.speed=57600
+pro.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
+pro.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA
+pro.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x05
+pro.menu.cpu.16MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
-pro328.bootloader.low_fuses=0xFF
-pro328.bootloader.high_fuses=0xDA
-pro328.bootloader.extended_fuses=0x05
-pro328.bootloader.path=atmega
-pro328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
-pro328.bootloader.unlock_bits=0x3F
-pro328.bootloader.lock_bits=0x0F
+pro.menu.cpu.16MHzatmega328.build.mcu=atmega328p
+pro.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
-pro328.build.mcu=atmega328p
-pro328.build.f_cpu=8000000L
-pro328.build.core=arduino
-pro328.build.variant=standard
+## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328
+## --------------------------------------------------
+pro.menu.cpu.8MHzatmega328=ATmega328 (3.3V, 8 MHz)
-##############################################################
+pro.menu.cpu.8MHzatmega328.upload.maximum_size=30720
+pro.menu.cpu.8MHzatmega328.upload.maximum_data_size=2048
+pro.menu.cpu.8MHzatmega328.upload.speed=57600
-pro.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
+pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xFF
+pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA
+pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0x05
+pro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
-pro.upload.protocol=arduino
-pro.upload.maximum_size=14336
-pro.upload.speed=19200
-
-pro.bootloader.low_fuses=0xc6
-pro.bootloader.high_fuses=0xdd
-pro.bootloader.extended_fuses=0x00
-pro.bootloader.path=atmega
-pro.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
-pro.bootloader.unlock_bits=0x3F
-pro.bootloader.lock_bits=0x0F
+pro.menu.cpu.8MHzatmega328.build.mcu=atmega328p
+pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L
-pro.build.mcu=atmega168
-pro.build.f_cpu=8000000L
-pro.build.core=arduino
-pro.build.variant=standard
+## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
+## -------------------------------------------------
+pro.menu.cpu.16MHzatmega168=ATmega168 (5V, 16 MHz)
-##############################################################
+pro.menu.cpu.16MHzatmega168.upload.maximum_size=14336
+pro.menu.cpu.16MHzatmega168.upload.maximum_data_size=1024
+pro.menu.cpu.16MHzatmega168.upload.speed=19200
+
+pro.menu.cpu.16MHzatmega168.bootloader.low_fuses=0xff
+pro.menu.cpu.16MHzatmega168.bootloader.high_fuses=0xdd
+pro.menu.cpu.16MHzatmega168.bootloader.extended_fuses=0x00
+pro.menu.cpu.16MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
-atmega168.name=Arduino NG or older w/ ATmega168
+pro.menu.cpu.16MHzatmega168.build.mcu=atmega168
+pro.menu.cpu.16MHzatmega168.build.f_cpu=16000000L
-atmega168.upload.protocol=arduino
-atmega168.upload.maximum_size=14336
-atmega168.upload.speed=19200
+## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
+## --------------------------------------------------
+pro.menu.cpu.8MHzatmega168=ATmega168 (3.3V, 8 MHz)
-atmega168.bootloader.low_fuses=0xff
-atmega168.bootloader.high_fuses=0xdd
-atmega168.bootloader.extended_fuses=0x00
-atmega168.bootloader.path=atmega
-atmega168.bootloader.file=ATmegaBOOT_168_ng.hex
-atmega168.bootloader.unlock_bits=0x3F
-atmega168.bootloader.lock_bits=0x0F
+pro.menu.cpu.8MHzatmega168.upload.maximum_size=14336
+pro.menu.cpu.8MHzatmega168.upload.maximum_data_size=1024
+pro.menu.cpu.8MHzatmega168.upload.speed=19200
-atmega168.build.mcu=atmega168
-atmega168.build.f_cpu=16000000L
-atmega168.build.core=arduino
-atmega168.build.variant=standard
+pro.menu.cpu.8MHzatmega168.bootloader.low_fuses=0xc6
+pro.menu.cpu.8MHzatmega168.bootloader.high_fuses=0xdd
+pro.menu.cpu.8MHzatmega168.bootloader.extended_fuses=0x00
+pro.menu.cpu.8MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_pro_8MHz.hex
+
+pro.menu.cpu.8MHzatmega168.build.mcu=atmega168
+pro.menu.cpu.8MHzatmega168.build.f_cpu=8000000L
##############################################################
-atmega8.name=Arduino NG or older w/ ATmega8
+atmegang.name=Arduino NG or older
+
+atmegang.upload.tool=avrdude
+atmegang.upload.protocol=arduino
+atmegang.upload.speed=19200
+
+atmegang.bootloader.tool=avrdude
+atmegang.bootloader.unlock_bits=0x3F
+atmegang.bootloader.lock_bits=0x0F
+
+atmegang.build.mcu=atmegang
+atmegang.build.f_cpu=16000000L
+atmegang.build.board=AVR_NG
+atmegang.build.core=arduino
+atmegang.build.variant=standard
+
+## Arduino NG or older w/ ATmega168
+## --------------------------------
+atmegang.menu.cpu.atmega168=ATmega168
+
+atmegang.menu.cpu.atmega168.upload.maximum_size=14336
+atmegang.menu.cpu.atmega168.upload.maximum_data_size=1024
+
+atmegang.menu.cpu.atmega168.bootloader.low_fuses=0xff
+atmegang.menu.cpu.atmega168.bootloader.high_fuses=0xdd
+atmegang.menu.cpu.atmega168.bootloader.extended_fuses=0x00
+atmegang.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex
+
+atmegang.menu.cpu.atmega168.build.mcu=atmega168
+
+## Arduino NG or older w/ ATmega8
+## ------------------------------
+atmegang.menu.cpu.atmega8=ATmega8
+
+atmegang.menu.cpu.atmega8.upload.maximum_size=7168
-atmega8.upload.protocol=arduino
-atmega8.upload.maximum_size=7168
-atmega8.upload.speed=19200
+atmegang.menu.cpu.atmega8.bootloader.low_fuses=0xdf
+atmegang.menu.cpu.atmega8.bootloader.high_fuses=0xca
+atmegang.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex
-atmega8.bootloader.low_fuses=0xdf
-atmega8.bootloader.high_fuses=0xca
-atmega8.bootloader.path=atmega8
-atmega8.bootloader.file=ATmegaBOOT-prod-firmware-2009-11-07.hex
-atmega8.bootloader.unlock_bits=0x3F
-atmega8.bootloader.lock_bits=0x0F
+atmegang.menu.cpu.atmega8.build.mcu=atmega8
-atmega8.build.mcu=atmega8
-atmega8.build.f_cpu=16000000L
-atmega8.build.core=arduino
-atmega8.build.variant=standard