# Copyright (c) 2014-2017 Arduino LLC.  All right reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

# Arduino/Genuino Zero (Prorgamming Port)
# ---------------------------------------
arduino_zero_edbg.name=Arduino/Genuino Zero (Programming Port)
arduino_zero_edbg.vid.0=0x03eb
arduino_zero_edbg.pid.0=0x2157

arduino_zero_edbg.upload.tool=openocd
arduino_zero_edbg.upload.protocol=sam-ba
arduino_zero_edbg.upload.maximum_size=262144
arduino_zero_edbg.upload.use_1200bps_touch=false
arduino_zero_edbg.upload.wait_for_upload_port=false
arduino_zero_edbg.upload.native_usb=false
arduino_zero_edbg.build.mcu=cortex-m0plus
arduino_zero_edbg.build.f_cpu=48000000L
arduino_zero_edbg.build.usb_product="Arduino Zero"
arduino_zero_edbg.build.usb_manufacturer="Arduino LLC"
arduino_zero_edbg.build.board=SAMD_ZERO
arduino_zero_edbg.build.core=arduino
arduino_zero_edbg.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
arduino_zero_edbg.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
arduino_zero_edbg.build.openocdscript=openocd_scripts/arduino_zero.cfg
arduino_zero_edbg.build.variant=arduino_zero
arduino_zero_edbg.build.variant_system_lib=
arduino_zero_edbg.build.vid=0x2341
arduino_zero_edbg.build.pid=0x804d
arduino_zero_edbg.bootloader.tool=openocd
arduino_zero_edbg.bootloader.file=zero/samd21_sam_ba.bin

# Arduino/Genuino Zero (Native USB Port)
# ---------------------------------------
arduino_zero_native.name=Arduino/Genuino Zero (Native USB Port)
arduino_zero_native.vid.0=0x2341
arduino_zero_native.pid.0=0x804d
arduino_zero_native.vid.1=0x2341
arduino_zero_native.pid.1=0x004d

arduino_zero_native.vid.2=0x2341
arduino_zero_native.pid.2=0x824d
# If the board is a 2341:824d use 2341:824d for build and set other parameters as well
arduino_zero_native.vid.2.build.vid=0x2341
arduino_zero_native.vid.2.build.pid=0x824d
arduino_zero_native.vid.2.build.usb_product="Genuino Zero"
arduino_zero_native.vid.2.bootloader.file=zero/samd21_sam_ba_genuino.bin

arduino_zero_native.vid.3=0x2341
arduino_zero_native.pid.3=0x024d
# If the board is a 2341:024d use 2341:824d for build and set other parameters as well
arduino_zero_native.vid.3.build.vid=0x2341
arduino_zero_native.vid.3.build.pid=0x824d
arduino_zero_native.vid.3.build.usb_product="Genuino Zero"
arduino_zero_native.vid.3.bootloader.file=zero/samd21_sam_ba_genuino.bin

arduino_zero_native.upload.tool=bossac
arduino_zero_native.upload.protocol=sam-ba
arduino_zero_native.upload.maximum_size=262144
arduino_zero_native.upload.use_1200bps_touch=true
arduino_zero_native.upload.wait_for_upload_port=true
arduino_zero_native.upload.native_usb=true
arduino_zero_native.build.mcu=cortex-m0plus
arduino_zero_native.build.f_cpu=48000000L
arduino_zero_native.build.usb_product="Arduino Zero"
arduino_zero_native.build.usb_manufacturer="Arduino LLC"
arduino_zero_native.build.board=SAMD_ZERO
arduino_zero_native.build.core=arduino
arduino_zero_native.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
arduino_zero_native.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
arduino_zero_native.build.openocdscript=openocd_scripts/arduino_zero.cfg
arduino_zero_native.build.variant=arduino_zero
arduino_zero_native.build.variant_system_lib=
arduino_zero_native.build.vid=0x2341
arduino_zero_native.build.pid=0x804d
arduino_zero_native.bootloader.tool=openocd
arduino_zero_native.bootloader.file=zero/samd21_sam_ba.bin

# Arduino/Genuino MKR1000
# ---------------------------------------
mkr1000.name=Arduino/Genuino MKR1000
mkr1000.vid.0=0x2341
mkr1000.pid.0=0x804e
mkr1000.vid.1=0x2341
mkr1000.pid.1=0x004e

mkr1000.vid.2=0x2341
mkr1000.pid.2=0x824e
# If the board is a 2341:824e use 2341:824e for build and set other parameters as well
mkr1000.vid.2.build.vid=0x2341
mkr1000.vid.2.build.pid=0x824e
mkr1000.vid.2.build.usb_product="Genuino MKR1000"
mkr1000.vid.2.bootloader.file=mkr1000/samd21_sam_ba_genuino_mkr1000.bin

mkr1000.vid.3=0x2341
mkr1000.pid.3=0x024e
# If the board is a 2341:024e use 2341:824e for build and set other parameters as well
mkr1000.vid.3.build.vid=0x2341
mkr1000.vid.3.build.pid=0x824e
mkr1000.vid.3.build.usb_product="Genuino MKR1000"
mkr1000.vid.3.bootloader.file=mkr1000/samd21_sam_ba_genuino_mkr1000.bin

mkr1000.upload.tool=bossac
mkr1000.upload.protocol=sam-ba
mkr1000.upload.maximum_size=262144
mkr1000.upload.use_1200bps_touch=true
mkr1000.upload.wait_for_upload_port=true
mkr1000.upload.native_usb=true
mkr1000.build.mcu=cortex-m0plus
mkr1000.build.f_cpu=48000000L
mkr1000.build.usb_product="Arduino MKR1000"
mkr1000.build.usb_manufacturer="Arduino LLC"
mkr1000.build.board=SAMD_MKR1000
mkr1000.build.core=arduino
mkr1000.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
mkr1000.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mkr1000.build.openocdscript=openocd_scripts/arduino_zero.cfg
mkr1000.build.variant=mkr1000
mkr1000.build.vid=0x2341
mkr1000.build.pid=0x804e
mkr1000.bootloader.tool=openocd
mkr1000.bootloader.file=mkr1000/samd21_sam_ba_arduino_mkr1000.bin

# Arduino MKRZero
# ---------------
mkrzero.name=Arduino MKRZERO
mkrzero.vid.0=0x2341
mkrzero.pid.0=0x804f
mkrzero.vid.1=0x2341
mkrzero.pid.1=0x004f

mkrzero.upload.tool=bossac
mkrzero.upload.protocol=sam-ba
mkrzero.upload.maximum_size=262144
mkrzero.upload.use_1200bps_touch=true
mkrzero.upload.wait_for_upload_port=true
mkrzero.upload.native_usb=true
mkrzero.build.mcu=cortex-m0plus
mkrzero.build.f_cpu=48000000L
mkrzero.build.usb_product="Arduino MKRZero"
mkrzero.build.usb_manufacturer="Arduino LLC"
mkrzero.build.board=SAMD_MKRZERO
mkrzero.build.core=arduino
mkrzero.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
mkrzero.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mkrzero.build.openocdscript=openocd_scripts/arduino_zero.cfg
mkrzero.build.variant=mkrzero
mkrzero.build.vid=0x2341
mkrzero.build.pid=0x804f
mkrzero.bootloader.tool=openocd
mkrzero.bootloader.file=mkrzero/samd21_sam_ba_arduino_mkrzero.bin

# Arduino MKR FOX 1200
# --------------------
mkrfox1200.name=Arduino MKR FOX 1200
mkrfox1200.vid.0=0x2341
mkrfox1200.pid.0=0x8050
mkrfox1200.vid.1=0x2341
mkrfox1200.pid.1=0x0050

mkrfox1200.upload.tool=bossac
mkrfox1200.upload.protocol=sam-ba
mkrfox1200.upload.maximum_size=262144
mkrfox1200.upload.use_1200bps_touch=true
mkrfox1200.upload.wait_for_upload_port=true
mkrfox1200.upload.native_usb=true
mkrfox1200.build.mcu=cortex-m0plus
mkrfox1200.build.f_cpu=48000000L
mkrfox1200.build.usb_product="Arduino MKR FOX 1200"
mkrfox1200.build.usb_manufacturer="Arduino LLC"
mkrfox1200.build.board=SAMD_MKRFox1200
mkrfox1200.build.core=arduino
mkrfox1200.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
mkrfox1200.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mkrfox1200.build.openocdscript=openocd_scripts/arduino_zero.cfg
mkrfox1200.build.variant=mkrfox1200
mkrfox1200.build.vid=0x2341
mkrfox1200.build.pid=0x8050
mkrfox1200.bootloader.tool=openocd
mkrfox1200.bootloader.file=mkrfox1200/samd21_sam_ba_arduino_mkrfox1200.bin

# Arduino MKR GSM 1400
# --------------------
mkrgsm1400.name=Arduino MKR GSM 1400
mkrgsm1400.vid.0=0x2341
mkrgsm1400.pid.0=0x8052
mkrgsm1400.vid.1=0x2341
mkrgsm1400.pid.1=0x0052

mkrgsm1400.upload.tool=bossac
mkrgsm1400.upload.protocol=sam-ba
mkrgsm1400.upload.maximum_size=262144
mkrgsm1400.upload.use_1200bps_touch=true
mkrgsm1400.upload.wait_for_upload_port=true
mkrgsm1400.upload.native_usb=true
mkrgsm1400.build.mcu=cortex-m0plus
mkrgsm1400.build.f_cpu=48000000L
mkrgsm1400.build.usb_product="Arduino MKR GSM 1400"
mkrgsm1400.build.usb_manufacturer="Arduino LLC"
mkrgsm1400.build.board=SAMD_MKRGSM1400
mkrgsm1400.build.core=arduino
mkrgsm1400.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags} -DUSE_BQ24195L_PMIC
mkrgsm1400.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mkrgsm1400.build.openocdscript=openocd_scripts/arduino_zero.cfg
mkrgsm1400.build.variant=mkrgsm1400
mkrgsm1400.build.vid=0x2341
mkrgsm1400.build.pid=0x8052
mkrgsm1400.bootloader.tool=openocd
mkrgsm1400.bootloader.file=mkrgsm1400/samd21_sam_ba_arduino_mkrgsm1400.bin

# Arduino MKR WAN 1300
# --------------------
mkrwan1300.name=Arduino MKR WAN 1300
mkrwan1300.vid.0=0x2341
mkrwan1300.pid.0=0x8053
mkrwan1300.vid.1=0x2341
mkrwan1300.pid.1=0x0053

mkrwan1300.upload.tool=bossac
mkrwan1300.upload.protocol=sam-ba
mkrwan1300.upload.maximum_size=262144
mkrwan1300.upload.use_1200bps_touch=true
mkrwan1300.upload.wait_for_upload_port=true
mkrwan1300.upload.native_usb=true
mkrwan1300.build.mcu=cortex-m0plus
mkrwan1300.build.f_cpu=48000000L
mkrwan1300.build.usb_product="Arduino MKR WAN 1300"
mkrwan1300.build.usb_manufacturer="Arduino LLC"
mkrwan1300.build.board=SAMD_MKRWAN1300
mkrwan1300.build.core=arduino
mkrwan1300.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
mkrwan1300.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mkrwan1300.build.openocdscript=openocd_scripts/arduino_zero.cfg
mkrwan1300.build.variant=mkrwan1300
mkrwan1300.build.vid=0x2341
mkrwan1300.build.pid=0x8053
mkrwan1300.bootloader.tool=openocd
mkrwan1300.bootloader.file=mkrwan1300/samd21_sam_ba_arduino_mkrwan1300.bin

# Arduino MKR WiFi 1010
# --------------------
mkrwifi1010.name=Arduino MKR WiFi 1010
mkrwifi1010.vid.0=0x2341
mkrwifi1010.pid.0=0x8054
mkrwifi1010.vid.1=0x2341
mkrwifi1010.pid.1=0x0054

mkrwifi1010.upload.tool=bossac
mkrwifi1010.upload.protocol=sam-ba
mkrwifi1010.upload.maximum_size=262144
mkrwifi1010.upload.use_1200bps_touch=true
mkrwifi1010.upload.wait_for_upload_port=true
mkrwifi1010.upload.native_usb=true
mkrwifi1010.build.mcu=cortex-m0plus
mkrwifi1010.build.f_cpu=48000000L
mkrwifi1010.build.usb_product="Arduino MKR WiFi 1010"
mkrwifi1010.build.usb_manufacturer="Arduino LLC"
mkrwifi1010.build.board=SAMD_MKRWIFI1010
mkrwifi1010.build.core=arduino
mkrwifi1010.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags} -DUSE_BQ24195L_PMIC
mkrwifi1010.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mkrwifi1010.build.openocdscript=openocd_scripts/arduino_zero.cfg
mkrwifi1010.build.variant=mkrwifi1010
mkrwifi1010.build.vid=0x2341
mkrwifi1010.build.pid=0x8054
mkrwifi1010.bootloader.tool=openocd
mkrwifi1010.bootloader.file=mkrwifi1010/samd21_sam_ba_arduino_mkrwifi1010.bin

# Adafruit Circuit Playground M0
# ------------------------------
adafruit_circuitplayground_m0.name=Adafruit Circuit Playground Express
adafruit_circuitplayground_m0.vid.0=0x239A
adafruit_circuitplayground_m0.pid.0=0x8018
adafruit_circuitplayground_m0.vid.1=0x239A
adafruit_circuitplayground_m0.pid.1=0x0018
adafruit_circuitplayground_m0.upload.tool=bossac
adafruit_circuitplayground_m0.upload.protocol=sam-ba
adafruit_circuitplayground_m0.upload.maximum_size=262144
adafruit_circuitplayground_m0.upload.use_1200bps_touch=true
adafruit_circuitplayground_m0.upload.wait_for_upload_port=true
adafruit_circuitplayground_m0.upload.native_usb=true
adafruit_circuitplayground_m0.build.mcu=cortex-m0plus
adafruit_circuitplayground_m0.build.f_cpu=48000000L
adafruit_circuitplayground_m0.build.usb_product="Circuit Playground Express"
adafruit_circuitplayground_m0.build.usb_manufacturer="Adafruit"
adafruit_circuitplayground_m0.build.board=SAMD_CIRCUITPLAYGROUND_EXPRESS
adafruit_circuitplayground_m0.build.core=arduino
adafruit_circuitplayground_m0.build.extra_flags=-DCRYSTALLESS -DARDUINO_SAMD_ZERO -D__SAMD21G18A__ {build.usb_flags}
adafruit_circuitplayground_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
adafruit_circuitplayground_m0.build.openocdscript=openocd_scripts/arduino_zero.cfg
adafruit_circuitplayground_m0.build.variant=circuitplay
adafruit_circuitplayground_m0.build.variant_system_lib=
adafruit_circuitplayground_m0.build.vid=0x239A
adafruit_circuitplayground_m0.build.pid=0x8018
adafruit_circuitplayground_m0.bootloader.tool=openocd
adafruit_circuitplayground_m0.bootloader.file=circuitplay/circuitplay_m0_samd21g18_sam_ba.bin

######################################################
#ARDUINO M0 PRO (WITH) BOOTLOADER - PROGRAMMING PORT
mzero_pro_bl_dbg.name=Arduino M0 Pro (Programming Port)
mzero_pro_bl_dbg.vid.0=0x03eb
mzero_pro_bl_dbg.pid.0=0x2111
mzero_pro_bl_dbg.upload.tool=openocd-withbootsize
mzero_pro_bl_dbg.upload.protocol=sam-ba
mzero_pro_bl_dbg.upload.maximum_size=262144
mzero_pro_bl_dbg.upload.use_1200bps_touch=false
mzero_pro_bl_dbg.upload.wait_for_upload_port=false
mzero_pro_bl_dbg.upload.native_usb=false
mzero_pro_bl_dbg.build.mcu=cortex-m0plus
mzero_pro_bl_dbg.build.f_cpu=48000000L
mzero_pro_bl_dbg.build.usb_product="Arduino M0 Pro"
mzero_pro_bl_dbg.build.board=SAM_ZERO
mzero_pro_bl_dbg.build.core=arduino
mzero_pro_bl_dbg.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
mzero_pro_bl_dbg.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mzero_pro_bl_dbg.build.openocdscript=openocd_scripts/arduino_zero.cfg
mzero_pro_bl_dbg.build.variant=arduino_mzero
mzero_pro_bl_dbg.build.variant_system_lib=
mzero_pro_bl_dbg.build.vid=0x2a03
mzero_pro_bl_dbg.build.pid=0x804f
mzero_pro_bl_dbg.build.preferred_out_format=hex
mzero_pro_bl_dbg.bootloader.size=0x4000

mzero_pro_bl_dbg.bootloader.tool=openocd-withbootsize
mzero_pro_bl_dbg.bootloader.cmd_unprotect=at91samd bootloader 0
mzero_pro_bl_dbg.bootloader.cmd_protect=at91samd bootloader 16384
mzero_pro_bl_dbg.bootloader.cmd_protect_verify=at91samd bootloader
mzero_pro_bl_dbg.bootloader.file=mzero/Bootloader_D21_M0_Pro_150427.hex

######################################################
#ARDUINO M0 PRO (WITH) BOOTLOADER - NATIVE PORT
mzero_pro_bl.name=Arduino M0 Pro (Native USB Port)
mzero_pro_bl.vid.0=0x2a03
mzero_pro_bl.pid.0=0x004d
mzero_pro_bl.vid.1=0x2a03
mzero_pro_bl.pid.1=0x804d
mzero_pro_bl.vid.2=0x2a03
mzero_pro_bl.pid.2=0x004f
mzero_pro_bl.vid.3=0x2a03
mzero_pro_bl.pid.3=0x804f
mzero_pro_bl.upload.tool=avrdude
mzero_pro_bl.upload.protocol=stk500v2
mzero_pro_bl.upload.maximum_size=262144
mzero_pro_bl.upload.use_1200bps_touch=true
mzero_pro_bl.upload.wait_for_upload_port=true
mzero_pro_bl.upload.native_usb=true
mzero_pro_bl.upload.speed=57600
mzero_pro_bl.build.mcu=cortex-m0plus
mzero_pro_bl.build.f_cpu=48000000L
mzero_pro_bl.build.usb_product="Arduino M0 Pro"
mzero_pro_bl.build.board=SAM_ZERO
mzero_pro_bl.build.core=arduino
mzero_pro_bl.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
mzero_pro_bl.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mzero_pro_bl.build.openocdscript=openocd_scripts/arduino_zero.cfg
mzero_pro_bl.build.variant=arduino_mzero
mzero_pro_bl.build.variant_system_lib=
mzero_pro_bl.build.vid=0x2a03
mzero_pro_bl.build.pid=0x804f
mzero_pro_bl.build.preferred_out_format=hex
mzero_pro_bl.bootloader.size=0x4000
mzero_pro_bl.build.emu.mcu=atmega2560
mzero_pro_bl.bootloader.tool=openocd-withbootsize
mzero_pro_bl.bootloader.file=mzero/Bootloader_D21_M0_Pro_150427.hex
mzero_pro_bl.bootloader.low_fuses=0xff

######################################################
#ARDUINO M0 (WITH) BOOTLOADER
mzero_bl.name=Arduino M0
mzero_bl.vid.0=0x2a03
mzero_bl.pid.0=0x004d
mzero_bl.vid.1=0x2a03
mzero_bl.pid.1=0x804d
mzero_bl.vid.2=0x2a03
mzero_bl.pid.2=0x004e
mzero_bl.vid.3=0x2a03
mzero_bl.pid.3=0x804e
mzero_bl.upload.tool=avrdude
mzero_bl.upload.protocol=stk500v2
mzero_bl.upload.maximum_size=262144
mzero_bl.upload.use_1200bps_touch=true
mzero_bl.upload.wait_for_upload_port=true
mzero_bl.upload.native_usb=true
mzero_bl.upload.speed=57600
mzero_bl.build.mcu=cortex-m0plus
mzero_bl.build.f_cpu=48000000L
mzero_bl.build.usb_product="Arduino M0"
mzero_bl.build.board=SAM_ZERO
mzero_bl.build.core=arduino
mzero_bl.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
mzero_bl.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
mzero_bl.build.openocdscript=openocd_scripts/arduino_zero.cfg
mzero_bl.build.variant=arduino_mzero
mzero_bl.build.variant_system_lib=
mzero_bl.build.vid=0x2a03
mzero_bl.build.pid=0x804e
mzero_bl.build.preferred_out_format=hex
mzero_bl.bootloader.size=0x4000
mzero_bl.build.emu.mcu=atmega2560
mzero_bl.bootloader.tool=openocd-withbootsize
mzero_bl.bootloader.low_fuses=0xff
mzero_bl.bootloader.file=mzero/Bootloader_D21_M0_150515.hex

######################################################
#ARDUINO TIAN (WITH) BOOTLOADER

tian.name=Arduino Tian
tian.upload.via_ssh=true
tian.vid.0=0x10C4
tian.pid.0=0xEA70
tian.descriptor.0=Enhanced Com Port

tian.upload.tool=avrdude
#tian.upload.protocol=stk500v2
tian.upload.protocol=wiring
tian.upload.maximum_size=262144
tian.upload.use_1200bps_touch=true
tian.upload.wait_for_upload_port=true
tian.upload.native_usb=true
tian.upload.speed=57600
tian.build.mcu=cortex-m0plus
tian.build.f_cpu=48000000L
tian.build.usb_product="Arduino Tian"
tian.build.board=SAMD_TIAN
tian.build.core=arduino
tian.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
tian.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
tian.build.openocdscript=openocd_scripts/arduino_zero.cfg
tian.build.variant=arduino_mzero
tian.build.variant_system_lib=
tian.build.vid=0x2a03
tian.build.pid=0x8052
tian.build.preferred_out_format=hex
tian.bootloader.size=0x4000
tian.build.emu.mcu=atmega2560
tian.bootloader.tool=openocd-withbootsize
tian.bootloader.low_fuses=0xff
tian.bootloader.file=sofia/Sofia_Tian_151118.hex
tian.drivers=SiliconLabs-CP2105/Silicon Labs VCP Driver.pkg

######################################################
#ARDUINO TIAN CONSOLE PORT (NOT FOR UPLOAD)

tian_cons.name=Arduino Tian (MIPS Console port)
tian_cons.vid.0=0x10C4
tian_cons.pid.0=0xEA70
tian_cons.descriptor.0=Standard Com Port
tian_cons.hide=true
tian_cons.build.board=SAMD_TIAN
