menu.clock=Clock
menu.BOD=BOD
menu.eeprom=EEPROM
menu.pinout=Pinout
menu.resetpin=Reset pin
menu.bootloader=Bootloader


####################
#### ATmega4809 ####
####################

# General
4809.name=ATmega4809
4809.upload.tool=avrdude
4809.upload.maximum_data_size=6144
4809.upload.speed=115200
4809.bootloader.tool=avrdude
4809.build.core=coreX-corefiles
4809.build.board=AVR_ATmega4809
4809.build.mcu=atmega4809
4809.build.extra_flags={build.oscillator} {build.compat}

# Fuses we don't need to modify in the tools menu
4809.bootloader.WDTCFG=0x00
4809.bootloader.TCD0CFG=0x00
4809.bootloader.SYSCFG1=0x06
4809.bootloader.APPEND=0x00
4809.bootloader.LOCKBIT=0xC5

# Pinouts
4809.menu.pinout.48pin_standard=48 pin standard
4809.menu.pinout.48pin_standard.build.variant=48pin-standard
4809.menu.pinout.48pin_standard.build.compat=

4809.menu.pinout.40pin_standard=40 pin standard
4809.menu.pinout.40pin_standard.build.variant=40pin-standard
4809.menu.pinout.40pin_standard.build.compat=

4809.menu.pinout.uno_wifi=Uno WiFi
4809.menu.pinout.uno_wifi.build.variant=uno-wifi
4809.menu.pinout.uno_wifi.build.compat=

4809.menu.pinout.nano_every=Nano Every
4809.menu.pinout.nano_every.build.variant=nano-every
4809.menu.pinout.nano_every.upload.tool=avrdude_nanoevery
4809.menu.pinout.nano_every.upload.use_1200bps_touch=true
4809.menu.pinout.nano_every.upload.protocol=jtag2updi
4809.menu.pinout.nano_every.program.extra_params=-P{serial.port} -e
4809.menu.pinout.nano_every.build.compat=

# EEPROM
4809.menu.eeprom.keep=EEPROM retained
4809.menu.eeprom.keep.bootloader.eesave_bit=1
4809.menu.eeprom.erase=EEPROM not retained
4809.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
4809.menu.resetpin.reset=Reset
4809.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
4809.menu.resetpin.gpio=GPIO
4809.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
4809.menu.BOD.2v6=BOD 2.6V
4809.menu.BOD.2v6.bootloader.BODCFG=0x54
4809.menu.BOD.4v3=BOD 4.3V
4809.menu.BOD.4v3.bootloader.BODCFG=0xF4
4809.menu.BOD.4v0=BOD 4.0V
4809.menu.BOD.4v0.bootloader.BODCFG=0xD4
4809.menu.BOD.3v7=BOD 3.7V
4809.menu.BOD.3v7.bootloader.BODCFG=0xB4
4809.menu.BOD.3v3=BOD 3.3V
4809.menu.BOD.3v3.bootloader.BODCFG=0x94
4809.menu.BOD.2v9=BOD 2.9V
4809.menu.BOD.2v9.bootloader.BODCFG=0x74
4809.menu.BOD.2v1=BOD 2.1V
4809.menu.BOD.2v1.bootloader.BODCFG=0x34
4809.menu.BOD.1v8=BOD 1.8V
4809.menu.BOD.1v8.bootloader.BODCFG=0x14
4809.menu.BOD.disabled=BOD disabled
4809.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
4809.menu.clock.internal_16MHz=Internal 16 MHz
4809.menu.clock.internal_16MHz.upload.speed=115200
4809.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
4809.menu.clock.internal_16MHz.build.oscillator=
4809.menu.clock.internal_16MHz.build.f_cpu=16000000L

4809.menu.clock.internal_20MHz=Internal 20 MHz
4809.menu.clock.internal_20MHz.upload.speed=115200
4809.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
4809.menu.clock.internal_20MHz.build.oscillator=
4809.menu.clock.internal_20MHz.build.f_cpu=20000000L

4809.menu.clock.internal_10MHz=Internal 10 MHz
4809.menu.clock.internal_10MHz.upload.speed=115200
4809.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
4809.menu.clock.internal_10MHz.build.oscillator=
4809.menu.clock.internal_10MHz.build.f_cpu=10000000L

4809.menu.clock.internal_8MHz=Internal 8 MHz
4809.menu.clock.internal_8MHz.upload.speed=115200
4809.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
4809.menu.clock.internal_8MHz.build.oscillator=
4809.menu.clock.internal_8MHz.build.f_cpu=8000000L

4809.menu.clock.internal_5MHz=Internal 5 MHz
4809.menu.clock.internal_5MHz.upload.speed=115200
4809.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
4809.menu.clock.internal_5MHz.build.oscillator=
4809.menu.clock.internal_5MHz.build.f_cpu=5000000L

4809.menu.clock.internal_4MHz=Internal 4 MHz
4809.menu.clock.internal_4MHz.upload.speed=115200
4809.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
4809.menu.clock.internal_4MHz.build.oscillator=
4809.menu.clock.internal_4MHz.build.f_cpu=4000000L

4809.menu.clock.internal_2MHz=Internal 2 MHz
4809.menu.clock.internal_2MHz.upload.speed=115200
4809.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
4809.menu.clock.internal_2MHz.build.oscillator=
4809.menu.clock.internal_2MHz.build.f_cpu=2000000L

4809.menu.clock.internal_1MHz=Internal 1 MHz
4809.menu.clock.internal_1MHz.upload.speed=115200
4809.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
4809.menu.clock.internal_1MHz.build.oscillator=
4809.menu.clock.internal_1MHz.build.f_cpu=1000000L

4809.menu.clock.external_20MHz=External 20 MHz
4809.menu.clock.external_20MHz.upload.speed=115200
4809.menu.clock.external_20MHz.bootloader.OSCCFG=0x01
4809.menu.clock.external_20MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4809.menu.clock.external_20MHz.build.f_cpu=20000000L

4809.menu.clock.external_16MHz=External 16 MHz
4809.menu.clock.external_16MHz.upload.speed=115200
4809.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
4809.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4809.menu.clock.external_16MHz.build.f_cpu=16000000L

4809.menu.clock.external_12MHz=External 12 MHz
4809.menu.clock.external_12MHz.upload.speed=115200
4809.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
4809.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4809.menu.clock.external_12MHz.build.f_cpu=12000000L

4809.menu.clock.external_8MHz=External 8 MHz
4809.menu.clock.external_8MHz.upload.speed=115200
4809.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
4809.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4809.menu.clock.external_8MHz.build.f_cpu=8000000L

4809.menu.clock.external_4MHz=External 4 MHz
4809.menu.clock.external_4MHz.upload.speed=115200
4809.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
4809.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4809.menu.clock.external_4MHz.build.f_cpu=4000000L

4809.menu.clock.external_1MHz=External 1 MHz
4809.menu.clock.external_1MHz.upload.speed=115200
4809.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
4809.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4809.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
4809.menu.bootloader.no_bootloader=No bootloader
4809.menu.bootloader.no_bootloader.upload.maximum_size=49152
4809.menu.bootloader.no_bootloader.upload.extra_params=
4809.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
4809.menu.bootloader.no_bootloader.build.export_merged_output=false
4809.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
4809.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

4809.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
4809.menu.bootloader.uart0_default.upload.maximum_size=48640
4809.menu.bootloader.uart0_default.upload.protocol=arduino
4809.menu.bootloader.uart0_default.upload.port=UART0_DEF
4809.menu.bootloader.uart0_default.upload.extra_params=
4809.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
4809.menu.bootloader.uart0_default.build.export_merged_output=true
4809.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4809.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
4809.menu.bootloader.uart0_alternative.upload.maximum_size=48640
4809.menu.bootloader.uart0_alternative.upload.protocol=arduino
4809.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
4809.menu.bootloader.uart0_alternative.upload.extra_params=
4809.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
4809.menu.bootloader.uart0_alternative.build.export_merged_output=true
4809.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4809.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
4809.menu.bootloader.uart1_default.upload.maximum_size=48640
4809.menu.bootloader.uart1_default.upload.protocol=arduino
4809.menu.bootloader.uart1_default.upload.port=UART1_DEF
4809.menu.bootloader.uart1_default.upload.extra_params=
4809.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
4809.menu.bootloader.uart1_default.build.export_merged_output=true
4809.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4809.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
4809.menu.bootloader.uart1_alternative.upload.maximum_size=48640
4809.menu.bootloader.uart1_alternative.upload.protocol=arduino
4809.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
4809.menu.bootloader.uart1_alternative.upload.extra_params=
4809.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
4809.menu.bootloader.uart1_alternative.build.export_merged_output=true
4809.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4809.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
4809.menu.bootloader.uart2_default.upload.maximum_size=48640
4809.menu.bootloader.uart2_default.upload.protocol=arduino
4809.menu.bootloader.uart2_default.upload.port=UART2_DEF
4809.menu.bootloader.uart2_default.upload.extra_params=
4809.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
4809.menu.bootloader.uart2_default.build.export_merged_output=true
4809.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4809.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
4809.menu.bootloader.uart2_alternative.upload.maximum_size=48640
4809.menu.bootloader.uart2_alternative.upload.protocol=arduino
4809.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
4809.menu.bootloader.uart2_alternative.upload.extra_params=
4809.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
4809.menu.bootloader.uart2_alternative.build.export_merged_output=true
4809.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4809.menu.bootloader.uart3_default=Optiboot (UART3 default pins)
4809.menu.bootloader.uart3_default.upload.maximum_size=48640
4809.menu.bootloader.uart3_default.upload.protocol=arduino
4809.menu.bootloader.uart3_default.upload.port=UART3_DEF
4809.menu.bootloader.uart3_default.upload.extra_params=
4809.menu.bootloader.uart3_default.build.text_section_start=.text=0x200
4809.menu.bootloader.uart3_default.build.export_merged_output=true
4809.menu.bootloader.uart3_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart3_default.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart3_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4809.menu.bootloader.uart3_alternative=Optiboot (UART3 alternative pins)
4809.menu.bootloader.uart3_alternative.upload.maximum_size=48640
4809.menu.bootloader.uart3_alternative.upload.protocol=arduino
4809.menu.bootloader.uart3_alternative.upload.port=UART3_ALT
4809.menu.bootloader.uart3_alternative.upload.extra_params=
4809.menu.bootloader.uart3_alternative.build.text_section_start=.text=0x200
4809.menu.bootloader.uart3_alternative.build.export_merged_output=true
4809.menu.bootloader.uart3_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4809.menu.bootloader.uart3_alternative.bootloader.BOOTEND=0x02
4809.menu.bootloader.uart3_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}


####################
#### ATmega4808 ####
####################

# General
4808.name=ATmega4808
4808.upload.tool=avrdude
4808.upload.maximum_data_size=6144
4808.upload.speed=115200
4808.bootloader.tool=avrdude
4808.build.core=coreX-corefiles
4808.build.board=AVR_ATmega4808
4808.build.mcu=atmega4808
4808.build.extra_flags={build.oscillator}

# Fuses we don't need to modify in the tools menu
4808.bootloader.WDTCFG=0x00
4808.bootloader.TCD0CFG=0x00
4808.bootloader.SYSCFG1=0x06
4808.bootloader.APPEND=0x00
4808.bootloader.LOCKBIT=0xC5

# Pinouts
4808.menu.pinout.32pin_standard=32 pin standard
4808.menu.pinout.32pin_standard.build.variant=32pin-standard

4808.menu.pinout.28pin_standard=28 pin standard
4808.menu.pinout.28pin_standard.build.variant=28pin-standard

4808.menu.pinout.nano_4808=Nano 4808
4808.menu.pinout.nano_4808.build.variant=nano-4808
4808.menu.pinout.nano_4808.upload.tool=avrdude_nanoevery
4808.menu.pinout.nano_4808.upload.use_1200bps_touch=true
4808.menu.pinout.nano_4808.upload.protocol=jtag2updi
4808.menu.pinout.nano_4808.program.extra_params=-P{serial.port} -e

# EEPROM
4808.menu.eeprom.keep=EEPROM retained
4808.menu.eeprom.keep.bootloader.eesave_bit=1
4808.menu.eeprom.erase=EEPROM not retained
4808.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
4808.menu.resetpin.reset=Reset
4808.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
4808.menu.resetpin.gpio=GPIO
4808.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
4808.menu.BOD.2v6=BOD 2.6V
4808.menu.BOD.2v6.bootloader.BODCFG=0x54
4808.menu.BOD.4v3=BOD 4.3V
4808.menu.BOD.4v3.bootloader.BODCFG=0xF4
4808.menu.BOD.4v0=BOD 4.0V
4808.menu.BOD.4v0.bootloader.BODCFG=0xD4
4808.menu.BOD.3v7=BOD 3.7V
4808.menu.BOD.3v7.bootloader.BODCFG=0xB4
4808.menu.BOD.3v3=BOD 3.3V
4808.menu.BOD.3v3.bootloader.BODCFG=0x94
4808.menu.BOD.2v9=BOD 2.9V
4808.menu.BOD.2v9.bootloader.BODCFG=0x74
4808.menu.BOD.2v1=BOD 2.1V
4808.menu.BOD.2v1.bootloader.BODCFG=0x34
4808.menu.BOD.1v8=BOD 1.8V
4808.menu.BOD.1v8.bootloader.BODCFG=0x14
4808.menu.BOD.disabled=BOD disabled
4808.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
4808.menu.clock.internal_16MHz=Internal 16 MHz
4808.menu.clock.internal_16MHz.upload.speed=115200
4808.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
4808.menu.clock.internal_16MHz.build.oscillator=
4808.menu.clock.internal_16MHz.build.f_cpu=16000000L

4808.menu.clock.internal_20MHz=Internal 20 MHz
4808.menu.clock.internal_20MHz.upload.speed=115200
4808.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
4808.menu.clock.internal_20MHz.build.oscillator=
4808.menu.clock.internal_20MHz.build.f_cpu=20000000L

4808.menu.clock.internal_10MHz=Internal 10 MHz
4808.menu.clock.internal_10MHz.upload.speed=115200
4808.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
4808.menu.clock.internal_10MHz.build.oscillator=
4808.menu.clock.internal_10MHz.build.f_cpu=10000000L

4808.menu.clock.internal_8MHz=Internal 8 MHz
4808.menu.clock.internal_8MHz.upload.speed=115200
4808.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
4808.menu.clock.internal_8MHz.build.oscillator=
4808.menu.clock.internal_8MHz.build.f_cpu=8000000L

4808.menu.clock.internal_5MHz=Internal 5 MHz
4808.menu.clock.internal_5MHz.upload.speed=115200
4808.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
4808.menu.clock.internal_5MHz.build.oscillator=
4808.menu.clock.internal_5MHz.build.f_cpu=5000000L

4808.menu.clock.internal_4MHz=Internal 4 MHz
4808.menu.clock.internal_4MHz.upload.speed=115200
4808.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
4808.menu.clock.internal_4MHz.build.oscillator=
4808.menu.clock.internal_4MHz.build.f_cpu=4000000L

4808.menu.clock.internal_2MHz=Internal 2 MHz
4808.menu.clock.internal_2MHz.upload.speed=115200
4808.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
4808.menu.clock.internal_2MHz.build.oscillator=
4808.menu.clock.internal_2MHz.build.f_cpu=2000000L

4808.menu.clock.internal_1MHz=Internal 1 MHz
4808.menu.clock.internal_1MHz.upload.speed=115200
4808.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
4808.menu.clock.internal_1MHz.build.oscillator=
4808.menu.clock.internal_1MHz.build.f_cpu=1000000L

4808.menu.clock.external_16MHz=External 16 MHz
4808.menu.clock.external_16MHz.upload.speed=115200
4808.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
4808.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4808.menu.clock.external_16MHz.build.f_cpu=16000000L

4808.menu.clock.external_12MHz=External 12 MHz
4808.menu.clock.external_12MHz.upload.speed=115200
4808.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
4808.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4808.menu.clock.external_12MHz.build.f_cpu=12000000L

4808.menu.clock.external_8MHz=External 8 MHz
4808.menu.clock.external_8MHz.upload.speed=115200
4808.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
4808.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4808.menu.clock.external_8MHz.build.f_cpu=8000000L

4808.menu.clock.external_4MHz=External 4 MHz
4808.menu.clock.external_4MHz.upload.speed=115200
4808.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
4808.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4808.menu.clock.external_4MHz.build.f_cpu=4000000L

4808.menu.clock.external_1MHz=External 1 MHz
4808.menu.clock.external_1MHz.upload.speed=115200
4808.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
4808.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
4808.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
4808.menu.bootloader.no_bootloader=No bootloader
4808.menu.bootloader.no_bootloader.upload.maximum_size=49152
4808.menu.bootloader.no_bootloader.upload.extra_params=
4808.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
4808.menu.bootloader.no_bootloader.build.export_merged_output=false
4808.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
4808.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

4808.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
4808.menu.bootloader.uart0_default.upload.maximum_size=48640
4808.menu.bootloader.uart0_default.upload.protocol=arduino
4808.menu.bootloader.uart0_default.upload.port=UART0_DEF
4808.menu.bootloader.uart0_default.upload.extra_params=
4808.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
4808.menu.bootloader.uart0_default.build.export_merged_output=true
4808.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4808.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
4808.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4808.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
4808.menu.bootloader.uart0_alternative.upload.maximum_size=48640
4808.menu.bootloader.uart0_alternative.upload.protocol=arduino
4808.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
4808.menu.bootloader.uart0_alternative.upload.extra_params=
4808.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
4808.menu.bootloader.uart0_alternative.build.export_merged_output=true
4808.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4808.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
4808.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4808.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
4808.menu.bootloader.uart1_default.upload.maximum_size=48640
4808.menu.bootloader.uart1_default.upload.protocol=arduino
4808.menu.bootloader.uart1_default.upload.port=UART1_DEF
4808.menu.bootloader.uart1_default.upload.extra_params=
4808.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
4808.menu.bootloader.uart1_default.build.export_merged_output=true
4808.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4808.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
4808.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4808.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
4808.menu.bootloader.uart1_alternative.upload.maximum_size=48640
4808.menu.bootloader.uart1_alternative.upload.protocol=arduino
4808.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
4808.menu.bootloader.uart1_alternative.upload.extra_params=
4808.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
4808.menu.bootloader.uart1_alternative.build.export_merged_output=true
4808.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4808.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
4808.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4808.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
4808.menu.bootloader.uart2_default.upload.maximum_size=48640
4808.menu.bootloader.uart2_default.upload.protocol=arduino
4808.menu.bootloader.uart2_default.upload.port=UART2_DEF
4808.menu.bootloader.uart2_default.upload.extra_params=
4808.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
4808.menu.bootloader.uart2_default.build.export_merged_output=true
4808.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4808.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
4808.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

4808.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
4808.menu.bootloader.uart2_alternative.upload.maximum_size=48640
4808.menu.bootloader.uart2_alternative.upload.protocol=arduino
4808.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
4808.menu.bootloader.uart2_alternative.upload.extra_params=
4808.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
4808.menu.bootloader.uart2_alternative.build.export_merged_output=true
4808.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
4808.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
4808.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}



#####################
#### ATmega3209 ####
#####################

# General
3209.name=ATmega3209
3209.upload.tool=avrdude
3209.upload.maximum_data_size=4096
3209.upload.speed=115200
3209.bootloader.tool=avrdude
3209.build.core=coreX-corefiles
3209.build.board=AVR_ATmega3209
3209.build.mcu=atmega3209
3209.build.extra_flags={build.oscillator} {build.compat}

# Fuses we don't need to modify in the tools menu
3209.bootloader.WDTCFG=0x00
3209.bootloader.TCD0CFG=0x00
3209.bootloader.SYSCFG1=0x06
3209.bootloader.APPEND=0x00
3209.bootloader.LOCKBIT=0xC5

# Pinouts
3209.menu.pinout.48pin_standard=48 pin standard
3209.menu.pinout.48pin_standard.build.variant=48pin-standard
3209.menu.pinout.48pin_standard.build.compat=
3209.menu.pinout.uno_wifi=Uno WiFi
3209.menu.pinout.uno_wifi.build.variant=uno-wifi
3209.menu.pinout.uno_wifi.build.compat=

# EEPROM
3209.menu.eeprom.keep=EEPROM retained
3209.menu.eeprom.keep.bootloader.eesave_bit=1
3209.menu.eeprom.erase=EEPROM not retained
3209.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
3209.menu.resetpin.reset=Reset
3209.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
3209.menu.resetpin.gpio=GPIO
3209.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
3209.menu.BOD.2v6=BOD 2.6V
3209.menu.BOD.2v6.bootloader.BODCFG=0x54
3209.menu.BOD.4v3=BOD 4.3V
3209.menu.BOD.4v3.bootloader.BODCFG=0xF4
3209.menu.BOD.4v0=BOD 4.0V
3209.menu.BOD.4v0.bootloader.BODCFG=0xD4
3209.menu.BOD.3v7=BOD 3.7V
3209.menu.BOD.3v7.bootloader.BODCFG=0xB4
3209.menu.BOD.3v3=BOD 3.3V
3209.menu.BOD.3v3.bootloader.BODCFG=0x94
3209.menu.BOD.2v9=BOD 2.9V
3209.menu.BOD.2v9.bootloader.BODCFG=0x74
3209.menu.BOD.2v1=BOD 2.1V
3209.menu.BOD.2v1.bootloader.BODCFG=0x34
3209.menu.BOD.1v8=BOD 1.8V
3209.menu.BOD.1v8.bootloader.BODCFG=0x14
3209.menu.BOD.disabled=BOD disabled
3209.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
3209.menu.clock.internal_16MHz=Internal 16 MHz
3209.menu.clock.internal_16MHz.upload.speed=115200
3209.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
3209.menu.clock.internal_16MHz.build.oscillator=
3209.menu.clock.internal_16MHz.build.f_cpu=16000000L

3209.menu.clock.internal_20MHz=Internal 20 MHz
3209.menu.clock.internal_20MHz.upload.speed=115200
3209.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
3209.menu.clock.internal_20MHz.build.oscillator=
3209.menu.clock.internal_20MHz.build.f_cpu=20000000L

3209.menu.clock.internal_10MHz=Internal 10 MHz
3209.menu.clock.internal_10MHz.upload.speed=115200
3209.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
3209.menu.clock.internal_10MHz.build.oscillator=
3209.menu.clock.internal_10MHz.build.f_cpu=10000000L

3209.menu.clock.internal_8MHz=Internal 8 MHz
3209.menu.clock.internal_8MHz.upload.speed=115200
3209.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
3209.menu.clock.internal_8MHz.build.oscillator=
3209.menu.clock.internal_8MHz.build.f_cpu=8000000L

3209.menu.clock.internal_5MHz=Internal 5 MHz
3209.menu.clock.internal_5MHz.upload.speed=115200
3209.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
3209.menu.clock.internal_5MHz.build.oscillator=
3209.menu.clock.internal_5MHz.build.f_cpu=5000000L

3209.menu.clock.internal_4MHz=Internal 4 MHz
3209.menu.clock.internal_4MHz.upload.speed=115200
3209.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
3209.menu.clock.internal_4MHz.build.oscillator=
3209.menu.clock.internal_4MHz.build.f_cpu=4000000L

3209.menu.clock.internal_2MHz=Internal 2 MHz
3209.menu.clock.internal_2MHz.upload.speed=115200
3209.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
3209.menu.clock.internal_2MHz.build.oscillator=
3209.menu.clock.internal_2MHz.build.f_cpu=2000000L

3209.menu.clock.internal_1MHz=Internal 1 MHz
3209.menu.clock.internal_1MHz.upload.speed=115200
3209.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
3209.menu.clock.internal_1MHz.build.oscillator=
3209.menu.clock.internal_1MHz.build.f_cpu=1000000L

3209.menu.clock.external_16MHz=External 16 MHz
3209.menu.clock.external_16MHz.upload.speed=115200
3209.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
3209.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3209.menu.clock.external_16MHz.build.f_cpu=16000000L

3209.menu.clock.external_12MHz=External 12 MHz
3209.menu.clock.external_12MHz.upload.speed=115200
3209.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
3209.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3209.menu.clock.external_12MHz.build.f_cpu=12000000L

3209.menu.clock.external_8MHz=External 8 MHz
3209.menu.clock.external_8MHz.upload.speed=115200
3209.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
3209.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3209.menu.clock.external_8MHz.build.f_cpu=8000000L

3209.menu.clock.external_4MHz=External 4 MHz
3209.menu.clock.external_4MHz.upload.speed=115200
3209.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
3209.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3209.menu.clock.external_4MHz.build.f_cpu=4000000L

3209.menu.clock.external_1MHz=External 1 MHz
3209.menu.clock.external_1MHz.upload.speed=115200
3209.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
3209.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3209.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
3209.menu.bootloader.no_bootloader=No bootloader
3209.menu.bootloader.no_bootloader.upload.maximum_size=32768
3209.menu.bootloader.no_bootloader.upload.extra_params=
3209.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
3209.menu.bootloader.no_bootloader.build.export_merged_output=false
3209.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
3209.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

3209.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
3209.menu.bootloader.uart0_default.upload.maximum_size=32256
3209.menu.bootloader.uart0_default.upload.protocol=arduino
3209.menu.bootloader.uart0_default.upload.port=UART0_DEF
3209.menu.bootloader.uart0_default.upload.extra_params=
3209.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
3209.menu.bootloader.uart0_default.build.export_merged_output=true
3209.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3209.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
3209.menu.bootloader.uart0_alternative.upload.maximum_size=32256
3209.menu.bootloader.uart0_alternative.upload.protocol=arduino
3209.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
3209.menu.bootloader.uart0_alternative.upload.extra_params=
3209.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
3209.menu.bootloader.uart0_alternative.build.export_merged_output=true
3209.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3209.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
3209.menu.bootloader.uart1_default.upload.maximum_size=32256
3209.menu.bootloader.uart1_default.upload.protocol=arduino
3209.menu.bootloader.uart1_default.upload.port=UART1_DEF
3209.menu.bootloader.uart1_default.upload.extra_params=
3209.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
3209.menu.bootloader.uart1_default.build.export_merged_output=true
3209.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3209.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
3209.menu.bootloader.uart1_alternative.upload.maximum_size=32256
3209.menu.bootloader.uart1_alternative.upload.protocol=arduino
3209.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
3209.menu.bootloader.uart1_alternative.upload.extra_params=
3209.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
3209.menu.bootloader.uart1_alternative.build.export_merged_output=true
3209.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3209.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
3209.menu.bootloader.uart2_default.upload.maximum_size=32256
3209.menu.bootloader.uart2_default.upload.protocol=arduino
3209.menu.bootloader.uart2_default.upload.port=UART2_DEF
3209.menu.bootloader.uart2_default.upload.extra_params=
3209.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
3209.menu.bootloader.uart2_default.build.export_merged_output=true
3209.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3209.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
3209.menu.bootloader.uart2_alternative.upload.maximum_size=32256
3209.menu.bootloader.uart2_alternative.upload.protocol=arduino
3209.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
3209.menu.bootloader.uart2_alternative.upload.extra_params=
3209.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
3209.menu.bootloader.uart2_alternative.build.export_merged_output=true
3209.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3209.menu.bootloader.uart3_default=Optiboot (UART3 default pins)
3209.menu.bootloader.uart3_default.upload.maximum_size=32256
3209.menu.bootloader.uart3_default.upload.protocol=arduino
3209.menu.bootloader.uart3_default.upload.port=UART3_DEF
3209.menu.bootloader.uart3_default.upload.extra_params=
3209.menu.bootloader.uart3_default.build.text_section_start=.text=0x200
3209.menu.bootloader.uart3_default.build.export_merged_output=true
3209.menu.bootloader.uart3_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart3_default.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart3_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3209.menu.bootloader.uart3_alternative=Optiboot (UART3 alternative pins)
3209.menu.bootloader.uart3_alternative.upload.maximum_size=32256
3209.menu.bootloader.uart3_alternative.upload.protocol=arduino
3209.menu.bootloader.uart3_alternative.upload.port=UART3_ALT
3209.menu.bootloader.uart3_alternative.upload.extra_params=
3209.menu.bootloader.uart3_alternative.build.text_section_start=.text=0x200
3209.menu.bootloader.uart3_alternative.build.export_merged_output=true
3209.menu.bootloader.uart3_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3209.menu.bootloader.uart3_alternative.bootloader.BOOTEND=0x02
3209.menu.bootloader.uart3_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}


####################
#### ATmega3208 ####
####################

# General
3208.name=ATmega3208
3208.upload.tool=avrdude
3208.upload.maximum_data_size=4096
3208.upload.speed=115200
3208.bootloader.tool=avrdude
3208.build.core=coreX-corefiles
3208.build.board=AVR_ATmega3208
3208.build.mcu=atmega3208
3208.build.extra_flags={build.oscillator}

# Fuses we don't need to modify in the tools menu
3208.bootloader.WDTCFG=0x00
3208.bootloader.TCD0CFG=0x00
3208.bootloader.SYSCFG1=0x06
3208.bootloader.APPEND=0x00
3208.bootloader.LOCKBIT=0xC5

# Pinouts
3208.menu.pinout.32pin_standard=32 pin standard
3208.menu.pinout.32pin_standard.build.variant=32pin-standard
3208.menu.pinout.28pin_standard=28 pin standard
3208.menu.pinout.28pin_standard.build.variant=28pin-standard

# EEPROM
3208.menu.eeprom.keep=EEPROM retained
3208.menu.eeprom.keep.bootloader.eesave_bit=1
3208.menu.eeprom.erase=EEPROM not retained
3208.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
3208.menu.resetpin.reset=Reset
3208.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
3208.menu.resetpin.gpio=GPIO
3208.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
3208.menu.BOD.2v6=BOD 2.6V
3208.menu.BOD.2v6.bootloader.BODCFG=0x54
3208.menu.BOD.4v3=BOD 4.3V
3208.menu.BOD.4v3.bootloader.BODCFG=0xF4
3208.menu.BOD.4v0=BOD 4.0V
3208.menu.BOD.4v0.bootloader.BODCFG=0xD4
3208.menu.BOD.3v7=BOD 3.7V
3208.menu.BOD.3v7.bootloader.BODCFG=0xB4
3208.menu.BOD.3v3=BOD 3.3V
3208.menu.BOD.3v3.bootloader.BODCFG=0x94
3208.menu.BOD.2v9=BOD 2.9V
3208.menu.BOD.2v9.bootloader.BODCFG=0x74
3208.menu.BOD.2v1=BOD 2.1V
3208.menu.BOD.2v1.bootloader.BODCFG=0x34
3208.menu.BOD.1v8=BOD 1.8V
3208.menu.BOD.1v8.bootloader.BODCFG=0x14
3208.menu.BOD.disabled=BOD disabled
3208.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
3208.menu.clock.internal_16MHz=Internal 16 MHz
3208.menu.clock.internal_16MHz.upload.speed=115200
3208.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
3208.menu.clock.internal_16MHz.build.oscillator=
3208.menu.clock.internal_16MHz.build.f_cpu=16000000L

3208.menu.clock.internal_20MHz=Internal 20 MHz
3208.menu.clock.internal_20MHz.upload.speed=115200
3208.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
3208.menu.clock.internal_20MHz.build.oscillator=
3208.menu.clock.internal_20MHz.build.f_cpu=20000000L

3208.menu.clock.internal_10MHz=Internal 10 MHz
3208.menu.clock.internal_10MHz.upload.speed=115200
3208.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
3208.menu.clock.internal_10MHz.build.oscillator=
3208.menu.clock.internal_10MHz.build.f_cpu=10000000L

3208.menu.clock.internal_8MHz=Internal 8 MHz
3208.menu.clock.internal_8MHz.upload.speed=115200
3208.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
3208.menu.clock.internal_8MHz.build.oscillator=
3208.menu.clock.internal_8MHz.build.f_cpu=8000000L

3208.menu.clock.internal_5MHz=Internal 5 MHz
3208.menu.clock.internal_5MHz.upload.speed=115200
3208.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
3208.menu.clock.internal_5MHz.build.oscillator=
3208.menu.clock.internal_5MHz.build.f_cpu=5000000L

3208.menu.clock.internal_4MHz=Internal 4 MHz
3208.menu.clock.internal_4MHz.upload.speed=115200
3208.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
3208.menu.clock.internal_4MHz.build.oscillator=
3208.menu.clock.internal_4MHz.build.f_cpu=4000000L

3208.menu.clock.internal_2MHz=Internal 2 MHz
3208.menu.clock.internal_2MHz.upload.speed=115200
3208.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
3208.menu.clock.internal_2MHz.build.oscillator=
3208.menu.clock.internal_2MHz.build.f_cpu=2000000L

3208.menu.clock.internal_1MHz=Internal 1 MHz
3208.menu.clock.internal_1MHz.upload.speed=115200
3208.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
3208.menu.clock.internal_1MHz.build.oscillator=
3208.menu.clock.internal_1MHz.build.f_cpu=1000000L

3208.menu.clock.external_16MHz=External 16 MHz
3208.menu.clock.external_16MHz.upload.speed=115200
3208.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
3208.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3208.menu.clock.external_16MHz.build.f_cpu=16000000L

3208.menu.clock.external_12MHz=External 12 MHz
3208.menu.clock.external_12MHz.upload.speed=115200
3208.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
3208.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3208.menu.clock.external_12MHz.build.f_cpu=12000000L

3208.menu.clock.external_8MHz=External 8 MHz
3208.menu.clock.external_8MHz.upload.speed=115200
3208.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
3208.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3208.menu.clock.external_8MHz.build.f_cpu=8000000L

3208.menu.clock.external_4MHz=External 4 MHz
3208.menu.clock.external_4MHz.upload.speed=115200
3208.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
3208.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3208.menu.clock.external_4MHz.build.f_cpu=4000000L

3208.menu.clock.external_1MHz=External 1 MHz
3208.menu.clock.external_1MHz.upload.speed=115200
3208.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
3208.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
3208.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
3208.menu.bootloader.no_bootloader=No bootloader
3208.menu.bootloader.no_bootloader.upload.maximum_size=32768
3208.menu.bootloader.no_bootloader.upload.extra_params=
3208.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
3208.menu.bootloader.no_bootloader.build.export_merged_output=false
3208.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
3208.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

3208.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
3208.menu.bootloader.uart0_default.upload.maximum_size=32256
3208.menu.bootloader.uart0_default.upload.protocol=arduino
3208.menu.bootloader.uart0_default.upload.port=UART0_DEF
3208.menu.bootloader.uart0_default.upload.extra_params=
3208.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
3208.menu.bootloader.uart0_default.build.export_merged_output=true
3208.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3208.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
3208.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3208.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
3208.menu.bootloader.uart0_alternative.upload.maximum_size=32256
3208.menu.bootloader.uart0_alternative.upload.protocol=arduino
3208.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
3208.menu.bootloader.uart0_alternative.upload.extra_params=
3208.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
3208.menu.bootloader.uart0_alternative.build.export_merged_output=true
3208.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3208.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
3208.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3208.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
3208.menu.bootloader.uart1_default.upload.maximum_size=32256
3208.menu.bootloader.uart1_default.upload.protocol=arduino
3208.menu.bootloader.uart1_default.upload.port=UART1_DEF
3208.menu.bootloader.uart1_default.upload.extra_params=
3208.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
3208.menu.bootloader.uart1_default.build.export_merged_output=true
3208.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3208.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
3208.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3208.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
3208.menu.bootloader.uart1_alternative.upload.maximum_size=32256
3208.menu.bootloader.uart1_alternative.upload.protocol=arduino
3208.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
3208.menu.bootloader.uart1_alternative.upload.extra_params=
3208.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
3208.menu.bootloader.uart1_alternative.build.export_merged_output=true
3208.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3208.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
3208.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3208.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
3208.menu.bootloader.uart2_default.upload.maximum_size=32256
3208.menu.bootloader.uart2_default.upload.protocol=arduino
3208.menu.bootloader.uart2_default.upload.port=UART2_DEF
3208.menu.bootloader.uart2_default.upload.extra_params=
3208.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
3208.menu.bootloader.uart2_default.build.export_merged_output=true
3208.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3208.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
3208.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

3208.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
3208.menu.bootloader.uart2_alternative.upload.maximum_size=32256
3208.menu.bootloader.uart2_alternative.upload.protocol=arduino
3208.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
3208.menu.bootloader.uart2_alternative.upload.extra_params=
3208.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
3208.menu.bootloader.uart2_alternative.build.export_merged_output=true
3208.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
3208.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
3208.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}


#####################
#### ATmega1609 ####
#####################

# General
1609.name=ATmega1609
1609.upload.tool=avrdude
1609.upload.maximum_data_size=2048
1609.upload.speed=115200
1609.bootloader.tool=avrdude
1609.build.core=coreX-corefiles
1609.build.board=AVR_ATmega1609
1609.build.mcu=atmega1609
1609.build.extra_flags={build.oscillator} {build.compat}

# Fuses we don't need to modify in the tools menu
1609.bootloader.WDTCFG=0x00
1609.bootloader.TCD0CFG=0x00
1609.bootloader.SYSCFG1=0x06
1609.bootloader.APPEND=0x00
1609.bootloader.LOCKBIT=0xC5

# Pinouts
1609.menu.pinout.48pin_standard=48 pin standard
1609.menu.pinout.48pin_standard.build.variant=48pin-standard
1609.menu.pinout.48pin_standard.build.compat=
1609.menu.pinout.uno_wifi=Uno WiFi
1609.menu.pinout.uno_wifi.build.variant=uno-wifi
1609.menu.pinout.uno_wifi.build.compat=

# EEPROM
1609.menu.eeprom.keep=EEPROM retained
1609.menu.eeprom.keep.bootloader.eesave_bit=1
1609.menu.eeprom.erase=EEPROM not retained
1609.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
1609.menu.resetpin.reset=Reset
1609.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
1609.menu.resetpin.gpio=GPIO
1609.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
1609.menu.BOD.2v6=BOD 2.6V
1609.menu.BOD.2v6.bootloader.BODCFG=0x54
1609.menu.BOD.4v3=BOD 4.3V
1609.menu.BOD.4v3.bootloader.BODCFG=0xF4
1609.menu.BOD.4v0=BOD 4.0V
1609.menu.BOD.4v0.bootloader.BODCFG=0xD4
1609.menu.BOD.3v7=BOD 3.7V
1609.menu.BOD.3v7.bootloader.BODCFG=0xB4
1609.menu.BOD.3v3=BOD 3.3V
1609.menu.BOD.3v3.bootloader.BODCFG=0x94
1609.menu.BOD.2v9=BOD 2.9V
1609.menu.BOD.2v9.bootloader.BODCFG=0x74
1609.menu.BOD.2v1=BOD 2.1V
1609.menu.BOD.2v1.bootloader.BODCFG=0x34
1609.menu.BOD.1v8=BOD 1.8V
1609.menu.BOD.1v8.bootloader.BODCFG=0x14
1609.menu.BOD.disabled=BOD disabled
1609.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
1609.menu.clock.internal_16MHz=Internal 16 MHz
1609.menu.clock.internal_16MHz.upload.speed=115200
1609.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
1609.menu.clock.internal_16MHz.build.oscillator=
1609.menu.clock.internal_16MHz.build.f_cpu=16000000L

1609.menu.clock.internal_20MHz=Internal 20 MHz
1609.menu.clock.internal_20MHz.upload.speed=115200
1609.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
1609.menu.clock.internal_20MHz.build.oscillator=
1609.menu.clock.internal_20MHz.build.f_cpu=20000000L

1609.menu.clock.internal_10MHz=Internal 10 MHz
1609.menu.clock.internal_10MHz.upload.speed=115200
1609.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
1609.menu.clock.internal_10MHz.build.oscillator=
1609.menu.clock.internal_10MHz.build.f_cpu=10000000L

1609.menu.clock.internal_8MHz=Internal 8 MHz
1609.menu.clock.internal_8MHz.upload.speed=115200
1609.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
1609.menu.clock.internal_8MHz.build.oscillator=
1609.menu.clock.internal_8MHz.build.f_cpu=8000000L

1609.menu.clock.internal_5MHz=Internal 5 MHz
1609.menu.clock.internal_5MHz.upload.speed=115200
1609.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
1609.menu.clock.internal_5MHz.build.oscillator=
1609.menu.clock.internal_5MHz.build.f_cpu=5000000L

1609.menu.clock.internal_4MHz=Internal 4 MHz
1609.menu.clock.internal_4MHz.upload.speed=115200
1609.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
1609.menu.clock.internal_4MHz.build.oscillator=
1609.menu.clock.internal_4MHz.build.f_cpu=4000000L

1609.menu.clock.internal_2MHz=Internal 2 MHz
1609.menu.clock.internal_2MHz.upload.speed=115200
1609.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
1609.menu.clock.internal_2MHz.build.oscillator=
1609.menu.clock.internal_2MHz.build.f_cpu=2000000L

1609.menu.clock.internal_1MHz=Internal 1 MHz
1609.menu.clock.internal_1MHz.upload.speed=115200
1609.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
1609.menu.clock.internal_1MHz.build.oscillator=
1609.menu.clock.internal_1MHz.build.f_cpu=1000000L

1609.menu.clock.external_16MHz=External 16 MHz
1609.menu.clock.external_16MHz.upload.speed=115200
1609.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
1609.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1609.menu.clock.external_16MHz.build.f_cpu=16000000L

1609.menu.clock.external_12MHz=External 12 MHz
1609.menu.clock.external_12MHz.upload.speed=115200
1609.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
1609.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1609.menu.clock.external_12MHz.build.f_cpu=12000000L

1609.menu.clock.external_8MHz=External 8 MHz
1609.menu.clock.external_8MHz.upload.speed=115200
1609.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
1609.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1609.menu.clock.external_8MHz.build.f_cpu=8000000L

1609.menu.clock.external_4MHz=External 4 MHz
1609.menu.clock.external_4MHz.upload.speed=115200
1609.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
1609.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1609.menu.clock.external_4MHz.build.f_cpu=4000000L

1609.menu.clock.external_1MHz=External 1 MHz
1609.menu.clock.external_1MHz.upload.speed=115200
1609.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
1609.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1609.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
1609.menu.bootloader.no_bootloader=No bootloader
1609.menu.bootloader.no_bootloader.upload.maximum_size=16384
1609.menu.bootloader.no_bootloader.upload.extra_params=
1609.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
1609.menu.bootloader.no_bootloader.build.export_merged_output=false
1609.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
1609.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

1609.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
1609.menu.bootloader.uart0_default.upload.maximum_size=15872
1609.menu.bootloader.uart0_default.upload.protocol=arduino
1609.menu.bootloader.uart0_default.upload.port=UART0_DEF
1609.menu.bootloader.uart0_default.upload.extra_params=
1609.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
1609.menu.bootloader.uart0_default.build.export_merged_output=true
1609.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1609.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
1609.menu.bootloader.uart0_alternative.upload.maximum_size=15872
1609.menu.bootloader.uart0_alternative.upload.protocol=arduino
1609.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
1609.menu.bootloader.uart0_alternative.upload.extra_params=
1609.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
1609.menu.bootloader.uart0_alternative.build.export_merged_output=true
1609.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1609.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
1609.menu.bootloader.uart1_default.upload.maximum_size=15872
1609.menu.bootloader.uart1_default.upload.protocol=arduino
1609.menu.bootloader.uart1_default.upload.port=UART1_DEF
1609.menu.bootloader.uart1_default.upload.extra_params=
1609.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
1609.menu.bootloader.uart1_default.build.export_merged_output=true
1609.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1609.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
1609.menu.bootloader.uart1_alternative.upload.maximum_size=15872
1609.menu.bootloader.uart1_alternative.upload.protocol=arduino
1609.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
1609.menu.bootloader.uart1_alternative.upload.extra_params=
1609.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
1609.menu.bootloader.uart1_alternative.build.export_merged_output=true
1609.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1609.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
1609.menu.bootloader.uart2_default.upload.maximum_size=15872
1609.menu.bootloader.uart2_default.upload.protocol=arduino
1609.menu.bootloader.uart2_default.upload.port=UART2_DEF
1609.menu.bootloader.uart2_default.upload.extra_params=
1609.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
1609.menu.bootloader.uart2_default.build.export_merged_output=true
1609.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1609.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
1609.menu.bootloader.uart2_alternative.upload.maximum_size=15872
1609.menu.bootloader.uart2_alternative.upload.protocol=arduino
1609.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
1609.menu.bootloader.uart2_alternative.upload.extra_params=
1609.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
1609.menu.bootloader.uart2_alternative.build.export_merged_output=true
1609.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1609.menu.bootloader.uart3_default=Optiboot (UART3 default pins)
1609.menu.bootloader.uart3_default.upload.maximum_size=15872
1609.menu.bootloader.uart3_default.upload.protocol=arduino
1609.menu.bootloader.uart3_default.upload.port=UART3_DEF
1609.menu.bootloader.uart3_default.upload.extra_params=
1609.menu.bootloader.uart3_default.build.text_section_start=.text=0x200
1609.menu.bootloader.uart3_default.build.export_merged_output=true
1609.menu.bootloader.uart3_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart3_default.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart3_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1609.menu.bootloader.uart3_alternative=Optiboot (UART3 alternative pins)
1609.menu.bootloader.uart3_alternative.upload.maximum_size=15872
1609.menu.bootloader.uart3_alternative.upload.protocol=arduino
1609.menu.bootloader.uart3_alternative.upload.port=UART3_ALT
1609.menu.bootloader.uart3_alternative.upload.extra_params=
1609.menu.bootloader.uart3_alternative.build.text_section_start=.text=0x200
1609.menu.bootloader.uart3_alternative.build.export_merged_output=true
1609.menu.bootloader.uart3_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1609.menu.bootloader.uart3_alternative.bootloader.BOOTEND=0x02
1609.menu.bootloader.uart3_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}


####################
#### ATmega1608 ####
####################

# General
1608.name=ATmega1608
1608.upload.tool=avrdude
1608.upload.maximum_data_size=2048
1608.upload.speed=115200
1608.bootloader.tool=avrdude
1608.build.core=coreX-corefiles
1608.build.board=AVR_ATmega1608
1608.build.mcu=atmega1608
1608.build.extra_flags={build.oscillator}

# Fuses we don't need to modify in the tools menu
1608.bootloader.WDTCFG=0x00
1608.bootloader.TCD0CFG=0x00
1608.bootloader.SYSCFG1=0x06
1608.bootloader.APPEND=0x00
1608.bootloader.LOCKBIT=0xC5

# Pinouts
1608.menu.pinout.32pin_standard=32 pin standard
1608.menu.pinout.32pin_standard.build.variant=32pin-standard
1608.menu.pinout.28pin_standard=28 pin standard
1608.menu.pinout.28pin_standard.build.variant=28pin-standard

# EEPROM
1608.menu.eeprom.keep=EEPROM retained
1608.menu.eeprom.keep.bootloader.eesave_bit=1
1608.menu.eeprom.erase=EEPROM not retained
1608.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
1608.menu.resetpin.reset=Reset
1608.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
1608.menu.resetpin.gpio=GPIO
1608.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
1608.menu.BOD.2v6=BOD 2.6V
1608.menu.BOD.2v6.bootloader.BODCFG=0x54
1608.menu.BOD.4v3=BOD 4.3V
1608.menu.BOD.4v3.bootloader.BODCFG=0xF4
1608.menu.BOD.4v0=BOD 4.0V
1608.menu.BOD.4v0.bootloader.BODCFG=0xD4
1608.menu.BOD.3v7=BOD 3.7V
1608.menu.BOD.3v7.bootloader.BODCFG=0xB4
1608.menu.BOD.3v3=BOD 3.3V
1608.menu.BOD.3v3.bootloader.BODCFG=0x94
1608.menu.BOD.2v9=BOD 2.9V
1608.menu.BOD.2v9.bootloader.BODCFG=0x74
1608.menu.BOD.2v1=BOD 2.1V
1608.menu.BOD.2v1.bootloader.BODCFG=0x34
1608.menu.BOD.1v8=BOD 1.8V
1608.menu.BOD.1v8.bootloader.BODCFG=0x14
1608.menu.BOD.disabled=BOD disabled
1608.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
1608.menu.clock.internal_16MHz=Internal 16 MHz
1608.menu.clock.internal_16MHz.upload.speed=115200
1608.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
1608.menu.clock.internal_16MHz.build.oscillator=
1608.menu.clock.internal_16MHz.build.f_cpu=16000000L

1608.menu.clock.internal_20MHz=Internal 20 MHz
1608.menu.clock.internal_20MHz.upload.speed=115200
1608.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
1608.menu.clock.internal_20MHz.build.oscillator=
1608.menu.clock.internal_20MHz.build.f_cpu=20000000L

1608.menu.clock.internal_10MHz=Internal 10 MHz
1608.menu.clock.internal_10MHz.upload.speed=115200
1608.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
1608.menu.clock.internal_10MHz.build.oscillator=
1608.menu.clock.internal_10MHz.build.f_cpu=10000000L

1608.menu.clock.internal_8MHz=Internal 8 MHz
1608.menu.clock.internal_8MHz.upload.speed=115200
1608.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
1608.menu.clock.internal_8MHz.build.oscillator=
1608.menu.clock.internal_8MHz.build.f_cpu=8000000L

1608.menu.clock.internal_5MHz=Internal 5 MHz
1608.menu.clock.internal_5MHz.upload.speed=115200
1608.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
1608.menu.clock.internal_5MHz.build.oscillator=
1608.menu.clock.internal_5MHz.build.f_cpu=5000000L

1608.menu.clock.internal_4MHz=Internal 4 MHz
1608.menu.clock.internal_4MHz.upload.speed=115200
1608.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
1608.menu.clock.internal_4MHz.build.oscillator=
1608.menu.clock.internal_4MHz.build.f_cpu=4000000L

1608.menu.clock.internal_2MHz=Internal 2 MHz
1608.menu.clock.internal_2MHz.upload.speed=115200
1608.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
1608.menu.clock.internal_2MHz.build.oscillator=
1608.menu.clock.internal_2MHz.build.f_cpu=2000000L

1608.menu.clock.internal_1MHz=Internal 1 MHz
1608.menu.clock.internal_1MHz.upload.speed=115200
1608.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
1608.menu.clock.internal_1MHz.build.oscillator=
1608.menu.clock.internal_1MHz.build.f_cpu=1000000L

1608.menu.clock.external_16MHz=External 16 MHz
1608.menu.clock.external_16MHz.upload.speed=115200
1608.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
1608.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1608.menu.clock.external_16MHz.build.f_cpu=16000000L

1608.menu.clock.external_12MHz=External 12 MHz
1608.menu.clock.external_12MHz.upload.speed=115200
1608.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
1608.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1608.menu.clock.external_12MHz.build.f_cpu=12000000L

1608.menu.clock.external_8MHz=External 8 MHz
1608.menu.clock.external_8MHz.upload.speed=115200
1608.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
1608.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1608.menu.clock.external_8MHz.build.f_cpu=8000000L

1608.menu.clock.external_4MHz=External 4 MHz
1608.menu.clock.external_4MHz.upload.speed=115200
1608.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
1608.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1608.menu.clock.external_4MHz.build.f_cpu=4000000L

1608.menu.clock.external_1MHz=External 1 MHz
1608.menu.clock.external_1MHz.upload.speed=115200
1608.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
1608.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
1608.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
1608.menu.bootloader.no_bootloader=No bootloader
1608.menu.bootloader.no_bootloader.upload.maximum_size=16384
1608.menu.bootloader.no_bootloader.upload.extra_params=
1608.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
1608.menu.bootloader.no_bootloader.build.export_merged_output=false
1608.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
1608.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

1608.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
1608.menu.bootloader.uart0_default.upload.maximum_size=15872
1608.menu.bootloader.uart0_default.upload.protocol=arduino
1608.menu.bootloader.uart0_default.upload.port=UART0_DEF
1608.menu.bootloader.uart0_default.upload.extra_params=
1608.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
1608.menu.bootloader.uart0_default.build.export_merged_output=true
1608.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1608.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
1608.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1608.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
1608.menu.bootloader.uart0_alternative.upload.maximum_size=15872
1608.menu.bootloader.uart0_alternative.upload.protocol=arduino
1608.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
1608.menu.bootloader.uart0_alternative.upload.extra_params=
1608.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
1608.menu.bootloader.uart0_alternative.build.export_merged_output=true
1608.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1608.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
1608.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1608.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
1608.menu.bootloader.uart1_default.upload.maximum_size=15872
1608.menu.bootloader.uart1_default.upload.protocol=arduino
1608.menu.bootloader.uart1_default.upload.port=UART1_DEF
1608.menu.bootloader.uart1_default.upload.extra_params=
1608.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
1608.menu.bootloader.uart1_default.build.export_merged_output=true
1608.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1608.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
1608.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1608.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
1608.menu.bootloader.uart1_alternative.upload.maximum_size=15872
1608.menu.bootloader.uart1_alternative.upload.protocol=arduino
1608.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
1608.menu.bootloader.uart1_alternative.upload.extra_params=
1608.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
1608.menu.bootloader.uart1_alternative.build.export_merged_output=true
1608.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1608.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
1608.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1608.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
1608.menu.bootloader.uart2_default.upload.maximum_size=15872
1608.menu.bootloader.uart2_default.upload.protocol=arduino
1608.menu.bootloader.uart2_default.upload.port=UART2_DEF
1608.menu.bootloader.uart2_default.upload.extra_params=
1608.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
1608.menu.bootloader.uart2_default.build.export_merged_output=true
1608.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1608.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
1608.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

1608.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
1608.menu.bootloader.uart2_alternative.upload.maximum_size=15872
1608.menu.bootloader.uart2_alternative.upload.protocol=arduino
1608.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
1608.menu.bootloader.uart2_alternative.upload.extra_params=
1608.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
1608.menu.bootloader.uart2_alternative.build.export_merged_output=true
1608.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
1608.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
1608.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}


###################
#### ATmega809 ####
###################

# General
809.name=ATmega809
809.upload.tool=avrdude
809.upload.maximum_data_size=1024
809.upload.speed=115200
809.bootloader.tool=avrdude
809.build.core=coreX-corefiles
809.build.board=AVR_ATmega809
809.build.mcu=atmega809
809.build.extra_flags={build.oscillator} {build.compat}

# Fuses we don't need to modify in the tools menu
809.bootloader.WDTCFG=0x00
809.bootloader.TCD0CFG=0x00
809.bootloader.SYSCFG1=0x06
809.bootloader.APPEND=0x00
809.bootloader.LOCKBIT=0xC5

# Pinouts
809.menu.pinout.48pin_standard=48 pin standard
809.menu.pinout.48pin_standard.build.variant=48pin-standard
809.menu.pinout.48pin_standard.build.compat=
809.menu.pinout.uno_wifi=Uno WiFi
809.menu.pinout.uno_wifi.build.variant=uno-wifi
809.menu.pinout.uno_wifi.build.compat=

# EEPROM
809.menu.eeprom.keep=EEPROM retained
809.menu.eeprom.keep.bootloader.eesave_bit=1
809.menu.eeprom.erase=EEPROM not retained
809.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
809.menu.resetpin.reset=Reset
809.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
809.menu.resetpin.gpio=GPIO
809.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
809.menu.BOD.2v6=BOD 2.6V
809.menu.BOD.2v6.bootloader.BODCFG=0x54
809.menu.BOD.4v3=BOD 4.3V
809.menu.BOD.4v3.bootloader.BODCFG=0xF4
809.menu.BOD.4v0=BOD 4.0V
809.menu.BOD.4v0.bootloader.BODCFG=0xD4
809.menu.BOD.3v7=BOD 3.7V
809.menu.BOD.3v7.bootloader.BODCFG=0xB4
809.menu.BOD.3v3=BOD 3.3V
809.menu.BOD.3v3.bootloader.BODCFG=0x94
809.menu.BOD.2v9=BOD 2.9V
809.menu.BOD.2v9.bootloader.BODCFG=0x74
809.menu.BOD.2v1=BOD 2.1V
809.menu.BOD.2v1.bootloader.BODCFG=0x34
809.menu.BOD.1v8=BOD 1.8V
809.menu.BOD.1v8.bootloader.BODCFG=0x14
809.menu.BOD.disabled=BOD disabled
809.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
809.menu.clock.internal_16MHz=Internal 16 MHz
809.menu.clock.internal_16MHz.upload.speed=115200
809.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
809.menu.clock.internal_16MHz.build.oscillator=
809.menu.clock.internal_16MHz.build.f_cpu=16000000L

809.menu.clock.internal_20MHz=Internal 20 MHz
809.menu.clock.internal_20MHz.upload.speed=115200
809.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
809.menu.clock.internal_20MHz.build.oscillator=
809.menu.clock.internal_20MHz.build.f_cpu=20000000L

809.menu.clock.internal_10MHz=Internal 10 MHz
809.menu.clock.internal_10MHz.upload.speed=115200
809.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
809.menu.clock.internal_10MHz.build.oscillator=
809.menu.clock.internal_10MHz.build.f_cpu=10000000L

809.menu.clock.internal_8MHz=Internal 8 MHz
809.menu.clock.internal_8MHz.upload.speed=115200
809.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
809.menu.clock.internal_8MHz.build.oscillator=
809.menu.clock.internal_8MHz.build.f_cpu=8000000L

809.menu.clock.internal_5MHz=Internal 5 MHz
809.menu.clock.internal_5MHz.upload.speed=115200
809.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
809.menu.clock.internal_5MHz.build.oscillator=
809.menu.clock.internal_5MHz.build.f_cpu=5000000L

809.menu.clock.internal_4MHz=Internal 4 MHz
809.menu.clock.internal_4MHz.upload.speed=115200
809.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
809.menu.clock.internal_4MHz.build.oscillator=
809.menu.clock.internal_4MHz.build.f_cpu=4000000L

809.menu.clock.internal_2MHz=Internal 2 MHz
809.menu.clock.internal_2MHz.upload.speed=115200
809.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
809.menu.clock.internal_2MHz.build.oscillator=
809.menu.clock.internal_2MHz.build.f_cpu=2000000L

809.menu.clock.internal_1MHz=Internal 1 MHz
809.menu.clock.internal_1MHz.upload.speed=115200
809.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
809.menu.clock.internal_1MHz.build.oscillator=
809.menu.clock.internal_1MHz.build.f_cpu=1000000L

809.menu.clock.external_16MHz=External 16 MHz
809.menu.clock.external_16MHz.upload.speed=115200
809.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
809.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
809.menu.clock.external_16MHz.build.f_cpu=16000000L

809.menu.clock.external_12MHz=External 12 MHz
809.menu.clock.external_12MHz.upload.speed=115200
809.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
809.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
809.menu.clock.external_12MHz.build.f_cpu=12000000L

809.menu.clock.external_8MHz=External 8 MHz
809.menu.clock.external_8MHz.upload.speed=115200
809.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
809.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
809.menu.clock.external_8MHz.build.f_cpu=8000000L

809.menu.clock.external_4MHz=External 4 MHz
809.menu.clock.external_4MHz.upload.speed=115200
809.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
809.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
809.menu.clock.external_4MHz.build.f_cpu=4000000L

809.menu.clock.external_1MHz=External 1 MHz
809.menu.clock.external_1MHz.upload.speed=115200
809.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
809.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
809.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
809.menu.bootloader.no_bootloader=No bootloader
809.menu.bootloader.no_bootloader.upload.maximum_size=8192
809.menu.bootloader.no_bootloader.upload.extra_params=
809.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
809.menu.bootloader.no_bootloader.build.export_merged_output=false
809.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
809.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

809.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
809.menu.bootloader.uart0_default.upload.maximum_size=7680
809.menu.bootloader.uart0_default.upload.protocol=arduino
809.menu.bootloader.uart0_default.upload.port=UART0_DEF
809.menu.bootloader.uart0_default.upload.extra_params=
809.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
809.menu.bootloader.uart0_default.build.export_merged_output=true
809.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
809.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

809.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
809.menu.bootloader.uart0_alternative.upload.maximum_size=7680
809.menu.bootloader.uart0_alternative.upload.protocol=arduino
809.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
809.menu.bootloader.uart0_alternative.upload.extra_params=
809.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
809.menu.bootloader.uart0_alternative.build.export_merged_output=true
809.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
809.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

809.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
809.menu.bootloader.uart1_default.upload.maximum_size=7680
809.menu.bootloader.uart1_default.upload.protocol=arduino
809.menu.bootloader.uart1_default.upload.port=UART1_DEF
809.menu.bootloader.uart1_default.upload.extra_params=
809.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
809.menu.bootloader.uart1_default.build.export_merged_output=true
809.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
809.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

809.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
809.menu.bootloader.uart1_alternative.upload.maximum_size=7680
809.menu.bootloader.uart1_alternative.upload.protocol=arduino
809.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
809.menu.bootloader.uart1_alternative.upload.extra_params=
809.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
809.menu.bootloader.uart1_alternative.build.export_merged_output=true
809.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
809.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

809.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
809.menu.bootloader.uart2_default.upload.maximum_size=7680
809.menu.bootloader.uart2_default.upload.protocol=arduino
809.menu.bootloader.uart2_default.upload.port=UART2_DEF
809.menu.bootloader.uart2_default.upload.extra_params=
809.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
809.menu.bootloader.uart2_default.build.export_merged_output=true
809.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
809.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

809.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
809.menu.bootloader.uart2_alternative.upload.maximum_size=7680
809.menu.bootloader.uart2_alternative.upload.protocol=arduino
809.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
809.menu.bootloader.uart2_alternative.upload.extra_params=
809.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
809.menu.bootloader.uart2_alternative.build.export_merged_output=true
809.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
809.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

809.menu.bootloader.uart3_default=Optiboot (UART3 default pins)
809.menu.bootloader.uart3_default.upload.maximum_size=7680
809.menu.bootloader.uart3_default.upload.protocol=arduino
809.menu.bootloader.uart3_default.upload.port=UART3_DEF
809.menu.bootloader.uart3_default.upload.extra_params=
809.menu.bootloader.uart3_default.build.text_section_start=.text=0x200
809.menu.bootloader.uart3_default.build.export_merged_output=true
809.menu.bootloader.uart3_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart3_default.bootloader.BOOTEND=0x02
809.menu.bootloader.uart3_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

809.menu.bootloader.uart3_alternative=Optiboot (UART3 alternative pins)
809.menu.bootloader.uart3_alternative.upload.maximum_size=7680
809.menu.bootloader.uart3_alternative.upload.protocol=arduino
809.menu.bootloader.uart3_alternative.upload.port=UART3_ALT
809.menu.bootloader.uart3_alternative.upload.extra_params=
809.menu.bootloader.uart3_alternative.build.text_section_start=.text=0x200
809.menu.bootloader.uart3_alternative.build.export_merged_output=true
809.menu.bootloader.uart3_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
809.menu.bootloader.uart3_alternative.bootloader.BOOTEND=0x02
809.menu.bootloader.uart3_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}


###################
#### ATmega808 ####
###################

# General
808.name=ATmega808
808.upload.tool=avrdude
808.upload.maximum_data_size=1024
808.upload.speed=115200
808.bootloader.tool=avrdude
808.build.core=coreX-corefiles
808.build.board=AVR_ATmega808
808.build.mcu=atmega808
808.build.extra_flags={build.oscillator}

# Fuses we don't need to modify in the tools menu
808.bootloader.WDTCFG=0x00
808.bootloader.TCD0CFG=0x00
808.bootloader.SYSCFG1=0x06
808.bootloader.APPEND=0x00
808.bootloader.LOCKBIT=0xC5

# Pinouts
808.menu.pinout.32pin_standard=32 pin standard
808.menu.pinout.32pin_standard.build.variant=32pin-standard
808.menu.pinout.28pin_standard=28 pin standard
808.menu.pinout.28pin_standard.build.variant=28pin-standard

# EEPROM
808.menu.eeprom.keep=EEPROM retained
808.menu.eeprom.keep.bootloader.eesave_bit=1
808.menu.eeprom.erase=EEPROM not retained
808.menu.eeprom.erase.bootloader.eesave_bit=0

# Reset pin
808.menu.resetpin.reset=Reset
808.menu.resetpin.reset.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
808.menu.resetpin.gpio=GPIO
808.menu.resetpin.gpio.bootloader.SYSCFG0=0b1100000{bootloader.eesave_bit}

# Brown out detection
808.menu.BOD.2v6=BOD 2.6V
808.menu.BOD.2v6.bootloader.BODCFG=0x54
808.menu.BOD.4v3=BOD 4.3V
808.menu.BOD.4v3.bootloader.BODCFG=0xF4
808.menu.BOD.4v0=BOD 4.0V
808.menu.BOD.4v0.bootloader.BODCFG=0xD4
808.menu.BOD.3v7=BOD 3.7V
808.menu.BOD.3v7.bootloader.BODCFG=0xB4
808.menu.BOD.3v3=BOD 3.3V
808.menu.BOD.3v3.bootloader.BODCFG=0x94
808.menu.BOD.2v9=BOD 2.9V
808.menu.BOD.2v9.bootloader.BODCFG=0x74
808.menu.BOD.2v1=BOD 2.1V
808.menu.BOD.2v1.bootloader.BODCFG=0x34
808.menu.BOD.1v8=BOD 1.8V
808.menu.BOD.1v8.bootloader.BODCFG=0x14
808.menu.BOD.disabled=BOD disabled
808.menu.BOD.disabled.bootloader.BODCFG=0x00

# Clock
808.menu.clock.internal_16MHz=Internal 16 MHz
808.menu.clock.internal_16MHz.upload.speed=115200
808.menu.clock.internal_16MHz.bootloader.OSCCFG=0x01
808.menu.clock.internal_16MHz.build.oscillator=
808.menu.clock.internal_16MHz.build.f_cpu=16000000L

808.menu.clock.internal_20MHz=Internal 20 MHz
808.menu.clock.internal_20MHz.upload.speed=115200
808.menu.clock.internal_20MHz.bootloader.OSCCFG=0x02
808.menu.clock.internal_20MHz.build.oscillator=
808.menu.clock.internal_20MHz.build.f_cpu=20000000L

808.menu.clock.internal_10MHz=Internal 10 MHz
808.menu.clock.internal_10MHz.upload.speed=115200
808.menu.clock.internal_10MHz.bootloader.OSCCFG=0x02
808.menu.clock.internal_10MHz.build.oscillator=
808.menu.clock.internal_10MHz.build.f_cpu=10000000L

808.menu.clock.internal_8MHz=Internal 8 MHz
808.menu.clock.internal_8MHz.upload.speed=115200
808.menu.clock.internal_8MHz.bootloader.OSCCFG=0x01
808.menu.clock.internal_8MHz.build.oscillator=
808.menu.clock.internal_8MHz.build.f_cpu=8000000L

808.menu.clock.internal_5MHz=Internal 5 MHz
808.menu.clock.internal_5MHz.upload.speed=115200
808.menu.clock.internal_5MHz.bootloader.OSCCFG=0x02
808.menu.clock.internal_5MHz.build.oscillator=
808.menu.clock.internal_5MHz.build.f_cpu=5000000L

808.menu.clock.internal_4MHz=Internal 4 MHz
808.menu.clock.internal_4MHz.upload.speed=115200
808.menu.clock.internal_4MHz.bootloader.OSCCFG=0x01
808.menu.clock.internal_4MHz.build.oscillator=
808.menu.clock.internal_4MHz.build.f_cpu=4000000L

808.menu.clock.internal_2MHz=Internal 2 MHz
808.menu.clock.internal_2MHz.upload.speed=115200
808.menu.clock.internal_2MHz.bootloader.OSCCFG=0x01
808.menu.clock.internal_2MHz.build.oscillator=
808.menu.clock.internal_2MHz.build.f_cpu=2000000L

808.menu.clock.internal_1MHz=Internal 1 MHz
808.menu.clock.internal_1MHz.upload.speed=115200
808.menu.clock.internal_1MHz.bootloader.OSCCFG=0x01
808.menu.clock.internal_1MHz.build.oscillator=
808.menu.clock.internal_1MHz.build.f_cpu=1000000L

808.menu.clock.external_16MHz=External 16 MHz
808.menu.clock.external_16MHz.upload.speed=115200
808.menu.clock.external_16MHz.bootloader.OSCCFG=0x01
808.menu.clock.external_16MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
808.menu.clock.external_16MHz.build.f_cpu=16000000L

808.menu.clock.external_12MHz=External 12 MHz
808.menu.clock.external_12MHz.upload.speed=115200
808.menu.clock.external_12MHz.bootloader.OSCCFG=0x01
808.menu.clock.external_12MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
808.menu.clock.external_12MHz.build.f_cpu=12000000L

808.menu.clock.external_8MHz=External 8 MHz
808.menu.clock.external_8MHz.upload.speed=115200
808.menu.clock.external_8MHz.bootloader.OSCCFG=0x01
808.menu.clock.external_8MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
808.menu.clock.external_8MHz.build.f_cpu=8000000L

808.menu.clock.external_4MHz=External 4 MHz
808.menu.clock.external_4MHz.upload.speed=115200
808.menu.clock.external_4MHz.bootloader.OSCCFG=0x01
808.menu.clock.external_4MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
808.menu.clock.external_4MHz.build.f_cpu=4000000L

808.menu.clock.external_1MHz=External 1 MHz
808.menu.clock.external_1MHz.upload.speed=115200
808.menu.clock.external_1MHz.bootloader.OSCCFG=0x01
808.menu.clock.external_1MHz.build.oscillator=-DUSE_EXTERNAL_OSCILLATOR
808.menu.clock.external_1MHz.build.f_cpu=1000000L

# Bootloader
808.menu.bootloader.no_bootloader=No bootloader
808.menu.bootloader.no_bootloader.upload.maximum_size=8192
808.menu.bootloader.no_bootloader.upload.extra_params=
808.menu.bootloader.no_bootloader.build.text_section_start=.text=0x0
808.menu.bootloader.no_bootloader.build.export_merged_output=false
808.menu.bootloader.no_bootloader.bootloader.file=empty/empty.hex
808.menu.bootloader.no_bootloader.bootloader.BOOTEND=0x00

808.menu.bootloader.uart0_default=Optiboot (UART0 default pins)
808.menu.bootloader.uart0_default.upload.maximum_size=7680
808.menu.bootloader.uart0_default.upload.protocol=arduino
808.menu.bootloader.uart0_default.upload.port=UART0_DEF
808.menu.bootloader.uart0_default.upload.extra_params=
808.menu.bootloader.uart0_default.build.text_section_start=.text=0x200
808.menu.bootloader.uart0_default.build.export_merged_output=true
808.menu.bootloader.uart0_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
808.menu.bootloader.uart0_default.bootloader.BOOTEND=0x02
808.menu.bootloader.uart0_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

808.menu.bootloader.uart0_alternative=Optiboot (UART0 alternative pins)
808.menu.bootloader.uart0_alternative.upload.maximum_size=7680
808.menu.bootloader.uart0_alternative.upload.protocol=arduino
808.menu.bootloader.uart0_alternative.upload.port=UART0_ALT
808.menu.bootloader.uart0_alternative.upload.extra_params=
808.menu.bootloader.uart0_alternative.build.text_section_start=.text=0x200
808.menu.bootloader.uart0_alternative.build.export_merged_output=true
808.menu.bootloader.uart0_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
808.menu.bootloader.uart0_alternative.bootloader.BOOTEND=0x02
808.menu.bootloader.uart0_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

808.menu.bootloader.uart1_default=Optiboot (UART1 default pins)
808.menu.bootloader.uart1_default.upload.maximum_size=7680
808.menu.bootloader.uart1_default.upload.protocol=arduino
808.menu.bootloader.uart1_default.upload.port=UART1_DEF
808.menu.bootloader.uart1_default.upload.extra_params=
808.menu.bootloader.uart1_default.build.text_section_start=.text=0x200
808.menu.bootloader.uart1_default.build.export_merged_output=true
808.menu.bootloader.uart1_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
808.menu.bootloader.uart1_default.bootloader.BOOTEND=0x02
808.menu.bootloader.uart1_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

808.menu.bootloader.uart1_alternative=Optiboot (UART1 alternative pins)
808.menu.bootloader.uart1_alternative.upload.maximum_size=7680
808.menu.bootloader.uart1_alternative.upload.protocol=arduino
808.menu.bootloader.uart1_alternative.upload.port=UART1_ALT
808.menu.bootloader.uart1_alternative.upload.extra_params=
808.menu.bootloader.uart1_alternative.build.text_section_start=.text=0x200
808.menu.bootloader.uart1_alternative.build.export_merged_output=true
808.menu.bootloader.uart1_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
808.menu.bootloader.uart1_alternative.bootloader.BOOTEND=0x02
808.menu.bootloader.uart1_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

808.menu.bootloader.uart2_default=Optiboot (UART2 default pins)
808.menu.bootloader.uart2_default.upload.maximum_size=7680
808.menu.bootloader.uart2_default.upload.protocol=arduino
808.menu.bootloader.uart2_default.upload.port=UART2_DEF
808.menu.bootloader.uart2_default.upload.extra_params=
808.menu.bootloader.uart2_default.build.text_section_start=.text=0x200
808.menu.bootloader.uart2_default.build.export_merged_output=true
808.menu.bootloader.uart2_default.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
808.menu.bootloader.uart2_default.bootloader.BOOTEND=0x02
808.menu.bootloader.uart2_default.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}

808.menu.bootloader.uart2_alternative=Optiboot (UART2 alternative pins)
808.menu.bootloader.uart2_alternative.upload.maximum_size=7680
808.menu.bootloader.uart2_alternative.upload.protocol=arduino
808.menu.bootloader.uart2_alternative.upload.port=UART2_ALT
808.menu.bootloader.uart2_alternative.upload.extra_params=
808.menu.bootloader.uart2_alternative.build.text_section_start=.text=0x200
808.menu.bootloader.uart2_alternative.build.export_merged_output=true
808.menu.bootloader.uart2_alternative.bootloader.file=optiboot/bootloaders/mega0/{upload.speed}/Optiboot_mega0_{upload.port}_{upload.speed}_A7.hex
808.menu.bootloader.uart2_alternative.bootloader.BOOTEND=0x02
808.menu.bootloader.uart2_alternative.bootloader.SYSCFG0=0b1100100{bootloader.eesave_bit}
