aboutsummaryrefslogtreecommitdiff
path: root/boards.txt
diff options
context:
space:
mode:
Diffstat (limited to 'boards.txt')
-rw-r--r--boards.txt534
1 files changed, 255 insertions, 279 deletions
diff --git a/boards.txt b/boards.txt
index 96743cb..b4b467f 100644
--- a/boards.txt
+++ b/boards.txt
@@ -1,18 +1,23 @@
# 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.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.core=arduino
@@ -20,101 +25,100 @@ 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.core=arduino
+atmega328diecimila.build.variant=standard
-##############################################################
-
-diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168
+## Arduino Duemilanove or Diecimila w/ ATmega328
+menu.cpu.atmega328diecimila.atmega328=ATmega328
-diecimila.upload.protocol=arduino
-diecimila.upload.maximum_size=14336
-diecimila.upload.speed=19200
+menu.cpu.atmega328diecimila.atmega328.upload.maximum_size=30720
+menu.cpu.atmega328diecimila.atmega328.upload.speed=57600
-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
+menu.cpu.atmega328diecimila.atmega328.bootloader.high_fuses=0xDA
+menu.cpu.atmega328diecimila.atmega328.bootloader.extended_fuses=0x05
+menu.cpu.atmega328diecimila.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
-diecimila.build.mcu=atmega168
-diecimila.build.f_cpu=16000000L
-diecimila.build.core=arduino
-diecimila.build.variant=standard
+menu.cpu.atmega328diecimila.atmega328.build.mcu=atmega328p
-##############################################################
+## Arduino Duemilanove or Diecimila w/ ATmega168
+menu.cpu.atmega328diecimila.atmega168=ATmega168
-nano328.name=Arduino Nano w/ ATmega328
+menu.cpu.atmega328diecimila.atmega168.upload.maximum_size=14336
+menu.cpu.atmega328diecimila.atmega168.upload.speed=19200
-nano328.upload.protocol=arduino
-nano328.upload.maximum_size=30720
-nano328.upload.speed=57600
+menu.cpu.atmega328diecimila.atmega168.bootloader.high_fuses=0xdd
+menu.cpu.atmega328diecimila.atmega168.bootloader.extended_fuses=0x00
+menu.cpu.atmega328diecimila.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
-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
-
-nano328.build.mcu=atmega328p
-nano328.build.f_cpu=16000000L
-nano328.build.core=arduino
-nano328.build.variant=eightanaloginputs
+menu.cpu.atmega328diecimila.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.core=arduino
nano.build.variant=eightanaloginputs
+## Arduino Nano w/ ATmega328
+menu.cpu.nano.atmega328=ATmega328
+
+menu.cpu.nano.atmega328.upload.maximum_size=30720
+menu.cpu.nano.atmega328.upload.speed=57600
+
+menu.cpu.nano.atmega328.bootloader.low_fuses=0xFF
+menu.cpu.nano.atmega328.bootloader.high_fuses=0xDA
+menu.cpu.nano.atmega328.bootloader.extended_fuses=0x05
+menu.cpu.nano.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
+
+menu.cpu.nano.atmega328.build.mcu=atmega328p
+
+## Arduino Nano w/ ATmega168
+menu.cpu.nano.atmega168=ATmega168
+
+menu.cpu.nano.atmega168.upload.maximum_size=14336
+menu.cpu.nano.atmega168.upload.speed=19200
+
+menu.cpu.nano.atmega168.bootloader.low_fuses=0xff
+menu.cpu.nano.atmega168.bootloader.high_fuses=0xdd
+menu.cpu.nano.atmega168.bootloader.extended_fuses=0x00
+menu.cpu.nano.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
+
+menu.cpu.nano.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
@@ -126,16 +130,18 @@ 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
@@ -147,100 +153,84 @@ mega.build.variant=mega
##############################################################
leonardo.name=Arduino Leonardo
+leonardo.upload.tool=avrdude
leonardo.upload.protocol=avr109
leonardo.upload.maximum_size=28672
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.core=arduino
leonardo.build.variant=leonardo
+leonardo.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid}
##############################################################
-micro.name=Arduino Micro
-micro.upload.protocol=avr109
-micro.upload.maximum_size=28672
-micro.upload.speed=57600
-micro.upload.disable_flushing=true
-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.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.core=arduino
-micro.build.variant=micro
-
-##############################################################
-
-mini328.name=Arduino Mini w/ ATmega328
-
-mini328.upload.protocol=arduino
-mini328.upload.maximum_size=28672
-mini328.upload.speed=115200
-
-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
-
-mini328.build.mcu=atmega328p
-mini328.build.f_cpu=16000000L
-mini328.build.core=arduino
-mini328.build.variant=eightanaloginputs
-
-##############################################################
-
-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.core=arduino
mini.build.variant=eightanaloginputs
+## Arduino Mini w/ ATmega328
+menu.cpu.mini.atmega328=ATmega328
+
+menu.cpu.mini.atmega328.upload.maximum_size=28672
+menu.cpu.mini.atmega328.upload.speed=115200
+
+menu.cpu.mini.atmega328.bootloader.high_fuses=0xd8
+menu.cpu.mini.atmega328.bootloader.extended_fuses=0x05
+menu.cpu.mini.atmega328.bootloader.file=optiboot/optiboot_atmega328-Mini.hex
+
+menu.cpu.mini.atmega328.build.mcu=atmega328p
+
+## Arduino Mini w/ ATmega168
+menu.cpu.mini.atmega168=ATmega168
+
+menu.cpu.mini.atmega168.upload.maximum_size=14336
+menu.cpu.mini.atmega168.upload.speed=19200
+
+menu.cpu.mini.atmega168.bootloader.high_fuses=0xdd
+menu.cpu.mini.atmega168.bootloader.extended_fuses=0x00
+menu.cpu.mini.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex
+
+menu.cpu.mini.atmega168.build.mcu=atmega168
+
##############################################################
ethernet.name=Arduino Ethernet
+ethernet.upload.tool=avrdude
ethernet.upload.protocol=arduino
ethernet.upload.maximum_size=32256
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
@@ -253,15 +243,16 @@ ethernet.build.core=arduino
fio.name=Arduino Fio
+fio.upload.tool=avrdude
fio.upload.protocol=arduino
fio.upload.maximum_size=30720
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
@@ -272,232 +263,217 @@ 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.core=arduino
bt.build.variant=eightanaloginputs
+## Arduino BT w/ ATmega328
+menu.cpu.bt.atmega328=ATmega328
+menu.cpu.bt.atmega328.upload.maximum_size=28672
+
+menu.cpu.bt.atmega328.bootloader.high_fuses=0xd8
+menu.cpu.bt.atmega328.bootloader.extended_fuses=0x05
+menu.cpu.bt.atmega328.bootloader.file=bt/ATmegaBOOT_168_atmega328_bt.hex
+
+menu.cpu.bt.atmega328.build.mcu=atmega328p
+
+## Arduino BT w/ ATmega168
+menu.cpu.bt.atmega168=ATmega168
+menu.cpu.bt.atmega168.upload.maximum_size=14336
+
+menu.cpu.bt.atmega168.bootloader.high_fuses=0xdd
+menu.cpu.bt.atmega168.bootloader.extended_fuses=0x00
+menu.cpu.bt.atmega168.bootloader.file=bt/ATmegaBOOT_168.hex
+
+menu.cpu.bt.atmega168.build.mcu=atmega168
+
##############################################################
LilyPadUSB.name=LilyPad Arduino USB
+
+LilyPadUSB.upload.tool=avrdude
LilyPadUSB.upload.protocol=avr109
LilyPadUSB.upload.maximum_size=28672
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.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.core=arduino
lilypad.build.variant=standard
-##############################################################
+## LilyPad Arduino w/ ATmega328
+menu.cpu.lilypad.atmega328=ATmega328
-pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
+menu.cpu.lilypad.atmega328.upload.maximum_size=30720
+menu.cpu.lilypad.atmega328.upload.speed=57600
-pro5v328.upload.protocol=arduino
-pro5v328.upload.maximum_size=30720
-pro5v328.upload.speed=57600
+menu.cpu.lilypad.atmega328.bootloader.low_fuses=0xFF
+menu.cpu.lilypad.atmega328.bootloader.high_fuses=0xDA
+menu.cpu.lilypad.atmega328.bootloader.extended_fuses=0x05
+menu.cpu.lilypad.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
-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
+menu.cpu.lilypad.atmega328.build.mcu=atmega328p
-pro5v328.build.mcu=atmega328p
-pro5v328.build.f_cpu=16000000L
-pro5v328.build.core=arduino
-pro5v328.build.variant=standard
+## LilyPad Arduino w/ ATmega168
+menu.cpu.lilypad.atmega168=ATmega168
+
+menu.cpu.lilypad.atmega168.upload.maximum_size=14336
+menu.cpu.lilypad.atmega168.upload.speed=19200
+
+menu.cpu.lilypad.atmega168.bootloader.low_fuses=0xe2
+menu.cpu.lilypad.atmega168.bootloader.high_fuses=0xdd
+menu.cpu.lilypad.atmega168.bootloader.extended_fuses=0x00
+menu.cpu.lilypad.atmega168.bootloader.file=lilypad/LilyPadBOOT_168.hex
+
+menu.cpu.lilypad.atmega168.build.mcu=atmega168
##############################################################
-pro5v.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
+pro.name=Arduino Pro or Pro Mini
+
+pro.upload.tool=avrdude
+pro.upload.protocol=arduino
+
+pro.bootloader.tool=avrdude
+pro.bootloader.unlock_bits=0x3F
+pro.bootloader.lock_bits=0x0F
-pro5v.upload.protocol=arduino
-pro5v.upload.maximum_size=14336
-pro5v.upload.speed=19200
+pro.build.core=arduino
+pro.build.variant=standard
-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
+## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
+menu.cpu.pro.16MHzatmega328=ATmega328 (5V, 16 MHz)
-pro5v.build.mcu=atmega168
-pro5v.build.f_cpu=16000000L
-pro5v.build.core=arduino
-pro5v.build.variant=standard
+menu.cpu.pro.16MHzatmega328.upload.maximum_size=30720
+menu.cpu.pro.16MHzatmega328.upload.speed=57600
-##############################################################
+menu.cpu.pro.16MHzatmega328.bootloader.low_fuses=0xFF
+menu.cpu.pro.16MHzatmega328.bootloader.high_fuses=0xDA
+menu.cpu.pro.16MHzatmega328.bootloader.extended_fuses=0x05
+menu.cpu.pro.16MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
-pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328
+menu.cpu.pro.16MHzatmega328.build.mcu=atmega328p
+menu.cpu.pro.16MHzatmega328.build.f_cpu=16000000L
-pro328.upload.protocol=arduino
-pro328.upload.maximum_size=30720
-pro328.upload.speed=57600
+## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328
+menu.cpu.pro.8MHzatmega328=ATmega328 (3.3V, 8 MHz)
-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
+menu.cpu.pro.8MHzatmega328.upload.maximum_size=30720
+menu.cpu.pro.8MHzatmega328.upload.speed=57600
-pro328.build.mcu=atmega328p
-pro328.build.f_cpu=8000000L
-pro328.build.core=arduino
-pro328.build.variant=standard
+menu.cpu.pro.8MHzatmega328.bootloader.low_fuses=0xFF
+menu.cpu.pro.8MHzatmega328.bootloader.high_fuses=0xDA
+menu.cpu.pro.8MHzatmega328.bootloader.extended_fuses=0x05
+menu.cpu.pro.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
-##############################################################
+menu.cpu.pro.8MHzatmega328.build.mcu=atmega328p
+menu.cpu.pro.8MHzatmega328.build.f_cpu=8000000L
-pro.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
+## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
+menu.cpu.pro.16MHzatmega168=ATmega168 (5V, 16 MHz)
-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
+menu.cpu.pro.16MHzatmega168.upload.maximum_size=14336
+menu.cpu.pro.16MHzatmega168.upload.speed=19200
-pro.build.mcu=atmega168
-pro.build.f_cpu=8000000L
-pro.build.core=arduino
-pro.build.variant=standard
+menu.cpu.pro.16MHzatmega168.bootloader.low_fuses=0xff
+menu.cpu.pro.16MHzatmega168.bootloader.high_fuses=0xdd
+menu.cpu.pro.16MHzatmega168.bootloader.extended_fuses=0x00
+menu.cpu.pro.16MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
-##############################################################
+menu.cpu.pro.16MHzatmega168.build.mcu=atmega168
+menu.cpu.pro.16MHzatmega168.build.f_cpu=16000000L
-atmega168.name=Arduino NG or older w/ ATmega168
+## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
+menu.cpu.pro.8MHzatmega168=ATmega168 (3.3V, 8 MHz)
-atmega168.upload.protocol=arduino
-atmega168.upload.maximum_size=14336
-atmega168.upload.speed=19200
+menu.cpu.pro.8MHzatmega168.upload.maximum_size=14336
+menu.cpu.pro.8MHzatmega168.upload.speed=19200
-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
+menu.cpu.pro.8MHzatmega168.bootloader.low_fuses=0xc6
+menu.cpu.pro.8MHzatmega168.bootloader.high_fuses=0xdd
+menu.cpu.pro.8MHzatmega168.bootloader.extended_fuses=0x00
+menu.cpu.pro.8MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_pro_8MHz.hex
-atmega168.build.mcu=atmega168
-atmega168.build.f_cpu=16000000L
-atmega168.build.core=arduino
-atmega168.build.variant=standard
+menu.cpu.pro.8MHzatmega168.build.mcu=atmega168
+menu.cpu.pro.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.core=arduino
+atmegang.build.variant=standard
+
+## Arduino NG or older w/ ATmega168
+menu.cpu.atmegang.atmega168=ATmega168
+
+menu.cpu.atmegang.atmega168.upload.maximum_size=14336
+
+menu.cpu.atmegang.atmega168.bootloader.low_fuses=0xff
+menu.cpu.atmegang.atmega168.bootloader.high_fuses=0xdd
+menu.cpu.atmegang.atmega168.bootloader.extended_fuses=0x00
+menu.cpu.atmegang.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex
+
+menu.cpu.atmegang.atmega168.build.mcu=atmega168
+
+## Arduino NG or older w/ ATmega8
+menu.cpu.atmegang.atmega8=ATmega8
-atmega8.upload.protocol=arduino
-atmega8.upload.maximum_size=7168
-atmega8.upload.speed=19200
+menu.cpu.atmegang.atmega8.upload.maximum_size=7168
-atmega8.bootloader.low_fuses=0xdf
-atmega8.bootloader.high_fuses=0xca
-atmega8.bootloader.path=atmega8
-atmega8.bootloader.file=ATmegaBOOT.hex
-atmega8.bootloader.unlock_bits=0x3F
-atmega8.bootloader.lock_bits=0x0F
+menu.cpu.atmegang.atmega8.bootloader.low_fuses=0xdf
+menu.cpu.atmegang.atmega8.bootloader.high_fuses=0xca
+menu.cpu.atmegang.atmega8.bootloader.file=atmegang/ATmegaBOOT.hex
-atmega8.build.mcu=atmega8
-atmega8.build.f_cpu=16000000L
-atmega8.build.core=arduino
-atmega8.build.variant=standard
+menu.cpu.atmegang.atmega8.build.mcu=atmega8