Commit 5a095784 authored by Cristian Maglie's avatar Cristian Maglie

Added tests and ifx for board options available only under particular OS

See: https://github.com/arduino/arduino-cli/pull/67#issuecomment-429919298

quote:
There are some options without label (did not parsed well) for upload speed on different OS:

Option:     Upload Speed                             UploadSpeed
            115200                                  UploadSpeed=115200
            9600                                     UploadSpeed=9600
            57600                                    UploadSpeed=57600
            230400                                   UploadSpeed=230400
                                                     UploadSpeed=256000
            460800                                   UploadSpeed=460800
                                                     UploadSpeed=512000
            921600                                   UploadSpeed=921600

Cause boards.txt contains:

generic.menu.UploadSpeed.115200=115200
generic.menu.UploadSpeed.115200.upload.speed=115200
generic.menu.UploadSpeed.9600=9600
generic.menu.UploadSpeed.9600.upload.speed=9600
generic.menu.UploadSpeed.57600=57600
generic.menu.UploadSpeed.57600.upload.speed=57600
generic.menu.UploadSpeed.230400.linux=230400
generic.menu.UploadSpeed.230400.macosx=230400
generic.menu.UploadSpeed.230400.upload.speed=230400
generic.menu.UploadSpeed.256000.windows=256000
generic.menu.UploadSpeed.256000.upload.speed=256000
generic.menu.UploadSpeed.460800.linux=460800
generic.menu.UploadSpeed.460800.macosx=460800
generic.menu.UploadSpeed.460800.upload.speed=460800
generic.menu.UploadSpeed.512000.windows=512000
generic.menu.UploadSpeed.512000.upload.speed=512000
generic.menu.UploadSpeed.921600=921600
generic.menu.UploadSpeed.921600.upload.speed=921600
parent e770c8d9
......@@ -78,7 +78,9 @@ func (b *Board) GetConfigOptionValues(option string) *properties.Map {
res := properties.NewMap()
menu := b.Properties.SubTree("menu").SubTree(option)
for _, value := range menu.FirstLevelKeys() {
res.Set(value, menu.Get(value))
if label, ok := menu.GetOk(value); ok {
res.Set(value, label)
}
}
return res
}
......
......@@ -22,6 +22,7 @@ import (
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
"github.com/arduino/go-paths-helper"
"github.com/arduino/go-properties-orderedmap"
"github.com/stretchr/testify/require"
)
......@@ -43,3 +44,44 @@ func TestFindBoardWithFQBN(t *testing.T) {
require.NotNil(t, board)
require.Equal(t, board.Name(), "Arduino/Genuino Mega or Mega 2560")
}
func TestBoardOptionsFunctions(t *testing.T) {
pm := packagemanager.NewPackageManager(
paths.New("testdata"),
paths.New("testdata"),
paths.New("testdata"),
paths.New("testdata"))
pm.LoadHardwareFromDirectory(paths.New("testdata"))
nano, err := pm.FindBoardWithFQBN("arduino:avr:nano")
require.Nil(t, err)
require.NotNil(t, nano)
require.Equal(t, nano.Name(), "Arduino Nano")
nanoOptions := nano.GetConfigOptions()
require.Equal(t, "Processor", nanoOptions.Get("cpu"))
require.Equal(t, 1, nanoOptions.Size())
nanoCPUValues := nano.GetConfigOptionValues("cpu")
expectedNanoCPUValues := properties.NewMap()
expectedNanoCPUValues.Set("atmega328", "ATmega328P")
expectedNanoCPUValues.Set("atmega328old", "ATmega328P (Old Bootloader)")
expectedNanoCPUValues.Set("atmega168", "ATmega168")
require.EqualValues(t, expectedNanoCPUValues, nanoCPUValues)
esp8266, err := pm.FindBoardWithFQBN("esp8266:esp8266:generic")
require.Nil(t, err)
require.NotNil(t, esp8266)
require.Equal(t, esp8266.Name(), "Generic ESP8266 Module")
esp8266Options := esp8266.GetConfigOptions()
require.Equal(t, 13, esp8266Options.Size())
require.Equal(t, "Builtin Led", esp8266Options.Get("led"))
require.Equal(t, "Upload Speed", esp8266Options.Get("UploadSpeed"))
esp8266UploadSpeedValues := esp8266.GetConfigOptionValues("UploadSpeed")
for k, v := range esp8266UploadSpeedValues.AsMap() {
// Some option values are missing for a particular OS: check that only the available options are listed
require.Equal(t, k, v)
}
}
......@@ -2,6 +2,50 @@
menu.cpu=Processor
##############################################################
yun.name=Arduino Yún
yun.upload.via_ssh=true
yun.vid.0=0x2341
yun.pid.0=0x0041
yun.vid.1=0x2341
yun.pid.1=0x8041
yun.vid.2=0x2A03
yun.pid.2=0x0041
yun.vid.3=0x2A03
yun.pid.3=0x8041
yun.upload.tool=avrdude
yun.upload.protocol=avr109
yun.upload.maximum_size=28672
yun.upload.maximum_data_size=2560
yun.upload.speed=57600
yun.upload.disable_flushing=true
yun.upload.use_1200bps_touch=true
yun.upload.wait_for_upload_port=true
yun.bootloader.tool=avrdude
yun.bootloader.low_fuses=0xff
yun.bootloader.high_fuses=0xd8
yun.bootloader.extended_fuses=0xfb
yun.bootloader.file=caterina/Caterina-Yun.hex
yun.bootloader.noblink=caterina/Caterina-Yun-noblink.hex
yun.bootloader.unlock_bits=0x3F
yun.bootloader.lock_bits=0x2F
yun.build.mcu=atmega32u4
yun.build.f_cpu=16000000L
yun.build.vid=0x2341
yun.build.pid=0x8041
yun.build.usb_product="Arduino Yun"
yun.build.board=AVR_YUN
yun.build.core=arduino
yun.build.variant=yun
yun.build.extra_flags={build.usb_flags}
##############################################################
uno.name=Arduino/Genuino Uno
uno.vid.0=0x2341
......@@ -35,6 +79,112 @@ uno.build.variant=standard
##############################################################
diecimila.name=Arduino Duemilanove or Diecimila
diecimila.upload.tool=avrdude
diecimila.upload.protocol=arduino
diecimila.bootloader.tool=avrdude
diecimila.bootloader.low_fuses=0xFF
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F
diecimila.build.f_cpu=16000000L
diecimila.build.board=AVR_DUEMILANOVE
diecimila.build.core=arduino
diecimila.build.variant=standard
## Arduino Duemilanove or Diecimila w/ ATmega328P
## ----------------------------------------------
diecimila.menu.cpu.atmega328=ATmega328P
diecimila.menu.cpu.atmega328.upload.maximum_size=30720
diecimila.menu.cpu.atmega328.upload.maximum_data_size=2048
diecimila.menu.cpu.atmega328.upload.speed=57600
diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA
diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
diecimila.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
diecimila.menu.cpu.atmega328.build.mcu=atmega328p
## Arduino Duemilanove or Diecimila w/ ATmega168
## ---------------------------------------------
diecimila.menu.cpu.atmega168=ATmega168
diecimila.menu.cpu.atmega168.upload.maximum_size=14336
diecimila.menu.cpu.atmega168.upload.maximum_data_size=1024
diecimila.menu.cpu.atmega168.upload.speed=19200
diecimila.menu.cpu.atmega168.bootloader.high_fuses=0xdd
diecimila.menu.cpu.atmega168.bootloader.extended_fuses=0xF8
diecimila.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
diecimila.menu.cpu.atmega168.build.mcu=atmega168
##############################################################
nano.name=Arduino Nano
nano.upload.tool=avrdude
nano.upload.protocol=arduino
nano.bootloader.tool=avrdude
nano.bootloader.unlock_bits=0x3F
nano.bootloader.lock_bits=0x0F
nano.build.f_cpu=16000000L
nano.build.board=AVR_NANO
nano.build.core=arduino
nano.build.variant=eightanaloginputs
## Arduino Nano w/ ATmega328P
## --------------------------
nano.menu.cpu.atmega328=ATmega328P
nano.menu.cpu.atmega328.upload.maximum_size=30720
nano.menu.cpu.atmega328.upload.maximum_data_size=2048
nano.menu.cpu.atmega328.upload.speed=115200
nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex
nano.menu.cpu.atmega328.build.mcu=atmega328p
## Arduino Nano w/ ATmega328P (old bootloader)
## --------------------------
nano.menu.cpu.atmega328old=ATmega328P (Old Bootloader)
nano.menu.cpu.atmega328old.upload.maximum_size=30720
nano.menu.cpu.atmega328old.upload.maximum_data_size=2048
nano.menu.cpu.atmega328old.upload.speed=57600
nano.menu.cpu.atmega328old.bootloader.low_fuses=0xFF
nano.menu.cpu.atmega328old.bootloader.high_fuses=0xDA
nano.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD
nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
nano.menu.cpu.atmega328old.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=0xF8
nano.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
nano.menu.cpu.atmega168.build.mcu=atmega168
##############################################################
mega.name=Arduino/Genuino Mega or Mega 2560
mega.vid.0=0x2341
......@@ -94,4 +244,825 @@ mega.menu.cpu.atmega1280.bootloader.file=atmega/ATmegaBOOT_168_atmega1280.hex
mega.menu.cpu.atmega1280.build.mcu=atmega1280
mega.menu.cpu.atmega1280.build.board=AVR_MEGA
##############################################################
\ No newline at end of file
##############################################################
megaADK.name=Arduino Mega ADK
megaADK.vid.0=0x2341
megaADK.pid.0=0x003f
megaADK.vid.1=0x2341
megaADK.pid.1=0x0044
megaADK.vid.2=0x2A03
megaADK.pid.2=0x003f
megaADK.vid.3=0x2A03
megaADK.pid.3=0x0044
megaADK.upload.tool=avrdude
megaADK.upload.protocol=wiring
megaADK.upload.maximum_size=253952
megaADK.upload.maximum_data_size=8192
megaADK.upload.speed=115200
megaADK.bootloader.tool=avrdude
megaADK.bootloader.low_fuses=0xFF
megaADK.bootloader.high_fuses=0xD8
megaADK.bootloader.extended_fuses=0xFD
megaADK.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex
megaADK.bootloader.unlock_bits=0x3F
megaADK.bootloader.lock_bits=0x0F
megaADK.build.mcu=atmega2560
megaADK.build.f_cpu=16000000L
megaADK.build.board=AVR_ADK
megaADK.build.core=arduino
megaADK.build.variant=mega
##############################################################
leonardo.name=Arduino Leonardo
leonardo.vid.0=0x2341
leonardo.pid.0=0x0036
leonardo.vid.1=0x2341
leonardo.pid.1=0x8036
leonardo.vid.2=0x2A03
leonardo.pid.2=0x0036
leonardo.vid.3=0x2A03
leonardo.pid.3=0x8036
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.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.usb_product="Arduino Leonardo"
leonardo.build.board=AVR_LEONARDO
leonardo.build.core=arduino
leonardo.build.variant=leonardo
leonardo.build.extra_flags={build.usb_flags}
##############################################################
leonardoeth.name=Arduino Leonardo ETH
leonardoeth.vid.0=0x2a03
leonardoeth.pid.0=0x0040
leonardoeth.vid.1=0x2a03
leonardoeth.pid.1=0x8040
leonardoeth.upload.tool=avrdude
leonardoeth.upload.protocol=avr109
leonardoeth.upload.maximum_size=28672
leonardoeth.upload.maximum_data_size=2560
leonardoeth.upload.speed=57600
leonardoeth.upload.disable_flushing=true
leonardoeth.upload.use_1200bps_touch=true
leonardoeth.upload.wait_for_upload_port=true
leonardoeth.bootloader.tool=avrdude
leonardoeth.bootloader.low_fuses=0xff
leonardoeth.bootloader.high_fuses=0xd8
leonardoeth.bootloader.extended_fuses=0xcb
leonardoeth.bootloader.file=caterina/Caterina-LeonardoEthernet.hex
leonardoeth.bootloader.unlock_bits=0x3F
leonardoeth.bootloader.lock_bits=0x2F
leonardoeth.build.mcu=atmega32u4
leonardoeth.build.f_cpu=16000000L
leonardoeth.build.vid=0x2a03
leonardoeth.build.pid=0x8040
leonardoeth.build.usb_product="Arduino Leonardo ETH"
leonardoeth.build.board=AVR_LEONARDO_ETH
leonardoeth.build.core=arduino
leonardoeth.build.variant=leonardo
leonardoeth.build.extra_flags={build.usb_flags}
##############################################################
micro.name=Arduino/Genuino Micro
micro.vid.0=0x2341
micro.pid.0=0x0037
micro.vid.1=0x2341
micro.pid.1=0x8037
micro.vid.2=0x2A03
micro.pid.2=0x0037
micro.vid.3=0x2A03
micro.pid.3=0x8037
micro.vid.4=0x2341
micro.pid.4=0x0237
# If the board is a 2341:0237 use 2341:8237 for build and set
# other parameters as well
micro.vid.4.build.vid=0x2341
micro.vid.4.build.pid=0x8237
micro.vid.4.build.usb_product="Genuino Micro"
micro.vid.4.bootloader.file=caterina/Caterina-Genuino-Micro.hex
micro.vid.5=0x2341
micro.pid.5=0x8237
# If the board is a 2341:8237 use 2341:8237 for build and set
# other paramters as well
micro.vid.5.build.vid=0x2341
micro.vid.5.build.pid=0x8237
micro.vid.5.build.usb_product="Genuino Micro"
micro.vid.5.bootloader.file=caterina/Caterina-Genuino-Micro.hex
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.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.usb_product="Arduino Micro"
micro.build.board=AVR_MICRO
micro.build.core=arduino
micro.build.variant=micro
micro.build.extra_flags={build.usb_flags}
##############################################################
esplora.name=Arduino Esplora
esplora.vid.0=0x2341
esplora.pid.0=0x003C
esplora.vid.1=0x2341
esplora.pid.1=0x803C
esplora.vid.2=0x2A03
esplora.pid.2=0x003C
esplora.vid.3=0x2A03
esplora.pid.3=0x803C
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
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
esplora.build.mcu=atmega32u4
esplora.build.f_cpu=16000000L
esplora.build.vid=0x2341
esplora.build.pid=0x803c
esplora.build.usb_product="Arduino Esplora"
esplora.build.board=AVR_ESPLORA
esplora.build.core=arduino
esplora.build.variant=leonardo
esplora.build.extra_flags={build.usb_flags}
##############################################################
mini.name=Arduino Mini
mini.upload.tool=avrdude
mini.upload.protocol=arduino
mini.bootloader.tool=avrdude
mini.bootloader.low_fuses=0xff
mini.bootloader.unlock_bits=0x3F
mini.bootloader.lock_bits=0x0F
mini.build.f_cpu=16000000L
mini.build.board=AVR_MINI
mini.build.core=arduino
mini.build.variant=eightanaloginputs
## Arduino Mini w/ ATmega328P
## --------------------------
mini.menu.cpu.atmega328=ATmega328P
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=0xFD
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=0xF8
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=0xFD
ethernet.bootloader.file=optiboot/optiboot_atmega328.hex
ethernet.bootloader.unlock_bits=0x3F
ethernet.bootloader.lock_bits=0x0F
ethernet.build.variant=ethernet
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=0xFD
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
##############################################################
bt.name=Arduino BT
bt.upload.tool=avrdude
bt.upload.protocol=arduino
bt.upload.speed=19200
bt.upload.disable_flushing=true
bt.bootloader.tool=avrdude
bt.bootloader.low_fuses=0xff
bt.bootloader.unlock_bits=0x3F
bt.bootloader.lock_bits=0x0F
bt.build.f_cpu=16000000L
bt.build.board=AVR_BT
bt.build.core=arduino
bt.build.variant=eightanaloginputs
## Arduino BT w/ ATmega328P
## ------------------------
bt.menu.cpu.atmega328=ATmega328P
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=0xFD
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=0xF8
bt.menu.cpu.atmega168.bootloader.file=bt/ATmegaBOOT_168.hex
bt.menu.cpu.atmega168.build.mcu=atmega168
##############################################################
LilyPadUSB.name=LilyPad Arduino USB
LilyPadUSB.vid.0=0x1B4F
LilyPadUSB.pid.0=0x9207
LilyPadUSB.vid.1=0x1B4F
LilyPadUSB.pid.1=0x9208
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.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.usb_product="LilyPad USB"
LilyPadUSB.build.board=AVR_LILYPAD_USB
LilyPadUSB.build.core=arduino
LilyPadUSB.build.variant=leonardo
LilyPadUSB.build.extra_flags={build.usb_flags}
##############################################################
lilypad.name=LilyPad Arduino
lilypad.upload.tool=avrdude
lilypad.upload.protocol=arduino
lilypad.bootloader.tool=avrdude
lilypad.bootloader.unlock_bits=0x3F
lilypad.bootloader.lock_bits=0x0F
lilypad.build.f_cpu=8000000L
lilypad.build.board=AVR_LILYPAD
lilypad.build.core=arduino
lilypad.build.variant=standard
## LilyPad Arduino w/ ATmega328P
## -----------------------------
lilypad.menu.cpu.atmega328=ATmega328P
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=0xFD
lilypad.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
lilypad.menu.cpu.atmega328.build.mcu=atmega328p
## LilyPad Arduino w/ ATmega168
## ----------------------------
lilypad.menu.cpu.atmega168=ATmega168
lilypad.menu.cpu.atmega168.upload.maximum_size=14336
lilypad.menu.cpu.atmega168.upload.maximum_data_size=1024
lilypad.menu.cpu.atmega168.upload.speed=19200
lilypad.menu.cpu.atmega168.bootloader.low_fuses=0xe2
lilypad.menu.cpu.atmega168.bootloader.high_fuses=0xdd
lilypad.menu.cpu.atmega168.bootloader.extended_fuses=0xF8
lilypad.menu.cpu.atmega168.bootloader.file=lilypad/LilyPadBOOT_168.hex
lilypad.menu.cpu.atmega168.build.mcu=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
pro.build.board=AVR_PRO
pro.build.core=arduino
pro.build.variant=eightanaloginputs
## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P
## --------------------------------------------------
pro.menu.cpu.16MHzatmega328=ATmega328P (5V, 16 MHz)
pro.menu.cpu.16MHzatmega328.upload.maximum_size=30720
pro.menu.cpu.16MHzatmega328.upload.maximum_data_size=2048
pro.menu.cpu.16MHzatmega328.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=0xFD
pro.menu.cpu.16MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
pro.menu.cpu.16MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328P
## ---------------------------------------------------
pro.menu.cpu.8MHzatmega328=ATmega328P (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.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xFF
pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA
pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0xFD
pro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
pro.menu.cpu.8MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L
## 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=0xF8
pro.menu.cpu.16MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
pro.menu.cpu.16MHzatmega168.build.mcu=atmega168
pro.menu.cpu.16MHzatmega168.build.f_cpu=16000000L
## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
## --------------------------------------------------
pro.menu.cpu.8MHzatmega168=ATmega168 (3.3V, 8 MHz)
pro.menu.cpu.8MHzatmega168.upload.maximum_size=14336
pro.menu.cpu.8MHzatmega168.upload.maximum_data_size=1024
pro.menu.cpu.8MHzatmega168.upload.speed=19200
pro.menu.cpu.8MHzatmega168.bootloader.low_fuses=0xc6
pro.menu.cpu.8MHzatmega168.bootloader.high_fuses=0xdd
pro.menu.cpu.8MHzatmega168.bootloader.extended_fuses=0xF8
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
##############################################################
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=0xF8
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
atmegang.menu.cpu.atmega8.upload.maximum_data_size=1024
atmegang.menu.cpu.atmega8.bootloader.low_fuses=0xdf
atmegang.menu.cpu.atmega8.bootloader.high_fuses=0xca
atmegang.menu.cpu.atmega8.bootloader.extended_fuses=
atmegang.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex
atmegang.menu.cpu.atmega8.build.mcu=atmega8
##############################################################
robotControl.name=Arduino Robot Control
robotControl.vid.0=0x2341
robotControl.pid.0=0x0038
robotControl.vid.1=0x2341
robotControl.pid.1=0x8038
robotControl.vid.2=0x2A03
robotControl.pid.2=0x0038
robotControl.vid.3=0x2A03
robotControl.pid.3=0x8038
robotControl.upload.tool=avrdude
robotControl.upload.protocol=avr109
robotControl.upload.maximum_size=28672
robotControl.upload.maximum_data_size=2560
robotControl.upload.speed=57600
robotControl.upload.disable_flushing=true
robotControl.upload.use_1200bps_touch=true
robotControl.upload.wait_for_upload_port=true
robotControl.bootloader.tool=avrdude
robotControl.bootloader.low_fuses=0xff
robotControl.bootloader.high_fuses=0xd8
robotControl.bootloader.extended_fuses=0xcb
robotControl.bootloader.file=caterina-Arduino_Robot/Caterina-Robot-Control.hex
robotControl.bootloader.unlock_bits=0x3F
robotControl.bootloader.lock_bits=0x2F
robotControl.build.mcu=atmega32u4
robotControl.build.f_cpu=16000000L
robotControl.build.vid=0x2341
robotControl.build.pid=0x8038
robotControl.build.usb_product="Robot Control"
robotControl.build.board=AVR_ROBOT_CONTROL
robotControl.build.core=arduino
robotControl.build.variant=robot_control
robotControl.build.extra_flags={build.usb_flags}
##############################################################
robotMotor.name=Arduino Robot Motor
robotMotor.vid.0=0x2341
robotMotor.pid.0=0x0039
robotMotor.vid.1=0x2341
robotMotor.pid.1=0x8039
robotMotor.vid.2=0x2A03
robotMotor.pid.2=0x0039
robotMotor.vid.3=0x2A03
robotMotor.pid.3=0x8039
robotMotor.upload.tool=avrdude
robotMotor.upload.protocol=avr109
robotMotor.upload.maximum_size=28672
robotMotor.upload.maximum_data_size=2560
robotMotor.upload.speed=57600
robotMotor.upload.disable_flushing=true
robotMotor.upload.use_1200bps_touch=true
robotMotor.upload.wait_for_upload_port=true
robotMotor.bootloader.tool=avrdude
robotMotor.bootloader.low_fuses=0xff
robotMotor.bootloader.high_fuses=0xd8
robotMotor.bootloader.extended_fuses=0xcb
robotMotor.bootloader.file=caterina-Arduino_Robot/Caterina-Robot-Motor.hex
robotMotor.bootloader.unlock_bits=0x3F
robotMotor.bootloader.lock_bits=0x2F
robotMotor.build.mcu=atmega32u4
robotMotor.build.f_cpu=16000000L
robotMotor.build.vid=0x2341
robotMotor.build.pid=0x8039
robotMotor.build.usb_product="Robot Motor"
robotMotor.build.board=AVR_ROBOT_MOTOR
robotMotor.build.core=arduino
robotMotor.build.variant=robot_motor
robotMotor.build.extra_flags={build.usb_flags}
##############################################################
gemma.vid.0=0x2341
gemma.pid.0=0x0c9f
gemma.name=Arduino Gemma
gemma.bootloader.low_fuses=0xF1
gemma.bootloader.high_fuses=0xD5
gemma.bootloader.extended_fuses=0xFE
gemma.bootloader.tool=avrdude
gemma.bootloader.lock_bits=
gemma.bootloader.unlock_bits=
gemma.bootloader.file=gemma/gemma_v1.hex
gemma.build.mcu=attiny85
gemma.build.f_cpu=8000000L
gemma.build.core=arduino
gemma.build.variant=gemma
gemma.build.board=AVR_GEMMA
gemma.upload.tool=avrdude
gemma.upload.maximum_size=5310
##############################################################
# Adafruit Circuit Playground 32u4 w/Caterina Configuration
circuitplay32u4cat.name=Adafruit Circuit Playground
circuitplay32u4cat.bootloader.low_fuses=0xff
circuitplay32u4cat.bootloader.high_fuses=0xd8
circuitplay32u4cat.bootloader.extended_fuses=0xcb
circuitplay32u4cat.bootloader.file=caterina/Caterina-Circuitplay32u4.hex
circuitplay32u4cat.bootloader.unlock_bits=0x3F
circuitplay32u4cat.bootloader.lock_bits=0x2F
circuitplay32u4cat.bootloader.tool=avrdude
circuitplay32u4cat.build.mcu=atmega32u4
circuitplay32u4cat.build.f_cpu=8000000L
circuitplay32u4cat.build.vid=0x239A
circuitplay32u4cat.build.pid=0x8011
circuitplay32u4cat.build.core=arduino
circuitplay32u4cat.build.variant=circuitplay32u4
circuitplay32u4cat.build.board=AVR_CIRCUITPLAY
circuitplay32u4cat.build.usb_product="Circuit Playground"
circuitplay32u4cat.build.usb_manufacturer="Adafruit"
circuitplay32u4cat.build.extra_flags={build.usb_flags}
circuitplay32u4cat.upload.protocol=avr109
circuitplay32u4cat.upload.maximum_size=28672
circuitplay32u4cat.upload.speed=57600
circuitplay32u4cat.upload.disable_flushing=true
circuitplay32u4cat.upload.use_1200bps_touch=true
circuitplay32u4cat.upload.wait_for_upload_port=true
circuitplay32u4cat.upload.tool=avrdude
circuitplay32u4cat.vid.0=0x239A
circuitplay32u4cat.pid.0=0x8011
##############################################################
yunmini.name=Arduino Yún Mini
yunmini.upload.via_ssh=true
yunmini.vid.0=0x2a03
yunmini.pid.0=0x0050
yunmini.vid.1=0x2a03
yunmini.pid.1=0x8050
yunmini.upload.tool=avrdude
yunmini.upload.protocol=avr109
yunmini.upload.maximum_size=28672
yunmini.upload.maximum_data_size=2560
yunmini.upload.speed=57600
yunmini.upload.disable_flushing=true
yunmini.upload.use_1200bps_touch=true
yunmini.upload.wait_for_upload_port=true
yunmini.bootloader.tool=avrdude
yunmini.bootloader.low_fuses=0xff
yunmini.bootloader.high_fuses=0xd8
yunmini.bootloader.extended_fuses=0xfb
yunmini.bootloader.file=caterina/Caterina-Yunmini.hex
yunmini.bootloader.unlock_bits=0x3F
yunmini.bootloader.lock_bits=0x2F
yunmini.build.mcu=atmega32u4
yunmini.build.f_cpu=16000000L
yunmini.build.vid=0x2a03
yunmini.build.pid=0x8050
yunmini.build.usb_product="Arduino Yún Mini"
yunmini.build.board=AVR_YUNMINI
yunmini.build.core=arduino
yunmini.build.variant=yun
yunmini.build.extra_flags={build.usb_flags}
##############################################################
chiwawa.name=Arduino Industrial 101
chiwawa.upload.via_ssh=true
chiwawa.vid.0=0x2a03
chiwawa.pid.0=0x0056
chiwawa.vid.1=0x2a03
chiwawa.pid.1=0x8056
chiwawa.upload.tool=avrdude
chiwawa.upload.protocol=avr109
chiwawa.upload.maximum_size=28672
chiwawa.upload.maximum_data_size=2560
chiwawa.upload.speed=57600
chiwawa.upload.disable_flushing=true
chiwawa.upload.use_1200bps_touch=true
chiwawa.upload.wait_for_upload_port=true
chiwawa.bootloader.tool=avrdude
chiwawa.bootloader.low_fuses=0xff
chiwawa.bootloader.high_fuses=0xd8
chiwawa.bootloader.extended_fuses=0xfb
chiwawa.bootloader.file=caterina/Caterina-Industrial101.hex
chiwawa.bootloader.unlock_bits=0x3F
chiwawa.bootloader.lock_bits=0x2F
chiwawa.build.mcu=atmega32u4
chiwawa.build.f_cpu=16000000L
chiwawa.build.vid=0x2a03
chiwawa.build.pid=0x8056
chiwawa.build.usb_product="Arduino Industrial 101"
chiwawa.build.board=AVR_INDUSTRIAL101
chiwawa.build.core=arduino
chiwawa.build.variant=yun
chiwawa.build.extra_flags={build.usb_flags}
##############################################################
one.name=Linino One
one.upload.via_ssh=true
one.vid.0=0x2a03
one.pid.0=0x0001
one.vid.1=0x2a03
one.pid.1=0x8001
one.upload.tool=avrdude
one.upload.protocol=avr109
one.upload.maximum_size=28672
one.upload.maximum_data_size=2560
one.upload.speed=57600
one.upload.disable_flushing=true
one.upload.use_1200bps_touch=true
one.upload.wait_for_upload_port=true
one.bootloader.tool=avrdude
one.bootloader.low_fuses=0xff
one.bootloader.high_fuses=0xd8
one.bootloader.extended_fuses=0xfb
one.bootloader.file=caterina/Caterina-LininoOne.hex
one.bootloader.unlock_bits=0x3F
one.bootloader.lock_bits=0x2F
one.build.mcu=atmega32u4
one.build.f_cpu=16000000L
one.build.vid=0x2a03
one.build.pid=0x8001
one.build.usb_product="Linino One"
one.build.board=AVR_LININO_ONE
one.build.core=arduino
one.build.variant=yun
one.build.extra_flags={build.usb_flags}
##############################################################
unowifi.name=Arduino Uno WiFi
unowifi.vid.0=0x2A03
unowifi.pid.0=0x0057
unowifi.upload.tool=avrdude
unowifi.upload.protocol=arduino
unowifi.upload.maximum_size=32256
unowifi.upload.maximum_data_size=2048
unowifi.upload.speed=115200
unowifi.upload.network.endpoint_upload=/pgm/upload
unowifi.upload.network.endpoint_sync=/pgm/sync
unowifi.upload.network.sync_return=204:SYNC
unowifi.upload.network.endpoint_reset=/log/reset
unowifi.upload.network.port=80
unowifi.bootloader.tool=avrdude
unowifi.bootloader.low_fuses=0xFF
unowifi.bootloader.high_fuses=0xDE
unowifi.bootloader.extended_fuses=0x05
unowifi.bootloader.unlock_bits=0x3F
unowifi.bootloader.lock_bits=0x0F
unowifi.bootloader.file=optiboot/optiboot_atmega328.hex
unowifi.build.mcu=atmega328p
unowifi.build.f_cpu=16000000L
unowifi.build.board=AVR_UNO_WIFI_DEV_ED
unowifi.build.core=arduino
unowifi.build.variant=standard
unowifi.build.esp_ch_uart_br=19200
unowifi.build.extra_flags=-DESP_CH_UART -DESP_CH_UART_BR={build.esp_ch_uart_br}
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment