# See: https://arduino.github.io/arduino-cli/latest/platform-specification/

menu.pnum=Board part number

menu.xserial=U(S)ART support
menu.usb=USB support (if available)
menu.xusb=USB speed (if available)
menu.virtio=Virtual serial support

menu.opt=Optimize
menu.rtlib=C Runtime Library
menu.upload_method=Upload method

################################################################################
# Nucleo 144 boards

Nucleo_144.name=Nucleo-144
Nucleo_144.build.core=arduino
Nucleo_144.build.board=Nucleo_144
Nucleo_144.build.variant_h=variant_{build.board}.h
Nucleo_144.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# NUCLEO_F207ZG board
Nucleo_144.menu.pnum.NUCLEO_F207ZG=Nucleo F207ZG
Nucleo_144.menu.pnum.NUCLEO_F207ZG.node=NODE_F207ZG
Nucleo_144.menu.pnum.NUCLEO_F207ZG.upload.maximum_size=1048576
Nucleo_144.menu.pnum.NUCLEO_F207ZG.upload.maximum_data_size=131072
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.mcu=cortex-m3
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.board=NUCLEO_F207ZG
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.series=STM32F2xx
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.product_line=STM32F207xx
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z(E-G)T
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.cmsis_lib_gcc=arm_cortexM3l_math

# NUCLEO_F429ZI board
# Support: USB HID, Serial1 (USART1 on PG9, PG14) and Serial2 (USART2 on PD6, PD5)
Nucleo_144.menu.pnum.NUCLEO_F429ZI=Nucleo F429ZI
Nucleo_144.menu.pnum.NUCLEO_F429ZI.node=NODE_F429ZI
Nucleo_144.menu.pnum.NUCLEO_F429ZI.upload.maximum_size=2097152
Nucleo_144.menu.pnum.NUCLEO_F429ZI.upload.maximum_data_size=196608
Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.mcu=cortex-m4
Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.board=NUCLEO_F429ZI
Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.series=STM32F4xx
Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.product_line=STM32F429xx
Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)
Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_F746ZG board
Nucleo_144.menu.pnum.NUCLEO_F746ZG=Nucleo F746ZG
Nucleo_144.menu.pnum.NUCLEO_F746ZG.node=NODE_F746ZG
Nucleo_144.menu.pnum.NUCLEO_F746ZG.upload.maximum_size=1048576
Nucleo_144.menu.pnum.NUCLEO_F746ZG.upload.maximum_data_size=327680
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.mcu=cortex-m7
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.board=NUCLEO_F746ZG
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.series=STM32F7xx
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.product_line=STM32F746xx
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.variant_h=variant_NUCLEO_F7x6ZG.h
Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

# NUCLEO_F756ZG board
Nucleo_144.menu.pnum.NUCLEO_F756ZG=Nucleo F756ZG
Nucleo_144.menu.pnum.NUCLEO_F756ZG.node=NODE_F756ZG
Nucleo_144.menu.pnum.NUCLEO_F756ZG.upload.maximum_size=1048576
Nucleo_144.menu.pnum.NUCLEO_F756ZG.upload.maximum_data_size=327680
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.mcu=cortex-m7
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.board=NUCLEO_F756ZG
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.series=STM32F7xx
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.product_line=STM32F756xx
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.variant_h=variant_NUCLEO_F7x6ZG.h
Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

# NUCLEO_F767ZI board
Nucleo_144.menu.pnum.NUCLEO_F767ZI=Nucleo F767ZI
Nucleo_144.menu.pnum.NUCLEO_F767ZI.node=NODE_F767ZI
Nucleo_144.menu.pnum.NUCLEO_F767ZI.upload.maximum_size=2097152
Nucleo_144.menu.pnum.NUCLEO_F767ZI.upload.maximum_data_size=524288
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.mcu=cortex-m7
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.board=NUCLEO_F767ZI
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.series=STM32F7xx
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.product_line=STM32F767xx
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.variant=STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

# NUCLEO_H743ZI board
Nucleo_144.menu.pnum.NUCLEO_H743ZI=Nucleo H743ZI
Nucleo_144.menu.pnum.NUCLEO_H743ZI.node=NODE_H743ZI
Nucleo_144.menu.pnum.NUCLEO_H743ZI.upload.maximum_size=2097152
Nucleo_144.menu.pnum.NUCLEO_H743ZI.upload.maximum_data_size=524288
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.mcu=cortex-m7
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.board=NUCLEO_H743ZI
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.series=STM32H7xx
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.product_line=STM32H743xx
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

Nucleo_144.menu.pnum.NUCLEO_H743ZI2=Nucleo H743ZI2
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.node="NODE_H743ZI,NOD_H743ZI2"
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.upload.maximum_size=2097152
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.upload.maximum_data_size=524288
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.mcu=cortex-m7
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.board=NUCLEO_H743ZI2
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.series=STM32H7xx
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.product_line=STM32H743xx
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.variant_h=variant_NUCLEO_H743ZI.h
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

# NUCLEO_L496ZG board
Nucleo_144.menu.pnum.NUCLEO_L496ZG=Nucleo L496ZG
Nucleo_144.menu.pnum.NUCLEO_L496ZG.node=NODE_L496ZG
Nucleo_144.menu.pnum.NUCLEO_L496ZG.upload.maximum_size=1048576
Nucleo_144.menu.pnum.NUCLEO_L496ZG.upload.maximum_data_size=327680
Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.mcu=cortex-m4
Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.board=NUCLEO_L496ZG
Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.series=STM32L4xx
Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.product_line=STM32L496xx
Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.variant=STM32L4xx/L496Z(E-G)T_L4A6ZGT
Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L496ZG-P board
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P=Nucleo L496ZG-P
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.node=NODE_L496ZG
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.upload.maximum_size=1048576
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.upload.maximum_data_size=327680
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.mcu=cortex-m4
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.board=NUCLEO_L496ZG_P
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.series=STM32L4xx
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.product_line=STM32L496xx
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.variant=STM32L4xx/L496ZGTxP_L4A6ZGTxP
Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L4R5ZI board
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI=Nucleo L4R5ZI
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.node=NODE_L4R5ZI
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.upload.maximum_size=2097152
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.upload.maximum_data_size=655360
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.mcu=cortex-m4
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.board=NUCLEO_L4R5ZI
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.series=STM32L4xx
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.product_line=STM32L4R5xx
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.variant=STM32L4xx/L4R5Z(G-I)T_L4R7ZIT_L4S5ZIT_L4S7ZIT
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L4R5ZI-P board
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P=Nucleo L4R5ZI-P
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.node=NODE_L4R5ZI
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.upload.maximum_size=2097152
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.upload.maximum_data_size=655360
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.mcu=cortex-m4
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.board=NUCLEO_L4R5ZI_P
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.series=STM32L4xx
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.product_line=STM32L4R5xx
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.variant=STM32L4xx/L4R5ZITxP
Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L552ZE-Q board
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q=Nucleo L552ZE-Q
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.node=NODE_L552ZE
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.upload.maximum_size=524288
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.upload.maximum_data_size=196608
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.mcu=cortex-m33
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.board=NUCLEO_L552ZE_Q
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.series=STM32L5xx
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.product_line=STM32L552xx
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.variant=STM32L5xx/L552Z(C-E)TxQ_L562ZETxQ
Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.cmsis_lib_gcc=arm_ARMv8MMLlfsp_math

# Upload menu
Nucleo_144.menu.upload_method.MassStorage=Mass Storage
Nucleo_144.menu.upload_method.MassStorage.upload.protocol=
Nucleo_144.menu.upload_method.MassStorage.upload.tool=massStorageCopy

Nucleo_144.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
Nucleo_144.menu.upload_method.swdMethod.upload.protocol=0
Nucleo_144.menu.upload_method.swdMethod.upload.options=-g
Nucleo_144.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

Nucleo_144.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
Nucleo_144.menu.upload_method.serialMethod.upload.protocol=1
Nucleo_144.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
Nucleo_144.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

Nucleo_144.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
Nucleo_144.menu.upload_method.dfuMethod.upload.protocol=2
Nucleo_144.menu.upload_method.dfuMethod.upload.options=-g
Nucleo_144.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Nucleo 64 boards

Nucleo_64.name=Nucleo-64

Nucleo_64.build.core=arduino
Nucleo_64.build.board=Nucleo_64
Nucleo_64.build.variant_h=variant_{build.board}.h
Nucleo_64.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# NUCLEO_F030R8 board
Nucleo_64.menu.pnum.NUCLEO_F030R8=Nucleo F030R8
Nucleo_64.menu.pnum.NUCLEO_F030R8.node="NODE_F030R8,NUCLEO"
Nucleo_64.menu.pnum.NUCLEO_F030R8.upload.maximum_size=65536
Nucleo_64.menu.pnum.NUCLEO_F030R8.upload.maximum_data_size=8192
Nucleo_64.menu.pnum.NUCLEO_F030R8.build.mcu=cortex-m0
Nucleo_64.menu.pnum.NUCLEO_F030R8.build.board=NUCLEO_F030R8
Nucleo_64.menu.pnum.NUCLEO_F030R8.build.series=STM32F0xx
Nucleo_64.menu.pnum.NUCLEO_F030R8.build.product_line=STM32F030x8
Nucleo_64.menu.pnum.NUCLEO_F030R8.build.variant=STM32F0xx/F030R8T
Nucleo_64.menu.pnum.NUCLEO_F030R8.build.cmsis_lib_gcc=arm_cortexM0l_math

# NUCLEO_F070RB board
Nucleo_64.menu.pnum.NUCLEO_F070RB=Nucleo F070RB
Nucleo_64.menu.pnum.NUCLEO_F070RB.node="NODE_F070RB,NUCLEO"
Nucleo_64.menu.pnum.NUCLEO_F070RB.upload.maximum_size=131072
Nucleo_64.menu.pnum.NUCLEO_F070RB.upload.maximum_data_size=16384
Nucleo_64.menu.pnum.NUCLEO_F070RB.build.mcu=cortex-m0
Nucleo_64.menu.pnum.NUCLEO_F070RB.build.board=NUCLEO_F070RB
Nucleo_64.menu.pnum.NUCLEO_F070RB.build.series=STM32F0xx
Nucleo_64.menu.pnum.NUCLEO_F070RB.build.product_line=STM32F070xB
Nucleo_64.menu.pnum.NUCLEO_F070RB.build.variant=STM32F0xx/F070RBT
Nucleo_64.menu.pnum.NUCLEO_F070RB.build.cmsis_lib_gcc=arm_cortexM0l_math

# NUCLEO_F072RB board
Nucleo_64.menu.pnum.NUCLEO_F072RB=Nucleo F072RB
Nucleo_64.menu.pnum.NUCLEO_F072RB.node="NODE_F072RB,NUCLEO"
Nucleo_64.menu.pnum.NUCLEO_F072RB.upload.maximum_size=131072
Nucleo_64.menu.pnum.NUCLEO_F072RB.upload.maximum_data_size=16384
Nucleo_64.menu.pnum.NUCLEO_F072RB.build.mcu=cortex-m0
Nucleo_64.menu.pnum.NUCLEO_F072RB.build.board=NUCLEO_F072RB
Nucleo_64.menu.pnum.NUCLEO_F072RB.build.series=STM32F0xx
Nucleo_64.menu.pnum.NUCLEO_F072RB.build.product_line=STM32F072xB
Nucleo_64.menu.pnum.NUCLEO_F072RB.build.variant=STM32F0xx/F072R8T_F072RB(H-I-T)
Nucleo_64.menu.pnum.NUCLEO_F072RB.build.cmsis_lib_gcc=arm_cortexM0l_math

# NUCLEO_F091RC board
Nucleo_64.menu.pnum.NUCLEO_F091RC=Nucleo F091RC
Nucleo_64.menu.pnum.NUCLEO_F091RC.node=NODE_F091RC
Nucleo_64.menu.pnum.NUCLEO_F091RC.upload.maximum_size=262144
Nucleo_64.menu.pnum.NUCLEO_F091RC.upload.maximum_data_size=32768
Nucleo_64.menu.pnum.NUCLEO_F091RC.build.mcu=cortex-m0
Nucleo_64.menu.pnum.NUCLEO_F091RC.build.board=NUCLEO_F091RC
Nucleo_64.menu.pnum.NUCLEO_F091RC.build.series=STM32F0xx
Nucleo_64.menu.pnum.NUCLEO_F091RC.build.product_line=STM32F091xC
Nucleo_64.menu.pnum.NUCLEO_F091RC.build.variant=STM32F0xx/F091RBT_F091RC(H-T-Y)
Nucleo_64.menu.pnum.NUCLEO_F091RC.build.cmsis_lib_gcc=arm_cortexM0l_math

# NUCLEO_F103RB board
Nucleo_64.menu.pnum.NUCLEO_F103RB=Nucleo F103RB
Nucleo_64.menu.pnum.NUCLEO_F103RB.node="NODE_F103RB,NUCLEO"
Nucleo_64.menu.pnum.NUCLEO_F103RB.upload.maximum_size=131072
Nucleo_64.menu.pnum.NUCLEO_F103RB.upload.maximum_data_size=20480
Nucleo_64.menu.pnum.NUCLEO_F103RB.build.mcu=cortex-m3
Nucleo_64.menu.pnum.NUCLEO_F103RB.build.board=NUCLEO_F103RB
Nucleo_64.menu.pnum.NUCLEO_F103RB.build.series=STM32F1xx
Nucleo_64.menu.pnum.NUCLEO_F103RB.build.product_line=STM32F103xB
Nucleo_64.menu.pnum.NUCLEO_F103RB.build.variant=STM32F1xx/F103R(8-B)T
Nucleo_64.menu.pnum.NUCLEO_F103RB.build.cmsis_lib_gcc=arm_cortexM3l_math

# NUCLEO_F302R8 board
Nucleo_64.menu.pnum.NUCLEO_F302R8=Nucleo F302R8
Nucleo_64.menu.pnum.NUCLEO_F302R8.node=NODE_F302R8
Nucleo_64.menu.pnum.NUCLEO_F302R8.upload.maximum_size=65536
Nucleo_64.menu.pnum.NUCLEO_F302R8.upload.maximum_data_size=16384
Nucleo_64.menu.pnum.NUCLEO_F302R8.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_F302R8.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_F302R8.build.board=NUCLEO_F302R8
Nucleo_64.menu.pnum.NUCLEO_F302R8.build.series=STM32F3xx
Nucleo_64.menu.pnum.NUCLEO_F302R8.build.product_line=STM32F302x8
Nucleo_64.menu.pnum.NUCLEO_F302R8.build.variant=STM32F3xx/F302R(6-8)T
Nucleo_64.menu.pnum.NUCLEO_F302R8.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_F303RE board
Nucleo_64.menu.pnum.NUCLEO_F303RE=Nucleo F303RE
Nucleo_64.menu.pnum.NUCLEO_F303RE.node=NODE_F303RE
Nucleo_64.menu.pnum.NUCLEO_F303RE.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_F303RE.upload.maximum_data_size=65536
Nucleo_64.menu.pnum.NUCLEO_F303RE.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_F303RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_F303RE.build.board=NUCLEO_F303RE
Nucleo_64.menu.pnum.NUCLEO_F303RE.build.series=STM32F3xx
Nucleo_64.menu.pnum.NUCLEO_F303RE.build.product_line=STM32F303xE
Nucleo_64.menu.pnum.NUCLEO_F303RE.build.variant=STM32F3xx/F303R(D-E)T
Nucleo_64.menu.pnum.NUCLEO_F303RE.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_F401RE board
Nucleo_64.menu.pnum.NUCLEO_F401RE=Nucleo F401RE
Nucleo_64.menu.pnum.NUCLEO_F401RE.node=NODE_F401RE
Nucleo_64.menu.pnum.NUCLEO_F401RE.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_F401RE.upload.maximum_data_size=98304
Nucleo_64.menu.pnum.NUCLEO_F401RE.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_F401RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_F401RE.build.board=NUCLEO_F401RE
Nucleo_64.menu.pnum.NUCLEO_F401RE.build.series=STM32F4xx
Nucleo_64.menu.pnum.NUCLEO_F401RE.build.product_line=STM32F401xE
Nucleo_64.menu.pnum.NUCLEO_F401RE.build.variant=STM32F4xx/F401R(B-C-D-E)T
Nucleo_64.menu.pnum.NUCLEO_F401RE.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_F411RE board
Nucleo_64.menu.pnum.NUCLEO_F411RE=Nucleo F411RE
Nucleo_64.menu.pnum.NUCLEO_F411RE.node="NODE_F411RE,NUCLEO"
Nucleo_64.menu.pnum.NUCLEO_F411RE.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_F411RE.upload.maximum_data_size=131072
Nucleo_64.menu.pnum.NUCLEO_F411RE.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_F411RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_F411RE.build.board=NUCLEO_F411RE
Nucleo_64.menu.pnum.NUCLEO_F411RE.build.series=STM32F4xx
Nucleo_64.menu.pnum.NUCLEO_F411RE.build.product_line=STM32F411xE
Nucleo_64.menu.pnum.NUCLEO_F411RE.build.variant=STM32F4xx/F411R(C-E)T
Nucleo_64.menu.pnum.NUCLEO_F411RE.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_F446RE board
Nucleo_64.menu.pnum.NUCLEO_F446RE=Nucleo F446RE
Nucleo_64.menu.pnum.NUCLEO_F446RE.node=NODE_F446RE
Nucleo_64.menu.pnum.NUCLEO_F446RE.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_F446RE.upload.maximum_data_size=131072
Nucleo_64.menu.pnum.NUCLEO_F446RE.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_F446RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_F446RE.build.board=NUCLEO_F446RE
Nucleo_64.menu.pnum.NUCLEO_F446RE.build.series=STM32F4xx
Nucleo_64.menu.pnum.NUCLEO_F446RE.build.product_line=STM32F446xx
Nucleo_64.menu.pnum.NUCLEO_F446RE.build.variant=STM32F4xx/F446R(C-E)T
Nucleo_64.menu.pnum.NUCLEO_F446RE.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_G071RB board
Nucleo_64.menu.pnum.NUCLEO_G071RB=Nucleo G071RB
Nucleo_64.menu.pnum.NUCLEO_G071RB.node=NODE_G071RB
Nucleo_64.menu.pnum.NUCLEO_G071RB.upload.maximum_size=131072
Nucleo_64.menu.pnum.NUCLEO_G071RB.upload.maximum_data_size=32768
Nucleo_64.menu.pnum.NUCLEO_G071RB.build.mcu=cortex-m0plus
Nucleo_64.menu.pnum.NUCLEO_G071RB.build.board=NUCLEO_G071RB
Nucleo_64.menu.pnum.NUCLEO_G071RB.build.series=STM32G0xx
Nucleo_64.menu.pnum.NUCLEO_G071RB.build.product_line=STM32G071xx
Nucleo_64.menu.pnum.NUCLEO_G071RB.build.variant=STM32G0xx/G071R(6-8)T_G071RB(I-T)_G081RB(I-T)
Nucleo_64.menu.pnum.NUCLEO_G071RB.build.cmsis_lib_gcc=arm_cortexM0l_math
Nucleo_64.menu.pnum.NUCLEO_G071RB.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0

# NUCLEO_G431RB board
Nucleo_64.menu.pnum.NUCLEO_G431RB=Nucleo G431RB
Nucleo_64.menu.pnum.NUCLEO_G431RB.node="NODE_G431RB,NOD_G431RB"
Nucleo_64.menu.pnum.NUCLEO_G431RB.upload.maximum_size=131072
Nucleo_64.menu.pnum.NUCLEO_G431RB.upload.maximum_data_size=32768
Nucleo_64.menu.pnum.NUCLEO_G431RB.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_G431RB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_G431RB.build.board=NUCLEO_G431RB
Nucleo_64.menu.pnum.NUCLEO_G431RB.build.series=STM32G4xx
Nucleo_64.menu.pnum.NUCLEO_G431RB.build.product_line=STM32G431xx
Nucleo_64.menu.pnum.NUCLEO_G431RB.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)
Nucleo_64.menu.pnum.NUCLEO_G431RB.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_G474RE board
Nucleo_64.menu.pnum.NUCLEO_G474RE=Nucleo G474RE
Nucleo_64.menu.pnum.NUCLEO_G474RE.node=NODE_G474RE
Nucleo_64.menu.pnum.NUCLEO_G474RE.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_G474RE.upload.maximum_data_size=131072
Nucleo_64.menu.pnum.NUCLEO_G474RE.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_G474RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_G474RE.build.board=NUCLEO_G474RE
Nucleo_64.menu.pnum.NUCLEO_G474RE.build.series=STM32G4xx
Nucleo_64.menu.pnum.NUCLEO_G474RE.build.product_line=STM32G474xx
Nucleo_64.menu.pnum.NUCLEO_G474RE.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET
Nucleo_64.menu.pnum.NUCLEO_G474RE.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L053R8 board
Nucleo_64.menu.pnum.NUCLEO_L053R8=Nucleo L053R8
Nucleo_64.menu.pnum.NUCLEO_L053R8.node=NODE_L053R8
Nucleo_64.menu.pnum.NUCLEO_L053R8.upload.maximum_size=65536
Nucleo_64.menu.pnum.NUCLEO_L053R8.upload.maximum_data_size=8192
Nucleo_64.menu.pnum.NUCLEO_L053R8.build.mcu=cortex-m0plus
Nucleo_64.menu.pnum.NUCLEO_L053R8.build.board=NUCLEO_L053R8
Nucleo_64.menu.pnum.NUCLEO_L053R8.build.series=STM32L0xx
Nucleo_64.menu.pnum.NUCLEO_L053R8.build.product_line=STM32L053xx
Nucleo_64.menu.pnum.NUCLEO_L053R8.build.variant=STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T
Nucleo_64.menu.pnum.NUCLEO_L053R8.build.cmsis_lib_gcc=arm_cortexM0l_math
Nucleo_64.menu.pnum.NUCLEO_L053R8.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0

# NUCLEO_L073RZ board
Nucleo_64.menu.pnum.NUCLEO_L073RZ=Nucleo L073RZ
Nucleo_64.menu.pnum.NUCLEO_L073RZ.node=NODE_L073RZ
Nucleo_64.menu.pnum.NUCLEO_L073RZ.upload.maximum_size=196608
Nucleo_64.menu.pnum.NUCLEO_L073RZ.upload.maximum_data_size=20480
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.mcu=cortex-m0plus
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.board=NUCLEO_L073RZ
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.series=STM32L0xx
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.product_line=STM32L073xx
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.cmsis_lib_gcc=arm_cortexM0l_math
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0

# NUCLEO_L152RE board
Nucleo_64.menu.pnum.NUCLEO_L152RE=Nucleo L152RE
Nucleo_64.menu.pnum.NUCLEO_L152RE.node="NODE_L152RE,NUCLEO"
Nucleo_64.menu.pnum.NUCLEO_L152RE.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_L152RE.upload.maximum_data_size=81920
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.mcu=cortex-m3
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.board=NUCLEO_L152RE
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.series=STM32L1xx
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.product_line=STM32L152xE
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.variant=STM32L1xx/L151RET_L152RET_L162RET
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.cmsis_lib_gcc=arm_cortexM3l_math

# NUCLEO_L433RC_P board
Nucleo_64.menu.pnum.NUCLEO_L433RC_P=Nucleo L433RC-P
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.node=NODE_L433RC
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.upload.maximum_size=262144
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.upload.maximum_data_size=65536
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.board=NUCLEO_L433RC_P
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.series=STM32L4xx
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.product_line=STM32L433xx
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.variant=STM32L4xx/L433RCTxP
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L452RE board
Nucleo_64.menu.pnum.NUCLEO_L452RE=Nucleo L452RE
Nucleo_64.menu.pnum.NUCLEO_L452RE.node=NODE_L452RE
Nucleo_64.menu.pnum.NUCLEO_L452RE.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_L452RE.upload.maximum_data_size=163840
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.board=NUCLEO_L452RE
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.series=STM32L4xx
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.product_line=STM32L452xx
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L452RE-P board
Nucleo_64.menu.pnum.NUCLEO_L452REP=Nucleo L452RE-P
Nucleo_64.menu.pnum.NUCLEO_L452REP.node=NODE_L452RE
Nucleo_64.menu.pnum.NUCLEO_L452REP.upload.maximum_size=524288
Nucleo_64.menu.pnum.NUCLEO_L452REP.upload.maximum_data_size=163840
Nucleo_64.menu.pnum.NUCLEO_L452REP.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_L452REP.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_L452REP.build.board=NUCLEO_L452RE_P
Nucleo_64.menu.pnum.NUCLEO_L452REP.build.series=STM32L4xx
Nucleo_64.menu.pnum.NUCLEO_L452REP.build.product_line=STM32L452xx
Nucleo_64.menu.pnum.NUCLEO_L452REP.build.variant=STM32L4xx/L452RETxP
Nucleo_64.menu.pnum.NUCLEO_L452REP.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L476RG board
Nucleo_64.menu.pnum.NUCLEO_L476RG=Nucleo L476RG
Nucleo_64.menu.pnum.NUCLEO_L476RG.node=NODE_L476RG
Nucleo_64.menu.pnum.NUCLEO_L476RG.upload.maximum_size=1048576
Nucleo_64.menu.pnum.NUCLEO_L476RG.upload.maximum_data_size=98304
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.mcu=cortex-m4
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.board=NUCLEO_L476RG
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.series=STM32L4xx
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.product_line=STM32L476xx
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.cmsis_lib_gcc=arm_cortexM4lf_math

# P_NUCLEO_WB55RG board
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG=P-Nucleo WB55RG
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.node="NODE_WB55RG,NOD_WB55RG"
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.upload.maximum_size=524288
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.upload.maximum_data_size=196608
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.mcu=cortex-m4
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.board=P_NUCLEO_WB55RG
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.series=STM32WBxx
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.product_line=STM32WB55xx
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.variant=STM32WBxx/WB55R(C-E-G)V
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Upload menu
Nucleo_64.menu.upload_method.MassStorage=Mass Storage
Nucleo_64.menu.upload_method.MassStorage.upload.protocol=
Nucleo_64.menu.upload_method.MassStorage.upload.tool=massStorageCopy

Nucleo_64.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
Nucleo_64.menu.upload_method.swdMethod.upload.protocol=0
Nucleo_64.menu.upload_method.swdMethod.upload.options=-g
Nucleo_64.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

Nucleo_64.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
Nucleo_64.menu.upload_method.serialMethod.upload.protocol=1
Nucleo_64.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
Nucleo_64.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

Nucleo_64.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
Nucleo_64.menu.upload_method.dfuMethod.upload.protocol=2
Nucleo_64.menu.upload_method.dfuMethod.upload.options=-g
Nucleo_64.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Nucleo 32 boards

Nucleo_32.name=Nucleo-32

Nucleo_32.build.core=arduino
Nucleo_32.build.board=Nucleo_32
Nucleo_32.build.variant_h=variant_{build.board}.h
Nucleo_32.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# NUCLEO_F031K6 board
Nucleo_32.menu.pnum.NUCLEO_F031K6=Nucleo F031K6
Nucleo_32.menu.pnum.NUCLEO_F031K6.node=NODE_F031K6
Nucleo_32.menu.pnum.NUCLEO_F031K6.upload.maximum_size=32768
Nucleo_32.menu.pnum.NUCLEO_F031K6.upload.maximum_data_size=4096
Nucleo_32.menu.pnum.NUCLEO_F031K6.build.mcu=cortex-m0
Nucleo_32.menu.pnum.NUCLEO_F031K6.build.board=NUCLEO_F031K6
Nucleo_32.menu.pnum.NUCLEO_F031K6.build.series=STM32F0xx
Nucleo_32.menu.pnum.NUCLEO_F031K6.build.product_line=STM32F031x6
Nucleo_32.menu.pnum.NUCLEO_F031K6.build.variant=STM32F0xx/F031K6T
Nucleo_32.menu.pnum.NUCLEO_F031K6.build.cmsis_lib_gcc=arm_cortexM0l_math

# NUCLEO_F303K8 board
Nucleo_32.menu.pnum.NUCLEO_F303K8=Nucleo F303K8
Nucleo_32.menu.pnum.NUCLEO_F303K8.node=NODE_F303K8
Nucleo_32.menu.pnum.NUCLEO_F303K8.upload.maximum_size=65536
Nucleo_32.menu.pnum.NUCLEO_F303K8.upload.maximum_data_size=12288
Nucleo_32.menu.pnum.NUCLEO_F303K8.build.mcu=cortex-m4
Nucleo_32.menu.pnum.NUCLEO_F303K8.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_32.menu.pnum.NUCLEO_F303K8.build.board=NUCLEO_F303K8
Nucleo_32.menu.pnum.NUCLEO_F303K8.build.series=STM32F3xx
Nucleo_32.menu.pnum.NUCLEO_F303K8.build.product_line=STM32F303x8
Nucleo_32.menu.pnum.NUCLEO_F303K8.build.variant=STM32F3xx/F303K(6-8)T_F334K(4-6-8)T
Nucleo_32.menu.pnum.NUCLEO_F303K8.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_G031K8 board
Nucleo_32.menu.pnum.NUCLEO_G031K8=Nucleo G031K8
Nucleo_32.menu.pnum.NUCLEO_G031K8.node=NOD_G031K8
Nucleo_32.menu.pnum.NUCLEO_G031K8.upload.maximum_size=65536
Nucleo_32.menu.pnum.NUCLEO_G031K8.upload.maximum_data_size=8192
Nucleo_32.menu.pnum.NUCLEO_G031K8.build.mcu=cortex-m0plus
Nucleo_32.menu.pnum.NUCLEO_G031K8.build.board=NUCLEO_G031K8
Nucleo_32.menu.pnum.NUCLEO_G031K8.build.series=STM32G0xx
Nucleo_32.menu.pnum.NUCLEO_G031K8.build.product_line=STM32G031xx
Nucleo_32.menu.pnum.NUCLEO_G031K8.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)
Nucleo_32.menu.pnum.NUCLEO_G031K8.build.cmsis_lib_gcc=arm_cortexM0l_math
Nucleo_32.menu.pnum.NUCLEO_G031K8.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0

# NUCLEO_G431KB board
Nucleo_32.menu.pnum.NUCLEO_G431KB=Nucleo G431KB
Nucleo_32.menu.pnum.NUCLEO_G431KB.node="NODE_G431KB,NOD_G431KB"
Nucleo_32.menu.pnum.NUCLEO_G431KB.upload.maximum_size=131072
Nucleo_32.menu.pnum.NUCLEO_G431KB.upload.maximum_data_size=32768
Nucleo_32.menu.pnum.NUCLEO_G431KB.build.mcu=cortex-m4
Nucleo_32.menu.pnum.NUCLEO_G431KB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_32.menu.pnum.NUCLEO_G431KB.build.board=NUCLEO_G431KB
Nucleo_32.menu.pnum.NUCLEO_G431KB.build.series=STM32G4xx
Nucleo_32.menu.pnum.NUCLEO_G431KB.build.product_line=STM32G431xx
Nucleo_32.menu.pnum.NUCLEO_G431KB.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)
Nucleo_32.menu.pnum.NUCLEO_G431KB.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L031K6 board
Nucleo_32.menu.pnum.NUCLEO_L031K6=Nucleo L031K6
Nucleo_32.menu.pnum.NUCLEO_L031K6.node=NODE_L031K6
Nucleo_32.menu.pnum.NUCLEO_L031K6.upload.maximum_size=32768
Nucleo_32.menu.pnum.NUCLEO_L031K6.upload.maximum_data_size=8192
Nucleo_32.menu.pnum.NUCLEO_L031K6.build.mcu=cortex-m0plus
Nucleo_32.menu.pnum.NUCLEO_L031K6.build.board=NUCLEO_L031K6
Nucleo_32.menu.pnum.NUCLEO_L031K6.build.series=STM32L0xx
Nucleo_32.menu.pnum.NUCLEO_L031K6.build.product_line=STM32L031xx
Nucleo_32.menu.pnum.NUCLEO_L031K6.build.variant=STM32L0xx/L031K(4-6)T_L041K6T
Nucleo_32.menu.pnum.NUCLEO_L031K6.build.cmsis_lib_gcc=arm_cortexM0l_math

# NUCLEO_L412KB board
Nucleo_32.menu.pnum.NUCLEO_L412KB=Nucleo L412KB
Nucleo_32.menu.pnum.NUCLEO_L412KB.node=NODE_L412KB
Nucleo_32.menu.pnum.NUCLEO_L412KB.upload.maximum_size=131072
Nucleo_32.menu.pnum.NUCLEO_L412KB.upload.maximum_data_size=40960
Nucleo_32.menu.pnum.NUCLEO_L412KB.build.mcu=cortex-m4
Nucleo_32.menu.pnum.NUCLEO_L412KB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_32.menu.pnum.NUCLEO_L412KB.build.board=NUCLEO_L412KB
Nucleo_32.menu.pnum.NUCLEO_L412KB.build.series=STM32L4xx
Nucleo_32.menu.pnum.NUCLEO_L412KB.build.product_line=STM32L412xx
Nucleo_32.menu.pnum.NUCLEO_L412KB.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)
Nucleo_32.menu.pnum.NUCLEO_L412KB.build.cmsis_lib_gcc=arm_cortexM4lf_math

# NUCLEO_L432KC board
Nucleo_32.menu.pnum.NUCLEO_L432KC=Nucleo L432KC
Nucleo_32.menu.pnum.NUCLEO_L432KC.node=NODE_L432KC
Nucleo_32.menu.pnum.NUCLEO_L432KC.upload.maximum_size=262144
Nucleo_32.menu.pnum.NUCLEO_L432KC.upload.maximum_data_size=65536
Nucleo_32.menu.pnum.NUCLEO_L432KC.build.mcu=cortex-m4
Nucleo_32.menu.pnum.NUCLEO_L432KC.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Nucleo_32.menu.pnum.NUCLEO_L432KC.build.board=NUCLEO_L432KC
Nucleo_32.menu.pnum.NUCLEO_L432KC.build.series=STM32L4xx
Nucleo_32.menu.pnum.NUCLEO_L432KC.build.product_line=STM32L432xx
Nucleo_32.menu.pnum.NUCLEO_L432KC.build.variant=STM32L4xx/L432K(B-C)U_L442KCU
Nucleo_32.menu.pnum.NUCLEO_L432KC.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Upload menu
Nucleo_32.menu.upload_method.MassStorage=Mass Storage
Nucleo_32.menu.upload_method.MassStorage.upload.protocol=
Nucleo_32.menu.upload_method.MassStorage.upload.tool=massStorageCopy

Nucleo_32.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
Nucleo_32.menu.upload_method.swdMethod.upload.protocol=0
Nucleo_32.menu.upload_method.swdMethod.upload.options=-g
Nucleo_32.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

Nucleo_32.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
Nucleo_32.menu.upload_method.serialMethod.upload.protocol=1
Nucleo_32.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
Nucleo_32.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

Nucleo_32.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
Nucleo_32.menu.upload_method.dfuMethod.upload.protocol=2
Nucleo_32.menu.upload_method.dfuMethod.upload.options=-g
Nucleo_32.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Discovery boards

Disco.name=Discovery

Disco.build.core=arduino
Disco.build.board=Disco
Disco.build.variant_h=variant_{build.board}.h
Disco.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# DISCO_F030R8 board
Disco.menu.pnum.DISCO_F030R8=STM32F030R8-DISCVL
Disco.menu.pnum.DISCO_F030R8.node="No_mass_storage_for_this_board_Use_STLink_upload_method"
Disco.menu.pnum.DISCO_F030R8.upload.maximum_size=65536
Disco.menu.pnum.DISCO_F030R8.upload.maximum_data_size=8192
Disco.menu.pnum.DISCO_F030R8.build.mcu=cortex-m0
Disco.menu.pnum.DISCO_F030R8.build.board=DISCO_F030R8
Disco.menu.pnum.DISCO_F030R8.build.series=STM32F0xx
Disco.menu.pnum.DISCO_F030R8.build.product_line=STM32F030x8
Disco.menu.pnum.DISCO_F030R8.build.variant=STM32F0xx/F030R8T
Disco.menu.pnum.DISCO_F030R8.build.cmsis_lib_gcc=arm_cortexM0l_math

# DISCO_F072RB board
Disco.menu.pnum.DISCO_F072RB=STM32F072B-DISCOVERY
Disco.menu.pnum.DISCO_F072RB.node="No_mass_storage_for_this_board_Use_STLink_upload_method"
Disco.menu.pnum.DISCO_F072RB.upload.maximum_size=131072
Disco.menu.pnum.DISCO_F072RB.upload.maximum_data_size=16384
Disco.menu.pnum.DISCO_F072RB.build.mcu=cortex-m0
Disco.menu.pnum.DISCO_F072RB.build.board=DISCO_F072RB
Disco.menu.pnum.DISCO_F072RB.build.series=STM32F0xx
Disco.menu.pnum.DISCO_F072RB.build.product_line=STM32F072xB
Disco.menu.pnum.DISCO_F072RB.build.variant=STM32F0xx/F072R8T_F072RB(H-I-T)
Disco.menu.pnum.DISCO_F072RB.build.cmsis_lib_gcc=arm_cortexM0l_math

# DISCO_F100RB board
Disco.menu.pnum.DISCO_F100RB=STM32F100RB-DISCVL
Disco.menu.pnum.DISCO_F100RB.node=DIS_F100RB
Disco.menu.pnum.DISCO_F100RB.upload.maximum_size=131071
Disco.menu.pnum.DISCO_F100RB.upload.maximum_data_size=8192
Disco.menu.pnum.DISCO_F100RB.build.mcu=cortex-m3
Disco.menu.pnum.DISCO_F100RB.build.board=DISCO_F100RB
Disco.menu.pnum.DISCO_F100RB.build.series=STM32F1xx
Disco.menu.pnum.DISCO_F100RB.build.product_line=STM32F100xB
Disco.menu.pnum.DISCO_F100RB.build.variant=STM32F1xx/F100R(8-B)T
Disco.menu.pnum.DISCO_F100RB.build.cmsis_lib_gcc=arm_cortexM3l_math

# DISCO_F303VC board
Disco.menu.pnum.DISCO_F303VC=STM32F3-DISCOVERY
Disco.menu.pnum.DISCO_F303VC.node=DIS_F303VC
Disco.menu.pnum.DISCO_F303VC.upload.maximum_size=262144
Disco.menu.pnum.DISCO_F303VC.upload.maximum_data_size=40960
Disco.menu.pnum.DISCO_F303VC.build.mcu=cortex-m4
Disco.menu.pnum.DISCO_F303VC.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Disco.menu.pnum.DISCO_F303VC.build.board=DISCO_F303VC
Disco.menu.pnum.DISCO_F303VC.build.series=STM32F3xx
Disco.menu.pnum.DISCO_F303VC.build.product_line=STM32F303xC
Disco.menu.pnum.DISCO_F303VC.build.variant=STM32F3xx/F303V(B-C)T
Disco.menu.pnum.DISCO_F303VC.build.cmsis_lib_gcc=arm_cortexM4lf_math

# DISCO_F407VG board
Disco.menu.pnum.DISCO_F407VG=STM32F407G-DISC1
Disco.menu.pnum.DISCO_F407VG.node=DIS_F407VG
Disco.menu.pnum.DISCO_F407VG.upload.maximum_size=1048576
Disco.menu.pnum.DISCO_F407VG.upload.maximum_data_size=131072
Disco.menu.pnum.DISCO_F407VG.build.mcu=cortex-m4
Disco.menu.pnum.DISCO_F407VG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Disco.menu.pnum.DISCO_F407VG.build.board=DISCO_F407VG
Disco.menu.pnum.DISCO_F407VG.build.series=STM32F4xx
Disco.menu.pnum.DISCO_F407VG.build.product_line=STM32F407xx
Disco.menu.pnum.DISCO_F407VG.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
Disco.menu.pnum.DISCO_F407VG.build.cmsis_lib_gcc=arm_cortexM4lf_math

# DISCO_F413ZH board
Disco.menu.pnum.DISCO_F413ZH=STM32F413H-DISCO
Disco.menu.pnum.DISCO_F413ZH.node=DIS_F413ZH
Disco.menu.pnum.DISCO_F413ZH.upload.maximum_size=1572864
Disco.menu.pnum.DISCO_F413ZH.upload.maximum_data_size=327680
Disco.menu.pnum.DISCO_F413ZH.build.mcu=cortex-m4
Disco.menu.pnum.DISCO_F413ZH.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Disco.menu.pnum.DISCO_F413ZH.build.board=DISCO_F413ZH
Disco.menu.pnum.DISCO_F413ZH.build.series=STM32F4xx
Disco.menu.pnum.DISCO_F413ZH.build.product_line=STM32F413xx
Disco.menu.pnum.DISCO_F413ZH.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)
Disco.menu.pnum.DISCO_F413ZH.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Disco.menu.pnum.DISCO_F413ZH.build.cmsis_lib_gcc=arm_cortexM4lf_math

# DISCO_F746NG board
Disco.menu.pnum.DISCO_F746NG=STM32F746G-DISCOVERY
Disco.menu.pnum.DISCO_F746NG.node=DIS_F746NG
Disco.menu.pnum.DISCO_F746NG.upload.maximum_size=1048576
Disco.menu.pnum.DISCO_F746NG.upload.maximum_data_size=327680
Disco.menu.pnum.DISCO_F746NG.build.mcu=cortex-m7
Disco.menu.pnum.DISCO_F746NG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Disco.menu.pnum.DISCO_F746NG.build.board=DISCO_F746NG
Disco.menu.pnum.DISCO_F746NG.build.series=STM32F7xx
Disco.menu.pnum.DISCO_F746NG.build.product_line=STM32F746xx
Disco.menu.pnum.DISCO_F746NG.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH
Disco.menu.pnum.DISCO_F746NG.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Disco.menu.pnum.DISCO_F746NG.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

# DISCO_G0316 board
Disco.menu.pnum.DISCO_G0316=STM32G0316-DISCO
Disco.menu.pnum.DISCO_G0316.node=NODE_G031J6
Disco.menu.pnum.DISCO_G0316.upload.maximum_size=32768
Disco.menu.pnum.DISCO_G0316.upload.maximum_data_size=8192
Disco.menu.pnum.DISCO_G0316.build.mcu=cortex-m0plus
Disco.menu.pnum.DISCO_G0316.build.board=DISCO_G0316
Disco.menu.pnum.DISCO_G0316.build.series=STM32G0xx
Disco.menu.pnum.DISCO_G0316.build.product_line=STM32G031xx
Disco.menu.pnum.DISCO_G0316.build.variant=STM32G0xx/G031J(4-6)M_G041J6M
Disco.menu.pnum.DISCO_G0316.build.cmsis_lib_gcc=arm_cortexM0l_math
Disco.menu.pnum.DISCO_G0316.build.extra_flags=-D{build.product_line} {build.xSerial} -D__CORTEX_SC=0

# DISCO_B_G431B_ESC1 board
Disco.menu.pnum.DISCO_B_G431B_ESC1=B-G431B-ESC1
Disco.menu.pnum.DISCO_B_G431B_ESC1.node="NODE_G431CB,NOD_G431CB,DIS_G431CB"
Disco.menu.pnum.DISCO_B_G431B_ESC1.upload.maximum_size=131072
Disco.menu.pnum.DISCO_B_G431B_ESC1.upload.maximum_data_size=32768
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.mcu=cortex-m4
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.board=DISCO_B_G431B_ESC1
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.series=STM32G4xx
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.product_line=STM32G431xx
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.variant=STM32G4xx/G431C(6-8-B)U_G441CBU
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Disco.menu.pnum.DISCO_B_G431B_ESC1.build.cmsis_lib_gcc=arm_cortexM4lf_math

# B-L475E-IOT01A board
Disco.menu.pnum.B_L475E_IOT01A=B-L475E-IOT01A
Disco.menu.pnum.B_L475E_IOT01A.node=DIS_L4IOT
Disco.menu.pnum.B_L475E_IOT01A.upload.maximum_size=1048576
Disco.menu.pnum.B_L475E_IOT01A.upload.maximum_data_size=98304
Disco.menu.pnum.B_L475E_IOT01A.build.mcu=cortex-m4
Disco.menu.pnum.B_L475E_IOT01A.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Disco.menu.pnum.B_L475E_IOT01A.build.board=B_L475E_IOT01A
Disco.menu.pnum.B_L475E_IOT01A.build.series=STM32L4xx
Disco.menu.pnum.B_L475E_IOT01A.build.product_line=STM32L475xx
Disco.menu.pnum.B_L475E_IOT01A.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT
Disco.menu.pnum.B_L475E_IOT01A.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Disco.menu.pnum.B_L475E_IOT01A.build.cmsis_lib_gcc=arm_cortexM4lf_math

# B_L4S5I_IOT01A board
Disco.menu.pnum.B_L4S5I_IOT01A=B-L4S5I-IOT01A
Disco.menu.pnum.B_L4S5I_IOT01A.node="DIS_L4IOT,DIS_L4S5VI"
Disco.menu.pnum.B_L4S5I_IOT01A.upload.maximum_size=2097152
Disco.menu.pnum.B_L4S5I_IOT01A.upload.maximum_data_size=655360
Disco.menu.pnum.B_L4S5I_IOT01A.build.mcu=cortex-m4
Disco.menu.pnum.B_L4S5I_IOT01A.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Disco.menu.pnum.B_L4S5I_IOT01A.build.board=B_L4S5I_IOT01A
Disco.menu.pnum.B_L4S5I_IOT01A.build.series=STM32L4xx
Disco.menu.pnum.B_L4S5I_IOT01A.build.product_line=STM32L4S5xx
Disco.menu.pnum.B_L4S5I_IOT01A.build.variant=STM32L4xx/L4R5V(G-I)T_L4R7VIT_L4S5VIT_L4S7VIT
Disco.menu.pnum.B_L4S5I_IOT01A.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Disco.menu.pnum.B_L4S5I_IOT01A.build.cmsis_lib_gcc=arm_cortexM4lf_math

# B-L072Z-LRWAN1 board
Disco.menu.pnum.B_L072Z_LRWAN1=B-L072Z-LRWAN1
Disco.menu.pnum.B_L072Z_LRWAN1.node="DIS_L072Z,NODE_L072CZ"
Disco.menu.pnum.B_L072Z_LRWAN1.upload.maximum_size=196608
Disco.menu.pnum.B_L072Z_LRWAN1.upload.maximum_data_size=20480
Disco.menu.pnum.B_L072Z_LRWAN1.build.mcu=cortex-m0plus
Disco.menu.pnum.B_L072Z_LRWAN1.build.board=B_L072Z_LRWAN1
Disco.menu.pnum.B_L072Z_LRWAN1.build.series=STM32L0xx
Disco.menu.pnum.B_L072Z_LRWAN1.build.product_line=STM32L072xx
Disco.menu.pnum.B_L072Z_LRWAN1.build.variant=STM32L0xx/L072CBY_L072CZ(E-Y)_L073CZY_L082CZY
Disco.menu.pnum.B_L072Z_LRWAN1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Disco.menu.pnum.B_L072Z_LRWAN1.build.cmsis_lib_gcc=arm_cortexM0l_math
Disco.menu.pnum.B_L072Z_LRWAN1.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0

# Upload menu
Disco.menu.upload_method.MassStorage=Mass Storage
Disco.menu.upload_method.MassStorage.upload.protocol=
Disco.menu.upload_method.MassStorage.upload.tool=massStorageCopy

Disco.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
Disco.menu.upload_method.swdMethod.upload.protocol=0
Disco.menu.upload_method.swdMethod.upload.options=-g
Disco.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

Disco.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
Disco.menu.upload_method.serialMethod.upload.protocol=1
Disco.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
Disco.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

Disco.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
Disco.menu.upload_method.dfuMethod.upload.protocol=2
Disco.menu.upload_method.dfuMethod.upload.options=-g
Disco.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Eval boards

Eval.name=Eval

Eval.build.core=arduino
Eval.build.board=Eval
Eval.build.variant_h=variant_{build.board}.h
Eval.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# STEVAL_MKSBOX1V1 board
Eval.menu.pnum.STEVAL_MKSBOX1V1=SensorTile.box
Eval.menu.pnum.STEVAL_MKSBOX1V1.upload.maximum_size=2097152
Eval.menu.pnum.STEVAL_MKSBOX1V1.upload.maximum_data_size=655360
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.mcu=cortex-m4
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.board=STEVAL_MKSBOX1V1
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.series=STM32L4xx
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.product_line=STM32L4R9xx
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.variant=STM32L4xx/L4R9Z(G-I)J_L4S9ZIJ
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Eval.menu.pnum.STEVAL_MKSBOX1V1.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Upload menu
Eval.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
Eval.menu.upload_method.swdMethod.upload.protocol=0
Eval.menu.upload_method.swdMethod.upload.options=-g
Eval.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

Eval.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
Eval.menu.upload_method.dfuMethod.upload.protocol=2
Eval.menu.upload_method.dfuMethod.upload.options=-g
Eval.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# STM32MP1 microprocessor series (MPU + MCU)

STM32MP1.name=STM32MP1 series coprocessor

STM32MP1.build.core=arduino
STM32MP1.build.board=STM32MP1
STM32MP1.build.mcu=cortex-m4
STM32MP1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
STM32MP1.build.series=STM32MP1xx
STM32MP1.build.cmsis_lib_gcc=arm_cortexM4l_math
STM32MP1.build.extra_flags=-DCORE_CM4 -D{build.product_line} {build.enable_virtio} {build.xSerial}

# STM32MP157A-DK1 board
STM32MP1.menu.pnum.STM32MP157A_DK1=STM32MP157A-DK1
STM32MP1.menu.pnum.STM32MP157A_DK1.upload.maximum_size=131072
STM32MP1.menu.pnum.STM32MP157A_DK1.upload.maximum_data_size=131072
STM32MP1.menu.pnum.STM32MP157A_DK1.build.board=STM32MP157A_DK1
STM32MP1.menu.pnum.STM32MP157A_DK1.build.product_line=STM32MP157Axx
STM32MP1.menu.pnum.STM32MP157A_DK1.build.variant=STM32MP1xx/MP153AAC_MP153CAC_MP153DAC_MP153FAC_MP157AAC_MP157CAC_MP157DAC_MP157FAC
STM32MP1.menu.pnum.STM32MP157A_DK1.build.variant_h=variant_STM32MP157_DK.h
STM32MP1.menu.pnum.STM32MP157A_DK1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# STM32MP157C-DK2 board
STM32MP1.menu.pnum.STM32MP157C_DK2=STM32MP157C-DK2
STM32MP1.menu.pnum.STM32MP157C_DK2.upload.maximum_size=131072
STM32MP1.menu.pnum.STM32MP157C_DK2.upload.maximum_data_size=131072
STM32MP1.menu.pnum.STM32MP157C_DK2.build.board=STM32MP157C_DK2
STM32MP1.menu.pnum.STM32MP157C_DK2.build.product_line=STM32MP157Cxx
STM32MP1.menu.pnum.STM32MP157C_DK2.build.variant=STM32MP1xx/MP153AAC_MP153CAC_MP153DAC_MP153FAC_MP157AAC_MP157CAC_MP157DAC_MP157FAC
STM32MP1.menu.pnum.STM32MP157C_DK2.build.variant_h=variant_STM32MP157_DK.h
STM32MP1.menu.pnum.STM32MP157C_DK2.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Upload menu
STM32MP1.menu.upload_method.MassStorage=Generate run_arduino.sh (You need to copy this manually)
STM32MP1.menu.upload_method.MassStorage.upload.protocol=
STM32MP1.menu.upload_method.MassStorage.upload.tool=remoteproc_gen

###############################
# Generic F0
GenF0.name=Generic STM32F0 series

GenF0.build.core=arduino
GenF0.build.board=GenF0
GenF0.build.mcu=cortex-m0
GenF0.build.series=STM32F0xx
GenF0.build.cmsis_lib_gcc=arm_cortexM0l_math
GenF0.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# DEMO_F030F4 board
GenF0.menu.pnum.DEMO_F030F4=STM32F030F4 Demo board (HSE 8Mhz)
GenF0.menu.pnum.DEMO_F030F4.upload.maximum_size=16384
GenF0.menu.pnum.DEMO_F030F4.upload.maximum_data_size=4096
GenF0.menu.pnum.DEMO_F030F4.build.board=DEMO_F030F4
GenF0.menu.pnum.DEMO_F030F4.build.product_line=STM32F030x6
GenF0.menu.pnum.DEMO_F030F4.build.variant=STM32F0xx/F030F4P
GenF0.menu.pnum.DEMO_F030F4.build.variant_h=variant_{build.board}.h

# DEMO_F030F4_16M board
GenF0.menu.pnum.DEMO_F030F4_16M=STM32F030F4 Demo board (HSE 16Mhz)
GenF0.menu.pnum.DEMO_F030F4_16M.upload.maximum_size=16384
GenF0.menu.pnum.DEMO_F030F4_16M.upload.maximum_data_size=4096
GenF0.menu.pnum.DEMO_F030F4_16M.build.board=DEMO_F030F4_16M
GenF0.menu.pnum.DEMO_F030F4_16M.build.product_line=STM32F030x6
GenF0.menu.pnum.DEMO_F030F4_16M.build.variant=STM32F0xx/F030F4P
GenF0.menu.pnum.DEMO_F030F4_16M.build.variant_h=variant_DEMO_F030F4.h

# DEMO_F030F4_HSI board
GenF0.menu.pnum.DEMO_F030F4_HSI=STM32F030F4 Demo board (HSI internal RC oscillator)
GenF0.menu.pnum.DEMO_F030F4_HSI.upload.maximum_size=16384
GenF0.menu.pnum.DEMO_F030F4_HSI.upload.maximum_data_size=4096
GenF0.menu.pnum.DEMO_F030F4_HSI.build.board=DEMO_F030F4_HSI
GenF0.menu.pnum.DEMO_F030F4_HSI.build.product_line=STM32F030x6
GenF0.menu.pnum.DEMO_F030F4_HSI.build.variant=STM32F0xx/F030F4P
GenF0.menu.pnum.DEMO_F030F4_HSI.build.variant_h=variant_DEMO_F030F4.h

# Generic F030C8Tx
GenF0.menu.pnum.GENERIC_F030C8TX=Generic F030C8Tx
GenF0.menu.pnum.GENERIC_F030C8TX.upload.maximum_size=65536
GenF0.menu.pnum.GENERIC_F030C8TX.upload.maximum_data_size=8192
GenF0.menu.pnum.GENERIC_F030C8TX.build.board=GENERIC_F030C8TX
GenF0.menu.pnum.GENERIC_F030C8TX.build.product_line=STM32F030x8
GenF0.menu.pnum.GENERIC_F030C8TX.build.variant=STM32F0xx/F030C8T

# Generic F030F4Px
GenF0.menu.pnum.GENERIC_F030F4PX=Generic F030F4Px
GenF0.menu.pnum.GENERIC_F030F4PX.upload.maximum_size=16384
GenF0.menu.pnum.GENERIC_F030F4PX.upload.maximum_data_size=4096
GenF0.menu.pnum.GENERIC_F030F4PX.build.board=GENERIC_F030F4PX
GenF0.menu.pnum.GENERIC_F030F4PX.build.product_line=STM32F030x6
GenF0.menu.pnum.GENERIC_F030F4PX.build.variant=STM32F0xx/F030F4P

# Generic F030R8Tx
GenF0.menu.pnum.GENERIC_F030R8TX=Generic F030R8Tx
GenF0.menu.pnum.GENERIC_F030R8TX.upload.maximum_size=65536
GenF0.menu.pnum.GENERIC_F030R8TX.upload.maximum_data_size=8192
GenF0.menu.pnum.GENERIC_F030R8TX.build.board=GENERIC_F030R8TX
GenF0.menu.pnum.GENERIC_F030R8TX.build.product_line=STM32F030x8
GenF0.menu.pnum.GENERIC_F030R8TX.build.variant=STM32F0xx/F030R8T

# Generic F031K6Tx
GenF0.menu.pnum.GENERIC_F031K6TX=Generic F031K6Tx
GenF0.menu.pnum.GENERIC_F031K6TX.upload.maximum_size=32768
GenF0.menu.pnum.GENERIC_F031K6TX.upload.maximum_data_size=4096
GenF0.menu.pnum.GENERIC_F031K6TX.build.board=GENERIC_F031K6TX
GenF0.menu.pnum.GENERIC_F031K6TX.build.product_line=STM32F031x6
GenF0.menu.pnum.GENERIC_F031K6TX.build.variant=STM32F0xx/F031K6T

# Generic F042C4Tx
GenF0.menu.pnum.GENERIC_F042C4TX=Generic F042C4Tx
GenF0.menu.pnum.GENERIC_F042C4TX.upload.maximum_size=16384
GenF0.menu.pnum.GENERIC_F042C4TX.upload.maximum_data_size=6144
GenF0.menu.pnum.GENERIC_F042C4TX.build.board=GENERIC_F042C4TX
GenF0.menu.pnum.GENERIC_F042C4TX.build.product_line=STM32F042x6
GenF0.menu.pnum.GENERIC_F042C4TX.build.variant=STM32F0xx/F042C(4-6)(T-U)

# Generic F042C6Tx
GenF0.menu.pnum.GENERIC_F042C6TX=Generic F042C6Tx
GenF0.menu.pnum.GENERIC_F042C6TX.upload.maximum_size=32768
GenF0.menu.pnum.GENERIC_F042C6TX.upload.maximum_data_size=6144
GenF0.menu.pnum.GENERIC_F042C6TX.build.board=GENERIC_F042C6TX
GenF0.menu.pnum.GENERIC_F042C6TX.build.product_line=STM32F042x6
GenF0.menu.pnum.GENERIC_F042C6TX.build.variant=STM32F0xx/F042C(4-6)(T-U)

# Generic F042C4Ux
GenF0.menu.pnum.GENERIC_F042C4UX=Generic F042C4Ux
GenF0.menu.pnum.GENERIC_F042C4UX.upload.maximum_size=16384
GenF0.menu.pnum.GENERIC_F042C4UX.upload.maximum_data_size=6144
GenF0.menu.pnum.GENERIC_F042C4UX.build.board=GENERIC_F042C4UX
GenF0.menu.pnum.GENERIC_F042C4UX.build.product_line=STM32F042x6
GenF0.menu.pnum.GENERIC_F042C4UX.build.variant=STM32F0xx/F042C(4-6)(T-U)

# Generic F042C6Ux
GenF0.menu.pnum.GENERIC_F042C6UX=Generic F042C6Ux
GenF0.menu.pnum.GENERIC_F042C6UX.upload.maximum_size=32768
GenF0.menu.pnum.GENERIC_F042C6UX.upload.maximum_data_size=6144
GenF0.menu.pnum.GENERIC_F042C6UX.build.board=GENERIC_F042C6UX
GenF0.menu.pnum.GENERIC_F042C6UX.build.product_line=STM32F042x6
GenF0.menu.pnum.GENERIC_F042C6UX.build.variant=STM32F0xx/F042C(4-6)(T-U)

# Generic F051K6Ux
GenF0.menu.pnum.GENERIC_F051K6UX=Generic F051K6Ux
GenF0.menu.pnum.GENERIC_F051K6UX.upload.maximum_size=32768
GenF0.menu.pnum.GENERIC_F051K6UX.upload.maximum_data_size=8192
GenF0.menu.pnum.GENERIC_F051K6UX.build.board=GENERIC_F051K6UX
GenF0.menu.pnum.GENERIC_F051K6UX.build.product_line=STM32F051x8
GenF0.menu.pnum.GENERIC_F051K6UX.build.variant=STM32F0xx/F051K(6-8)U

# Generic F051K8Ux
GenF0.menu.pnum.GENERIC_F051K8UX=Generic F051K8Ux
GenF0.menu.pnum.GENERIC_F051K8UX.upload.maximum_size=65536
GenF0.menu.pnum.GENERIC_F051K8UX.upload.maximum_data_size=8192
GenF0.menu.pnum.GENERIC_F051K8UX.build.board=GENERIC_F051K8UX
GenF0.menu.pnum.GENERIC_F051K8UX.build.product_line=STM32F051x8
GenF0.menu.pnum.GENERIC_F051K8UX.build.variant=STM32F0xx/F051K(6-8)U

# Generic F070CBTx
GenF0.menu.pnum.GENERIC_F070CBTX=Generic F070CBTx
GenF0.menu.pnum.GENERIC_F070CBTX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F070CBTX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F070CBTX.build.board=GENERIC_F070CBTX
GenF0.menu.pnum.GENERIC_F070CBTX.build.product_line=STM32F070xB
GenF0.menu.pnum.GENERIC_F070CBTX.build.variant=STM32F0xx/F070CBT

# Generic F070RBTx
GenF0.menu.pnum.GENERIC_F070RBTX=Generic F070RBTx
GenF0.menu.pnum.GENERIC_F070RBTX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F070RBTX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F070RBTX.build.board=GENERIC_F070RBTX
GenF0.menu.pnum.GENERIC_F070RBTX.build.product_line=STM32F070xB
GenF0.menu.pnum.GENERIC_F070RBTX.build.variant=STM32F0xx/F070RBT

# Generic F072C8Tx
GenF0.menu.pnum.GENERIC_F072C8TX=Generic F072C8Tx
GenF0.menu.pnum.GENERIC_F072C8TX.upload.maximum_size=65536
GenF0.menu.pnum.GENERIC_F072C8TX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072C8TX.build.board=GENERIC_F072C8TX
GenF0.menu.pnum.GENERIC_F072C8TX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072C8TX.build.variant=STM32F0xx/F072C8(T-U)_F072CB(T-U-Y)

# Generic F072CBTx
GenF0.menu.pnum.GENERIC_F072CBTX=Generic F072CBTx
GenF0.menu.pnum.GENERIC_F072CBTX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F072CBTX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072CBTX.build.board=GENERIC_F072CBTX
GenF0.menu.pnum.GENERIC_F072CBTX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072CBTX.build.variant=STM32F0xx/F072C8(T-U)_F072CB(T-U-Y)

# Generic F072C8Ux
GenF0.menu.pnum.GENERIC_F072C8UX=Generic F072C8Ux
GenF0.menu.pnum.GENERIC_F072C8UX.upload.maximum_size=65536
GenF0.menu.pnum.GENERIC_F072C8UX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072C8UX.build.board=GENERIC_F072C8UX
GenF0.menu.pnum.GENERIC_F072C8UX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072C8UX.build.variant=STM32F0xx/F072C8(T-U)_F072CB(T-U-Y)

# Generic F072CBUx
GenF0.menu.pnum.GENERIC_F072CBUX=Generic F072CBUx
GenF0.menu.pnum.GENERIC_F072CBUX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F072CBUX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072CBUX.build.board=GENERIC_F072CBUX
GenF0.menu.pnum.GENERIC_F072CBUX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072CBUX.build.variant=STM32F0xx/F072C8(T-U)_F072CB(T-U-Y)

# Generic F072CBYx
GenF0.menu.pnum.GENERIC_F072CBYX=Generic F072CBYx
GenF0.menu.pnum.GENERIC_F072CBYX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F072CBYX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072CBYX.build.board=GENERIC_F072CBYX
GenF0.menu.pnum.GENERIC_F072CBYX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072CBYX.build.variant=STM32F0xx/F072C8(T-U)_F072CB(T-U-Y)

# Generic F072R8Tx
GenF0.menu.pnum.GENERIC_F072R8TX=Generic F072R8Tx
GenF0.menu.pnum.GENERIC_F072R8TX.upload.maximum_size=65536
GenF0.menu.pnum.GENERIC_F072R8TX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072R8TX.build.board=GENERIC_F072R8TX
GenF0.menu.pnum.GENERIC_F072R8TX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072R8TX.build.variant=STM32F0xx/F072R8T_F072RB(H-I-T)

# Generic F072RBTx
GenF0.menu.pnum.GENERIC_F072RBTX=Generic F072RBTx
GenF0.menu.pnum.GENERIC_F072RBTX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F072RBTX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072RBTX.build.board=GENERIC_F072RBTX
GenF0.menu.pnum.GENERIC_F072RBTX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072RBTX.build.variant=STM32F0xx/F072R8T_F072RB(H-I-T)

# Generic F072RBHx
GenF0.menu.pnum.GENERIC_F072RBHX=Generic F072RBHx
GenF0.menu.pnum.GENERIC_F072RBHX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F072RBHX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072RBHX.build.board=GENERIC_F072RBHX
GenF0.menu.pnum.GENERIC_F072RBHX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072RBHX.build.variant=STM32F0xx/F072R8T_F072RB(H-I-T)

# Generic F072RBIx
GenF0.menu.pnum.GENERIC_F072RBIX=Generic F072RBIx
GenF0.menu.pnum.GENERIC_F072RBIX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F072RBIX.upload.maximum_data_size=16384
GenF0.menu.pnum.GENERIC_F072RBIX.build.board=GENERIC_F072RBIX
GenF0.menu.pnum.GENERIC_F072RBIX.build.product_line=STM32F072xB
GenF0.menu.pnum.GENERIC_F072RBIX.build.variant=STM32F0xx/F072R8T_F072RB(H-I-T)

# Generic F091RBTx
GenF0.menu.pnum.GENERIC_F091RBTX=Generic F091RBTx
GenF0.menu.pnum.GENERIC_F091RBTX.upload.maximum_size=131072
GenF0.menu.pnum.GENERIC_F091RBTX.upload.maximum_data_size=32768
GenF0.menu.pnum.GENERIC_F091RBTX.build.board=GENERIC_F091RBTX
GenF0.menu.pnum.GENERIC_F091RBTX.build.product_line=STM32F091xC
GenF0.menu.pnum.GENERIC_F091RBTX.build.variant=STM32F0xx/F091RBT_F091RC(H-T-Y)

# Generic F091RCTx
GenF0.menu.pnum.GENERIC_F091RCTX=Generic F091RCTx
GenF0.menu.pnum.GENERIC_F091RCTX.upload.maximum_size=262144
GenF0.menu.pnum.GENERIC_F091RCTX.upload.maximum_data_size=32768
GenF0.menu.pnum.GENERIC_F091RCTX.build.board=GENERIC_F091RCTX
GenF0.menu.pnum.GENERIC_F091RCTX.build.product_line=STM32F091xC
GenF0.menu.pnum.GENERIC_F091RCTX.build.variant=STM32F0xx/F091RBT_F091RC(H-T-Y)

# Generic F091RCHx
GenF0.menu.pnum.GENERIC_F091RCHX=Generic F091RCHx
GenF0.menu.pnum.GENERIC_F091RCHX.upload.maximum_size=262144
GenF0.menu.pnum.GENERIC_F091RCHX.upload.maximum_data_size=32768
GenF0.menu.pnum.GENERIC_F091RCHX.build.board=GENERIC_F091RCHX
GenF0.menu.pnum.GENERIC_F091RCHX.build.product_line=STM32F091xC
GenF0.menu.pnum.GENERIC_F091RCHX.build.variant=STM32F0xx/F091RBT_F091RC(H-T-Y)

# Generic F091RCYx
GenF0.menu.pnum.GENERIC_F091RCYX=Generic F091RCYx
GenF0.menu.pnum.GENERIC_F091RCYX.upload.maximum_size=262144
GenF0.menu.pnum.GENERIC_F091RCYX.upload.maximum_data_size=32768
GenF0.menu.pnum.GENERIC_F091RCYX.build.board=GENERIC_F091RCYX
GenF0.menu.pnum.GENERIC_F091RCYX.build.product_line=STM32F091xC
GenF0.menu.pnum.GENERIC_F091RCYX.build.variant=STM32F0xx/F091RBT_F091RC(H-T-Y)

# Upload menu
GenF0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenF0.menu.upload_method.swdMethod.upload.protocol=0
GenF0.menu.upload_method.swdMethod.upload.options=-g
GenF0.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenF0.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenF0.menu.upload_method.serialMethod.upload.protocol=1
GenF0.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenF0.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenF0.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenF0.menu.upload_method.dfuMethod.upload.protocol=2
GenF0.menu.upload_method.dfuMethod.upload.options=-g
GenF0.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Generic F1
GenF1.name=Generic STM32F1 series

GenF1.build.core=arduino
GenF1.build.board=GenF1
GenF1.build.mcu=cortex-m3
GenF1.build.series=STM32F1xx
GenF1.build.cmsis_lib_gcc=arm_cortexM3l_math
GenF1.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags}

# BLUEPILL_F103C6 board
GenF1.menu.pnum.BLUEPILL_F103C6=BluePill F103C6 (32K)
GenF1.menu.pnum.BLUEPILL_F103C6.upload.maximum_size=32768
GenF1.menu.pnum.BLUEPILL_F103C6.upload.maximum_data_size=10240
GenF1.menu.pnum.BLUEPILL_F103C6.build.board=BLUEPILL_F103C6
GenF1.menu.pnum.BLUEPILL_F103C6.build.product_line=STM32F103x6
GenF1.menu.pnum.BLUEPILL_F103C6.build.variant=STM32F1xx/F103C4T_F103C6(T-U)
GenF1.menu.pnum.BLUEPILL_F103C6.build.variant_h=variant_{build.board}.h

# BLUEPILL_F103C8 board
GenF1.menu.pnum.BLUEPILL_F103C8=BluePill F103C8
GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_size=65536
GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_data_size=20480
GenF1.menu.pnum.BLUEPILL_F103C8.build.board=BLUEPILL_F103C8
GenF1.menu.pnum.BLUEPILL_F103C8.build.product_line=STM32F103xB
GenF1.menu.pnum.BLUEPILL_F103C8.build.variant=STM32F1xx/F103C8T_F103CB(T-U)
GenF1.menu.pnum.BLUEPILL_F103C8.build.variant_h=variant_PILL_F103Cx.h

GenF1.menu.pnum.BLUEPILL_F103CB=BluePill F103CB (or C8 with 128k)
GenF1.menu.pnum.BLUEPILL_F103CB.upload.maximum_size=131072
GenF1.menu.pnum.BLUEPILL_F103CB.upload.maximum_data_size=20480
GenF1.menu.pnum.BLUEPILL_F103CB.build.board=BLUEPILL_F103CB
GenF1.menu.pnum.BLUEPILL_F103CB.build.product_line=STM32F103xB
GenF1.menu.pnum.BLUEPILL_F103CB.build.variant_h=variant_PILL_F103Cx.h
GenF1.menu.pnum.BLUEPILL_F103CB.build.variant=STM32F1xx/F103C8T_F103CB(T-U)

# BLACKPILL_F103C8 board
GenF1.menu.pnum.BLACKPILL_F103C8=BlackPill F103C8
GenF1.menu.pnum.BLACKPILL_F103C8.upload.maximum_size=65536
GenF1.menu.pnum.BLACKPILL_F103C8.upload.maximum_data_size=20480
GenF1.menu.pnum.BLACKPILL_F103C8.build.board=BLACKPILL_F103C8
GenF1.menu.pnum.BLACKPILL_F103C8.build.product_line=STM32F103xB
GenF1.menu.pnum.BLACKPILL_F103C8.build.variant_h=variant_PILL_F103Cx.h
GenF1.menu.pnum.BLACKPILL_F103C8.build.variant=STM32F1xx/F103C8T_F103CB(T-U)

GenF1.menu.pnum.BLACKPILL_F103CB=BlackPill F103CB (or C8 with 128k)
GenF1.menu.pnum.BLACKPILL_F103CB.upload.maximum_size=131072
GenF1.menu.pnum.BLACKPILL_F103CB.upload.maximum_data_size=20480
GenF1.menu.pnum.BLACKPILL_F103CB.build.board=BLACKPILL_F103CB
GenF1.menu.pnum.BLACKPILL_F103CB.build.product_line=STM32F103xB
GenF1.menu.pnum.BLACKPILL_F103CB.build.variant_h=variant_PILL_F103Cx.h
GenF1.menu.pnum.BLACKPILL_F103CB.build.variant=STM32F1xx/F103C8T_F103CB(T-U)

# VCCGND_F103ZET6_MINI board
GenF1.menu.pnum.VCCGND_F103ZET6_MINI=VCCGND F103ZET6 Mini
GenF1.menu.pnum.VCCGND_F103ZET6_MINI.upload.maximum_size=524288
GenF1.menu.pnum.VCCGND_F103ZET6_MINI.upload.maximum_data_size=65536
GenF1.menu.pnum.VCCGND_F103ZET6_MINI.build.board=VCCGND_F103ZET6_MINI
GenF1.menu.pnum.VCCGND_F103ZET6_MINI.build.product_line=STM32F103xE
GenF1.menu.pnum.VCCGND_F103ZET6_MINI.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)
GenF1.menu.pnum.VCCGND_F103ZET6_MINI.build.variant_h=variant_{build.board}.h

# VCCGND_F103ZET6 board
GenF1.menu.pnum.VCCGND_F103ZET6=VCCGND F103ZET6
GenF1.menu.pnum.VCCGND_F103ZET6.upload.maximum_size=524288
GenF1.menu.pnum.VCCGND_F103ZET6.upload.maximum_data_size=65536
GenF1.menu.pnum.VCCGND_F103ZET6.build.board=VCCGND_F103ZET6
GenF1.menu.pnum.VCCGND_F103ZET6.build.product_line=STM32F103xE
GenF1.menu.pnum.VCCGND_F103ZET6.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)
GenF1.menu.pnum.VCCGND_F103ZET6.build.variant_h=variant_{build.board}.h

# HY-TinySTM103TB board
GenF1.menu.pnum.HY_TINYSTM103TB=HY-TinySTM103TB
GenF1.menu.pnum.HY_TINYSTM103TB.upload.maximum_size=131072
GenF1.menu.pnum.HY_TINYSTM103TB.upload.maximum_data_size=20480
GenF1.menu.pnum.HY_TINYSTM103TB.build.board=HY_TINYSTM103TB
GenF1.menu.pnum.HY_TINYSTM103TB.build.product_line=STM32F103xB
GenF1.menu.pnum.HY_TINYSTM103TB.build.variant_h=variant_{build.board}.h
GenF1.menu.pnum.HY_TINYSTM103TB.build.variant=STM32F1xx/F103T(8-B)U

# MAPLEMINI_F103CB board
GenF1.menu.pnum.MAPLEMINI_F103CB=Maple Mini F103CB
GenF1.menu.pnum.MAPLEMINI_F103CB.upload.maximum_size=131072
GenF1.menu.pnum.MAPLEMINI_F103CB.upload.maximum_data_size=20480
GenF1.menu.pnum.MAPLEMINI_F103CB.build.board=MAPLEMINI_F103CB
GenF1.menu.pnum.MAPLEMINI_F103CB.build.product_line=STM32F103xB
GenF1.menu.pnum.MAPLEMINI_F103CB.build.variant_h=variant_{build.board}.h
GenF1.menu.pnum.MAPLEMINI_F103CB.build.variant=STM32F1xx/F103C8T_F103CB(T-U)

# Blue Button F103R8T board
GenF1.menu.pnum.BLUEBUTTON_F103R8T=Blue Button F103R8T
GenF1.menu.pnum.BLUEBUTTON_F103R8T.upload.maximum_size=65536
GenF1.menu.pnum.BLUEBUTTON_F103R8T.upload.maximum_data_size=20480
GenF1.menu.pnum.BLUEBUTTON_F103R8T.build.board=BLUEBUTTON_F103R8T
GenF1.menu.pnum.BLUEBUTTON_F103R8T.build.product_line=STM32F103xB
GenF1.menu.pnum.BLUEBUTTON_F103R8T.build.variant=STM32F1xx/F103R(8-B)T
GenF1.menu.pnum.BLUEBUTTON_F103R8T.build.variant_h=variant_{build.board}.h

# Blue Button F103RBT board
GenF1.menu.pnum.BLUEBUTTON_F103RBT=Blue Button F103RBT
GenF1.menu.pnum.BLUEBUTTON_F103RBT.upload.maximum_size=131072
GenF1.menu.pnum.BLUEBUTTON_F103RBT.upload.maximum_data_size=20480
GenF1.menu.pnum.BLUEBUTTON_F103RBT.build.board=BLUEBUTTON_F103RBT
GenF1.menu.pnum.BLUEBUTTON_F103RBT.build.product_line=STM32F103xB
GenF1.menu.pnum.BLUEBUTTON_F103RBT.build.variant=STM32F1xx/F103R(8-B)T
GenF1.menu.pnum.BLUEBUTTON_F103RBT.build.variant_h=variant_{build.board}.h

# Blue Button F103RCT board
GenF1.menu.pnum.BLUEBUTTON_F103RCT=Blue Button F103RCT
GenF1.menu.pnum.BLUEBUTTON_F103RCT.upload.maximum_size=262144
GenF1.menu.pnum.BLUEBUTTON_F103RCT.upload.maximum_data_size=49152
GenF1.menu.pnum.BLUEBUTTON_F103RCT.build.board=BLUEBUTTON_F103RCT
GenF1.menu.pnum.BLUEBUTTON_F103RCT.build.product_line=STM32F103xE
GenF1.menu.pnum.BLUEBUTTON_F103RCT.build.variant=STM32F1xx/F103R(C-D-E)T
GenF1.menu.pnum.BLUEBUTTON_F103RCT.build.variant_h=variant_{build.board}.h

# Blue Button F103RET board
GenF1.menu.pnum.BLUEBUTTON_F103RET=Blue Button F103RET
GenF1.menu.pnum.BLUEBUTTON_F103RET.upload.maximum_size=524288
GenF1.menu.pnum.BLUEBUTTON_F103RET.upload.maximum_data_size=65536
GenF1.menu.pnum.BLUEBUTTON_F103RET.build.board=BLUEBUTTON_F103RET
GenF1.menu.pnum.BLUEBUTTON_F103RET.build.product_line=STM32F103xE
GenF1.menu.pnum.BLUEBUTTON_F103RET.build.variant=STM32F1xx/F103R(C-D-E)T
GenF1.menu.pnum.BLUEBUTTON_F103RET.build.variant_h=variant_{build.board}.h

# Generic F100C4Tx
GenF1.menu.pnum.GENERIC_F100C4TX=Generic F100C4Tx
GenF1.menu.pnum.GENERIC_F100C4TX.upload.maximum_size=16384
GenF1.menu.pnum.GENERIC_F100C4TX.upload.maximum_data_size=4096
GenF1.menu.pnum.GENERIC_F100C4TX.build.board=GENERIC_F100C4TX
GenF1.menu.pnum.GENERIC_F100C4TX.build.product_line=STM32F100xB
GenF1.menu.pnum.GENERIC_F100C4TX.build.variant=STM32F1xx/F100C(4-6)T

# Generic F100C6Tx
GenF1.menu.pnum.GENERIC_F100C6TX=Generic F100C6Tx
GenF1.menu.pnum.GENERIC_F100C6TX.upload.maximum_size=32768
GenF1.menu.pnum.GENERIC_F100C6TX.upload.maximum_data_size=4096
GenF1.menu.pnum.GENERIC_F100C6TX.build.board=GENERIC_F100C6TX
GenF1.menu.pnum.GENERIC_F100C6TX.build.product_line=STM32F100xB
GenF1.menu.pnum.GENERIC_F100C6TX.build.variant=STM32F1xx/F100C(4-6)T

# Generic F100C8Tx
GenF1.menu.pnum.GENERIC_F100C8TX=Generic F100C8Tx
GenF1.menu.pnum.GENERIC_F100C8TX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F100C8TX.upload.maximum_data_size=8192
GenF1.menu.pnum.GENERIC_F100C8TX.build.board=GENERIC_F100C8TX
GenF1.menu.pnum.GENERIC_F100C8TX.build.product_line=STM32F100xB
GenF1.menu.pnum.GENERIC_F100C8TX.build.variant=STM32F1xx/F100C(8-B)T

# Generic F100CBTx
GenF1.menu.pnum.GENERIC_F100CBTX=Generic F100CBTx
GenF1.menu.pnum.GENERIC_F100CBTX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F100CBTX.upload.maximum_data_size=8192
GenF1.menu.pnum.GENERIC_F100CBTX.build.board=GENERIC_F100CBTX
GenF1.menu.pnum.GENERIC_F100CBTX.build.product_line=STM32F100xB
GenF1.menu.pnum.GENERIC_F100CBTX.build.variant=STM32F1xx/F100C(8-B)T

# Generic F100R8Tx
GenF1.menu.pnum.GENERIC_F100R8TX=Generic F100R8Tx
GenF1.menu.pnum.GENERIC_F100R8TX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F100R8TX.upload.maximum_data_size=8192
GenF1.menu.pnum.GENERIC_F100R8TX.build.board=GENERIC_F100R8TX
GenF1.menu.pnum.GENERIC_F100R8TX.build.product_line=STM32F100xB
GenF1.menu.pnum.GENERIC_F100R8TX.build.variant=STM32F1xx/F100R(8-B)T

# Generic F100RBTx
GenF1.menu.pnum.GENERIC_F100RBTX=Generic F100RBTx
GenF1.menu.pnum.GENERIC_F100RBTX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F100RBTX.upload.maximum_data_size=8192
GenF1.menu.pnum.GENERIC_F100RBTX.build.board=GENERIC_F100RBTX
GenF1.menu.pnum.GENERIC_F100RBTX.build.product_line=STM32F100xB
GenF1.menu.pnum.GENERIC_F100RBTX.build.variant=STM32F1xx/F100R(8-B)T

# Generic F103C4Tx
GenF1.menu.pnum.GENERIC_F103C4TX=Generic F103C4Tx
GenF1.menu.pnum.GENERIC_F103C4TX.upload.maximum_size=16384
GenF1.menu.pnum.GENERIC_F103C4TX.upload.maximum_data_size=6144
GenF1.menu.pnum.GENERIC_F103C4TX.build.board=GENERIC_F103C4TX
GenF1.menu.pnum.GENERIC_F103C4TX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103C4TX.build.variant=STM32F1xx/F103C4T_F103C6(T-U)

# Generic F103C6Tx
GenF1.menu.pnum.GENERIC_F103C6TX=Generic F103C6Tx
GenF1.menu.pnum.GENERIC_F103C6TX.upload.maximum_size=32768
GenF1.menu.pnum.GENERIC_F103C6TX.upload.maximum_data_size=10240
GenF1.menu.pnum.GENERIC_F103C6TX.build.board=GENERIC_F103C6TX
GenF1.menu.pnum.GENERIC_F103C6TX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103C6TX.build.variant=STM32F1xx/F103C4T_F103C6(T-U)

# Generic F103C6Ux
GenF1.menu.pnum.GENERIC_F103C6UX=Generic F103C6Ux
GenF1.menu.pnum.GENERIC_F103C6UX.upload.maximum_size=32768
GenF1.menu.pnum.GENERIC_F103C6UX.upload.maximum_data_size=10240
GenF1.menu.pnum.GENERIC_F103C6UX.build.board=GENERIC_F103C6UX
GenF1.menu.pnum.GENERIC_F103C6UX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103C6UX.build.variant=STM32F1xx/F103C4T_F103C6(T-U)

# Generic F103C8Tx
GenF1.menu.pnum.GENERIC_F103C8TX=Generic F103C8Tx
GenF1.menu.pnum.GENERIC_F103C8TX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F103C8TX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103C8TX.build.board=GENERIC_F103C8TX
GenF1.menu.pnum.GENERIC_F103C8TX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103C8TX.build.variant=STM32F1xx/F103C8T_F103CB(T-U)

# Generic F103CBTx
GenF1.menu.pnum.GENERIC_F103CBTX=Generic F103CBTx
GenF1.menu.pnum.GENERIC_F103CBTX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103CBTX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103CBTX.build.board=GENERIC_F103CBTX
GenF1.menu.pnum.GENERIC_F103CBTX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103CBTX.build.variant=STM32F1xx/F103C8T_F103CB(T-U)

# Generic F103CBUx
GenF1.menu.pnum.GENERIC_F103CBUX=Generic F103CBUx
GenF1.menu.pnum.GENERIC_F103CBUX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103CBUX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103CBUX.build.board=GENERIC_F103CBUX
GenF1.menu.pnum.GENERIC_F103CBUX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103CBUX.build.variant=STM32F1xx/F103C8T_F103CB(T-U)

# Generic F103R4Hx
GenF1.menu.pnum.GENERIC_F103R4HX=Generic F103R4Hx
GenF1.menu.pnum.GENERIC_F103R4HX.upload.maximum_size=16384
GenF1.menu.pnum.GENERIC_F103R4HX.upload.maximum_data_size=6144
GenF1.menu.pnum.GENERIC_F103R4HX.build.board=GENERIC_F103R4HX
GenF1.menu.pnum.GENERIC_F103R4HX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103R4HX.build.variant=STM32F1xx/F103R(4-6)H

# Generic F103R6Hx
GenF1.menu.pnum.GENERIC_F103R6HX=Generic F103R6Hx
GenF1.menu.pnum.GENERIC_F103R6HX.upload.maximum_size=32768
GenF1.menu.pnum.GENERIC_F103R6HX.upload.maximum_data_size=10240
GenF1.menu.pnum.GENERIC_F103R6HX.build.board=GENERIC_F103R6HX
GenF1.menu.pnum.GENERIC_F103R6HX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103R6HX.build.variant=STM32F1xx/F103R(4-6)H

# Generic F103R4Tx
GenF1.menu.pnum.GENERIC_F103R4TX=Generic F103R4Tx
GenF1.menu.pnum.GENERIC_F103R4TX.upload.maximum_size=16384
GenF1.menu.pnum.GENERIC_F103R4TX.upload.maximum_data_size=6144
GenF1.menu.pnum.GENERIC_F103R4TX.build.board=GENERIC_F103R4TX
GenF1.menu.pnum.GENERIC_F103R4TX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103R4TX.build.variant=STM32F1xx/F103R(4-6)T

# Generic F103R6Tx
GenF1.menu.pnum.GENERIC_F103R6TX=Generic F103R6Tx
GenF1.menu.pnum.GENERIC_F103R6TX.upload.maximum_size=32768
GenF1.menu.pnum.GENERIC_F103R6TX.upload.maximum_data_size=10240
GenF1.menu.pnum.GENERIC_F103R6TX.build.board=GENERIC_F103R6TX
GenF1.menu.pnum.GENERIC_F103R6TX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103R6TX.build.variant=STM32F1xx/F103R(4-6)T

# Generic F103R8Hx
GenF1.menu.pnum.GENERIC_F103R8HX=Generic F103R8Hx
GenF1.menu.pnum.GENERIC_F103R8HX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F103R8HX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103R8HX.build.board=GENERIC_F103R8HX
GenF1.menu.pnum.GENERIC_F103R8HX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103R8HX.build.variant=STM32F1xx/F103R(8-B)H

# Generic F103RBHx
GenF1.menu.pnum.GENERIC_F103RBHX=Generic F103RBHx
GenF1.menu.pnum.GENERIC_F103RBHX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103RBHX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103RBHX.build.board=GENERIC_F103RBHX
GenF1.menu.pnum.GENERIC_F103RBHX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103RBHX.build.variant=STM32F1xx/F103R(8-B)H

# Generic F103R8Tx
GenF1.menu.pnum.GENERIC_F103R8TX=Generic F103R8Tx
GenF1.menu.pnum.GENERIC_F103R8TX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F103R8TX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103R8TX.build.board=GENERIC_F103R8TX
GenF1.menu.pnum.GENERIC_F103R8TX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103R8TX.build.variant=STM32F1xx/F103R(8-B)T

# Generic F103RBTx
GenF1.menu.pnum.GENERIC_F103RBTX=Generic F103RBTx
GenF1.menu.pnum.GENERIC_F103RBTX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103RBTX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103RBTX.build.board=GENERIC_F103RBTX
GenF1.menu.pnum.GENERIC_F103RBTX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103RBTX.build.variant=STM32F1xx/F103R(8-B)T

# Generic F103RCTx
GenF1.menu.pnum.GENERIC_F103RCTX=Generic F103RCTx
GenF1.menu.pnum.GENERIC_F103RCTX.upload.maximum_size=262144
GenF1.menu.pnum.GENERIC_F103RCTX.upload.maximum_data_size=49152
GenF1.menu.pnum.GENERIC_F103RCTX.build.board=GENERIC_F103RCTX
GenF1.menu.pnum.GENERIC_F103RCTX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103RCTX.build.variant=STM32F1xx/F103R(C-D-E)T

# Generic F103RDTx
GenF1.menu.pnum.GENERIC_F103RDTX=Generic F103RDTx
GenF1.menu.pnum.GENERIC_F103RDTX.upload.maximum_size=393216
GenF1.menu.pnum.GENERIC_F103RDTX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103RDTX.build.board=GENERIC_F103RDTX
GenF1.menu.pnum.GENERIC_F103RDTX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103RDTX.build.variant=STM32F1xx/F103R(C-D-E)T

# Generic F103RETx
GenF1.menu.pnum.GENERIC_F103RETX=Generic F103RETx
GenF1.menu.pnum.GENERIC_F103RETX.upload.maximum_size=524288
GenF1.menu.pnum.GENERIC_F103RETX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103RETX.build.board=GENERIC_F103RETX
GenF1.menu.pnum.GENERIC_F103RETX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103RETX.build.variant=STM32F1xx/F103R(C-D-E)T

# Generic F103RCYx
GenF1.menu.pnum.GENERIC_F103RCYX=Generic F103RCYx
GenF1.menu.pnum.GENERIC_F103RCYX.upload.maximum_size=262144
GenF1.menu.pnum.GENERIC_F103RCYX.upload.maximum_data_size=49152
GenF1.menu.pnum.GENERIC_F103RCYX.build.board=GENERIC_F103RCYX
GenF1.menu.pnum.GENERIC_F103RCYX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103RCYX.build.variant=STM32F1xx/F103R(C-D-E)Y

# Generic F103RDYx
GenF1.menu.pnum.GENERIC_F103RDYX=Generic F103RDYx
GenF1.menu.pnum.GENERIC_F103RDYX.upload.maximum_size=393216
GenF1.menu.pnum.GENERIC_F103RDYX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103RDYX.build.board=GENERIC_F103RDYX
GenF1.menu.pnum.GENERIC_F103RDYX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103RDYX.build.variant=STM32F1xx/F103R(C-D-E)Y

# Generic F103REYx
GenF1.menu.pnum.GENERIC_F103REYX=Generic F103REYx
GenF1.menu.pnum.GENERIC_F103REYX.upload.maximum_size=524288
GenF1.menu.pnum.GENERIC_F103REYX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103REYX.build.board=GENERIC_F103REYX
GenF1.menu.pnum.GENERIC_F103REYX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103REYX.build.variant=STM32F1xx/F103R(C-D-E)Y

# Generic F103RFTx
GenF1.menu.pnum.GENERIC_F103RFTX=Generic F103RFTx
GenF1.menu.pnum.GENERIC_F103RFTX.upload.maximum_size=786432
GenF1.menu.pnum.GENERIC_F103RFTX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103RFTX.build.board=GENERIC_F103RFTX
GenF1.menu.pnum.GENERIC_F103RFTX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103RFTX.build.variant=STM32F1xx/F103R(F-G)T

# Generic F103RGTx
GenF1.menu.pnum.GENERIC_F103RGTX=Generic F103RGTx
GenF1.menu.pnum.GENERIC_F103RGTX.upload.maximum_size=1048576
GenF1.menu.pnum.GENERIC_F103RGTX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103RGTX.build.board=GENERIC_F103RGTX
GenF1.menu.pnum.GENERIC_F103RGTX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103RGTX.build.variant=STM32F1xx/F103R(F-G)T

# Generic F103T4Ux
GenF1.menu.pnum.GENERIC_F103T4UX=Generic F103T4Ux
GenF1.menu.pnum.GENERIC_F103T4UX.upload.maximum_size=16384
GenF1.menu.pnum.GENERIC_F103T4UX.upload.maximum_data_size=6144
GenF1.menu.pnum.GENERIC_F103T4UX.build.board=GENERIC_F103T4UX
GenF1.menu.pnum.GENERIC_F103T4UX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103T4UX.build.variant=STM32F1xx/F103T(4-6)U

# Generic F103T6Ux
GenF1.menu.pnum.GENERIC_F103T6UX=Generic F103T6Ux
GenF1.menu.pnum.GENERIC_F103T6UX.upload.maximum_size=32768
GenF1.menu.pnum.GENERIC_F103T6UX.upload.maximum_data_size=10240
GenF1.menu.pnum.GENERIC_F103T6UX.build.board=GENERIC_F103T6UX
GenF1.menu.pnum.GENERIC_F103T6UX.build.product_line=STM32F103x6
GenF1.menu.pnum.GENERIC_F103T6UX.build.variant=STM32F1xx/F103T(4-6)U

# Generic F103T8Ux
GenF1.menu.pnum.GENERIC_F103T8UX=Generic F103T8Ux
GenF1.menu.pnum.GENERIC_F103T8UX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F103T8UX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103T8UX.build.board=GENERIC_F103T8UX
GenF1.menu.pnum.GENERIC_F103T8UX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103T8UX.build.variant=STM32F1xx/F103T(8-B)U

# Generic F103TBUx
GenF1.menu.pnum.GENERIC_F103TBUX=Generic F103TBUx
GenF1.menu.pnum.GENERIC_F103TBUX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103TBUX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103TBUX.build.board=GENERIC_F103TBUX
GenF1.menu.pnum.GENERIC_F103TBUX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103TBUX.build.variant=STM32F1xx/F103T(8-B)U

# Generic F103V8Hx
GenF1.menu.pnum.GENERIC_F103V8HX=Generic F103V8Hx
GenF1.menu.pnum.GENERIC_F103V8HX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F103V8HX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103V8HX.build.board=GENERIC_F103V8HX
GenF1.menu.pnum.GENERIC_F103V8HX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103V8HX.build.variant=STM32F1xx/F103V8(H-T)_F103VB(H-I-T)

# Generic F103VBHx
GenF1.menu.pnum.GENERIC_F103VBHX=Generic F103VBHx
GenF1.menu.pnum.GENERIC_F103VBHX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103VBHX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103VBHX.build.board=GENERIC_F103VBHX
GenF1.menu.pnum.GENERIC_F103VBHX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103VBHX.build.variant=STM32F1xx/F103V8(H-T)_F103VB(H-I-T)

# Generic F103V8Tx
GenF1.menu.pnum.GENERIC_F103V8TX=Generic F103V8Tx
GenF1.menu.pnum.GENERIC_F103V8TX.upload.maximum_size=65536
GenF1.menu.pnum.GENERIC_F103V8TX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103V8TX.build.board=GENERIC_F103V8TX
GenF1.menu.pnum.GENERIC_F103V8TX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103V8TX.build.variant=STM32F1xx/F103V8(H-T)_F103VB(H-I-T)

# Generic F103VBTx
GenF1.menu.pnum.GENERIC_F103VBTX=Generic F103VBTx
GenF1.menu.pnum.GENERIC_F103VBTX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103VBTX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103VBTX.build.board=GENERIC_F103VBTX
GenF1.menu.pnum.GENERIC_F103VBTX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103VBTX.build.variant=STM32F1xx/F103V8(H-T)_F103VB(H-I-T)

# Generic F103VBIx
GenF1.menu.pnum.GENERIC_F103VBIX=Generic F103VBIx
GenF1.menu.pnum.GENERIC_F103VBIX.upload.maximum_size=131072
GenF1.menu.pnum.GENERIC_F103VBIX.upload.maximum_data_size=20480
GenF1.menu.pnum.GENERIC_F103VBIX.build.board=GENERIC_F103VBIX
GenF1.menu.pnum.GENERIC_F103VBIX.build.product_line=STM32F103xB
GenF1.menu.pnum.GENERIC_F103VBIX.build.variant=STM32F1xx/F103V8(H-T)_F103VB(H-I-T)

# Generic F103VCHx
GenF1.menu.pnum.GENERIC_F103VCHX=Generic F103VCHx
GenF1.menu.pnum.GENERIC_F103VCHX.upload.maximum_size=262144
GenF1.menu.pnum.GENERIC_F103VCHX.upload.maximum_data_size=49152
GenF1.menu.pnum.GENERIC_F103VCHX.build.board=GENERIC_F103VCHX
GenF1.menu.pnum.GENERIC_F103VCHX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103VCHX.build.variant=STM32F1xx/F103V(C-D-E)(H-T)

# Generic F103VDHx
GenF1.menu.pnum.GENERIC_F103VDHX=Generic F103VDHx
GenF1.menu.pnum.GENERIC_F103VDHX.upload.maximum_size=393216
GenF1.menu.pnum.GENERIC_F103VDHX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103VDHX.build.board=GENERIC_F103VDHX
GenF1.menu.pnum.GENERIC_F103VDHX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103VDHX.build.variant=STM32F1xx/F103V(C-D-E)(H-T)

# Generic F103VEHx
GenF1.menu.pnum.GENERIC_F103VEHX=Generic F103VEHx
GenF1.menu.pnum.GENERIC_F103VEHX.upload.maximum_size=524288
GenF1.menu.pnum.GENERIC_F103VEHX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103VEHX.build.board=GENERIC_F103VEHX
GenF1.menu.pnum.GENERIC_F103VEHX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103VEHX.build.variant=STM32F1xx/F103V(C-D-E)(H-T)

# Generic F103VCTx
GenF1.menu.pnum.GENERIC_F103VCTX=Generic F103VCTx
GenF1.menu.pnum.GENERIC_F103VCTX.upload.maximum_size=262144
GenF1.menu.pnum.GENERIC_F103VCTX.upload.maximum_data_size=49152
GenF1.menu.pnum.GENERIC_F103VCTX.build.board=GENERIC_F103VCTX
GenF1.menu.pnum.GENERIC_F103VCTX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103VCTX.build.variant=STM32F1xx/F103V(C-D-E)(H-T)

# Generic F103VDTx
GenF1.menu.pnum.GENERIC_F103VDTX=Generic F103VDTx
GenF1.menu.pnum.GENERIC_F103VDTX.upload.maximum_size=393216
GenF1.menu.pnum.GENERIC_F103VDTX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103VDTX.build.board=GENERIC_F103VDTX
GenF1.menu.pnum.GENERIC_F103VDTX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103VDTX.build.variant=STM32F1xx/F103V(C-D-E)(H-T)

# Generic F103VETx
GenF1.menu.pnum.GENERIC_F103VETX=Generic F103VETx
GenF1.menu.pnum.GENERIC_F103VETX.upload.maximum_size=524288
GenF1.menu.pnum.GENERIC_F103VETX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103VETX.build.board=GENERIC_F103VETX
GenF1.menu.pnum.GENERIC_F103VETX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103VETX.build.variant=STM32F1xx/F103V(C-D-E)(H-T)

# Generic F103VFTx
GenF1.menu.pnum.GENERIC_F103VFTX=Generic F103VFTx
GenF1.menu.pnum.GENERIC_F103VFTX.upload.maximum_size=786432
GenF1.menu.pnum.GENERIC_F103VFTX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103VFTX.build.board=GENERIC_F103VFTX
GenF1.menu.pnum.GENERIC_F103VFTX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103VFTX.build.variant=STM32F1xx/F103V(F-G)T

# Generic F103VGTx
GenF1.menu.pnum.GENERIC_F103VGTX=Generic F103VGTx
GenF1.menu.pnum.GENERIC_F103VGTX.upload.maximum_size=1048576
GenF1.menu.pnum.GENERIC_F103VGTX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103VGTX.build.board=GENERIC_F103VGTX
GenF1.menu.pnum.GENERIC_F103VGTX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103VGTX.build.variant=STM32F1xx/F103V(F-G)T

# Generic F103ZCHx
GenF1.menu.pnum.GENERIC_F103ZCHX=Generic F103ZCHx
GenF1.menu.pnum.GENERIC_F103ZCHX.upload.maximum_size=262144
GenF1.menu.pnum.GENERIC_F103ZCHX.upload.maximum_data_size=49152
GenF1.menu.pnum.GENERIC_F103ZCHX.build.board=GENERIC_F103ZCHX
GenF1.menu.pnum.GENERIC_F103ZCHX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103ZCHX.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)

# Generic F103ZDHx
GenF1.menu.pnum.GENERIC_F103ZDHX=Generic F103ZDHx
GenF1.menu.pnum.GENERIC_F103ZDHX.upload.maximum_size=393216
GenF1.menu.pnum.GENERIC_F103ZDHX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103ZDHX.build.board=GENERIC_F103ZDHX
GenF1.menu.pnum.GENERIC_F103ZDHX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103ZDHX.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)

# Generic F103ZEHx
GenF1.menu.pnum.GENERIC_F103ZEHX=Generic F103ZEHx
GenF1.menu.pnum.GENERIC_F103ZEHX.upload.maximum_size=524288
GenF1.menu.pnum.GENERIC_F103ZEHX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103ZEHX.build.board=GENERIC_F103ZEHX
GenF1.menu.pnum.GENERIC_F103ZEHX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103ZEHX.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)

# Generic F103ZCTx
GenF1.menu.pnum.GENERIC_F103ZCTX=Generic F103ZCTx
GenF1.menu.pnum.GENERIC_F103ZCTX.upload.maximum_size=262144
GenF1.menu.pnum.GENERIC_F103ZCTX.upload.maximum_data_size=49152
GenF1.menu.pnum.GENERIC_F103ZCTX.build.board=GENERIC_F103ZCTX
GenF1.menu.pnum.GENERIC_F103ZCTX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103ZCTX.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)

# Generic F103ZDTx
GenF1.menu.pnum.GENERIC_F103ZDTX=Generic F103ZDTx
GenF1.menu.pnum.GENERIC_F103ZDTX.upload.maximum_size=393216
GenF1.menu.pnum.GENERIC_F103ZDTX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103ZDTX.build.board=GENERIC_F103ZDTX
GenF1.menu.pnum.GENERIC_F103ZDTX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103ZDTX.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)

# Generic F103ZETx
GenF1.menu.pnum.GENERIC_F103ZETX=Generic F103ZETx
GenF1.menu.pnum.GENERIC_F103ZETX.upload.maximum_size=524288
GenF1.menu.pnum.GENERIC_F103ZETX.upload.maximum_data_size=65536
GenF1.menu.pnum.GENERIC_F103ZETX.build.board=GENERIC_F103ZETX
GenF1.menu.pnum.GENERIC_F103ZETX.build.product_line=STM32F103xE
GenF1.menu.pnum.GENERIC_F103ZETX.build.variant=STM32F1xx/F103Z(C-D-E)(H-T)

# Generic F103ZFHx
GenF1.menu.pnum.GENERIC_F103ZFHX=Generic F103ZFHx
GenF1.menu.pnum.GENERIC_F103ZFHX.upload.maximum_size=786432
GenF1.menu.pnum.GENERIC_F103ZFHX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103ZFHX.build.board=GENERIC_F103ZFHX
GenF1.menu.pnum.GENERIC_F103ZFHX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103ZFHX.build.variant=STM32F1xx/F103Z(F-G)(H-T)

# Generic F103ZGHx
GenF1.menu.pnum.GENERIC_F103ZGHX=Generic F103ZGHx
GenF1.menu.pnum.GENERIC_F103ZGHX.upload.maximum_size=1048576
GenF1.menu.pnum.GENERIC_F103ZGHX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103ZGHX.build.board=GENERIC_F103ZGHX
GenF1.menu.pnum.GENERIC_F103ZGHX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103ZGHX.build.variant=STM32F1xx/F103Z(F-G)(H-T)

# Generic F103ZFTx
GenF1.menu.pnum.GENERIC_F103ZFTX=Generic F103ZFTx
GenF1.menu.pnum.GENERIC_F103ZFTX.upload.maximum_size=786432
GenF1.menu.pnum.GENERIC_F103ZFTX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103ZFTX.build.board=GENERIC_F103ZFTX
GenF1.menu.pnum.GENERIC_F103ZFTX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103ZFTX.build.variant=STM32F1xx/F103Z(F-G)(H-T)

# Generic F103ZGTx
GenF1.menu.pnum.GENERIC_F103ZGTX=Generic F103ZGTx
GenF1.menu.pnum.GENERIC_F103ZGTX.upload.maximum_size=1048576
GenF1.menu.pnum.GENERIC_F103ZGTX.upload.maximum_data_size=98304
GenF1.menu.pnum.GENERIC_F103ZGTX.build.board=GENERIC_F103ZGTX
GenF1.menu.pnum.GENERIC_F103ZGTX.build.product_line=STM32F103xG
GenF1.menu.pnum.GENERIC_F103ZGTX.build.variant=STM32F1xx/F103Z(F-G)(H-T)

# Upload menu
GenF1.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenF1.menu.upload_method.swdMethod.upload.protocol=0
GenF1.menu.upload_method.swdMethod.upload.options=-g
GenF1.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenF1.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenF1.menu.upload_method.serialMethod.upload.protocol=1
GenF1.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenF1.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenF1.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenF1.menu.upload_method.dfuMethod.upload.protocol=2
GenF1.menu.upload_method.dfuMethod.upload.options=-g
GenF1.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

GenF1.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
GenF1.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
GenF1.menu.upload_method.bmpMethod.upload.tool=bmp_upload

GenF1.menu.upload_method.hidMethod=HID Bootloader 2.2
GenF1.menu.upload_method.hidMethod.upload.protocol=hid22
GenF1.menu.upload_method.hidMethod.upload.tool=hid_upload
GenF1.menu.upload_method.hidMethod.build.flash_offset=0x800
GenF1.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset}

GenF1.menu.upload_method.dfu2Method=Maple DFU Bootloader 2.0
GenF1.menu.upload_method.dfu2Method.upload.protocol=maple
GenF1.menu.upload_method.dfu2Method.upload.tool=maple_upload
GenF1.menu.upload_method.dfu2Method.upload.usbID=1EAF:0003
GenF1.menu.upload_method.dfu2Method.upload.altID=2
GenF1.menu.upload_method.dfu2Method.build.flash_offset=0x2000
GenF1.menu.upload_method.dfu2Method.build.bootloader_flags=-DBL_LEGACY_LEAF -DVECT_TAB_OFFSET={build.flash_offset}

GenF1.menu.upload_method.dfuoMethod=Maple DFU Bootloader original
GenF1.menu.upload_method.dfuoMethod.upload.protocol=maple
GenF1.menu.upload_method.dfuoMethod.upload.tool=maple_upload
GenF1.menu.upload_method.dfuoMethod.upload.usbID=1EAF:0003
GenF1.menu.upload_method.dfuoMethod.upload.altID=1
GenF1.menu.upload_method.dfuoMethod.build.flash_offset=0x5000
GenF1.menu.upload_method.dfuoMethod.build.bootloader_flags=-DBL_LEGACY_LEAF -DVECT_TAB_OFFSET={build.flash_offset}

################################################################################
# Generic F2
GenF2.name=Generic STM32F2 series

GenF2.build.core=arduino
GenF2.build.board=GenF2
GenF2.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
GenF2.build.mcu=cortex-m3
GenF2.build.series=STM32F2xx
GenF2.build.cmsis_lib_gcc=arm_cortexM3l_math

# Generic F207ZCTx
GenF2.menu.pnum.GENERIC_F207ZCTX=Generic F207ZCTx
GenF2.menu.pnum.GENERIC_F207ZCTX.upload.maximum_size=262144
GenF2.menu.pnum.GENERIC_F207ZCTX.upload.maximum_data_size=131072
GenF2.menu.pnum.GENERIC_F207ZCTX.build.board=GENERIC_F207ZCTX
GenF2.menu.pnum.GENERIC_F207ZCTX.build.product_line=STM32F207xx
GenF2.menu.pnum.GENERIC_F207ZCTX.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z(E-G)T

# Generic F207ZETx
GenF2.menu.pnum.GENERIC_F207ZETX=Generic F207ZETx
GenF2.menu.pnum.GENERIC_F207ZETX.upload.maximum_size=524288
GenF2.menu.pnum.GENERIC_F207ZETX.upload.maximum_data_size=131072
GenF2.menu.pnum.GENERIC_F207ZETX.build.board=GENERIC_F207ZETX
GenF2.menu.pnum.GENERIC_F207ZETX.build.product_line=STM32F207xx
GenF2.menu.pnum.GENERIC_F207ZETX.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z(E-G)T

# Generic F207ZFTx
GenF2.menu.pnum.GENERIC_F207ZFTX=Generic F207ZFTx
GenF2.menu.pnum.GENERIC_F207ZFTX.upload.maximum_size=786432
GenF2.menu.pnum.GENERIC_F207ZFTX.upload.maximum_data_size=131072
GenF2.menu.pnum.GENERIC_F207ZFTX.build.board=GENERIC_F207ZFTX
GenF2.menu.pnum.GENERIC_F207ZFTX.build.product_line=STM32F207xx
GenF2.menu.pnum.GENERIC_F207ZFTX.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z(E-G)T

# Generic F207ZGTx
GenF2.menu.pnum.GENERIC_F207ZGTX=Generic F207ZGTx
GenF2.menu.pnum.GENERIC_F207ZGTX.upload.maximum_size=1048576
GenF2.menu.pnum.GENERIC_F207ZGTX.upload.maximum_data_size=131072
GenF2.menu.pnum.GENERIC_F207ZGTX.build.board=GENERIC_F207ZGTX
GenF2.menu.pnum.GENERIC_F207ZGTX.build.product_line=STM32F207xx
GenF2.menu.pnum.GENERIC_F207ZGTX.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z(E-G)T

# Generic F217ZETx
GenF2.menu.pnum.GENERIC_F217ZETX=Generic F217ZETx
GenF2.menu.pnum.GENERIC_F217ZETX.upload.maximum_size=524288
GenF2.menu.pnum.GENERIC_F217ZETX.upload.maximum_data_size=131072
GenF2.menu.pnum.GENERIC_F217ZETX.build.board=GENERIC_F217ZETX
GenF2.menu.pnum.GENERIC_F217ZETX.build.product_line=STM32F217xx
GenF2.menu.pnum.GENERIC_F217ZETX.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z(E-G)T

# Generic F217ZGTx
GenF2.menu.pnum.GENERIC_F217ZGTX=Generic F217ZGTx
GenF2.menu.pnum.GENERIC_F217ZGTX.upload.maximum_size=1048576
GenF2.menu.pnum.GENERIC_F217ZGTX.upload.maximum_data_size=131072
GenF2.menu.pnum.GENERIC_F217ZGTX.build.board=GENERIC_F217ZGTX
GenF2.menu.pnum.GENERIC_F217ZGTX.build.product_line=STM32F217xx
GenF2.menu.pnum.GENERIC_F217ZGTX.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z(E-G)T

# Upload menu
GenF2.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenF2.menu.upload_method.swdMethod.upload.protocol=0
GenF2.menu.upload_method.swdMethod.upload.options=-g
GenF2.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenF2.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenF2.menu.upload_method.serialMethod.upload.protocol=1
GenF2.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenF2.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenF2.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenF2.menu.upload_method.dfuMethod.upload.protocol=2
GenF2.menu.upload_method.dfuMethod.upload.options=-g
GenF2.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Generic F3

GenF3.name=Generic STM32F3 series

GenF3.build.core=arduino
GenF3.build.board=GenF3
GenF3.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags}
GenF3.build.mcu=cortex-m4
GenF3.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenF3.build.series=STM32F3xx
GenF3.build.cmsis_lib_gcc=arm_cortexM4lf_math

# BLACKPILL_F303CC
GenF3.menu.pnum.BLACKPILL_F303CC=RobotDyn BlackPill F303CC
GenF3.menu.pnum.BLACKPILL_F303CC.upload.maximum_size=262144
GenF3.menu.pnum.BLACKPILL_F303CC.upload.maximum_data_size=40960
GenF3.menu.pnum.BLACKPILL_F303CC.build.board=BLACKPILL_F303CC
GenF3.menu.pnum.BLACKPILL_F303CC.build.product_line=STM32F303xC
GenF3.menu.pnum.BLACKPILL_F303CC.build.variant_h=variant_{build.board}.h
GenF3.menu.pnum.BLACKPILL_F303CC.build.variant=STM32F3xx/F303C(B-C)T

# OLIMEXINO_STM32F3
GenF3.menu.pnum.OLIMEXINO_STM32F3=OLIMEXINO-STM32F3
GenF3.menu.pnum.OLIMEXINO_STM32F3.upload.maximum_size=262144
GenF3.menu.pnum.OLIMEXINO_STM32F3.upload.maximum_data_size=40960
GenF3.menu.pnum.OLIMEXINO_STM32F3.build.board=OLIMEXINO_STM32F3
GenF3.menu.pnum.OLIMEXINO_STM32F3.build.product_line=STM32F303xC
GenF3.menu.pnum.OLIMEXINO_STM32F3.build.variant_h=variant_{build.board}.h
GenF3.menu.pnum.OLIMEXINO_STM32F3.build.variant=STM32F3xx/F303R(B-C)T

# Generic F302R6Tx
GenF3.menu.pnum.GENERIC_F302R6TX=Generic F302R6Tx
GenF3.menu.pnum.GENERIC_F302R6TX.upload.maximum_size=32768
GenF3.menu.pnum.GENERIC_F302R6TX.upload.maximum_data_size=16384
GenF3.menu.pnum.GENERIC_F302R6TX.build.board=GENERIC_F302R6TX
GenF3.menu.pnum.GENERIC_F302R6TX.build.product_line=STM32F302x8
GenF3.menu.pnum.GENERIC_F302R6TX.build.variant=STM32F3xx/F302R(6-8)T

# Generic F302R8Tx
GenF3.menu.pnum.GENERIC_F302R8TX=Generic F302R8Tx
GenF3.menu.pnum.GENERIC_F302R8TX.upload.maximum_size=65536
GenF3.menu.pnum.GENERIC_F302R8TX.upload.maximum_data_size=16384
GenF3.menu.pnum.GENERIC_F302R8TX.build.board=GENERIC_F302R8TX
GenF3.menu.pnum.GENERIC_F302R8TX.build.product_line=STM32F302x8
GenF3.menu.pnum.GENERIC_F302R8TX.build.variant=STM32F3xx/F302R(6-8)T

# Generic F303CBTx
GenF3.menu.pnum.GENERIC_F303CBTX=Generic F303CBTx
GenF3.menu.pnum.GENERIC_F303CBTX.upload.maximum_size=131072
GenF3.menu.pnum.GENERIC_F303CBTX.upload.maximum_data_size=32768
GenF3.menu.pnum.GENERIC_F303CBTX.build.board=GENERIC_F303CBTX
GenF3.menu.pnum.GENERIC_F303CBTX.build.product_line=STM32F303xC
GenF3.menu.pnum.GENERIC_F303CBTX.build.variant=STM32F3xx/F303C(B-C)T

# Generic F303CCTx
GenF3.menu.pnum.GENERIC_F303CCTX=Generic F303CCTx
GenF3.menu.pnum.GENERIC_F303CCTX.upload.maximum_size=262144
GenF3.menu.pnum.GENERIC_F303CCTX.upload.maximum_data_size=40960
GenF3.menu.pnum.GENERIC_F303CCTX.build.board=GENERIC_F303CCTX
GenF3.menu.pnum.GENERIC_F303CCTX.build.product_line=STM32F303xC
GenF3.menu.pnum.GENERIC_F303CCTX.build.variant=STM32F3xx/F303C(B-C)T

# Generic F303K6Tx
GenF3.menu.pnum.GENERIC_F303K6TX=Generic F303K6Tx
GenF3.menu.pnum.GENERIC_F303K6TX.upload.maximum_size=32768
GenF3.menu.pnum.GENERIC_F303K6TX.upload.maximum_data_size=12288
GenF3.menu.pnum.GENERIC_F303K6TX.build.board=GENERIC_F303K6TX
GenF3.menu.pnum.GENERIC_F303K6TX.build.product_line=STM32F303x8
GenF3.menu.pnum.GENERIC_F303K6TX.build.variant=STM32F3xx/F303K(6-8)T_F334K(4-6-8)T

# Generic F303K8Tx
GenF3.menu.pnum.GENERIC_F303K8TX=Generic F303K8Tx
GenF3.menu.pnum.GENERIC_F303K8TX.upload.maximum_size=65536
GenF3.menu.pnum.GENERIC_F303K8TX.upload.maximum_data_size=12288
GenF3.menu.pnum.GENERIC_F303K8TX.build.board=GENERIC_F303K8TX
GenF3.menu.pnum.GENERIC_F303K8TX.build.product_line=STM32F303x8
GenF3.menu.pnum.GENERIC_F303K8TX.build.variant=STM32F3xx/F303K(6-8)T_F334K(4-6-8)T

# Generic F303RBTx
GenF3.menu.pnum.GENERIC_F303RBTX=Generic F303RBTx
GenF3.menu.pnum.GENERIC_F303RBTX.upload.maximum_size=131072
GenF3.menu.pnum.GENERIC_F303RBTX.upload.maximum_data_size=32768
GenF3.menu.pnum.GENERIC_F303RBTX.build.board=GENERIC_F303RBTX
GenF3.menu.pnum.GENERIC_F303RBTX.build.product_line=STM32F303xC
GenF3.menu.pnum.GENERIC_F303RBTX.build.variant=STM32F3xx/F303R(B-C)T

# Generic F303RCTx
GenF3.menu.pnum.GENERIC_F303RCTX=Generic F303RCTx
GenF3.menu.pnum.GENERIC_F303RCTX.upload.maximum_size=262144
GenF3.menu.pnum.GENERIC_F303RCTX.upload.maximum_data_size=40960
GenF3.menu.pnum.GENERIC_F303RCTX.build.board=GENERIC_F303RCTX
GenF3.menu.pnum.GENERIC_F303RCTX.build.product_line=STM32F303xC
GenF3.menu.pnum.GENERIC_F303RCTX.build.variant=STM32F3xx/F303R(B-C)T

# Generic F303RDTx
GenF3.menu.pnum.GENERIC_F303RDTX=Generic F303RDTx
GenF3.menu.pnum.GENERIC_F303RDTX.upload.maximum_size=393216
GenF3.menu.pnum.GENERIC_F303RDTX.upload.maximum_data_size=65536
GenF3.menu.pnum.GENERIC_F303RDTX.build.board=GENERIC_F303RDTX
GenF3.menu.pnum.GENERIC_F303RDTX.build.product_line=STM32F303xE
GenF3.menu.pnum.GENERIC_F303RDTX.build.variant=STM32F3xx/F303R(D-E)T

# Generic F303RETx
GenF3.menu.pnum.GENERIC_F303RETX=Generic F303RETx
GenF3.menu.pnum.GENERIC_F303RETX.upload.maximum_size=524288
GenF3.menu.pnum.GENERIC_F303RETX.upload.maximum_data_size=65536
GenF3.menu.pnum.GENERIC_F303RETX.build.board=GENERIC_F303RETX
GenF3.menu.pnum.GENERIC_F303RETX.build.product_line=STM32F303xE
GenF3.menu.pnum.GENERIC_F303RETX.build.variant=STM32F3xx/F303R(D-E)T

# Generic F303VBTx
GenF3.menu.pnum.GENERIC_F303VBTX=Generic F303VBTx
GenF3.menu.pnum.GENERIC_F303VBTX.upload.maximum_size=131072
GenF3.menu.pnum.GENERIC_F303VBTX.upload.maximum_data_size=32768
GenF3.menu.pnum.GENERIC_F303VBTX.build.board=GENERIC_F303VBTX
GenF3.menu.pnum.GENERIC_F303VBTX.build.product_line=STM32F303xC
GenF3.menu.pnum.GENERIC_F303VBTX.build.variant=STM32F3xx/F303V(B-C)T

# Generic F303VCTx
GenF3.menu.pnum.GENERIC_F303VCTX=Generic F303VCTx
GenF3.menu.pnum.GENERIC_F303VCTX.upload.maximum_size=262144
GenF3.menu.pnum.GENERIC_F303VCTX.upload.maximum_data_size=40960
GenF3.menu.pnum.GENERIC_F303VCTX.build.board=GENERIC_F303VCTX
GenF3.menu.pnum.GENERIC_F303VCTX.build.product_line=STM32F303xC
GenF3.menu.pnum.GENERIC_F303VCTX.build.variant=STM32F3xx/F303V(B-C)T

# Generic F334K4Tx
GenF3.menu.pnum.GENERIC_F334K4TX=Generic F334K4Tx
GenF3.menu.pnum.GENERIC_F334K4TX.upload.maximum_size=16384
GenF3.menu.pnum.GENERIC_F334K4TX.upload.maximum_data_size=12288
GenF3.menu.pnum.GENERIC_F334K4TX.build.board=GENERIC_F334K4TX
GenF3.menu.pnum.GENERIC_F334K4TX.build.product_line=STM32F334x8
GenF3.menu.pnum.GENERIC_F334K4TX.build.variant=STM32F3xx/F303K(6-8)T_F334K(4-6-8)T

# Generic F334K6Tx
GenF3.menu.pnum.GENERIC_F334K6TX=Generic F334K6Tx
GenF3.menu.pnum.GENERIC_F334K6TX.upload.maximum_size=32768
GenF3.menu.pnum.GENERIC_F334K6TX.upload.maximum_data_size=12288
GenF3.menu.pnum.GENERIC_F334K6TX.build.board=GENERIC_F334K6TX
GenF3.menu.pnum.GENERIC_F334K6TX.build.product_line=STM32F334x8
GenF3.menu.pnum.GENERIC_F334K6TX.build.variant=STM32F3xx/F303K(6-8)T_F334K(4-6-8)T

# Generic F334K8Tx
GenF3.menu.pnum.GENERIC_F334K8TX=Generic F334K8Tx
GenF3.menu.pnum.GENERIC_F334K8TX.upload.maximum_size=65536
GenF3.menu.pnum.GENERIC_F334K8TX.upload.maximum_data_size=12288
GenF3.menu.pnum.GENERIC_F334K8TX.build.board=GENERIC_F334K8TX
GenF3.menu.pnum.GENERIC_F334K8TX.build.product_line=STM32F334x8
GenF3.menu.pnum.GENERIC_F334K8TX.build.variant=STM32F3xx/F303K(6-8)T_F334K(4-6-8)T

# Upload menu
GenF3.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenF3.menu.upload_method.swdMethod.upload.protocol=0
GenF3.menu.upload_method.swdMethod.upload.options=-g
GenF3.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenF3.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenF3.menu.upload_method.serialMethod.upload.protocol=1
GenF3.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenF3.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenF3.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenF3.menu.upload_method.dfuMethod.upload.protocol=2
GenF3.menu.upload_method.dfuMethod.upload.options=-g
GenF3.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

GenF3.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
GenF3.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
GenF3.menu.upload_method.bmpMethod.upload.tool=bmp_upload

################################################################################
# Generic F4

GenF4.name=Generic STM32F4 series

GenF4.build.core=arduino
GenF4.build.board=GenF4
GenF4.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags}
GenF4.build.mcu=cortex-m4
GenF4.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenF4.build.series=STM32F4xx
GenF4.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Black F407VE
# https://github.com/mcauser/BLACK_F407VEZ
GenF4.menu.pnum.BLACK_F407VE=Black F407VE
GenF4.menu.pnum.BLACK_F407VE.upload.maximum_size=524288
GenF4.menu.pnum.BLACK_F407VE.upload.maximum_data_size=131072
GenF4.menu.pnum.BLACK_F407VE.build.board=BLACK_F407VE
GenF4.menu.pnum.BLACK_F407VE.build.product_line=STM32F407xx
GenF4.menu.pnum.BLACK_F407VE.build.variant_h=variant_BLACK_F407VX.h
GenF4.menu.pnum.BLACK_F407VE.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
GenF4.menu.pnum.BLACK_F407VE.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Black F407VG
# https://github.com/mcauser/BLACK_F407VEZ with bigger chip
GenF4.menu.pnum.BLACK_F407VG=Black F407VG
GenF4.menu.pnum.BLACK_F407VG.upload.maximum_size=1048576
GenF4.menu.pnum.BLACK_F407VG.upload.maximum_data_size=131072
GenF4.menu.pnum.BLACK_F407VG.build.board=BLACK_F407VG
GenF4.menu.pnum.BLACK_F407VG.build.product_line=STM32F407xx
GenF4.menu.pnum.BLACK_F407VG.build.variant_h=variant_BLACK_F407VX.h
GenF4.menu.pnum.BLACK_F407VG.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
GenF4.menu.pnum.BLACK_F407VG.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Black F407ZE
# https://github.com/mcauser/BLACK_F407ZE
GenF4.menu.pnum.BLACK_F407ZE=Black F407ZE
GenF4.menu.pnum.BLACK_F407ZE.upload.maximum_size=524288
GenF4.menu.pnum.BLACK_F407ZE.upload.maximum_data_size=131072
GenF4.menu.pnum.BLACK_F407ZE.build.board=BLACK_F407ZE
GenF4.menu.pnum.BLACK_F407ZE.build.product_line=STM32F407xx
GenF4.menu.pnum.BLACK_F407ZE.build.variant_h=variant_BLACK_F407ZX.h
GenF4.menu.pnum.BLACK_F407ZE.build.variant=STM32F4xx/F407Z(E-G)T_F417Z(E-G)T
GenF4.menu.pnum.BLACK_F407ZE.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Black F407ZG
# https://github.com/mcauser/BLACK_F407ZG
GenF4.menu.pnum.BLACK_F407ZG=Black F407ZG
GenF4.menu.pnum.BLACK_F407ZG.upload.maximum_size=1048576
GenF4.menu.pnum.BLACK_F407ZG.upload.maximum_data_size=131072
GenF4.menu.pnum.BLACK_F407ZG.build.board=BLACK_F407ZG
GenF4.menu.pnum.BLACK_F407ZG.build.product_line=STM32F407xx
GenF4.menu.pnum.BLACK_F407ZG.build.variant_h=variant_BLACK_F407ZX.h
GenF4.menu.pnum.BLACK_F407ZG.build.variant=STM32F4xx/F407Z(E-G)T_F417Z(E-G)T
GenF4.menu.pnum.BLACK_F407ZG.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Blue F407VE mini: http://wiki.stm32duino.com/index.php?title=Vcc-gnd.com_STM32F407VET6_Mini
GenF4.menu.pnum.BLUE_F407VE_MINI=Blue F407VE mini
GenF4.menu.pnum.BLUE_F407VE_MINI.upload.maximum_size=524288
GenF4.menu.pnum.BLUE_F407VE_MINI.upload.maximum_data_size=131072
GenF4.menu.pnum.BLUE_F407VE_MINI.build.board=BLUE_F407VE_MINI
GenF4.menu.pnum.BLUE_F407VE_MINI.build.product_line=STM32F407xx
GenF4.menu.pnum.BLUE_F407VE_MINI.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.BLUE_F407VE_MINI.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
GenF4.menu.pnum.BLUE_F407VE_MINI.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# DIYMORE STM32F407VGT board
GenF4.menu.pnum.DIYMORE_F407VGT=DIYMORE STM32F407VGT
GenF4.menu.pnum.DIYMORE_F407VGT.upload.maximum_size=1048576
GenF4.menu.pnum.DIYMORE_F407VGT.upload.maximum_data_size=131072
GenF4.menu.pnum.DIYMORE_F407VGT.build.board=DIYMORE_F407VGT
GenF4.menu.pnum.DIYMORE_F407VGT.build.product_line=STM32F407xx
GenF4.menu.pnum.DIYMORE_F407VGT.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
GenF4.menu.pnum.DIYMORE_F407VGT.build.variant_h=variant_{build.board}.h

# FK407M1
GenF4.menu.pnum.FK407M1=FK407M1 STM32F407VET
GenF4.menu.pnum.FK407M1.upload.maximum_size=524288
GenF4.menu.pnum.FK407M1.upload.maximum_data_size=131072
GenF4.menu.pnum.FK407M1.build.board=FK407M1
GenF4.menu.pnum.FK407M1.build.product_line=STM32F407xx
GenF4.menu.pnum.FK407M1.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
GenF4.menu.pnum.FK407M1.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.FK407M1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# BlackPill F401CC
GenF4.menu.pnum.BLACKPILL_F401CC=BlackPill F401CC
GenF4.menu.pnum.BLACKPILL_F401CC.upload.maximum_size=262144
GenF4.menu.pnum.BLACKPILL_F401CC.upload.maximum_data_size=65536
GenF4.menu.pnum.BLACKPILL_F401CC.build.board=BLACKPILL_F401CC
GenF4.menu.pnum.BLACKPILL_F401CC.build.product_line=STM32F401xC
GenF4.menu.pnum.BLACKPILL_F401CC.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)
GenF4.menu.pnum.BLACKPILL_F401CC.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.BLACKPILL_F401CC.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# BlackPill F411CE
# https://github.com/mcauser/WEACT_F411CEU6
GenF4.menu.pnum.BLACKPILL_F411CE=BlackPill F411CE
GenF4.menu.pnum.BLACKPILL_F411CE.upload.maximum_size=524288
GenF4.menu.pnum.BLACKPILL_F411CE.upload.maximum_data_size=131072
GenF4.menu.pnum.BLACKPILL_F411CE.build.board=BLACKPILL_F411CE
GenF4.menu.pnum.BLACKPILL_F411CE.build.product_line=STM32F411xE
GenF4.menu.pnum.BLACKPILL_F411CE.build.variant=STM32F4xx/F411C(C-E)(U-Y)
GenF4.menu.pnum.BLACKPILL_F411CE.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.BLACKPILL_F411CE.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Core board F401RCT6
# https://stm32-base.org/boards/STM32F401RCT6-STM32F-Core-Board
GenF4.menu.pnum.CoreBoard_F401RC=Core board F401RCT6
GenF4.menu.pnum.CoreBoard_F401RC.upload.maximum_size=262144
GenF4.menu.pnum.CoreBoard_F401RC.upload.maximum_data_size=65536
GenF4.menu.pnum.CoreBoard_F401RC.build.board=CoreBoard_F401RC
GenF4.menu.pnum.CoreBoard_F401RC.build.product_line=STM32F401xC
GenF4.menu.pnum.CoreBoard_F401RC.build.variant=STM32F4xx/F401R(B-C-D-E)T
GenF4.menu.pnum.CoreBoard_F401RC.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.CoreBoard_F401RC.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Adafruit Feather STM32F405 board
GenF4.menu.pnum.FEATHER_F405=Adafruit Feather STM32F405
GenF4.menu.pnum.FEATHER_F405.upload.maximum_size=1048576
GenF4.menu.pnum.FEATHER_F405.upload.maximum_data_size=131072
GenF4.menu.pnum.FEATHER_F405.build.board=FEATHER_F405
GenF4.menu.pnum.FEATHER_F405.build.product_line=STM32F405xx
GenF4.menu.pnum.FEATHER_F405.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.FEATHER_F405.build.variant=STM32F4xx/F405RGT_F415RGT
GenF4.menu.pnum.FEATHER_F405.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# ThunderPack F411xxE
# https://github.com/jgillick/ThunderPack/tree/STM32F4
GenF4.menu.pnum.THUNDERPACK_F411=ThunderPack v1.1+
GenF4.menu.pnum.THUNDERPACK_F411.upload.maximum_size=524288
GenF4.menu.pnum.THUNDERPACK_F411.upload.maximum_data_size=131072
GenF4.menu.pnum.THUNDERPACK_F411.build.board=THUNDERPACK_F411
GenF4.menu.pnum.THUNDERPACK_F411.build.product_line=STM32F411xE
GenF4.menu.pnum.THUNDERPACK_F411.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.THUNDERPACK_F411.build.variant=STM32F4xx/F411C(C-E)(U-Y)
GenF4.menu.pnum.THUNDERPACK_F411.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# VCCGND_F407ZGT6 board
GenF4.menu.pnum.VCCGND_F407ZG_MINI=VCCGND F407ZGT6 Mini
GenF4.menu.pnum.VCCGND_F407ZG_MINI.upload.maximum_size=1048576
GenF4.menu.pnum.VCCGND_F407ZG_MINI.upload.maximum_data_size=131072
GenF4.menu.pnum.VCCGND_F407ZG_MINI.build.board=VCCGND_F407ZG_MINI
GenF4.menu.pnum.VCCGND_F407ZG_MINI.build.product_line=STM32F407xx
GenF4.menu.pnum.VCCGND_F407ZG_MINI.build.variant_h=variant_{build.board}.h
GenF4.menu.pnum.VCCGND_F407ZG_MINI.build.variant=STM32F4xx/F407Z(E-G)T_F417Z(E-G)T
GenF4.menu.pnum.VCCGND_F407ZG_MINI.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Generic F401CBUx
GenF4.menu.pnum.GENERIC_F401CBUX=Generic F401CBUx
GenF4.menu.pnum.GENERIC_F401CBUX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F401CBUX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401CBUX.build.board=GENERIC_F401CBUX
GenF4.menu.pnum.GENERIC_F401CBUX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401CBUX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CCUx
GenF4.menu.pnum.GENERIC_F401CCUX=Generic F401CCUx
GenF4.menu.pnum.GENERIC_F401CCUX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F401CCUX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401CCUX.build.board=GENERIC_F401CCUX
GenF4.menu.pnum.GENERIC_F401CCUX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401CCUX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CBYx
GenF4.menu.pnum.GENERIC_F401CBYX=Generic F401CBYx
GenF4.menu.pnum.GENERIC_F401CBYX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F401CBYX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401CBYX.build.board=GENERIC_F401CBYX
GenF4.menu.pnum.GENERIC_F401CBYX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401CBYX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CCYx
GenF4.menu.pnum.GENERIC_F401CCYX=Generic F401CCYx
GenF4.menu.pnum.GENERIC_F401CCYX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F401CCYX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401CCYX.build.board=GENERIC_F401CCYX
GenF4.menu.pnum.GENERIC_F401CCYX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401CCYX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CDUx
GenF4.menu.pnum.GENERIC_F401CDUX=Generic F401CDUx
GenF4.menu.pnum.GENERIC_F401CDUX.upload.maximum_size=393216
GenF4.menu.pnum.GENERIC_F401CDUX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401CDUX.build.board=GENERIC_F401CDUX
GenF4.menu.pnum.GENERIC_F401CDUX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401CDUX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CEUx
GenF4.menu.pnum.GENERIC_F401CEUX=Generic F401CEUx
GenF4.menu.pnum.GENERIC_F401CEUX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F401CEUX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401CEUX.build.board=GENERIC_F401CEUX
GenF4.menu.pnum.GENERIC_F401CEUX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401CEUX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CDYx
GenF4.menu.pnum.GENERIC_F401CDYX=Generic F401CDYx
GenF4.menu.pnum.GENERIC_F401CDYX.upload.maximum_size=393216
GenF4.menu.pnum.GENERIC_F401CDYX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401CDYX.build.board=GENERIC_F401CDYX
GenF4.menu.pnum.GENERIC_F401CDYX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401CDYX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CEYx
GenF4.menu.pnum.GENERIC_F401CEYX=Generic F401CEYx
GenF4.menu.pnum.GENERIC_F401CEYX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F401CEYX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401CEYX.build.board=GENERIC_F401CEYX
GenF4.menu.pnum.GENERIC_F401CEYX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401CEYX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401CCFx
GenF4.menu.pnum.GENERIC_F401CCFX=Generic F401CCFx
GenF4.menu.pnum.GENERIC_F401CCFX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F401CCFX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401CCFX.build.board=GENERIC_F401CCFX
GenF4.menu.pnum.GENERIC_F401CCFX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401CCFX.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)

# Generic F401RBTx
GenF4.menu.pnum.GENERIC_F401RBTX=Generic F401RBTx
GenF4.menu.pnum.GENERIC_F401RBTX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F401RBTX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401RBTX.build.board=GENERIC_F401RBTX
GenF4.menu.pnum.GENERIC_F401RBTX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401RBTX.build.variant=STM32F4xx/F401R(B-C-D-E)T

# Generic F401RCTx
GenF4.menu.pnum.GENERIC_F401RCTX=Generic F401RCTx
GenF4.menu.pnum.GENERIC_F401RCTX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F401RCTX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401RCTX.build.board=GENERIC_F401RCTX
GenF4.menu.pnum.GENERIC_F401RCTX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401RCTX.build.variant=STM32F4xx/F401R(B-C-D-E)T

# Generic F401RDTx
GenF4.menu.pnum.GENERIC_F401RDTX=Generic F401RDTx
GenF4.menu.pnum.GENERIC_F401RDTX.upload.maximum_size=393216
GenF4.menu.pnum.GENERIC_F401RDTX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401RDTX.build.board=GENERIC_F401RDTX
GenF4.menu.pnum.GENERIC_F401RDTX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401RDTX.build.variant=STM32F4xx/F401R(B-C-D-E)T

# Generic F401RETx
GenF4.menu.pnum.GENERIC_F401RETX=Generic F401RETx
GenF4.menu.pnum.GENERIC_F401RETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F401RETX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401RETX.build.board=GENERIC_F401RETX
GenF4.menu.pnum.GENERIC_F401RETX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401RETX.build.variant=STM32F4xx/F401R(B-C-D-E)T

# Generic F401VBTx
GenF4.menu.pnum.GENERIC_F401VBTX=Generic F401VBTx
GenF4.menu.pnum.GENERIC_F401VBTX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F401VBTX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401VBTX.build.board=GENERIC_F401VBTX
GenF4.menu.pnum.GENERIC_F401VBTX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401VBTX.build.variant=STM32F4xx/F401V(B-C-D-E)T

# Generic F401VCTx
GenF4.menu.pnum.GENERIC_F401VCTX=Generic F401VCTx
GenF4.menu.pnum.GENERIC_F401VCTX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F401VCTX.upload.maximum_data_size=65536
GenF4.menu.pnum.GENERIC_F401VCTX.build.board=GENERIC_F401VCTX
GenF4.menu.pnum.GENERIC_F401VCTX.build.product_line=STM32F401xC
GenF4.menu.pnum.GENERIC_F401VCTX.build.variant=STM32F4xx/F401V(B-C-D-E)T

# Generic F401VDTx
GenF4.menu.pnum.GENERIC_F401VDTX=Generic F401VDTx
GenF4.menu.pnum.GENERIC_F401VDTX.upload.maximum_size=393216
GenF4.menu.pnum.GENERIC_F401VDTX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401VDTX.build.board=GENERIC_F401VDTX
GenF4.menu.pnum.GENERIC_F401VDTX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401VDTX.build.variant=STM32F4xx/F401V(B-C-D-E)T

# Generic F401VETx
GenF4.menu.pnum.GENERIC_F401VETX=Generic F401VETx
GenF4.menu.pnum.GENERIC_F401VETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F401VETX.upload.maximum_data_size=98304
GenF4.menu.pnum.GENERIC_F401VETX.build.board=GENERIC_F401VETX
GenF4.menu.pnum.GENERIC_F401VETX.build.product_line=STM32F401xE
GenF4.menu.pnum.GENERIC_F401VETX.build.variant=STM32F4xx/F401V(B-C-D-E)T

# Generic F405RGTx
GenF4.menu.pnum.GENERIC_F405RGTX=Generic F405RGTx
GenF4.menu.pnum.GENERIC_F405RGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F405RGTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F405RGTX.build.board=GENERIC_F405RGTX
GenF4.menu.pnum.GENERIC_F405RGTX.build.product_line=STM32F405xx
GenF4.menu.pnum.GENERIC_F405RGTX.build.variant=STM32F4xx/F405RGT_F415RGT

# Generic F407VETx
GenF4.menu.pnum.GENERIC_F407VETX=Generic F407VETx
GenF4.menu.pnum.GENERIC_F407VETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F407VETX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F407VETX.build.board=GENERIC_F407VETX
GenF4.menu.pnum.GENERIC_F407VETX.build.product_line=STM32F407xx
GenF4.menu.pnum.GENERIC_F407VETX.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T

# Generic F407VGTx
GenF4.menu.pnum.GENERIC_F407VGTX=Generic F407VGTx
GenF4.menu.pnum.GENERIC_F407VGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F407VGTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F407VGTX.build.board=GENERIC_F407VGTX
GenF4.menu.pnum.GENERIC_F407VGTX.build.product_line=STM32F407xx
GenF4.menu.pnum.GENERIC_F407VGTX.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T

# Generic F407ZETx
GenF4.menu.pnum.GENERIC_F407ZETX=Generic F407ZETx
GenF4.menu.pnum.GENERIC_F407ZETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F407ZETX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F407ZETX.build.board=GENERIC_F407ZETX
GenF4.menu.pnum.GENERIC_F407ZETX.build.product_line=STM32F407xx
GenF4.menu.pnum.GENERIC_F407ZETX.build.variant=STM32F4xx/F407Z(E-G)T_F417Z(E-G)T

# Generic F407ZGTx
GenF4.menu.pnum.GENERIC_F407ZGTX=Generic F407ZGTx
GenF4.menu.pnum.GENERIC_F407ZGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F407ZGTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F407ZGTX.build.board=GENERIC_F407ZGTX
GenF4.menu.pnum.GENERIC_F407ZGTX.build.product_line=STM32F407xx
GenF4.menu.pnum.GENERIC_F407ZGTX.build.variant=STM32F4xx/F407Z(E-G)T_F417Z(E-G)T

# Generic F410C8Tx
GenF4.menu.pnum.GENERIC_F410C8TX=Generic F410C8Tx
GenF4.menu.pnum.GENERIC_F410C8TX.upload.maximum_size=65536
GenF4.menu.pnum.GENERIC_F410C8TX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410C8TX.build.board=GENERIC_F410C8TX
GenF4.menu.pnum.GENERIC_F410C8TX.build.product_line=STM32F410Cx
GenF4.menu.pnum.GENERIC_F410C8TX.build.variant=STM32F4xx/F410C(8-B)T

# Generic F410C8Ux
GenF4.menu.pnum.GENERIC_F410C8UX=Generic F410C8Ux
GenF4.menu.pnum.GENERIC_F410C8UX.upload.maximum_size=65536
GenF4.menu.pnum.GENERIC_F410C8UX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410C8UX.build.board=GENERIC_F410C8UX
GenF4.menu.pnum.GENERIC_F410C8UX.build.product_line=STM32F410Cx
GenF4.menu.pnum.GENERIC_F410C8UX.build.variant=STM32F4xx/F410C(8-B)U

# Generic F410CBTx
GenF4.menu.pnum.GENERIC_F410CBTX=Generic F410CBTx
GenF4.menu.pnum.GENERIC_F410CBTX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F410CBTX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410CBTX.build.board=GENERIC_F410CBTX
GenF4.menu.pnum.GENERIC_F410CBTX.build.product_line=STM32F410Cx
GenF4.menu.pnum.GENERIC_F410CBTX.build.variant=STM32F4xx/F410C(8-B)T

# Generic F410CBUx
GenF4.menu.pnum.GENERIC_F410CBUX=Generic F410CBUx
GenF4.menu.pnum.GENERIC_F410CBUX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F410CBUX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410CBUX.build.board=GENERIC_F410CBUX
GenF4.menu.pnum.GENERIC_F410CBUX.build.product_line=STM32F410Cx
GenF4.menu.pnum.GENERIC_F410CBUX.build.variant=STM32F4xx/F410C(8-B)U

# Generic F410R8Ix
GenF4.menu.pnum.GENERIC_F410R8IX=Generic F410R8Ix
GenF4.menu.pnum.GENERIC_F410R8IX.upload.maximum_size=65536
GenF4.menu.pnum.GENERIC_F410R8IX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410R8IX.build.board=GENERIC_F410R8IX
GenF4.menu.pnum.GENERIC_F410R8IX.build.product_line=STM32F410Rx
GenF4.menu.pnum.GENERIC_F410R8IX.build.variant=STM32F4xx/F410R(8-B)(I-T)

# Generic F410RBIx
GenF4.menu.pnum.GENERIC_F410RBIX=Generic F410RBIx
GenF4.menu.pnum.GENERIC_F410RBIX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F410RBIX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410RBIX.build.board=GENERIC_F410RBIX
GenF4.menu.pnum.GENERIC_F410RBIX.build.product_line=STM32F410Rx
GenF4.menu.pnum.GENERIC_F410RBIX.build.variant=STM32F4xx/F410R(8-B)(I-T)

# Generic F410R8Tx
GenF4.menu.pnum.GENERIC_F410R8TX=Generic F410R8Tx
GenF4.menu.pnum.GENERIC_F410R8TX.upload.maximum_size=65536
GenF4.menu.pnum.GENERIC_F410R8TX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410R8TX.build.board=GENERIC_F410R8TX
GenF4.menu.pnum.GENERIC_F410R8TX.build.product_line=STM32F410Rx
GenF4.menu.pnum.GENERIC_F410R8TX.build.variant=STM32F4xx/F410R(8-B)(I-T)

# Generic F410RBTx
GenF4.menu.pnum.GENERIC_F410RBTX=Generic F410RBTx
GenF4.menu.pnum.GENERIC_F410RBTX.upload.maximum_size=131072
GenF4.menu.pnum.GENERIC_F410RBTX.upload.maximum_data_size=32768
GenF4.menu.pnum.GENERIC_F410RBTX.build.board=GENERIC_F410RBTX
GenF4.menu.pnum.GENERIC_F410RBTX.build.product_line=STM32F410Rx
GenF4.menu.pnum.GENERIC_F410RBTX.build.variant=STM32F4xx/F410R(8-B)(I-T)

# Generic F411CCUx
GenF4.menu.pnum.GENERIC_F411CCUX=Generic F411CCUx
GenF4.menu.pnum.GENERIC_F411CCUX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F411CCUX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F411CCUX.build.board=GENERIC_F411CCUX
GenF4.menu.pnum.GENERIC_F411CCUX.build.product_line=STM32F411xE
GenF4.menu.pnum.GENERIC_F411CCUX.build.variant=STM32F4xx/F411C(C-E)(U-Y)

# Generic F411CEUx
GenF4.menu.pnum.GENERIC_F411CEUX=Generic F411CEUx
GenF4.menu.pnum.GENERIC_F411CEUX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F411CEUX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F411CEUX.build.board=GENERIC_F411CEUX
GenF4.menu.pnum.GENERIC_F411CEUX.build.product_line=STM32F411xE
GenF4.menu.pnum.GENERIC_F411CEUX.build.variant=STM32F4xx/F411C(C-E)(U-Y)

# Generic F411CCYx
GenF4.menu.pnum.GENERIC_F411CCYX=Generic F411CCYx
GenF4.menu.pnum.GENERIC_F411CCYX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F411CCYX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F411CCYX.build.board=GENERIC_F411CCYX
GenF4.menu.pnum.GENERIC_F411CCYX.build.product_line=STM32F411xE
GenF4.menu.pnum.GENERIC_F411CCYX.build.variant=STM32F4xx/F411C(C-E)(U-Y)

# Generic F411CEYx
GenF4.menu.pnum.GENERIC_F411CEYX=Generic F411CEYx
GenF4.menu.pnum.GENERIC_F411CEYX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F411CEYX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F411CEYX.build.board=GENERIC_F411CEYX
GenF4.menu.pnum.GENERIC_F411CEYX.build.product_line=STM32F411xE
GenF4.menu.pnum.GENERIC_F411CEYX.build.variant=STM32F4xx/F411C(C-E)(U-Y)

# Generic F411RCTx
GenF4.menu.pnum.GENERIC_F411RCTX=Generic F411RCTx
GenF4.menu.pnum.GENERIC_F411RCTX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F411RCTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F411RCTX.build.board=GENERIC_F411RCTX
GenF4.menu.pnum.GENERIC_F411RCTX.build.product_line=STM32F411xE
GenF4.menu.pnum.GENERIC_F411RCTX.build.variant=STM32F4xx/F411R(C-E)T

# Generic F411RETx
GenF4.menu.pnum.GENERIC_F411RETX=Generic F411RETx
GenF4.menu.pnum.GENERIC_F411RETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F411RETX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F411RETX.build.board=GENERIC_F411RETX
GenF4.menu.pnum.GENERIC_F411RETX.build.product_line=STM32F411xE
GenF4.menu.pnum.GENERIC_F411RETX.build.variant=STM32F4xx/F411R(C-E)T

# Generic F412CEUx
GenF4.menu.pnum.GENERIC_F412CEUX=Generic F412CEUx
GenF4.menu.pnum.GENERIC_F412CEUX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F412CEUX.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412CEUX.build.board=GENERIC_F412CEUX
GenF4.menu.pnum.GENERIC_F412CEUX.build.product_line=STM32F412Cx
GenF4.menu.pnum.GENERIC_F412CEUX.build.variant=STM32F4xx/F412C(E-G)U

# Generic F412CGUx
GenF4.menu.pnum.GENERIC_F412CGUX=Generic F412CGUx
GenF4.menu.pnum.GENERIC_F412CGUX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F412CGUX.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412CGUX.build.board=GENERIC_F412CGUX
GenF4.menu.pnum.GENERIC_F412CGUX.build.product_line=STM32F412Cx
GenF4.menu.pnum.GENERIC_F412CGUX.build.variant=STM32F4xx/F412C(E-G)U

# Generic F412RETx
GenF4.menu.pnum.GENERIC_F412RETX=Generic F412RETx
GenF4.menu.pnum.GENERIC_F412RETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F412RETX.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412RETX.build.board=GENERIC_F412RETX
GenF4.menu.pnum.GENERIC_F412RETX.build.product_line=STM32F412Rx
GenF4.menu.pnum.GENERIC_F412RETX.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P)

# Generic F412RGTx
GenF4.menu.pnum.GENERIC_F412RGTX=Generic F412RGTx
GenF4.menu.pnum.GENERIC_F412RGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F412RGTX.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412RGTX.build.board=GENERIC_F412RGTX
GenF4.menu.pnum.GENERIC_F412RGTX.build.product_line=STM32F412Rx
GenF4.menu.pnum.GENERIC_F412RGTX.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P)

# Generic F412REYx
GenF4.menu.pnum.GENERIC_F412REYX=Generic F412REYx
GenF4.menu.pnum.GENERIC_F412REYX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F412REYX.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412REYX.build.board=GENERIC_F412REYX
GenF4.menu.pnum.GENERIC_F412REYX.build.product_line=STM32F412Rx
GenF4.menu.pnum.GENERIC_F412REYX.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P)

# Generic F412RGYx
GenF4.menu.pnum.GENERIC_F412RGYX=Generic F412RGYx
GenF4.menu.pnum.GENERIC_F412RGYX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F412RGYX.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412RGYX.build.board=GENERIC_F412RGYX
GenF4.menu.pnum.GENERIC_F412RGYX.build.product_line=STM32F412Rx
GenF4.menu.pnum.GENERIC_F412RGYX.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P)

# Generic F412REYxP
GenF4.menu.pnum.GENERIC_F412REYXP=Generic F412REYxP
GenF4.menu.pnum.GENERIC_F412REYXP.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F412REYXP.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412REYXP.build.board=GENERIC_F412REYXP
GenF4.menu.pnum.GENERIC_F412REYXP.build.product_line=STM32F412Rx
GenF4.menu.pnum.GENERIC_F412REYXP.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P)

# Generic F412RGYxP
GenF4.menu.pnum.GENERIC_F412RGYXP=Generic F412RGYxP
GenF4.menu.pnum.GENERIC_F412RGYXP.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F412RGYXP.upload.maximum_data_size=262144
GenF4.menu.pnum.GENERIC_F412RGYXP.build.board=GENERIC_F412RGYXP
GenF4.menu.pnum.GENERIC_F412RGYXP.build.product_line=STM32F412Rx
GenF4.menu.pnum.GENERIC_F412RGYXP.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P)

# Generic F413CGUx
GenF4.menu.pnum.GENERIC_F413CGUX=Generic F413CGUx
GenF4.menu.pnum.GENERIC_F413CGUX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F413CGUX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413CGUX.build.board=GENERIC_F413CGUX
GenF4.menu.pnum.GENERIC_F413CGUX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413CGUX.build.variant=STM32F4xx/F413C(G-H)U_F423CHU

# Generic F413CHUx
GenF4.menu.pnum.GENERIC_F413CHUX=Generic F413CHUx
GenF4.menu.pnum.GENERIC_F413CHUX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F413CHUX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413CHUX.build.board=GENERIC_F413CHUX
GenF4.menu.pnum.GENERIC_F413CHUX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413CHUX.build.variant=STM32F4xx/F413C(G-H)U_F423CHU

# Generic F413RGTx
GenF4.menu.pnum.GENERIC_F413RGTX=Generic F413RGTx
GenF4.menu.pnum.GENERIC_F413RGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F413RGTX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413RGTX.build.board=GENERIC_F413RGTX
GenF4.menu.pnum.GENERIC_F413RGTX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413RGTX.build.variant=STM32F4xx/F413R(G-H)T_F423RHT

# Generic F413RHTx
GenF4.menu.pnum.GENERIC_F413RHTX=Generic F413RHTx
GenF4.menu.pnum.GENERIC_F413RHTX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F413RHTX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413RHTX.build.board=GENERIC_F413RHTX
GenF4.menu.pnum.GENERIC_F413RHTX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413RHTX.build.variant=STM32F4xx/F413R(G-H)T_F423RHT

# Generic F413ZGJx
GenF4.menu.pnum.GENERIC_F413ZGJX=Generic F413ZGJx
GenF4.menu.pnum.GENERIC_F413ZGJX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F413ZGJX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413ZGJX.build.board=GENERIC_F413ZGJX
GenF4.menu.pnum.GENERIC_F413ZGJX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413ZGJX.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)

# Generic F413ZHJx
GenF4.menu.pnum.GENERIC_F413ZHJX=Generic F413ZHJx
GenF4.menu.pnum.GENERIC_F413ZHJX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F413ZHJX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413ZHJX.build.board=GENERIC_F413ZHJX
GenF4.menu.pnum.GENERIC_F413ZHJX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413ZHJX.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)

# Generic F413ZGTx
GenF4.menu.pnum.GENERIC_F413ZGTX=Generic F413ZGTx
GenF4.menu.pnum.GENERIC_F413ZGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F413ZGTX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413ZGTX.build.board=GENERIC_F413ZGTX
GenF4.menu.pnum.GENERIC_F413ZGTX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413ZGTX.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)

# Generic F413ZHTx
GenF4.menu.pnum.GENERIC_F413ZHTX=Generic F413ZHTx
GenF4.menu.pnum.GENERIC_F413ZHTX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F413ZHTX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F413ZHTX.build.board=GENERIC_F413ZHTX
GenF4.menu.pnum.GENERIC_F413ZHTX.build.product_line=STM32F413xx
GenF4.menu.pnum.GENERIC_F413ZHTX.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)

# Generic F415RGTx
GenF4.menu.pnum.GENERIC_F415RGTX=Generic F415RGTx
GenF4.menu.pnum.GENERIC_F415RGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F415RGTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F415RGTX.build.board=GENERIC_F415RGTX
GenF4.menu.pnum.GENERIC_F415RGTX.build.product_line=STM32F415xx
GenF4.menu.pnum.GENERIC_F415RGTX.build.variant=STM32F4xx/F405RGT_F415RGT

# Generic F417VETx
GenF4.menu.pnum.GENERIC_F417VETX=Generic F417VETx
GenF4.menu.pnum.GENERIC_F417VETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F417VETX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F417VETX.build.board=GENERIC_F417VETX
GenF4.menu.pnum.GENERIC_F417VETX.build.product_line=STM32F417xx
GenF4.menu.pnum.GENERIC_F417VETX.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T

# Generic F417VGTx
GenF4.menu.pnum.GENERIC_F417VGTX=Generic F417VGTx
GenF4.menu.pnum.GENERIC_F417VGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F417VGTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F417VGTX.build.board=GENERIC_F417VGTX
GenF4.menu.pnum.GENERIC_F417VGTX.build.product_line=STM32F417xx
GenF4.menu.pnum.GENERIC_F417VGTX.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T

# Generic F417ZETx
GenF4.menu.pnum.GENERIC_F417ZETX=Generic F417ZETx
GenF4.menu.pnum.GENERIC_F417ZETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F417ZETX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F417ZETX.build.board=GENERIC_F417ZETX
GenF4.menu.pnum.GENERIC_F417ZETX.build.product_line=STM32F417xx
GenF4.menu.pnum.GENERIC_F417ZETX.build.variant=STM32F4xx/F407Z(E-G)T_F417Z(E-G)T

# Generic F417ZGTx
GenF4.menu.pnum.GENERIC_F417ZGTX=Generic F417ZGTx
GenF4.menu.pnum.GENERIC_F417ZGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F417ZGTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F417ZGTX.build.board=GENERIC_F417ZGTX
GenF4.menu.pnum.GENERIC_F417ZGTX.build.product_line=STM32F417xx
GenF4.menu.pnum.GENERIC_F417ZGTX.build.variant=STM32F4xx/F407Z(E-G)T_F417Z(E-G)T

# Generic F423CHUx
GenF4.menu.pnum.GENERIC_F423CHUX=Generic F423CHUx
GenF4.menu.pnum.GENERIC_F423CHUX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F423CHUX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F423CHUX.build.board=GENERIC_F423CHUX
GenF4.menu.pnum.GENERIC_F423CHUX.build.product_line=STM32F423xx
GenF4.menu.pnum.GENERIC_F423CHUX.build.variant=STM32F4xx/F413C(G-H)U_F423CHU

# Generic F423RHTx
GenF4.menu.pnum.GENERIC_F423RHTX=Generic F423RHTx
GenF4.menu.pnum.GENERIC_F423RHTX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F423RHTX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F423RHTX.build.board=GENERIC_F423RHTX
GenF4.menu.pnum.GENERIC_F423RHTX.build.product_line=STM32F423xx
GenF4.menu.pnum.GENERIC_F423RHTX.build.variant=STM32F4xx/F413R(G-H)T_F423RHT

# Generic F423ZHJx
GenF4.menu.pnum.GENERIC_F423ZHJX=Generic F423ZHJx
GenF4.menu.pnum.GENERIC_F423ZHJX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F423ZHJX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F423ZHJX.build.board=GENERIC_F423ZHJX
GenF4.menu.pnum.GENERIC_F423ZHJX.build.product_line=STM32F423xx
GenF4.menu.pnum.GENERIC_F423ZHJX.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)

# Generic F423ZHTx
GenF4.menu.pnum.GENERIC_F423ZHTX=Generic F423ZHTx
GenF4.menu.pnum.GENERIC_F423ZHTX.upload.maximum_size=1572864
GenF4.menu.pnum.GENERIC_F423ZHTX.upload.maximum_data_size=327680
GenF4.menu.pnum.GENERIC_F423ZHTX.build.board=GENERIC_F423ZHTX
GenF4.menu.pnum.GENERIC_F423ZHTX.build.product_line=STM32F423xx
GenF4.menu.pnum.GENERIC_F423ZHTX.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)

# Generic F427ZGTx
GenF4.menu.pnum.GENERIC_F427ZGTX=Generic F427ZGTx
GenF4.menu.pnum.GENERIC_F427ZGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F427ZGTX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F427ZGTX.build.board=GENERIC_F427ZGTX
GenF4.menu.pnum.GENERIC_F427ZGTX.build.product_line=STM32F427xx
GenF4.menu.pnum.GENERIC_F427ZGTX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F427ZITx
GenF4.menu.pnum.GENERIC_F427ZITX=Generic F427ZITx
GenF4.menu.pnum.GENERIC_F427ZITX.upload.maximum_size=2097152
GenF4.menu.pnum.GENERIC_F427ZITX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F427ZITX.build.board=GENERIC_F427ZITX
GenF4.menu.pnum.GENERIC_F427ZITX.build.product_line=STM32F427xx
GenF4.menu.pnum.GENERIC_F427ZITX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F429ZETx
GenF4.menu.pnum.GENERIC_F429ZETX=Generic F429ZETx
GenF4.menu.pnum.GENERIC_F429ZETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F429ZETX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F429ZETX.build.board=GENERIC_F429ZETX
GenF4.menu.pnum.GENERIC_F429ZETX.build.product_line=STM32F429xx
GenF4.menu.pnum.GENERIC_F429ZETX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F429ZGTx
GenF4.menu.pnum.GENERIC_F429ZGTX=Generic F429ZGTx
GenF4.menu.pnum.GENERIC_F429ZGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F429ZGTX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F429ZGTX.build.board=GENERIC_F429ZGTX
GenF4.menu.pnum.GENERIC_F429ZGTX.build.product_line=STM32F429xx
GenF4.menu.pnum.GENERIC_F429ZGTX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F429ZGYx
GenF4.menu.pnum.GENERIC_F429ZGYX=Generic F429ZGYx
GenF4.menu.pnum.GENERIC_F429ZGYX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F429ZGYX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F429ZGYX.build.board=GENERIC_F429ZGYX
GenF4.menu.pnum.GENERIC_F429ZGYX.build.product_line=STM32F429xx
GenF4.menu.pnum.GENERIC_F429ZGYX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F429ZITx
GenF4.menu.pnum.GENERIC_F429ZITX=Generic F429ZITx
GenF4.menu.pnum.GENERIC_F429ZITX.upload.maximum_size=2097152
GenF4.menu.pnum.GENERIC_F429ZITX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F429ZITX.build.board=GENERIC_F429ZITX
GenF4.menu.pnum.GENERIC_F429ZITX.build.product_line=STM32F429xx
GenF4.menu.pnum.GENERIC_F429ZITX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F429ZIYx
GenF4.menu.pnum.GENERIC_F429ZIYX=Generic F429ZIYx
GenF4.menu.pnum.GENERIC_F429ZIYX.upload.maximum_size=2097152
GenF4.menu.pnum.GENERIC_F429ZIYX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F429ZIYX.build.board=GENERIC_F429ZIYX
GenF4.menu.pnum.GENERIC_F429ZIYX.build.product_line=STM32F429xx
GenF4.menu.pnum.GENERIC_F429ZIYX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F437ZGTx
GenF4.menu.pnum.GENERIC_F437ZGTX=Generic F437ZGTx
GenF4.menu.pnum.GENERIC_F437ZGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F437ZGTX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F437ZGTX.build.board=GENERIC_F437ZGTX
GenF4.menu.pnum.GENERIC_F437ZGTX.build.product_line=STM32F437xx
GenF4.menu.pnum.GENERIC_F437ZGTX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F437ZITx
GenF4.menu.pnum.GENERIC_F437ZITX=Generic F437ZITx
GenF4.menu.pnum.GENERIC_F437ZITX.upload.maximum_size=2097152
GenF4.menu.pnum.GENERIC_F437ZITX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F437ZITX.build.board=GENERIC_F437ZITX
GenF4.menu.pnum.GENERIC_F437ZITX.build.product_line=STM32F437xx
GenF4.menu.pnum.GENERIC_F437ZITX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F439ZGTx
GenF4.menu.pnum.GENERIC_F439ZGTX=Generic F439ZGTx
GenF4.menu.pnum.GENERIC_F439ZGTX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F439ZGTX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F439ZGTX.build.board=GENERIC_F439ZGTX
GenF4.menu.pnum.GENERIC_F439ZGTX.build.product_line=STM32F439xx
GenF4.menu.pnum.GENERIC_F439ZGTX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F439ZITx
GenF4.menu.pnum.GENERIC_F439ZITX=Generic F439ZITx
GenF4.menu.pnum.GENERIC_F439ZITX.upload.maximum_size=2097152
GenF4.menu.pnum.GENERIC_F439ZITX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F439ZITX.build.board=GENERIC_F439ZITX
GenF4.menu.pnum.GENERIC_F439ZITX.build.product_line=STM32F439xx
GenF4.menu.pnum.GENERIC_F439ZITX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F439ZGYx
GenF4.menu.pnum.GENERIC_F439ZGYX=Generic F439ZGYx
GenF4.menu.pnum.GENERIC_F439ZGYX.upload.maximum_size=1048576
GenF4.menu.pnum.GENERIC_F439ZGYX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F439ZGYX.build.board=GENERIC_F439ZGYX
GenF4.menu.pnum.GENERIC_F439ZGYX.build.product_line=STM32F439xx
GenF4.menu.pnum.GENERIC_F439ZGYX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F439ZIYx
GenF4.menu.pnum.GENERIC_F439ZIYX=Generic F439ZIYx
GenF4.menu.pnum.GENERIC_F439ZIYX.upload.maximum_size=2097152
GenF4.menu.pnum.GENERIC_F439ZIYX.upload.maximum_data_size=196608
GenF4.menu.pnum.GENERIC_F439ZIYX.build.board=GENERIC_F439ZIYX
GenF4.menu.pnum.GENERIC_F439ZIYX.build.product_line=STM32F439xx
GenF4.menu.pnum.GENERIC_F439ZIYX.build.variant=STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)

# Generic F446RCTx
GenF4.menu.pnum.GENERIC_F446RCTX=Generic F446RCTx
GenF4.menu.pnum.GENERIC_F446RCTX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F446RCTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F446RCTX.build.board=GENERIC_F446RCTX
GenF4.menu.pnum.GENERIC_F446RCTX.build.product_line=STM32F446xx
GenF4.menu.pnum.GENERIC_F446RCTX.build.variant=STM32F4xx/F446R(C-E)T

# Generic F446RETx
GenF4.menu.pnum.GENERIC_F446RETX=Generic F446RETx
GenF4.menu.pnum.GENERIC_F446RETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F446RETX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F446RETX.build.board=GENERIC_F446RETX
GenF4.menu.pnum.GENERIC_F446RETX.build.product_line=STM32F446xx
GenF4.menu.pnum.GENERIC_F446RETX.build.variant=STM32F4xx/F446R(C-E)T

# Generic F446VCTx
GenF4.menu.pnum.GENERIC_F446VCTX=Generic F446VCTx
GenF4.menu.pnum.GENERIC_F446VCTX.upload.maximum_size=262144
GenF4.menu.pnum.GENERIC_F446VCTX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F446VCTX.build.board=GENERIC_F446VCTX
GenF4.menu.pnum.GENERIC_F446VCTX.build.product_line=STM32F446xx
GenF4.menu.pnum.GENERIC_F446VCTX.build.variant=STM32F4xx/F446V(C-E)T

# Generic F446VETx
GenF4.menu.pnum.GENERIC_F446VETX=Generic F446VETx
GenF4.menu.pnum.GENERIC_F446VETX.upload.maximum_size=524288
GenF4.menu.pnum.GENERIC_F446VETX.upload.maximum_data_size=131072
GenF4.menu.pnum.GENERIC_F446VETX.build.board=GENERIC_F446VETX
GenF4.menu.pnum.GENERIC_F446VETX.build.product_line=STM32F446xx
GenF4.menu.pnum.GENERIC_F446VETX.build.variant=STM32F4xx/F446V(C-E)T

# Upload menu
GenF4.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenF4.menu.upload_method.swdMethod.upload.protocol=0
GenF4.menu.upload_method.swdMethod.upload.options=-g
GenF4.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenF4.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenF4.menu.upload_method.serialMethod.upload.protocol=1
GenF4.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenF4.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenF4.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenF4.menu.upload_method.dfuMethod.upload.protocol=2
GenF4.menu.upload_method.dfuMethod.upload.options=-g
GenF4.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

GenF4.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
GenF4.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
GenF4.menu.upload_method.bmpMethod.upload.tool=bmp_upload

GenF4.menu.upload_method.hidMethod=HID Bootloader 2.2
GenF4.menu.upload_method.hidMethod.upload.protocol=hid22
GenF4.menu.upload_method.hidMethod.upload.tool=hid_upload
GenF4.menu.upload_method.hidMethod.build.flash_offset=0x4000
GenF4.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset}

################################################################################
# Generic F7

GenF7.name=Generic STM32F7 series

GenF7.build.core=arduino
GenF7.build.board=GenF7
GenF7.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags}
GenF7.build.mcu=cortex-m7
GenF7.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenF7.build.series=STM32F7xx
GenF7.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

# Generic F745ZETx
GenF7.menu.pnum.GENERIC_F745ZETX=Generic F745ZETx
GenF7.menu.pnum.GENERIC_F745ZETX.upload.maximum_size=524288
GenF7.menu.pnum.GENERIC_F745ZETX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F745ZETX.build.board=GENERIC_F745ZETX
GenF7.menu.pnum.GENERIC_F745ZETX.build.product_line=STM32F745xx
GenF7.menu.pnum.GENERIC_F745ZETX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F745ZGTx
GenF7.menu.pnum.GENERIC_F745ZGTX=Generic F745ZGTx
GenF7.menu.pnum.GENERIC_F745ZGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F745ZGTX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F745ZGTX.build.board=GENERIC_F745ZGTX
GenF7.menu.pnum.GENERIC_F745ZGTX.build.product_line=STM32F745xx
GenF7.menu.pnum.GENERIC_F745ZGTX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F746BETx
GenF7.menu.pnum.GENERIC_F746BETX=Generic F746BETx
GenF7.menu.pnum.GENERIC_F746BETX.upload.maximum_size=524288
GenF7.menu.pnum.GENERIC_F746BETX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746BETX.build.board=GENERIC_F746BETX
GenF7.menu.pnum.GENERIC_F746BETX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746BETX.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH

# Generic F746BGTx
GenF7.menu.pnum.GENERIC_F746BGTX=Generic F746BGTx
GenF7.menu.pnum.GENERIC_F746BGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F746BGTX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746BGTX.build.board=GENERIC_F746BGTX
GenF7.menu.pnum.GENERIC_F746BGTX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746BGTX.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH

# Generic F746NEHx
GenF7.menu.pnum.GENERIC_F746NEHX=Generic F746NEHx
GenF7.menu.pnum.GENERIC_F746NEHX.upload.maximum_size=524288
GenF7.menu.pnum.GENERIC_F746NEHX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746NEHX.build.board=GENERIC_F746NEHX
GenF7.menu.pnum.GENERIC_F746NEHX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746NEHX.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH

# Generic F746NGHx
GenF7.menu.pnum.GENERIC_F746NGHX=Generic F746NGHx
GenF7.menu.pnum.GENERIC_F746NGHX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F746NGHX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746NGHX.build.board=GENERIC_F746NGHX
GenF7.menu.pnum.GENERIC_F746NGHX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746NGHX.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH

# Generic F746ZETx
GenF7.menu.pnum.GENERIC_F746ZETX=Generic F746ZETx
GenF7.menu.pnum.GENERIC_F746ZETX.upload.maximum_size=524288
GenF7.menu.pnum.GENERIC_F746ZETX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746ZETX.build.board=GENERIC_F746ZETX
GenF7.menu.pnum.GENERIC_F746ZETX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746ZETX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F746ZEYx
GenF7.menu.pnum.GENERIC_F746ZEYX=Generic F746ZEYx
GenF7.menu.pnum.GENERIC_F746ZEYX.upload.maximum_size=524288
GenF7.menu.pnum.GENERIC_F746ZEYX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746ZEYX.build.board=GENERIC_F746ZEYX
GenF7.menu.pnum.GENERIC_F746ZEYX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746ZEYX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F746ZGTx
GenF7.menu.pnum.GENERIC_F746ZGTX=Generic F746ZGTx
GenF7.menu.pnum.GENERIC_F746ZGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F746ZGTX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746ZGTX.build.board=GENERIC_F746ZGTX
GenF7.menu.pnum.GENERIC_F746ZGTX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746ZGTX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F746ZGYx
GenF7.menu.pnum.GENERIC_F746ZGYX=Generic F746ZGYx
GenF7.menu.pnum.GENERIC_F746ZGYX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F746ZGYX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F746ZGYX.build.board=GENERIC_F746ZGYX
GenF7.menu.pnum.GENERIC_F746ZGYX.build.product_line=STM32F746xx
GenF7.menu.pnum.GENERIC_F746ZGYX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F750N8Hx
GenF7.menu.pnum.GENERIC_F750N8HX=Generic F750N8Hx
GenF7.menu.pnum.GENERIC_F750N8HX.upload.maximum_size=65536
GenF7.menu.pnum.GENERIC_F750N8HX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F750N8HX.build.board=GENERIC_F750N8HX
GenF7.menu.pnum.GENERIC_F750N8HX.build.product_line=STM32F750xx
GenF7.menu.pnum.GENERIC_F750N8HX.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH

# Generic F750Z8Tx
GenF7.menu.pnum.GENERIC_F750Z8TX=Generic F750Z8Tx
GenF7.menu.pnum.GENERIC_F750Z8TX.upload.maximum_size=65536
GenF7.menu.pnum.GENERIC_F750Z8TX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F750Z8TX.build.board=GENERIC_F750Z8TX
GenF7.menu.pnum.GENERIC_F750Z8TX.build.product_line=STM32F750xx
GenF7.menu.pnum.GENERIC_F750Z8TX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F756BGTx
GenF7.menu.pnum.GENERIC_F756BGTX=Generic F756BGTx
GenF7.menu.pnum.GENERIC_F756BGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F756BGTX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F756BGTX.build.board=GENERIC_F756BGTX
GenF7.menu.pnum.GENERIC_F756BGTX.build.product_line=STM32F756xx
GenF7.menu.pnum.GENERIC_F756BGTX.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH

# Generic F756NGHx
GenF7.menu.pnum.GENERIC_F756NGHX=Generic F756NGHx
GenF7.menu.pnum.GENERIC_F756NGHX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F756NGHX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F756NGHX.build.board=GENERIC_F756NGHX
GenF7.menu.pnum.GENERIC_F756NGHX.build.product_line=STM32F756xx
GenF7.menu.pnum.GENERIC_F756NGHX.build.variant=STM32F7xx/F746B(E-G)T_F746N(E-G)H_F750N8H_F756BGT_F756NGH

# Generic F756ZGTx
GenF7.menu.pnum.GENERIC_F756ZGTX=Generic F756ZGTx
GenF7.menu.pnum.GENERIC_F756ZGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F756ZGTX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F756ZGTX.build.board=GENERIC_F756ZGTX
GenF7.menu.pnum.GENERIC_F756ZGTX.build.product_line=STM32F756xx
GenF7.menu.pnum.GENERIC_F756ZGTX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F756ZGYx
GenF7.menu.pnum.GENERIC_F756ZGYX=Generic F756ZGYx
GenF7.menu.pnum.GENERIC_F756ZGYX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F756ZGYX.upload.maximum_data_size=327680
GenF7.menu.pnum.GENERIC_F756ZGYX.build.board=GENERIC_F756ZGYX
GenF7.menu.pnum.GENERIC_F756ZGYX.build.product_line=STM32F756xx
GenF7.menu.pnum.GENERIC_F756ZGYX.build.variant=STM32F7xx/F745Z(E-G)T_F746Z(E-G)(T-Y)_F750Z8T_F756ZG(T-Y)

# Generic F765VGHx
GenF7.menu.pnum.GENERIC_F765VGHX=Generic F765VGHx
GenF7.menu.pnum.GENERIC_F765VGHX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F765VGHX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F765VGHX.build.board=GENERIC_F765VGHX
GenF7.menu.pnum.GENERIC_F765VGHX.build.product_line=STM32F765xx
GenF7.menu.pnum.GENERIC_F765VGHX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F765VGTx
GenF7.menu.pnum.GENERIC_F765VGTX=Generic F765VGTx
GenF7.menu.pnum.GENERIC_F765VGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F765VGTX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F765VGTX.build.board=GENERIC_F765VGTX
GenF7.menu.pnum.GENERIC_F765VGTX.build.product_line=STM32F765xx
GenF7.menu.pnum.GENERIC_F765VGTX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F765VIHx
GenF7.menu.pnum.GENERIC_F765VIHX=Generic F765VIHx
GenF7.menu.pnum.GENERIC_F765VIHX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F765VIHX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F765VIHX.build.board=GENERIC_F765VIHX
GenF7.menu.pnum.GENERIC_F765VIHX.build.product_line=STM32F765xx
GenF7.menu.pnum.GENERIC_F765VIHX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F765VITx
GenF7.menu.pnum.GENERIC_F765VITX=Generic F765VITx
GenF7.menu.pnum.GENERIC_F765VITX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F765VITX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F765VITX.build.board=GENERIC_F765VITX
GenF7.menu.pnum.GENERIC_F765VITX.build.product_line=STM32F765xx
GenF7.menu.pnum.GENERIC_F765VITX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F765ZGTx
GenF7.menu.pnum.GENERIC_F765ZGTX=Generic F765ZGTx
GenF7.menu.pnum.GENERIC_F765ZGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F765ZGTX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F765ZGTX.build.board=GENERIC_F765ZGTX
GenF7.menu.pnum.GENERIC_F765ZGTX.build.product_line=STM32F765xx
GenF7.menu.pnum.GENERIC_F765ZGTX.build.variant=STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT

# Generic F765ZITx
GenF7.menu.pnum.GENERIC_F765ZITX=Generic F765ZITx
GenF7.menu.pnum.GENERIC_F765ZITX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F765ZITX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F765ZITX.build.board=GENERIC_F765ZITX
GenF7.menu.pnum.GENERIC_F765ZITX.build.product_line=STM32F765xx
GenF7.menu.pnum.GENERIC_F765ZITX.build.variant=STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT

# Generic F767VGHx
GenF7.menu.pnum.GENERIC_F767VGHX=Generic F767VGHx
GenF7.menu.pnum.GENERIC_F767VGHX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F767VGHX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F767VGHX.build.board=GENERIC_F767VGHX
GenF7.menu.pnum.GENERIC_F767VGHX.build.product_line=STM32F767xx
GenF7.menu.pnum.GENERIC_F767VGHX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F767VGTx
GenF7.menu.pnum.GENERIC_F767VGTX=Generic F767VGTx
GenF7.menu.pnum.GENERIC_F767VGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F767VGTX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F767VGTX.build.board=GENERIC_F767VGTX
GenF7.menu.pnum.GENERIC_F767VGTX.build.product_line=STM32F767xx
GenF7.menu.pnum.GENERIC_F767VGTX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F767VIHx
GenF7.menu.pnum.GENERIC_F767VIHX=Generic F767VIHx
GenF7.menu.pnum.GENERIC_F767VIHX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F767VIHX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F767VIHX.build.board=GENERIC_F767VIHX
GenF7.menu.pnum.GENERIC_F767VIHX.build.product_line=STM32F767xx
GenF7.menu.pnum.GENERIC_F767VIHX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F767VITx
GenF7.menu.pnum.GENERIC_F767VITX=Generic F767VITx
GenF7.menu.pnum.GENERIC_F767VITX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F767VITX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F767VITX.build.board=GENERIC_F767VITX
GenF7.menu.pnum.GENERIC_F767VITX.build.product_line=STM32F767xx
GenF7.menu.pnum.GENERIC_F767VITX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F767ZGTx
GenF7.menu.pnum.GENERIC_F767ZGTX=Generic F767ZGTx
GenF7.menu.pnum.GENERIC_F767ZGTX.upload.maximum_size=1048576
GenF7.menu.pnum.GENERIC_F767ZGTX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F767ZGTX.build.board=GENERIC_F767ZGTX
GenF7.menu.pnum.GENERIC_F767ZGTX.build.product_line=STM32F767xx
GenF7.menu.pnum.GENERIC_F767ZGTX.build.variant=STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT

# Generic F767ZITx
GenF7.menu.pnum.GENERIC_F767ZITX=Generic F767ZITx
GenF7.menu.pnum.GENERIC_F767ZITX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F767ZITX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F767ZITX.build.board=GENERIC_F767ZITX
GenF7.menu.pnum.GENERIC_F767ZITX.build.product_line=STM32F767xx
GenF7.menu.pnum.GENERIC_F767ZITX.build.variant=STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT

# Generic F777VIHx
GenF7.menu.pnum.GENERIC_F777VIHX=Generic F777VIHx
GenF7.menu.pnum.GENERIC_F777VIHX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F777VIHX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F777VIHX.build.board=GENERIC_F777VIHX
GenF7.menu.pnum.GENERIC_F777VIHX.build.product_line=STM32F777xx
GenF7.menu.pnum.GENERIC_F777VIHX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F777VITx
GenF7.menu.pnum.GENERIC_F777VITX=Generic F777VITx
GenF7.menu.pnum.GENERIC_F777VITX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F777VITX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F777VITX.build.board=GENERIC_F777VITX
GenF7.menu.pnum.GENERIC_F777VITX.build.product_line=STM32F777xx
GenF7.menu.pnum.GENERIC_F777VITX.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)

# Generic F777ZITx
GenF7.menu.pnum.GENERIC_F777ZITX=Generic F777ZITx
GenF7.menu.pnum.GENERIC_F777ZITX.upload.maximum_size=2097152
GenF7.menu.pnum.GENERIC_F777ZITX.upload.maximum_data_size=393216
GenF7.menu.pnum.GENERIC_F777ZITX.build.board=GENERIC_F777ZITX
GenF7.menu.pnum.GENERIC_F777ZITX.build.product_line=STM32F777xx
GenF7.menu.pnum.GENERIC_F777ZITX.build.variant=STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT

# Upload menu
GenF7.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenF7.menu.upload_method.swdMethod.upload.protocol=0
GenF7.menu.upload_method.swdMethod.upload.options=-g
GenF7.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenF7.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenF7.menu.upload_method.serialMethod.upload.protocol=1
GenF7.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenF7.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenF7.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenF7.menu.upload_method.dfuMethod.upload.protocol=2
GenF7.menu.upload_method.dfuMethod.upload.options=-g
GenF7.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

###############################
# Generic G0
GenG0.name=Generic STM32G0 series

GenG0.build.core=arduino
GenG0.build.board=GenG0
GenG0.build.mcu=cortex-m0plus
GenG0.build.series=STM32G0xx
GenG0.build.cmsis_lib_gcc=arm_cortexM0l_math
GenG0.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0

# Aurora One G030K8
GenG0.menu.pnum.AURORA_ONE=Aurora One
GenG0.menu.pnum.AURORA_ONE.upload.maximum_size=65536
GenG0.menu.pnum.AURORA_ONE.upload.maximum_data_size=8192
GenG0.menu.pnum.AURORA_ONE.build.board=AURORA_ONE
GenG0.menu.pnum.AURORA_ONE.build.product_line=STM32G030xx
GenG0.menu.pnum.AURORA_ONE.build.variant=STM32G0xx/G030K(6-8)T
GenG0.menu.pnum.AURORA_ONE.build.variant_h=variant_{build.board}.h

# Generic G030K6Tx
GenG0.menu.pnum.GENERIC_G030K6TX=Generic G030K6Tx
GenG0.menu.pnum.GENERIC_G030K6TX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G030K6TX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G030K6TX.build.board=GENERIC_G030K6TX
GenG0.menu.pnum.GENERIC_G030K6TX.build.product_line=STM32G030xx
GenG0.menu.pnum.GENERIC_G030K6TX.build.variant=STM32G0xx/G030K(6-8)T

# Generic G030K8Tx
GenG0.menu.pnum.GENERIC_G030K8TX=Generic G030K8Tx
GenG0.menu.pnum.GENERIC_G030K8TX.upload.maximum_size=65536
GenG0.menu.pnum.GENERIC_G030K8TX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G030K8TX.build.board=GENERIC_G030K8TX
GenG0.menu.pnum.GENERIC_G030K8TX.build.product_line=STM32G030xx
GenG0.menu.pnum.GENERIC_G030K8TX.build.variant=STM32G0xx/G030K(6-8)T

# Generic G031J4Mx
GenG0.menu.pnum.GENERIC_G031J4MX=Generic G031J4Mx
GenG0.menu.pnum.GENERIC_G031J4MX.upload.maximum_size=16384
GenG0.menu.pnum.GENERIC_G031J4MX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031J4MX.build.board=GENERIC_G031J4MX
GenG0.menu.pnum.GENERIC_G031J4MX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031J4MX.build.variant=STM32G0xx/G031J(4-6)M_G041J6M

# Generic G031J6Mx
GenG0.menu.pnum.GENERIC_G031J6MX=Generic G031J6Mx
GenG0.menu.pnum.GENERIC_G031J6MX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G031J6MX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031J6MX.build.board=GENERIC_G031J6MX
GenG0.menu.pnum.GENERIC_G031J6MX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031J6MX.build.variant=STM32G0xx/G031J(4-6)M_G041J6M

# Generic G031K4Tx
GenG0.menu.pnum.GENERIC_G031K4TX=Generic G031K4Tx
GenG0.menu.pnum.GENERIC_G031K4TX.upload.maximum_size=16384
GenG0.menu.pnum.GENERIC_G031K4TX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031K4TX.build.board=GENERIC_G031K4TX
GenG0.menu.pnum.GENERIC_G031K4TX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031K4TX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G031K6Tx
GenG0.menu.pnum.GENERIC_G031K6TX=Generic G031K6Tx
GenG0.menu.pnum.GENERIC_G031K6TX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G031K6TX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031K6TX.build.board=GENERIC_G031K6TX
GenG0.menu.pnum.GENERIC_G031K6TX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031K6TX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G031K8Tx
GenG0.menu.pnum.GENERIC_G031K8TX=Generic G031K8Tx
GenG0.menu.pnum.GENERIC_G031K8TX.upload.maximum_size=65536
GenG0.menu.pnum.GENERIC_G031K8TX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031K8TX.build.board=GENERIC_G031K8TX
GenG0.menu.pnum.GENERIC_G031K8TX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031K8TX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G031K4Ux
GenG0.menu.pnum.GENERIC_G031K4UX=Generic G031K4Ux
GenG0.menu.pnum.GENERIC_G031K4UX.upload.maximum_size=16384
GenG0.menu.pnum.GENERIC_G031K4UX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031K4UX.build.board=GENERIC_G031K4UX
GenG0.menu.pnum.GENERIC_G031K4UX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031K4UX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G031K6Ux
GenG0.menu.pnum.GENERIC_G031K6UX=Generic G031K6Ux
GenG0.menu.pnum.GENERIC_G031K6UX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G031K6UX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031K6UX.build.board=GENERIC_G031K6UX
GenG0.menu.pnum.GENERIC_G031K6UX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031K6UX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G031K8Ux
GenG0.menu.pnum.GENERIC_G031K8UX=Generic G031K8Ux
GenG0.menu.pnum.GENERIC_G031K8UX.upload.maximum_size=65536
GenG0.menu.pnum.GENERIC_G031K8UX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G031K8UX.build.board=GENERIC_G031K8UX
GenG0.menu.pnum.GENERIC_G031K8UX.build.product_line=STM32G031xx
GenG0.menu.pnum.GENERIC_G031K8UX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G041J6Mx
GenG0.menu.pnum.GENERIC_G041J6MX=Generic G041J6Mx
GenG0.menu.pnum.GENERIC_G041J6MX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G041J6MX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G041J6MX.build.board=GENERIC_G041J6MX
GenG0.menu.pnum.GENERIC_G041J6MX.build.product_line=STM32G041xx
GenG0.menu.pnum.GENERIC_G041J6MX.build.variant=STM32G0xx/G031J(4-6)M_G041J6M

# Generic G041K6Tx
GenG0.menu.pnum.GENERIC_G041K6TX=Generic G041K6Tx
GenG0.menu.pnum.GENERIC_G041K6TX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G041K6TX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G041K6TX.build.board=GENERIC_G041K6TX
GenG0.menu.pnum.GENERIC_G041K6TX.build.product_line=STM32G041xx
GenG0.menu.pnum.GENERIC_G041K6TX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G041K8Tx
GenG0.menu.pnum.GENERIC_G041K8TX=Generic G041K8Tx
GenG0.menu.pnum.GENERIC_G041K8TX.upload.maximum_size=65536
GenG0.menu.pnum.GENERIC_G041K8TX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G041K8TX.build.board=GENERIC_G041K8TX
GenG0.menu.pnum.GENERIC_G041K8TX.build.product_line=STM32G041xx
GenG0.menu.pnum.GENERIC_G041K8TX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G041K6Ux
GenG0.menu.pnum.GENERIC_G041K6UX=Generic G041K6Ux
GenG0.menu.pnum.GENERIC_G041K6UX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G041K6UX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G041K6UX.build.board=GENERIC_G041K6UX
GenG0.menu.pnum.GENERIC_G041K6UX.build.product_line=STM32G041xx
GenG0.menu.pnum.GENERIC_G041K6UX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G041K8Ux
GenG0.menu.pnum.GENERIC_G041K8UX=Generic G041K8Ux
GenG0.menu.pnum.GENERIC_G041K8UX.upload.maximum_size=65536
GenG0.menu.pnum.GENERIC_G041K8UX.upload.maximum_data_size=8192
GenG0.menu.pnum.GENERIC_G041K8UX.build.board=GENERIC_G041K8UX
GenG0.menu.pnum.GENERIC_G041K8UX.build.product_line=STM32G041xx
GenG0.menu.pnum.GENERIC_G041K8UX.build.variant=STM32G0xx/G031K(4-6-8)(T-U)_G041K(6-8)(T-U)

# Generic G071R6Tx
GenG0.menu.pnum.GENERIC_G071R6TX=Generic G071R6Tx
GenG0.menu.pnum.GENERIC_G071R6TX.upload.maximum_size=32768
GenG0.menu.pnum.GENERIC_G071R6TX.upload.maximum_data_size=36864
GenG0.menu.pnum.GENERIC_G071R6TX.build.board=GENERIC_G071R6TX
GenG0.menu.pnum.GENERIC_G071R6TX.build.product_line=STM32G071xx
GenG0.menu.pnum.GENERIC_G071R6TX.build.variant=STM32G0xx/G071R(6-8)T_G071RB(I-T)_G081RB(I-T)

# Generic G071R8Tx
GenG0.menu.pnum.GENERIC_G071R8TX=Generic G071R8Tx
GenG0.menu.pnum.GENERIC_G071R8TX.upload.maximum_size=65536
GenG0.menu.pnum.GENERIC_G071R8TX.upload.maximum_data_size=36864
GenG0.menu.pnum.GENERIC_G071R8TX.build.board=GENERIC_G071R8TX
GenG0.menu.pnum.GENERIC_G071R8TX.build.product_line=STM32G071xx
GenG0.menu.pnum.GENERIC_G071R8TX.build.variant=STM32G0xx/G071R(6-8)T_G071RB(I-T)_G081RB(I-T)

# Generic G071RBTx
GenG0.menu.pnum.GENERIC_G071RBTX=Generic G071RBTx
GenG0.menu.pnum.GENERIC_G071RBTX.upload.maximum_size=131072
GenG0.menu.pnum.GENERIC_G071RBTX.upload.maximum_data_size=36864
GenG0.menu.pnum.GENERIC_G071RBTX.build.board=GENERIC_G071RBTX
GenG0.menu.pnum.GENERIC_G071RBTX.build.product_line=STM32G071xx
GenG0.menu.pnum.GENERIC_G071RBTX.build.variant=STM32G0xx/G071R(6-8)T_G071RB(I-T)_G081RB(I-T)

# Generic G071RBIx
GenG0.menu.pnum.GENERIC_G071RBIX=Generic G071RBIx
GenG0.menu.pnum.GENERIC_G071RBIX.upload.maximum_size=131072
GenG0.menu.pnum.GENERIC_G071RBIX.upload.maximum_data_size=36864
GenG0.menu.pnum.GENERIC_G071RBIX.build.board=GENERIC_G071RBIX
GenG0.menu.pnum.GENERIC_G071RBIX.build.product_line=STM32G071xx
GenG0.menu.pnum.GENERIC_G071RBIX.build.variant=STM32G0xx/G071R(6-8)T_G071RB(I-T)_G081RB(I-T)

# Generic G081RBIx
GenG0.menu.pnum.GENERIC_G081RBIX=Generic G081RBIx
GenG0.menu.pnum.GENERIC_G081RBIX.upload.maximum_size=131072
GenG0.menu.pnum.GENERIC_G081RBIX.upload.maximum_data_size=36864
GenG0.menu.pnum.GENERIC_G081RBIX.build.board=GENERIC_G081RBIX
GenG0.menu.pnum.GENERIC_G081RBIX.build.product_line=STM32G081xx
GenG0.menu.pnum.GENERIC_G081RBIX.build.variant=STM32G0xx/G071R(6-8)T_G071RB(I-T)_G081RB(I-T)

# Generic G081RBTx
GenG0.menu.pnum.GENERIC_G081RBTX=Generic G081RBTx
GenG0.menu.pnum.GENERIC_G081RBTX.upload.maximum_size=131072
GenG0.menu.pnum.GENERIC_G081RBTX.upload.maximum_data_size=36864
GenG0.menu.pnum.GENERIC_G081RBTX.build.board=GENERIC_G081RBTX
GenG0.menu.pnum.GENERIC_G081RBTX.build.product_line=STM32G081xx
GenG0.menu.pnum.GENERIC_G081RBTX.build.variant=STM32G0xx/G071R(6-8)T_G071RB(I-T)_G081RB(I-T)

# Upload menu
GenG0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenG0.menu.upload_method.swdMethod.upload.protocol=0
GenG0.menu.upload_method.swdMethod.upload.options=-g
GenG0.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenG0.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenG0.menu.upload_method.serialMethod.upload.protocol=1
GenG0.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenG0.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenG0.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenG0.menu.upload_method.dfuMethod.upload.protocol=2
GenG0.menu.upload_method.dfuMethod.upload.options=-g
GenG0.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

###############################
# Generic G4
GenG4.name=Generic STM32G4 series

GenG4.build.core=arduino
GenG4.build.board=GenG4
GenG4.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
GenG4.build.mcu=cortex-m4
GenG4.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenG4.build.series=STM32G4xx
GenG4.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Generic G431C6Ux
GenG4.menu.pnum.GENERIC_G431C6UX=Generic G431C6Ux
GenG4.menu.pnum.GENERIC_G431C6UX.upload.maximum_size=32768
GenG4.menu.pnum.GENERIC_G431C6UX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431C6UX.build.board=GENERIC_G431C6UX
GenG4.menu.pnum.GENERIC_G431C6UX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431C6UX.build.variant=STM32G4xx/G431C(6-8-B)U_G441CBU

# Generic G431C8Ux
GenG4.menu.pnum.GENERIC_G431C8UX=Generic G431C8Ux
GenG4.menu.pnum.GENERIC_G431C8UX.upload.maximum_size=65536
GenG4.menu.pnum.GENERIC_G431C8UX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431C8UX.build.board=GENERIC_G431C8UX
GenG4.menu.pnum.GENERIC_G431C8UX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431C8UX.build.variant=STM32G4xx/G431C(6-8-B)U_G441CBU

# Generic G431CBUx
GenG4.menu.pnum.GENERIC_G431CBUX=Generic G431CBUx
GenG4.menu.pnum.GENERIC_G431CBUX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G431CBUX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431CBUX.build.board=GENERIC_G431CBUX
GenG4.menu.pnum.GENERIC_G431CBUX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431CBUX.build.variant=STM32G4xx/G431C(6-8-B)U_G441CBU

# Generic G431K6Tx
GenG4.menu.pnum.GENERIC_G431K6TX=Generic G431K6Tx
GenG4.menu.pnum.GENERIC_G431K6TX.upload.maximum_size=32768
GenG4.menu.pnum.GENERIC_G431K6TX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431K6TX.build.board=GENERIC_G431K6TX
GenG4.menu.pnum.GENERIC_G431K6TX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431K6TX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G431K8Tx
GenG4.menu.pnum.GENERIC_G431K8TX=Generic G431K8Tx
GenG4.menu.pnum.GENERIC_G431K8TX.upload.maximum_size=65536
GenG4.menu.pnum.GENERIC_G431K8TX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431K8TX.build.board=GENERIC_G431K8TX
GenG4.menu.pnum.GENERIC_G431K8TX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431K8TX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G431KBTx
GenG4.menu.pnum.GENERIC_G431KBTX=Generic G431KBTx
GenG4.menu.pnum.GENERIC_G431KBTX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G431KBTX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431KBTX.build.board=GENERIC_G431KBTX
GenG4.menu.pnum.GENERIC_G431KBTX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431KBTX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G431K6Ux
GenG4.menu.pnum.GENERIC_G431K6UX=Generic G431K6Ux
GenG4.menu.pnum.GENERIC_G431K6UX.upload.maximum_size=32768
GenG4.menu.pnum.GENERIC_G431K6UX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431K6UX.build.board=GENERIC_G431K6UX
GenG4.menu.pnum.GENERIC_G431K6UX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431K6UX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G431K8Ux
GenG4.menu.pnum.GENERIC_G431K8UX=Generic G431K8Ux
GenG4.menu.pnum.GENERIC_G431K8UX.upload.maximum_size=65536
GenG4.menu.pnum.GENERIC_G431K8UX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431K8UX.build.board=GENERIC_G431K8UX
GenG4.menu.pnum.GENERIC_G431K8UX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431K8UX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G431KBUx
GenG4.menu.pnum.GENERIC_G431KBUX=Generic G431KBUx
GenG4.menu.pnum.GENERIC_G431KBUX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G431KBUX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431KBUX.build.board=GENERIC_G431KBUX
GenG4.menu.pnum.GENERIC_G431KBUX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431KBUX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G441CBUx
GenG4.menu.pnum.GENERIC_G441CBUX=Generic G441CBUx
GenG4.menu.pnum.GENERIC_G441CBUX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G441CBUX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G441CBUX.build.board=GENERIC_G441CBUX
GenG4.menu.pnum.GENERIC_G441CBUX.build.product_line=STM32G441xx
GenG4.menu.pnum.GENERIC_G441CBUX.build.variant=STM32G4xx/G431C(6-8-B)U_G441CBU

# Generic G441KBTx
GenG4.menu.pnum.GENERIC_G441KBTX=Generic G441KBTx
GenG4.menu.pnum.GENERIC_G441KBTX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G441KBTX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G441KBTX.build.board=GENERIC_G441KBTX
GenG4.menu.pnum.GENERIC_G441KBTX.build.product_line=STM32G441xx
GenG4.menu.pnum.GENERIC_G441KBTX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G441KBUx
GenG4.menu.pnum.GENERIC_G441KBUX=Generic G441KBUx
GenG4.menu.pnum.GENERIC_G441KBUX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G441KBUX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G441KBUX.build.board=GENERIC_G441KBUX
GenG4.menu.pnum.GENERIC_G441KBUX.build.product_line=STM32G441xx
GenG4.menu.pnum.GENERIC_G441KBUX.build.variant=STM32G4xx/G431K(6-8-B)(T-U)_G441KB(T-U)

# Generic G431R6Ix
GenG4.menu.pnum.GENERIC_G431R6IX=Generic G431R6Ix
GenG4.menu.pnum.GENERIC_G431R6IX.upload.maximum_size=32768
GenG4.menu.pnum.GENERIC_G431R6IX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431R6IX.build.board=GENERIC_G431R6IX
GenG4.menu.pnum.GENERIC_G431R6IX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431R6IX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G431R8Ix
GenG4.menu.pnum.GENERIC_G431R8IX=Generic G431R8Ix
GenG4.menu.pnum.GENERIC_G431R8IX.upload.maximum_size=65536
GenG4.menu.pnum.GENERIC_G431R8IX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431R8IX.build.board=GENERIC_G431R8IX
GenG4.menu.pnum.GENERIC_G431R8IX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431R8IX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G431RBIx
GenG4.menu.pnum.GENERIC_G431RBIX=Generic G431RBIx
GenG4.menu.pnum.GENERIC_G431RBIX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G431RBIX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431RBIX.build.board=GENERIC_G431RBIX
GenG4.menu.pnum.GENERIC_G431RBIX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431RBIX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G431R6Tx
GenG4.menu.pnum.GENERIC_G431R6TX=Generic G431R6Tx
GenG4.menu.pnum.GENERIC_G431R6TX.upload.maximum_size=32768
GenG4.menu.pnum.GENERIC_G431R6TX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431R6TX.build.board=GENERIC_G431R6TX
GenG4.menu.pnum.GENERIC_G431R6TX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431R6TX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G431R8Tx
GenG4.menu.pnum.GENERIC_G431R8TX=Generic G431R8Tx
GenG4.menu.pnum.GENERIC_G431R8TX.upload.maximum_size=65536
GenG4.menu.pnum.GENERIC_G431R8TX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431R8TX.build.board=GENERIC_G431R8TX
GenG4.menu.pnum.GENERIC_G431R8TX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431R8TX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G431RBTx
GenG4.menu.pnum.GENERIC_G431RBTX=Generic G431RBTx
GenG4.menu.pnum.GENERIC_G431RBTX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G431RBTX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G431RBTX.build.board=GENERIC_G431RBTX
GenG4.menu.pnum.GENERIC_G431RBTX.build.product_line=STM32G431xx
GenG4.menu.pnum.GENERIC_G431RBTX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G441RBIx
GenG4.menu.pnum.GENERIC_G441RBIX=Generic G441RBIx
GenG4.menu.pnum.GENERIC_G441RBIX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G441RBIX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G441RBIX.build.board=GENERIC_G441RBIX
GenG4.menu.pnum.GENERIC_G441RBIX.build.product_line=STM32G441xx
GenG4.menu.pnum.GENERIC_G441RBIX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G441RBTx
GenG4.menu.pnum.GENERIC_G441RBTX=Generic G441RBTx
GenG4.menu.pnum.GENERIC_G441RBTX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G441RBTX.upload.maximum_data_size=32768
GenG4.menu.pnum.GENERIC_G441RBTX.build.board=GENERIC_G441RBTX
GenG4.menu.pnum.GENERIC_G441RBTX.build.product_line=STM32G441xx
GenG4.menu.pnum.GENERIC_G441RBTX.build.variant=STM32G4xx/G431R(6-8-B)(I-T)_G441RB(I-T)

# Generic G473RBTx
GenG4.menu.pnum.GENERIC_G473RBTX=Generic G473RBTx
GenG4.menu.pnum.GENERIC_G473RBTX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G473RBTX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G473RBTX.build.board=GENERIC_G473RBTX
GenG4.menu.pnum.GENERIC_G473RBTX.build.product_line=STM32G473xx
GenG4.menu.pnum.GENERIC_G473RBTX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Generic G473RCTx
GenG4.menu.pnum.GENERIC_G473RCTX=Generic G473RCTx
GenG4.menu.pnum.GENERIC_G473RCTX.upload.maximum_size=262144
GenG4.menu.pnum.GENERIC_G473RCTX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G473RCTX.build.board=GENERIC_G473RCTX
GenG4.menu.pnum.GENERIC_G473RCTX.build.product_line=STM32G473xx
GenG4.menu.pnum.GENERIC_G473RCTX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Generic G473RETx
GenG4.menu.pnum.GENERIC_G473RETX=Generic G473RETx
GenG4.menu.pnum.GENERIC_G473RETX.upload.maximum_size=524288
GenG4.menu.pnum.GENERIC_G473RETX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G473RETX.build.board=GENERIC_G473RETX
GenG4.menu.pnum.GENERIC_G473RETX.build.product_line=STM32G473xx
GenG4.menu.pnum.GENERIC_G473RETX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Generic G474RBTx
GenG4.menu.pnum.GENERIC_G474RBTX=Generic G474RBTx
GenG4.menu.pnum.GENERIC_G474RBTX.upload.maximum_size=131072
GenG4.menu.pnum.GENERIC_G474RBTX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G474RBTX.build.board=GENERIC_G474RBTX
GenG4.menu.pnum.GENERIC_G474RBTX.build.product_line=STM32G474xx
GenG4.menu.pnum.GENERIC_G474RBTX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Generic G474RCTx
GenG4.menu.pnum.GENERIC_G474RCTX=Generic G474RCTx
GenG4.menu.pnum.GENERIC_G474RCTX.upload.maximum_size=262144
GenG4.menu.pnum.GENERIC_G474RCTX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G474RCTX.build.board=GENERIC_G474RCTX
GenG4.menu.pnum.GENERIC_G474RCTX.build.product_line=STM32G474xx
GenG4.menu.pnum.GENERIC_G474RCTX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Generic G474RETx
GenG4.menu.pnum.GENERIC_G474RETX=Generic G474RETx
GenG4.menu.pnum.GENERIC_G474RETX.upload.maximum_size=524288
GenG4.menu.pnum.GENERIC_G474RETX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G474RETX.build.board=GENERIC_G474RETX
GenG4.menu.pnum.GENERIC_G474RETX.build.product_line=STM32G474xx
GenG4.menu.pnum.GENERIC_G474RETX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Generic G483RETx
GenG4.menu.pnum.GENERIC_G483RETX=Generic G483RETx
GenG4.menu.pnum.GENERIC_G483RETX.upload.maximum_size=524288
GenG4.menu.pnum.GENERIC_G483RETX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G483RETX.build.board=GENERIC_G483RETX
GenG4.menu.pnum.GENERIC_G483RETX.build.product_line=STM32G483xx
GenG4.menu.pnum.GENERIC_G483RETX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Generic G484RETx
GenG4.menu.pnum.GENERIC_G484RETX=Generic G484RETx
GenG4.menu.pnum.GENERIC_G484RETX.upload.maximum_size=524288
GenG4.menu.pnum.GENERIC_G484RETX.upload.maximum_data_size=131072
GenG4.menu.pnum.GENERIC_G484RETX.build.board=GENERIC_G484RETX
GenG4.menu.pnum.GENERIC_G484RETX.build.product_line=STM32G484xx
GenG4.menu.pnum.GENERIC_G484RETX.build.variant=STM32G4xx/G473R(B-C-E)T_G474R(B-C-E)T_G483RET_G484RET

# Upload menu
GenG4.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenG4.menu.upload_method.swdMethod.upload.protocol=0
GenG4.menu.upload_method.swdMethod.upload.options=-g
GenG4.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenG4.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenG4.menu.upload_method.serialMethod.upload.protocol=1
GenG4.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenG4.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenG4.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenG4.menu.upload_method.dfuMethod.upload.protocol=2
GenG4.menu.upload_method.dfuMethod.upload.options=-g
GenG4.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Generic H7
GenH7.name=Generic STM32H7 Series

GenH7.build.core=arduino
GenH7.build.board=GenH7
GenH7.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
GenH7.build.cmsis_lib_gcc=arm_cortexM7lfsp_math
GenH7.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenH7.build.series=STM32H7xx
GenH7.build.mcu=cortex-m7

# Daisy Seed board
GenH7.menu.pnum.DAISY_SEED=Daisy Seed
GenH7.menu.pnum.DAISY_SEED.upload.maximum_size=131072
GenH7.menu.pnum.DAISY_SEED.upload.maximum_data_size=524288
GenH7.menu.pnum.DAISY_SEED.build.board=DAISY_SEED
GenH7.menu.pnum.DAISY_SEED.build.product_line=STM32H750xx
GenH7.menu.pnum.DAISY_SEED.build.variant_h=variant_{build.board}.h
GenH7.menu.pnum.DAISY_SEED.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)
GenH7.menu.pnum.DAISY_SEED.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
GenH7.menu.pnum.DAISY_SEED.build.ldscript=DAISY_SEED.ld

# Generic H742VGHx
GenH7.menu.pnum.GENERIC_H742VGHX=Generic H742VGHx
GenH7.menu.pnum.GENERIC_H742VGHX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H742VGHX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H742VGHX.build.board=GENERIC_H742VGHX
GenH7.menu.pnum.GENERIC_H742VGHX.build.product_line=STM32H742xx
GenH7.menu.pnum.GENERIC_H742VGHX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H742VIHx
GenH7.menu.pnum.GENERIC_H742VIHX=Generic H742VIHx
GenH7.menu.pnum.GENERIC_H742VIHX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H742VIHX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H742VIHX.build.board=GENERIC_H742VIHX
GenH7.menu.pnum.GENERIC_H742VIHX.build.product_line=STM32H742xx
GenH7.menu.pnum.GENERIC_H742VIHX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H742VGTx
GenH7.menu.pnum.GENERIC_H742VGTX=Generic H742VGTx
GenH7.menu.pnum.GENERIC_H742VGTX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H742VGTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H742VGTX.build.board=GENERIC_H742VGTX
GenH7.menu.pnum.GENERIC_H742VGTX.build.product_line=STM32H742xx
GenH7.menu.pnum.GENERIC_H742VGTX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H742VITx
GenH7.menu.pnum.GENERIC_H742VITX=Generic H742VITx
GenH7.menu.pnum.GENERIC_H742VITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H742VITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H742VITX.build.board=GENERIC_H742VITX
GenH7.menu.pnum.GENERIC_H742VITX.build.product_line=STM32H742xx
GenH7.menu.pnum.GENERIC_H742VITX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H742ZGTx
GenH7.menu.pnum.GENERIC_H742ZGTX=Generic H742ZGTx
GenH7.menu.pnum.GENERIC_H742ZGTX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H742ZGTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H742ZGTX.build.board=GENERIC_H742ZGTX
GenH7.menu.pnum.GENERIC_H742ZGTX.build.product_line=STM32H742xx
GenH7.menu.pnum.GENERIC_H742ZGTX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H742ZITx
GenH7.menu.pnum.GENERIC_H742ZITX=Generic H742ZITx
GenH7.menu.pnum.GENERIC_H742ZITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H742ZITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H742ZITX.build.board=GENERIC_H742ZITX
GenH7.menu.pnum.GENERIC_H742ZITX.build.product_line=STM32H742xx
GenH7.menu.pnum.GENERIC_H742ZITX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H743IGKx
GenH7.menu.pnum.GENERIC_H743IGKX=Generic H743IGKx
GenH7.menu.pnum.GENERIC_H743IGKX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H743IGKX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743IGKX.build.board=GENERIC_H743IGKX
GenH7.menu.pnum.GENERIC_H743IGKX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743IGKX.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)

# Generic H743IGTx
GenH7.menu.pnum.GENERIC_H743IGTX=Generic H743IGTx
GenH7.menu.pnum.GENERIC_H743IGTX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H743IGTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743IGTX.build.board=GENERIC_H743IGTX
GenH7.menu.pnum.GENERIC_H743IGTX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743IGTX.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)

# Generic H743IIKx
GenH7.menu.pnum.GENERIC_H743IIKX=Generic H743IIKx
GenH7.menu.pnum.GENERIC_H743IIKX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H743IIKX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743IIKX.build.board=GENERIC_H743IIKX
GenH7.menu.pnum.GENERIC_H743IIKX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743IIKX.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)

# Generic H743IITx
GenH7.menu.pnum.GENERIC_H743IITX=Generic H743IITx
GenH7.menu.pnum.GENERIC_H743IITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H743IITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743IITX.build.board=GENERIC_H743IITX
GenH7.menu.pnum.GENERIC_H743IITX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743IITX.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)

# Generic H743VGHx
GenH7.menu.pnum.GENERIC_H743VGHX=Generic H743VGHx
GenH7.menu.pnum.GENERIC_H743VGHX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H743VGHX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743VGHX.build.board=GENERIC_H743VGHX
GenH7.menu.pnum.GENERIC_H743VGHX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743VGHX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H743VIHx
GenH7.menu.pnum.GENERIC_H743VIHX=Generic H743VIHx
GenH7.menu.pnum.GENERIC_H743VIHX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H743VIHX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743VIHX.build.board=GENERIC_H743VIHX
GenH7.menu.pnum.GENERIC_H743VIHX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743VIHX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H743VGTx
GenH7.menu.pnum.GENERIC_H743VGTX=Generic H743VGTx
GenH7.menu.pnum.GENERIC_H743VGTX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H743VGTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743VGTX.build.board=GENERIC_H743VGTX
GenH7.menu.pnum.GENERIC_H743VGTX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743VGTX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H743VITx
GenH7.menu.pnum.GENERIC_H743VITX=Generic H743VITx
GenH7.menu.pnum.GENERIC_H743VITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H743VITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743VITX.build.board=GENERIC_H743VITX
GenH7.menu.pnum.GENERIC_H743VITX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743VITX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H743ZGTx
GenH7.menu.pnum.GENERIC_H743ZGTX=Generic H743ZGTx
GenH7.menu.pnum.GENERIC_H743ZGTX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H743ZGTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743ZGTX.build.board=GENERIC_H743ZGTX
GenH7.menu.pnum.GENERIC_H743ZGTX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743ZGTX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H743ZITx
GenH7.menu.pnum.GENERIC_H743ZITX=Generic H743ZITx
GenH7.menu.pnum.GENERIC_H743ZITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H743ZITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H743ZITX.build.board=GENERIC_H743ZITX
GenH7.menu.pnum.GENERIC_H743ZITX.build.product_line=STM32H743xx
GenH7.menu.pnum.GENERIC_H743ZITX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H747AGIx
GenH7.menu.pnum.GENERIC_H747AGIX=Generic H747AGIx
GenH7.menu.pnum.GENERIC_H747AGIX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H747AGIX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H747AGIX.build.board=GENERIC_H747AGIX
GenH7.menu.pnum.GENERIC_H747AGIX.build.product_line=STM32H747xx
GenH7.menu.pnum.GENERIC_H747AGIX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H747AIIx
GenH7.menu.pnum.GENERIC_H747AIIX=Generic H747AIIx
GenH7.menu.pnum.GENERIC_H747AIIX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H747AIIX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H747AIIX.build.board=GENERIC_H747AIIX
GenH7.menu.pnum.GENERIC_H747AIIX.build.product_line=STM32H747xx
GenH7.menu.pnum.GENERIC_H747AIIX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H747IGTx
GenH7.menu.pnum.GENERIC_H747IGTX=Generic H747IGTx
GenH7.menu.pnum.GENERIC_H747IGTX.upload.maximum_size=1048576
GenH7.menu.pnum.GENERIC_H747IGTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H747IGTX.build.board=GENERIC_H747IGTX
GenH7.menu.pnum.GENERIC_H747IGTX.build.product_line=STM32H747xx
GenH7.menu.pnum.GENERIC_H747IGTX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H747IITx
GenH7.menu.pnum.GENERIC_H747IITX=Generic H747IITx
GenH7.menu.pnum.GENERIC_H747IITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H747IITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H747IITX.build.board=GENERIC_H747IITX
GenH7.menu.pnum.GENERIC_H747IITX.build.product_line=STM32H747xx
GenH7.menu.pnum.GENERIC_H747IITX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H750IBKx
GenH7.menu.pnum.GENERIC_H750IBKX=Generic H750IBKx
GenH7.menu.pnum.GENERIC_H750IBKX.upload.maximum_size=131072
GenH7.menu.pnum.GENERIC_H750IBKX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H750IBKX.build.board=GENERIC_H750IBKX
GenH7.menu.pnum.GENERIC_H750IBKX.build.product_line=STM32H750xx
GenH7.menu.pnum.GENERIC_H750IBKX.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)

# Generic H750VBTx
GenH7.menu.pnum.GENERIC_H750VBTX=Generic H750VBTx
GenH7.menu.pnum.GENERIC_H750VBTX.upload.maximum_size=131072
GenH7.menu.pnum.GENERIC_H750VBTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H750VBTX.build.board=GENERIC_H750VBTX
GenH7.menu.pnum.GENERIC_H750VBTX.build.product_line=STM32H750xx
GenH7.menu.pnum.GENERIC_H750VBTX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H750ZBTx
GenH7.menu.pnum.GENERIC_H750ZBTX=Generic H750ZBTx
GenH7.menu.pnum.GENERIC_H750ZBTX.upload.maximum_size=131072
GenH7.menu.pnum.GENERIC_H750ZBTX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H750ZBTX.build.board=GENERIC_H750ZBTX
GenH7.menu.pnum.GENERIC_H750ZBTX.build.product_line=STM32H750xx
GenH7.menu.pnum.GENERIC_H750ZBTX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H753IIKx
GenH7.menu.pnum.GENERIC_H753IIKX=Generic H753IIKx
GenH7.menu.pnum.GENERIC_H753IIKX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H753IIKX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H753IIKX.build.board=GENERIC_H753IIKX
GenH7.menu.pnum.GENERIC_H753IIKX.build.product_line=STM32H753xx
GenH7.menu.pnum.GENERIC_H753IIKX.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)

# Generic H753IITx
GenH7.menu.pnum.GENERIC_H753IITX=Generic H753IITx
GenH7.menu.pnum.GENERIC_H753IITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H753IITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H753IITX.build.board=GENERIC_H753IITX
GenH7.menu.pnum.GENERIC_H753IITX.build.product_line=STM32H753xx
GenH7.menu.pnum.GENERIC_H753IITX.build.variant=STM32H7xx/H743I(G-I)(K-T)_H750IBK_H753II(K-T)

# Generic H753VIHx
GenH7.menu.pnum.GENERIC_H753VIHX=Generic H753VIHx
GenH7.menu.pnum.GENERIC_H753VIHX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H753VIHX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H753VIHX.build.board=GENERIC_H753VIHX
GenH7.menu.pnum.GENERIC_H753VIHX.build.product_line=STM32H753xx
GenH7.menu.pnum.GENERIC_H753VIHX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H753VITx
GenH7.menu.pnum.GENERIC_H753VITX=Generic H753VITx
GenH7.menu.pnum.GENERIC_H753VITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H753VITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H753VITX.build.board=GENERIC_H753VITX
GenH7.menu.pnum.GENERIC_H753VITX.build.product_line=STM32H753xx
GenH7.menu.pnum.GENERIC_H753VITX.build.variant=STM32H7xx/H742V(G-I)(H-T)_H743V(G-I)(H-T)_H750VBT_H753VI(H-T)

# Generic H753ZITx
GenH7.menu.pnum.GENERIC_H753ZITX=Generic H753ZITx
GenH7.menu.pnum.GENERIC_H753ZITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H753ZITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H753ZITX.build.board=GENERIC_H753ZITX
GenH7.menu.pnum.GENERIC_H753ZITX.build.product_line=STM32H753xx
GenH7.menu.pnum.GENERIC_H753ZITX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H757AIIx
GenH7.menu.pnum.GENERIC_H757AIIX=Generic H757AIIx
GenH7.menu.pnum.GENERIC_H757AIIX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H757AIIX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H757AIIX.build.board=GENERIC_H757AIIX
GenH7.menu.pnum.GENERIC_H757AIIX.build.product_line=STM32H757xx
GenH7.menu.pnum.GENERIC_H757AIIX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Generic H757IITx
GenH7.menu.pnum.GENERIC_H757IITX=Generic H757IITx
GenH7.menu.pnum.GENERIC_H757IITX.upload.maximum_size=2097152
GenH7.menu.pnum.GENERIC_H757IITX.upload.maximum_data_size=524288
GenH7.menu.pnum.GENERIC_H757IITX.build.board=GENERIC_H757IITX
GenH7.menu.pnum.GENERIC_H757IITX.build.product_line=STM32H757xx
GenH7.menu.pnum.GENERIC_H757IITX.build.variant=STM32H7xx/H742Z(G-I)T_H743Z(G-I)T_H747A(G-I)I_H747I(G-I)T_H750ZBT_H753ZIT_H757AII_H757IIT

# Upload menu
GenH7.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenH7.menu.upload_method.swdMethod.upload.protocol=0
GenH7.menu.upload_method.swdMethod.upload.options=-g
GenH7.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenH7.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenH7.menu.upload_method.serialMethod.upload.protocol=1
GenH7.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenH7.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenH7.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenH7.menu.upload_method.dfuMethod.upload.protocol=2
GenH7.menu.upload_method.dfuMethod.upload.options=-g
GenH7.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Generic L0
GenL0.name=Generic STM32L0 series

GenL0.build.core=arduino
GenL0.build.board=GenL0
GenL0.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0
GenL0.build.mcu=cortex-m0plus
GenL0.build.series=STM32L0xx
GenL0.build.cmsis_lib_gcc=arm_cortexM0l_math

# ThunderPack
GenL0.menu.pnum.THUNDERPACK_L072=ThunderPack v1.0
GenL0.menu.pnum.THUNDERPACK_L072.upload.maximum_size=196608
GenL0.menu.pnum.THUNDERPACK_L072.upload.maximum_data_size=20480
GenL0.menu.pnum.THUNDERPACK_L072.build.board=THUNDERPACK_L072
GenL0.menu.pnum.THUNDERPACK_L072.build.product_line=STM32L072xx
GenL0.menu.pnum.THUNDERPACK_L072.build.variant_h=variant_{build.board}.h
GenL0.menu.pnum.THUNDERPACK_L072..build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
GenL0.menu.pnum.THUNDERPACK_L072.build.variant=STM32L0xx/L072K(B-Z)T_L082K(B-Z)T

# Piconomix PX-HER0 board
GenL0.menu.pnum.PX_HER0=PX-HER0
GenL0.menu.pnum.PX_HER0.upload.maximum_size=131072
GenL0.menu.pnum.PX_HER0.upload.maximum_data_size=20480
GenL0.menu.pnum.PX_HER0.build.board=PX_HER0
GenL0.menu.pnum.PX_HER0.build.product_line=STM32L072xx
GenL0.menu.pnum.PX_HER0.build.variant_h=variant_{build.board}.h
GenL0.menu.pnum.PX_HER0.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T
GenL0.menu.pnum.PX_HER0.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Generic L010RBTx
GenL0.menu.pnum.GENERIC_L010RBTX=Generic L010RBTx
GenL0.menu.pnum.GENERIC_L010RBTX.upload.maximum_size=131072
GenL0.menu.pnum.GENERIC_L010RBTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L010RBTX.build.board=GENERIC_L010RBTX
GenL0.menu.pnum.GENERIC_L010RBTX.build.product_line=STM32L010xB
GenL0.menu.pnum.GENERIC_L010RBTX.build.variant=STM32L0xx/L010RBT

# Generic L031K4Tx
GenL0.menu.pnum.GENERIC_L031K4TX=Generic L031K4Tx
GenL0.menu.pnum.GENERIC_L031K4TX.upload.maximum_size=16384
GenL0.menu.pnum.GENERIC_L031K4TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L031K4TX.build.board=GENERIC_L031K4TX
GenL0.menu.pnum.GENERIC_L031K4TX.build.product_line=STM32L031xx
GenL0.menu.pnum.GENERIC_L031K4TX.build.variant=STM32L0xx/L031K(4-6)T_L041K6T

# Generic L031K6Tx
GenL0.menu.pnum.GENERIC_L031K6TX=Generic L031K6Tx
GenL0.menu.pnum.GENERIC_L031K6TX.upload.maximum_size=32768
GenL0.menu.pnum.GENERIC_L031K6TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L031K6TX.build.board=GENERIC_L031K6TX
GenL0.menu.pnum.GENERIC_L031K6TX.build.product_line=STM32L031xx
GenL0.menu.pnum.GENERIC_L031K6TX.build.variant=STM32L0xx/L031K(4-6)T_L041K6T

# Generic L041K6Tx
GenL0.menu.pnum.GENERIC_L041K6TX=Generic L041K6Tx
GenL0.menu.pnum.GENERIC_L041K6TX.upload.maximum_size=32768
GenL0.menu.pnum.GENERIC_L041K6TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L041K6TX.build.board=GENERIC_L041K6TX
GenL0.menu.pnum.GENERIC_L041K6TX.build.product_line=STM32L041xx
GenL0.menu.pnum.GENERIC_L041K6TX.build.variant=STM32L0xx/L031K(4-6)T_L041K6T

# Generic L051C6Tx
GenL0.menu.pnum.GENERIC_L051C6TX=Generic L051C6Tx
GenL0.menu.pnum.GENERIC_L051C6TX.upload.maximum_size=32768
GenL0.menu.pnum.GENERIC_L051C6TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L051C6TX.build.board=GENERIC_L051C6TX
GenL0.menu.pnum.GENERIC_L051C6TX.build.product_line=STM32L051xx
GenL0.menu.pnum.GENERIC_L051C6TX.build.variant=STM32L0xx/L051C(6-8)(T-U)

# Generic L051C6Ux
GenL0.menu.pnum.GENERIC_L051C6UX=Generic L051C6Ux
GenL0.menu.pnum.GENERIC_L051C6UX.upload.maximum_size=32768
GenL0.menu.pnum.GENERIC_L051C6UX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L051C6UX.build.board=GENERIC_L051C6UX
GenL0.menu.pnum.GENERIC_L051C6UX.build.product_line=STM32L051xx
GenL0.menu.pnum.GENERIC_L051C6UX.build.variant=STM32L0xx/L051C(6-8)(T-U)

# Generic L051C8Tx
GenL0.menu.pnum.GENERIC_L051C8TX=Generic L051C8Tx
GenL0.menu.pnum.GENERIC_L051C8TX.upload.maximum_size=65536
GenL0.menu.pnum.GENERIC_L051C8TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L051C8TX.build.board=GENERIC_L051C8TX
GenL0.menu.pnum.GENERIC_L051C8TX.build.product_line=STM32L051xx
GenL0.menu.pnum.GENERIC_L051C8TX.build.variant=STM32L0xx/L051C(6-8)(T-U)

# Generic L051C8Ux
GenL0.menu.pnum.GENERIC_L051C8UX=Generic L051C8Ux
GenL0.menu.pnum.GENERIC_L051C8UX.upload.maximum_size=65536
GenL0.menu.pnum.GENERIC_L051C8UX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L051C8UX.build.board=GENERIC_L051C8UX
GenL0.menu.pnum.GENERIC_L051C8UX.build.product_line=STM32L051xx
GenL0.menu.pnum.GENERIC_L051C8UX.build.variant=STM32L0xx/L051C(6-8)(T-U)

# Generic L052R6Tx
GenL0.menu.pnum.GENERIC_L052R6TX=Generic L052R6Tx
GenL0.menu.pnum.GENERIC_L052R6TX.upload.maximum_size=32768
GenL0.menu.pnum.GENERIC_L052R6TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L052R6TX.build.board=GENERIC_L052R6TX
GenL0.menu.pnum.GENERIC_L052R6TX.build.product_line=STM32L052xx
GenL0.menu.pnum.GENERIC_L052R6TX.build.variant=STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T

# Generic L052R8Tx
GenL0.menu.pnum.GENERIC_L052R8TX=Generic L052R8Tx
GenL0.menu.pnum.GENERIC_L052R8TX.upload.maximum_size=65536
GenL0.menu.pnum.GENERIC_L052R8TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L052R8TX.build.board=GENERIC_L052R8TX
GenL0.menu.pnum.GENERIC_L052R8TX.build.product_line=STM32L052xx
GenL0.menu.pnum.GENERIC_L052R8TX.build.variant=STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T

# Generic L053R6Tx
GenL0.menu.pnum.GENERIC_L053R6TX=Generic L053R6Tx
GenL0.menu.pnum.GENERIC_L053R6TX.upload.maximum_size=32768
GenL0.menu.pnum.GENERIC_L053R6TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L053R6TX.build.board=GENERIC_L053R6TX
GenL0.menu.pnum.GENERIC_L053R6TX.build.product_line=STM32L053xx
GenL0.menu.pnum.GENERIC_L053R6TX.build.variant=STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T

# Generic L053R8Tx
GenL0.menu.pnum.GENERIC_L053R8TX=Generic L053R8Tx
GenL0.menu.pnum.GENERIC_L053R8TX.upload.maximum_size=65536
GenL0.menu.pnum.GENERIC_L053R8TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L053R8TX.build.board=GENERIC_L053R8TX
GenL0.menu.pnum.GENERIC_L053R8TX.build.product_line=STM32L053xx
GenL0.menu.pnum.GENERIC_L053R8TX.build.variant=STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T

# Generic L063R8Tx
GenL0.menu.pnum.GENERIC_L063R8TX=Generic L063R8Tx
GenL0.menu.pnum.GENERIC_L063R8TX.upload.maximum_size=65536
GenL0.menu.pnum.GENERIC_L063R8TX.upload.maximum_data_size=8192
GenL0.menu.pnum.GENERIC_L063R8TX.build.board=GENERIC_L063R8TX
GenL0.menu.pnum.GENERIC_L063R8TX.build.product_line=STM32L063xx
GenL0.menu.pnum.GENERIC_L063R8TX.build.variant=STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T

# Generic L072CBYx
GenL0.menu.pnum.GENERIC_L072CBYX=Generic L072CBYx
GenL0.menu.pnum.GENERIC_L072CBYX.upload.maximum_size=131072
GenL0.menu.pnum.GENERIC_L072CBYX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L072CBYX.build.board=GENERIC_L072CBYX
GenL0.menu.pnum.GENERIC_L072CBYX.build.product_line=STM32L072xx
GenL0.menu.pnum.GENERIC_L072CBYX.build.variant=STM32L0xx/L072CBY_L072CZ(E-Y)_L073CZY_L082CZY

# Generic L072CZEx
GenL0.menu.pnum.GENERIC_L072CZEX=Generic L072CZEx
GenL0.menu.pnum.GENERIC_L072CZEX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L072CZEX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L072CZEX.build.board=GENERIC_L072CZEX
GenL0.menu.pnum.GENERIC_L072CZEX.build.product_line=STM32L072xx
GenL0.menu.pnum.GENERIC_L072CZEX.build.variant=STM32L0xx/L072CBY_L072CZ(E-Y)_L073CZY_L082CZY

# Generic L072CZYx
GenL0.menu.pnum.GENERIC_L072CZYX=Generic L072CZYx
GenL0.menu.pnum.GENERIC_L072CZYX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L072CZYX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L072CZYX.build.board=GENERIC_L072CZYX
GenL0.menu.pnum.GENERIC_L072CZYX.build.product_line=STM32L072xx
GenL0.menu.pnum.GENERIC_L072CZYX.build.variant=STM32L0xx/L072CBY_L072CZ(E-Y)_L073CZY_L082CZY

# Generic L072KBTx
GenL0.menu.pnum.GENERIC_L072KBTX=Generic L072KBTx
GenL0.menu.pnum.GENERIC_L072KBTX.upload.maximum_size=131072
GenL0.menu.pnum.GENERIC_L072KBTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L072KBTX.build.board=GENERIC_L072KBTX
GenL0.menu.pnum.GENERIC_L072KBTX.build.product_line=STM32L072xx
GenL0.menu.pnum.GENERIC_L072KBTX.build.variant=STM32L0xx/L072K(B-Z)T_L082K(B-Z)T

# Generic L072KZTx
GenL0.menu.pnum.GENERIC_L072KZTX=Generic L072KZTx
GenL0.menu.pnum.GENERIC_L072KZTX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L072KZTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L072KZTX.build.board=GENERIC_L072KZTX
GenL0.menu.pnum.GENERIC_L072KZTX.build.product_line=STM32L072xx
GenL0.menu.pnum.GENERIC_L072KZTX.build.variant=STM32L0xx/L072K(B-Z)T_L082K(B-Z)T

# Generic L072RBTx
GenL0.menu.pnum.GENERIC_L072RBTX=Generic L072RBTx
GenL0.menu.pnum.GENERIC_L072RBTX.upload.maximum_size=131072
GenL0.menu.pnum.GENERIC_L072RBTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L072RBTX.build.board=GENERIC_L072RBTX
GenL0.menu.pnum.GENERIC_L072RBTX.build.product_line=STM32L072xx
GenL0.menu.pnum.GENERIC_L072RBTX.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T

# Generic L072RZTx
GenL0.menu.pnum.GENERIC_L072RZTX=Generic L072RZTx
GenL0.menu.pnum.GENERIC_L072RZTX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L072RZTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L072RZTX.build.board=GENERIC_L072RZTX
GenL0.menu.pnum.GENERIC_L072RZTX.build.product_line=STM32L072xx
GenL0.menu.pnum.GENERIC_L072RZTX.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T

# Generic L073CZYx
GenL0.menu.pnum.GENERIC_L073CZYX=Generic L073CZYx
GenL0.menu.pnum.GENERIC_L073CZYX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L073CZYX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L073CZYX.build.board=GENERIC_L073CZYX
GenL0.menu.pnum.GENERIC_L073CZYX.build.product_line=STM32L073xx
GenL0.menu.pnum.GENERIC_L073CZYX.build.variant=STM32L0xx/L072CBY_L072CZ(E-Y)_L073CZY_L082CZY

# Generic L073RBTx
GenL0.menu.pnum.GENERIC_L073RBTX=Generic L073RBTx
GenL0.menu.pnum.GENERIC_L073RBTX.upload.maximum_size=131072
GenL0.menu.pnum.GENERIC_L073RBTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L073RBTX.build.board=GENERIC_L073RBTX
GenL0.menu.pnum.GENERIC_L073RBTX.build.product_line=STM32L073xx
GenL0.menu.pnum.GENERIC_L073RBTX.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T

# Generic L073RZTx
GenL0.menu.pnum.GENERIC_L073RZTX=Generic L073RZTx
GenL0.menu.pnum.GENERIC_L073RZTX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L073RZTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L073RZTX.build.board=GENERIC_L073RZTX
GenL0.menu.pnum.GENERIC_L073RZTX.build.product_line=STM32L073xx
GenL0.menu.pnum.GENERIC_L073RZTX.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T

# Generic L082CZYx
GenL0.menu.pnum.GENERIC_L082CZYX=Generic L082CZYx
GenL0.menu.pnum.GENERIC_L082CZYX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L082CZYX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L082CZYX.build.board=GENERIC_L082CZYX
GenL0.menu.pnum.GENERIC_L082CZYX.build.product_line=STM32L082xx
GenL0.menu.pnum.GENERIC_L082CZYX.build.variant=STM32L0xx/L072CBY_L072CZ(E-Y)_L073CZY_L082CZY

# Generic L082KBTx
GenL0.menu.pnum.GENERIC_L082KBTX=Generic L082KBTx
GenL0.menu.pnum.GENERIC_L082KBTX.upload.maximum_size=131072
GenL0.menu.pnum.GENERIC_L082KBTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L082KBTX.build.board=GENERIC_L082KBTX
GenL0.menu.pnum.GENERIC_L082KBTX.build.product_line=STM32L082xx
GenL0.menu.pnum.GENERIC_L082KBTX.build.variant=STM32L0xx/L072K(B-Z)T_L082K(B-Z)T

# Generic L082KZTx
GenL0.menu.pnum.GENERIC_L082KZTX=Generic L082KZTx
GenL0.menu.pnum.GENERIC_L082KZTX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L082KZTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L082KZTX.build.board=GENERIC_L082KZTX
GenL0.menu.pnum.GENERIC_L082KZTX.build.product_line=STM32L082xx
GenL0.menu.pnum.GENERIC_L082KZTX.build.variant=STM32L0xx/L072K(B-Z)T_L082K(B-Z)T

# Generic L083RBTx
GenL0.menu.pnum.GENERIC_L083RBTX=Generic L083RBTx
GenL0.menu.pnum.GENERIC_L083RBTX.upload.maximum_size=131072
GenL0.menu.pnum.GENERIC_L083RBTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L083RBTX.build.board=GENERIC_L083RBTX
GenL0.menu.pnum.GENERIC_L083RBTX.build.product_line=STM32L083xx
GenL0.menu.pnum.GENERIC_L083RBTX.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T

# Generic L083RZTx
GenL0.menu.pnum.GENERIC_L083RZTX=Generic L083RZTx
GenL0.menu.pnum.GENERIC_L083RZTX.upload.maximum_size=196608
GenL0.menu.pnum.GENERIC_L083RZTX.upload.maximum_data_size=20480
GenL0.menu.pnum.GENERIC_L083RZTX.build.board=GENERIC_L083RZTX
GenL0.menu.pnum.GENERIC_L083RZTX.build.product_line=STM32L083xx
GenL0.menu.pnum.GENERIC_L083RZTX.build.variant=STM32L0xx/L072R(B-Z)T_L073R(B-Z)T_L083R(B-Z)T

# Upload menu
GenL0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenL0.menu.upload_method.swdMethod.upload.protocol=0
GenL0.menu.upload_method.swdMethod.upload.options=-g
GenL0.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenL0.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenL0.menu.upload_method.serialMethod.upload.protocol=1
GenL0.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenL0.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenL0.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenL0.menu.upload_method.dfuMethod.upload.protocol=2
GenL0.menu.upload_method.dfuMethod.upload.options=-g
GenL0.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

GenL0.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
GenL0.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
GenL0.menu.upload_method.bmpMethod.upload.tool=bmp_upload

################################################################################
# Generic L1
GenL1.name=Generic STM32L1 series

GenL1.build.core=arduino
GenL1.build.board=GenL1
GenL1.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
GenL1.build.mcu=cortex-m3
GenL1.build.series=STM32L1xx
GenL1.build.cmsis_lib_gcc=arm_cortexM3l_math

# Generic L100C6Ux
GenL1.menu.pnum.GENERIC_L100C6UX=Generic L100C6Ux
GenL1.menu.pnum.GENERIC_L100C6UX.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L100C6UX.upload.maximum_data_size=4096
GenL1.menu.pnum.GENERIC_L100C6UX.build.board=GENERIC_L100C6UX
GenL1.menu.pnum.GENERIC_L100C6UX.build.product_line=STM32L100xB
GenL1.menu.pnum.GENERIC_L100C6UX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L100C6UxA
GenL1.menu.pnum.GENERIC_L100C6UXA=Generic L100C6UxA
GenL1.menu.pnum.GENERIC_L100C6UXA.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L100C6UXA.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L100C6UXA.build.board=GENERIC_L100C6UXA
GenL1.menu.pnum.GENERIC_L100C6UXA.build.product_line=STM32L100xB
GenL1.menu.pnum.GENERIC_L100C6UXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C6Tx
GenL1.menu.pnum.GENERIC_L151C6TX=Generic L151C6Tx
GenL1.menu.pnum.GENERIC_L151C6TX.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L151C6TX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L151C6TX.build.board=GENERIC_L151C6TX
GenL1.menu.pnum.GENERIC_L151C6TX.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C6TX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C8Tx
GenL1.menu.pnum.GENERIC_L151C8TX=Generic L151C8Tx
GenL1.menu.pnum.GENERIC_L151C8TX.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L151C8TX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L151C8TX.build.board=GENERIC_L151C8TX
GenL1.menu.pnum.GENERIC_L151C8TX.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C8TX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151CBTx
GenL1.menu.pnum.GENERIC_L151CBTX=Generic L151CBTx
GenL1.menu.pnum.GENERIC_L151CBTX.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L151CBTX.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L151CBTX.build.board=GENERIC_L151CBTX
GenL1.menu.pnum.GENERIC_L151CBTX.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151CBTX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C6TxA
GenL1.menu.pnum.GENERIC_L151C6TXA=Generic L151C6TxA
GenL1.menu.pnum.GENERIC_L151C6TXA.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L151C6TXA.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L151C6TXA.build.board=GENERIC_L151C6TXA
GenL1.menu.pnum.GENERIC_L151C6TXA.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C6TXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C8TxA
GenL1.menu.pnum.GENERIC_L151C8TXA=Generic L151C8TxA
GenL1.menu.pnum.GENERIC_L151C8TXA.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L151C8TXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L151C8TXA.build.board=GENERIC_L151C8TXA
GenL1.menu.pnum.GENERIC_L151C8TXA.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C8TXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151CBTxA
GenL1.menu.pnum.GENERIC_L151CBTXA=Generic L151CBTxA
GenL1.menu.pnum.GENERIC_L151CBTXA.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L151CBTXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L151CBTXA.build.board=GENERIC_L151CBTXA
GenL1.menu.pnum.GENERIC_L151CBTXA.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151CBTXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C6Ux
GenL1.menu.pnum.GENERIC_L151C6UX=Generic L151C6Ux
GenL1.menu.pnum.GENERIC_L151C6UX.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L151C6UX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L151C6UX.build.board=GENERIC_L151C6UX
GenL1.menu.pnum.GENERIC_L151C6UX.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C6UX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C8Ux
GenL1.menu.pnum.GENERIC_L151C8UX=Generic L151C8Ux
GenL1.menu.pnum.GENERIC_L151C8UX.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L151C8UX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L151C8UX.build.board=GENERIC_L151C8UX
GenL1.menu.pnum.GENERIC_L151C8UX.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C8UX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151CBUx
GenL1.menu.pnum.GENERIC_L151CBUX=Generic L151CBUx
GenL1.menu.pnum.GENERIC_L151CBUX.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L151CBUX.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L151CBUX.build.board=GENERIC_L151CBUX
GenL1.menu.pnum.GENERIC_L151CBUX.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151CBUX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C6UxA
GenL1.menu.pnum.GENERIC_L151C6UXA=Generic L151C6UxA
GenL1.menu.pnum.GENERIC_L151C6UXA.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L151C6UXA.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L151C6UXA.build.board=GENERIC_L151C6UXA
GenL1.menu.pnum.GENERIC_L151C6UXA.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C6UXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151C8UxA
GenL1.menu.pnum.GENERIC_L151C8UXA=Generic L151C8UxA
GenL1.menu.pnum.GENERIC_L151C8UXA.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L151C8UXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L151C8UXA.build.board=GENERIC_L151C8UXA
GenL1.menu.pnum.GENERIC_L151C8UXA.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151C8UXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151CBUxA
GenL1.menu.pnum.GENERIC_L151CBUXA=Generic L151CBUxA
GenL1.menu.pnum.GENERIC_L151CBUXA.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L151CBUXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L151CBUXA.build.board=GENERIC_L151CBUXA
GenL1.menu.pnum.GENERIC_L151CBUXA.build.product_line=STM32L151xB
GenL1.menu.pnum.GENERIC_L151CBUXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C6Tx
GenL1.menu.pnum.GENERIC_L152C6TX=Generic L152C6Tx
GenL1.menu.pnum.GENERIC_L152C6TX.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L152C6TX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L152C6TX.build.board=GENERIC_L152C6TX
GenL1.menu.pnum.GENERIC_L152C6TX.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C6TX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C8Tx
GenL1.menu.pnum.GENERIC_L152C8TX=Generic L152C8Tx
GenL1.menu.pnum.GENERIC_L152C8TX.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L152C8TX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L152C8TX.build.board=GENERIC_L152C8TX
GenL1.menu.pnum.GENERIC_L152C8TX.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C8TX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152CBTx
GenL1.menu.pnum.GENERIC_L152CBTX=Generic L152CBTx
GenL1.menu.pnum.GENERIC_L152CBTX.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L152CBTX.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L152CBTX.build.board=GENERIC_L152CBTX
GenL1.menu.pnum.GENERIC_L152CBTX.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152CBTX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C6TxA
GenL1.menu.pnum.GENERIC_L152C6TXA=Generic L152C6TxA
GenL1.menu.pnum.GENERIC_L152C6TXA.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L152C6TXA.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L152C6TXA.build.board=GENERIC_L152C6TXA
GenL1.menu.pnum.GENERIC_L152C6TXA.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C6TXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C8TxA
GenL1.menu.pnum.GENERIC_L152C8TXA=Generic L152C8TxA
GenL1.menu.pnum.GENERIC_L152C8TXA.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L152C8TXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L152C8TXA.build.board=GENERIC_L152C8TXA
GenL1.menu.pnum.GENERIC_L152C8TXA.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C8TXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152CBTxA
GenL1.menu.pnum.GENERIC_L152CBTXA=Generic L152CBTxA
GenL1.menu.pnum.GENERIC_L152CBTXA.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L152CBTXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L152CBTXA.build.board=GENERIC_L152CBTXA
GenL1.menu.pnum.GENERIC_L152CBTXA.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152CBTXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C6Ux
GenL1.menu.pnum.GENERIC_L152C6UX=Generic L152C6Ux
GenL1.menu.pnum.GENERIC_L152C6UX.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L152C6UX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L152C6UX.build.board=GENERIC_L152C6UX
GenL1.menu.pnum.GENERIC_L152C6UX.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C6UX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C8Ux
GenL1.menu.pnum.GENERIC_L152C8UX=Generic L152C8Ux
GenL1.menu.pnum.GENERIC_L152C8UX.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L152C8UX.upload.maximum_data_size=10240
GenL1.menu.pnum.GENERIC_L152C8UX.build.board=GENERIC_L152C8UX
GenL1.menu.pnum.GENERIC_L152C8UX.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C8UX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152CBUx
GenL1.menu.pnum.GENERIC_L152CBUX=Generic L152CBUx
GenL1.menu.pnum.GENERIC_L152CBUX.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L152CBUX.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L152CBUX.build.board=GENERIC_L152CBUX
GenL1.menu.pnum.GENERIC_L152CBUX.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152CBUX.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C6UxA
GenL1.menu.pnum.GENERIC_L152C6UXA=Generic L152C6UxA
GenL1.menu.pnum.GENERIC_L152C6UXA.upload.maximum_size=32768
GenL1.menu.pnum.GENERIC_L152C6UXA.upload.maximum_data_size=16384
GenL1.menu.pnum.GENERIC_L152C6UXA.build.board=GENERIC_L152C6UXA
GenL1.menu.pnum.GENERIC_L152C6UXA.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C6UXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152C8UxA
GenL1.menu.pnum.GENERIC_L152C8UXA=Generic L152C8UxA
GenL1.menu.pnum.GENERIC_L152C8UXA.upload.maximum_size=65536
GenL1.menu.pnum.GENERIC_L152C8UXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L152C8UXA.build.board=GENERIC_L152C8UXA
GenL1.menu.pnum.GENERIC_L152C8UXA.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152C8UXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L152CBUxA
GenL1.menu.pnum.GENERIC_L152CBUXA=Generic L152CBUxA
GenL1.menu.pnum.GENERIC_L152CBUXA.upload.maximum_size=131072
GenL1.menu.pnum.GENERIC_L152CBUXA.upload.maximum_data_size=32768
GenL1.menu.pnum.GENERIC_L152CBUXA.build.board=GENERIC_L152CBUXA
GenL1.menu.pnum.GENERIC_L152CBUXA.build.product_line=STM32L152xB
GenL1.menu.pnum.GENERIC_L152CBUXA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)

# Generic L151RETx
GenL1.menu.pnum.GENERIC_L151RETX=Generic L151RETx
GenL1.menu.pnum.GENERIC_L151RETX.upload.maximum_size=524288
GenL1.menu.pnum.GENERIC_L151RETX.upload.maximum_data_size=81920
GenL1.menu.pnum.GENERIC_L151RETX.build.board=GENERIC_L151RETX
GenL1.menu.pnum.GENERIC_L151RETX.build.product_line=STM32L151xE
GenL1.menu.pnum.GENERIC_L151RETX.build.variant=STM32L1xx/L151RET_L152RET_L162RET

# Generic L152RETx
GenL1.menu.pnum.GENERIC_L152RETX=Generic L152RETx
GenL1.menu.pnum.GENERIC_L152RETX.upload.maximum_size=524288
GenL1.menu.pnum.GENERIC_L152RETX.upload.maximum_data_size=81920
GenL1.menu.pnum.GENERIC_L152RETX.build.board=GENERIC_L152RETX
GenL1.menu.pnum.GENERIC_L152RETX.build.product_line=STM32L152xE
GenL1.menu.pnum.GENERIC_L152RETX.build.variant=STM32L1xx/L151RET_L152RET_L162RET

# Generic L162RETx
GenL1.menu.pnum.GENERIC_L162RETX=Generic L162RETx
GenL1.menu.pnum.GENERIC_L162RETX.upload.maximum_size=524288
GenL1.menu.pnum.GENERIC_L162RETX.upload.maximum_data_size=81920
GenL1.menu.pnum.GENERIC_L162RETX.build.board=GENERIC_L162RETX
GenL1.menu.pnum.GENERIC_L162RETX.build.product_line=STM32L162xE
GenL1.menu.pnum.GENERIC_L162RETX.build.variant=STM32L1xx/L151RET_L152RET_L162RET

# Upload menu
GenL1.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenL1.menu.upload_method.swdMethod.upload.protocol=0
GenL1.menu.upload_method.swdMethod.upload.options=-g
GenL1.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenL1.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenL1.menu.upload_method.serialMethod.upload.protocol=1
GenL1.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenL1.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenL1.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenL1.menu.upload_method.dfuMethod.upload.protocol=2
GenL1.menu.upload_method.dfuMethod.upload.options=-g
GenL1.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Generic L4
GenL4.name=Generic STM32L4 series

GenL4.build.core=arduino
GenL4.build.board=GenL4
GenL4.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
GenL4.build.mcu=cortex-m4
GenL4.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenL4.build.series=STM32L4xx
GenL4.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Generic L412K8Tx
GenL4.menu.pnum.GENERIC_L412K8TX=Generic L412K8Tx
GenL4.menu.pnum.GENERIC_L412K8TX.upload.maximum_size=65536
GenL4.menu.pnum.GENERIC_L412K8TX.upload.maximum_data_size=40960
GenL4.menu.pnum.GENERIC_L412K8TX.build.board=GENERIC_L412K8TX
GenL4.menu.pnum.GENERIC_L412K8TX.build.product_line=STM32L412xx
GenL4.menu.pnum.GENERIC_L412K8TX.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)

# Generic L412K8Ux
GenL4.menu.pnum.GENERIC_L412K8UX=Generic L412K8Ux
GenL4.menu.pnum.GENERIC_L412K8UX.upload.maximum_size=65536
GenL4.menu.pnum.GENERIC_L412K8UX.upload.maximum_data_size=40960
GenL4.menu.pnum.GENERIC_L412K8UX.build.board=GENERIC_L412K8UX
GenL4.menu.pnum.GENERIC_L412K8UX.build.product_line=STM32L412xx
GenL4.menu.pnum.GENERIC_L412K8UX.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)

# Generic L412KBTx
GenL4.menu.pnum.GENERIC_L412KBTX=Generic L412KBTx
GenL4.menu.pnum.GENERIC_L412KBTX.upload.maximum_size=131072
GenL4.menu.pnum.GENERIC_L412KBTX.upload.maximum_data_size=40960
GenL4.menu.pnum.GENERIC_L412KBTX.build.board=GENERIC_L412KBTX
GenL4.menu.pnum.GENERIC_L412KBTX.build.product_line=STM32L412xx
GenL4.menu.pnum.GENERIC_L412KBTX.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)

# Generic L412KBUx
GenL4.menu.pnum.GENERIC_L412KBUX=Generic L412KBUx
GenL4.menu.pnum.GENERIC_L412KBUX.upload.maximum_size=131072
GenL4.menu.pnum.GENERIC_L412KBUX.upload.maximum_data_size=40960
GenL4.menu.pnum.GENERIC_L412KBUX.build.board=GENERIC_L412KBUX
GenL4.menu.pnum.GENERIC_L412KBUX.build.product_line=STM32L412xx
GenL4.menu.pnum.GENERIC_L412KBUX.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)

# Generic L422KBTx
GenL4.menu.pnum.GENERIC_L422KBTX=Generic L422KBTx
GenL4.menu.pnum.GENERIC_L422KBTX.upload.maximum_size=131072
GenL4.menu.pnum.GENERIC_L422KBTX.upload.maximum_data_size=40960
GenL4.menu.pnum.GENERIC_L422KBTX.build.board=GENERIC_L422KBTX
GenL4.menu.pnum.GENERIC_L422KBTX.build.product_line=STM32L422xx
GenL4.menu.pnum.GENERIC_L422KBTX.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)

# Generic L422KBUx
GenL4.menu.pnum.GENERIC_L422KBUX=Generic L422KBUx
GenL4.menu.pnum.GENERIC_L422KBUX.upload.maximum_size=131072
GenL4.menu.pnum.GENERIC_L422KBUX.upload.maximum_data_size=40960
GenL4.menu.pnum.GENERIC_L422KBUX.build.board=GENERIC_L422KBUX
GenL4.menu.pnum.GENERIC_L422KBUX.build.product_line=STM32L422xx
GenL4.menu.pnum.GENERIC_L422KBUX.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)

# Generic L432KBUx
GenL4.menu.pnum.GENERIC_L432KBUX=Generic L432KBUx
GenL4.menu.pnum.GENERIC_L432KBUX.upload.maximum_size=131072
GenL4.menu.pnum.GENERIC_L432KBUX.upload.maximum_data_size=65536
GenL4.menu.pnum.GENERIC_L432KBUX.build.board=GENERIC_L432KBUX
GenL4.menu.pnum.GENERIC_L432KBUX.build.product_line=STM32L432xx
GenL4.menu.pnum.GENERIC_L432KBUX.build.variant=STM32L4xx/L432K(B-C)U_L442KCU

# Generic L432KCUx
GenL4.menu.pnum.GENERIC_L432KCUX=Generic L432KCUx
GenL4.menu.pnum.GENERIC_L432KCUX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L432KCUX.upload.maximum_data_size=65536
GenL4.menu.pnum.GENERIC_L432KCUX.build.board=GENERIC_L432KCUX
GenL4.menu.pnum.GENERIC_L432KCUX.build.product_line=STM32L432xx
GenL4.menu.pnum.GENERIC_L432KCUX.build.variant=STM32L4xx/L432K(B-C)U_L442KCU

# Generic L442KCUx
GenL4.menu.pnum.GENERIC_L442KCUX=Generic L442KCUx
GenL4.menu.pnum.GENERIC_L442KCUX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L442KCUX.upload.maximum_data_size=65536
GenL4.menu.pnum.GENERIC_L442KCUX.build.board=GENERIC_L442KCUX
GenL4.menu.pnum.GENERIC_L442KCUX.build.product_line=STM32L442xx
GenL4.menu.pnum.GENERIC_L442KCUX.build.variant=STM32L4xx/L432K(B-C)U_L442KCU

# Generic L433RCTxP
GenL4.menu.pnum.GENERIC_L433RCTXP=Generic L433RCTxP
GenL4.menu.pnum.GENERIC_L433RCTXP.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L433RCTXP.upload.maximum_data_size=65536
GenL4.menu.pnum.GENERIC_L433RCTXP.build.board=GENERIC_L433RCTXP
GenL4.menu.pnum.GENERIC_L433RCTXP.build.product_line=STM32L433xx
GenL4.menu.pnum.GENERIC_L433RCTXP.build.variant=STM32L4xx/L433RCTxP

# Generic L452RCIx
GenL4.menu.pnum.GENERIC_L452RCIX=Generic L452RCIx
GenL4.menu.pnum.GENERIC_L452RCIX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L452RCIX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L452RCIX.build.board=GENERIC_L452RCIX
GenL4.menu.pnum.GENERIC_L452RCIX.build.product_line=STM32L452xx
GenL4.menu.pnum.GENERIC_L452RCIX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L452REIx
GenL4.menu.pnum.GENERIC_L452REIX=Generic L452REIx
GenL4.menu.pnum.GENERIC_L452REIX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L452REIX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L452REIX.build.board=GENERIC_L452REIX
GenL4.menu.pnum.GENERIC_L452REIX.build.product_line=STM32L452xx
GenL4.menu.pnum.GENERIC_L452REIX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L452RCTx
GenL4.menu.pnum.GENERIC_L452RCTX=Generic L452RCTx
GenL4.menu.pnum.GENERIC_L452RCTX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L452RCTX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L452RCTX.build.board=GENERIC_L452RCTX
GenL4.menu.pnum.GENERIC_L452RCTX.build.product_line=STM32L452xx
GenL4.menu.pnum.GENERIC_L452RCTX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L452RETx
GenL4.menu.pnum.GENERIC_L452RETX=Generic L452RETx
GenL4.menu.pnum.GENERIC_L452RETX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L452RETX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L452RETX.build.board=GENERIC_L452RETX
GenL4.menu.pnum.GENERIC_L452RETX.build.product_line=STM32L452xx
GenL4.menu.pnum.GENERIC_L452RETX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L452RCYx
GenL4.menu.pnum.GENERIC_L452RCYX=Generic L452RCYx
GenL4.menu.pnum.GENERIC_L452RCYX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L452RCYX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L452RCYX.build.board=GENERIC_L452RCYX
GenL4.menu.pnum.GENERIC_L452RCYX.build.product_line=STM32L452xx
GenL4.menu.pnum.GENERIC_L452RCYX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L452REYx
GenL4.menu.pnum.GENERIC_L452REYX=Generic L452REYx
GenL4.menu.pnum.GENERIC_L452REYX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L452REYX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L452REYX.build.board=GENERIC_L452REYX
GenL4.menu.pnum.GENERIC_L452REYX.build.product_line=STM32L452xx
GenL4.menu.pnum.GENERIC_L452REYX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L452RETxP
GenL4.menu.pnum.GENERIC_L452RETXP=Generic L452RETxP
GenL4.menu.pnum.GENERIC_L452RETXP.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L452RETXP.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L452RETXP.build.board=GENERIC_L452RETXP
GenL4.menu.pnum.GENERIC_L452RETXP.build.product_line=STM32L452xx
GenL4.menu.pnum.GENERIC_L452RETXP.build.variant=STM32L4xx/L452RETxP

# Generic L462REIx
GenL4.menu.pnum.GENERIC_L462REIX=Generic L462REIx
GenL4.menu.pnum.GENERIC_L462REIX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L462REIX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L462REIX.build.board=GENERIC_L462REIX
GenL4.menu.pnum.GENERIC_L462REIX.build.product_line=STM32L462xx
GenL4.menu.pnum.GENERIC_L462REIX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L462RETx
GenL4.menu.pnum.GENERIC_L462RETX=Generic L462RETx
GenL4.menu.pnum.GENERIC_L462RETX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L462RETX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L462RETX.build.board=GENERIC_L462RETX
GenL4.menu.pnum.GENERIC_L462RETX.build.product_line=STM32L462xx
GenL4.menu.pnum.GENERIC_L462RETX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L462REYx
GenL4.menu.pnum.GENERIC_L462REYX=Generic L462REYx
GenL4.menu.pnum.GENERIC_L462REYX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L462REYX.upload.maximum_data_size=163840
GenL4.menu.pnum.GENERIC_L462REYX.build.board=GENERIC_L462REYX
GenL4.menu.pnum.GENERIC_L462REYX.build.product_line=STM32L462xx
GenL4.menu.pnum.GENERIC_L462REYX.build.variant=STM32L4xx/L452R(C-E)(I-T-Y)_L462RE(I-T-Y)

# Generic L475RCTx
GenL4.menu.pnum.GENERIC_L475RCTX=Generic L475RCTx
GenL4.menu.pnum.GENERIC_L475RCTX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L475RCTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L475RCTX.build.board=GENERIC_L475RCTX
GenL4.menu.pnum.GENERIC_L475RCTX.build.product_line=STM32L475xx
GenL4.menu.pnum.GENERIC_L475RCTX.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT

# Generic L475RETx
GenL4.menu.pnum.GENERIC_L475RETX=Generic L475RETx
GenL4.menu.pnum.GENERIC_L475RETX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L475RETX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L475RETX.build.board=GENERIC_L475RETX
GenL4.menu.pnum.GENERIC_L475RETX.build.product_line=STM32L475xx
GenL4.menu.pnum.GENERIC_L475RETX.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT

# Generic L475RGTx
GenL4.menu.pnum.GENERIC_L475RGTX=Generic L475RGTx
GenL4.menu.pnum.GENERIC_L475RGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L475RGTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L475RGTX.build.board=GENERIC_L475RGTX
GenL4.menu.pnum.GENERIC_L475RGTX.build.product_line=STM32L475xx
GenL4.menu.pnum.GENERIC_L475RGTX.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT

# Generic L475VCTx
GenL4.menu.pnum.GENERIC_L475VCTX=Generic L475VCTx
GenL4.menu.pnum.GENERIC_L475VCTX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L475VCTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L475VCTX.build.board=GENERIC_L475VCTX
GenL4.menu.pnum.GENERIC_L475VCTX.build.product_line=STM32L475xx
GenL4.menu.pnum.GENERIC_L475VCTX.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT

# Generic L475VETx
GenL4.menu.pnum.GENERIC_L475VETX=Generic L475VETx
GenL4.menu.pnum.GENERIC_L475VETX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L475VETX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L475VETX.build.board=GENERIC_L475VETX
GenL4.menu.pnum.GENERIC_L475VETX.build.product_line=STM32L475xx
GenL4.menu.pnum.GENERIC_L475VETX.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT

# Generic L475VGTx
GenL4.menu.pnum.GENERIC_L475VGTX=Generic L475VGTx
GenL4.menu.pnum.GENERIC_L475VGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L475VGTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L475VGTX.build.board=GENERIC_L475VGTX
GenL4.menu.pnum.GENERIC_L475VGTX.build.product_line=STM32L475xx
GenL4.menu.pnum.GENERIC_L475VGTX.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT

# Generic L476RCTx
GenL4.menu.pnum.GENERIC_L476RCTX=Generic L476RCTx
GenL4.menu.pnum.GENERIC_L476RCTX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L476RCTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L476RCTX.build.board=GENERIC_L476RCTX
GenL4.menu.pnum.GENERIC_L476RCTX.build.product_line=STM32L476xx
GenL4.menu.pnum.GENERIC_L476RCTX.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT

# Generic L476RETx
GenL4.menu.pnum.GENERIC_L476RETX=Generic L476RETx
GenL4.menu.pnum.GENERIC_L476RETX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L476RETX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L476RETX.build.board=GENERIC_L476RETX
GenL4.menu.pnum.GENERIC_L476RETX.build.product_line=STM32L476xx
GenL4.menu.pnum.GENERIC_L476RETX.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT

# Generic L476RGTx
GenL4.menu.pnum.GENERIC_L476RGTX=Generic L476RGTx
GenL4.menu.pnum.GENERIC_L476RGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L476RGTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L476RGTX.build.board=GENERIC_L476RGTX
GenL4.menu.pnum.GENERIC_L476RGTX.build.product_line=STM32L476xx
GenL4.menu.pnum.GENERIC_L476RGTX.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT

# Generic L476VCTx
GenL4.menu.pnum.GENERIC_L476VCTX=Generic L476VCTx
GenL4.menu.pnum.GENERIC_L476VCTX.upload.maximum_size=262144
GenL4.menu.pnum.GENERIC_L476VCTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L476VCTX.build.board=GENERIC_L476VCTX
GenL4.menu.pnum.GENERIC_L476VCTX.build.product_line=STM32L476xx
GenL4.menu.pnum.GENERIC_L476VCTX.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT

# Generic L476VETx
GenL4.menu.pnum.GENERIC_L476VETX=Generic L476VETx
GenL4.menu.pnum.GENERIC_L476VETX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L476VETX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L476VETX.build.board=GENERIC_L476VETX
GenL4.menu.pnum.GENERIC_L476VETX.build.product_line=STM32L476xx
GenL4.menu.pnum.GENERIC_L476VETX.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT

# Generic L476VGTx
GenL4.menu.pnum.GENERIC_L476VGTX=Generic L476VGTx
GenL4.menu.pnum.GENERIC_L476VGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L476VGTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L476VGTX.build.board=GENERIC_L476VGTX
GenL4.menu.pnum.GENERIC_L476VGTX.build.product_line=STM32L476xx
GenL4.menu.pnum.GENERIC_L476VGTX.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT

# Generic L486RGTx
GenL4.menu.pnum.GENERIC_L486RGTX=Generic L486RGTx
GenL4.menu.pnum.GENERIC_L486RGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L486RGTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L486RGTX.build.board=GENERIC_L486RGTX
GenL4.menu.pnum.GENERIC_L486RGTX.build.product_line=STM32L486xx
GenL4.menu.pnum.GENERIC_L486RGTX.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-E-G)T_L486RGT

# Generic L486VGTx
GenL4.menu.pnum.GENERIC_L486VGTX=Generic L486VGTx
GenL4.menu.pnum.GENERIC_L486VGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L486VGTX.upload.maximum_data_size=98304
GenL4.menu.pnum.GENERIC_L486VGTX.build.board=GENERIC_L486VGTX
GenL4.menu.pnum.GENERIC_L486VGTX.build.product_line=STM32L486xx
GenL4.menu.pnum.GENERIC_L486VGTX.build.variant=STM32L4xx//L475V(C-E-G)T_L476V(C-E-G)T_L486VGT

# Generic L496ZETx
GenL4.menu.pnum.GENERIC_L496ZETX=Generic L496ZETx
GenL4.menu.pnum.GENERIC_L496ZETX.upload.maximum_size=524288
GenL4.menu.pnum.GENERIC_L496ZETX.upload.maximum_data_size=327680
GenL4.menu.pnum.GENERIC_L496ZETX.build.board=GENERIC_L496ZETX
GenL4.menu.pnum.GENERIC_L496ZETX.build.product_line=STM32L496xx
GenL4.menu.pnum.GENERIC_L496ZETX.build.variant=STM32L4xx/L4L496Z(E-G)T_L4A6ZGT

# Generic L496ZGTx
GenL4.menu.pnum.GENERIC_L496ZGTX=Generic L496ZGTx
GenL4.menu.pnum.GENERIC_L496ZGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L496ZGTX.upload.maximum_data_size=327680
GenL4.menu.pnum.GENERIC_L496ZGTX.build.board=GENERIC_L496ZGTX
GenL4.menu.pnum.GENERIC_L496ZGTX.build.product_line=STM32L496xx
GenL4.menu.pnum.GENERIC_L496ZGTX.build.variant=STM32L4xx/L496Z(E-G)T_L4A6ZGT

# Generic L496ZGTxP
GenL4.menu.pnum.GENERIC_L496ZGTXP=Generic L496ZGTxP
GenL4.menu.pnum.GENERIC_L496ZGTXP.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L496ZGTXP.upload.maximum_data_size=327680
GenL4.menu.pnum.GENERIC_L496ZGTXP.build.board=GENERIC_L496ZGTXP
GenL4.menu.pnum.GENERIC_L496ZGTXP.build.product_line=STM32L496xx
GenL4.menu.pnum.GENERIC_L496ZGTXP.build.variant=STM32L4xx/L496ZGTxP_L4A6ZGTxP

# Generic L4A6ZGTx
GenL4.menu.pnum.GENERIC_L4A6ZGTX=Generic L4A6ZGTx
GenL4.menu.pnum.GENERIC_L4A6ZGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L4A6ZGTX.upload.maximum_data_size=327680
GenL4.menu.pnum.GENERIC_L4A6ZGTX.build.board=GENERIC_L4A6ZGTX
GenL4.menu.pnum.GENERIC_L4A6ZGTX.build.product_line=STM32L4A6xx
GenL4.menu.pnum.GENERIC_L4A6ZGTX.build.variant=STM32L4xx/L496Z(E-G)T_L4A6ZGT

# Generic L4A6ZGTxP
GenL4.menu.pnum.GENERIC_L4A6ZGTXP=Generic L4A6ZGTxP
GenL4.menu.pnum.GENERIC_L4A6ZGTXP.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L4A6ZGTXP.upload.maximum_data_size=327680
GenL4.menu.pnum.GENERIC_L4A6ZGTXP.build.board=GENERIC_L4A6ZGTXP
GenL4.menu.pnum.GENERIC_L4A6ZGTXP.build.product_line=STM32L4A6xx
GenL4.menu.pnum.GENERIC_L4A6ZGTXP.build.variant=STM32L4xx/L496ZGTxP_L4A6ZGTxP

# Generic L4R5VGTx
GenL4.menu.pnum.GENERIC_L4R5VGTX=Generic L4R5VGTx
GenL4.menu.pnum.GENERIC_L4R5VGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L4R5VGTX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R5VGTX.build.board=GENERIC_L4R5VGTX
GenL4.menu.pnum.GENERIC_L4R5VGTX.build.product_line=STM32L4R5xx
GenL4.menu.pnum.GENERIC_L4R5VGTX.build.variant=STM32L4xx/L4R5V(G-I)T_L4R7VIT_L4S5VIT_L4S7VIT

# Generic L4R5VITx
GenL4.menu.pnum.GENERIC_L4R5VITX=Generic L4R5VITx
GenL4.menu.pnum.GENERIC_L4R5VITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4R5VITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R5VITX.build.board=GENERIC_L4R5VITX
GenL4.menu.pnum.GENERIC_L4R5VITX.build.product_line=STM32L4R5xx
GenL4.menu.pnum.GENERIC_L4R5VITX.build.variant=STM32L4xx/L4R5V(G-I)T_L4R7VIT_L4S5VIT_L4S7VIT

# Generic L4R5ZGTx
GenL4.menu.pnum.GENERIC_L4R5ZGTX=Generic L4R5ZGTx
GenL4.menu.pnum.GENERIC_L4R5ZGTX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L4R5ZGTX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R5ZGTX.build.board=GENERIC_L4R5ZGTX
GenL4.menu.pnum.GENERIC_L4R5ZGTX.build.product_line=STM32L4R5xx
GenL4.menu.pnum.GENERIC_L4R5ZGTX.build.variant=STM32L4xx/L4R5Z(G-I)T_L4R7ZIT_L4S5ZIT_L4S7ZIT

# Generic L4R5ZITx
GenL4.menu.pnum.GENERIC_L4R5ZITX=Generic L4R5ZITx
GenL4.menu.pnum.GENERIC_L4R5ZITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4R5ZITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R5ZITX.build.board=GENERIC_L4R5ZITX
GenL4.menu.pnum.GENERIC_L4R5ZITX.build.product_line=STM32L4R5xx
GenL4.menu.pnum.GENERIC_L4R5ZITX.build.variant=STM32L4xx/L4R5Z(G-I)T_L4R7ZIT_L4S5ZIT_L4S7ZIT

# Generic L4R5ZITxP
GenL4.menu.pnum.GENERIC_L4R5ZITXP=Generic L4R5ZITxP
GenL4.menu.pnum.GENERIC_L4R5ZITXP.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4R5ZITXP.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R5ZITXP.build.board=GENERIC_L4R5ZITXP
GenL4.menu.pnum.GENERIC_L4R5ZITXP.build.product_line=STM32L4R5xx
GenL4.menu.pnum.GENERIC_L4R5ZITXP.build.variant=STM32L4xx/L4R5ZITxP

# Generic L4R7VITx
GenL4.menu.pnum.GENERIC_L4R7VITX=Generic L4R7VITx
GenL4.menu.pnum.GENERIC_L4R7VITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4R7VITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R7VITX.build.board=GENERIC_L4R7VITX
GenL4.menu.pnum.GENERIC_L4R7VITX.build.product_line=STM32L4R7xx
GenL4.menu.pnum.GENERIC_L4R7VITX.build.variant=STM32L4xx/L4R5V(G-I)T_L4R7VIT_L4S5VIT_L4S7VIT

# Generic L4R7ZITx
GenL4.menu.pnum.GENERIC_L4R7ZITX=Generic L4R7ZITx
GenL4.menu.pnum.GENERIC_L4R7ZITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4R7ZITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R7ZITX.build.board=GENERIC_L4R7ZITX
GenL4.menu.pnum.GENERIC_L4R7ZITX.build.product_line=STM32L4R7xx
GenL4.menu.pnum.GENERIC_L4R7ZITX.build.variant=STM32L4xx/L4R5Z(G-I)T_L4R7ZIT_L4S5ZIT_L4S7ZIT

# Generic L4R9ZGJx
GenL4.menu.pnum.GENERIC_L4R9ZGJX=Generic L4R9ZGJx
GenL4.menu.pnum.GENERIC_L4R9ZGJX.upload.maximum_size=1048576
GenL4.menu.pnum.GENERIC_L4R9ZGJX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R9ZGJX.build.board=GENERIC_L4R9ZGJX
GenL4.menu.pnum.GENERIC_L4R9ZGJX.build.product_line=STM32L4R9xx
GenL4.menu.pnum.GENERIC_L4R9ZGJX.build.variant=STM32L4xx/L4R9Z(G-I)J_L4S9ZIJ

# Generic L4R9ZIJx
GenL4.menu.pnum.GENERIC_L4R9ZIJX=Generic L4R9ZIJx
GenL4.menu.pnum.GENERIC_L4R9ZIJX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4R9ZIJX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4R9ZIJX.build.board=GENERIC_L4R9ZIJX
GenL4.menu.pnum.GENERIC_L4R9ZIJX.build.product_line=STM32L4R9xx
GenL4.menu.pnum.GENERIC_L4R9ZIJX.build.variant=STM32L4xx/L4R9Z(G-I)J_L4S9ZIJ

# Generic L4S5VITx
GenL4.menu.pnum.GENERIC_L4S5VITX=Generic L4S5VITx
GenL4.menu.pnum.GENERIC_L4S5VITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4S5VITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4S5VITX.build.board=GENERIC_L4S5VITX
GenL4.menu.pnum.GENERIC_L4S5VITX.build.product_line=STM32L4S5xx
GenL4.menu.pnum.GENERIC_L4S5VITX.build.variant=STM32L4xx/L4R5V(G-I)T_L4R7VIT_L4S5VIT_L4S7VIT

# Generic L4S5ZITx
GenL4.menu.pnum.GENERIC_L4S5ZITX=Generic L4S5ZITx
GenL4.menu.pnum.GENERIC_L4S5ZITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4S5ZITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4S5ZITX.build.board=GENERIC_L4S5ZITX
GenL4.menu.pnum.GENERIC_L4S5ZITX.build.product_line=STM32L4S5xx
GenL4.menu.pnum.GENERIC_L4S5ZITX.build.variant=STM32L4xx/L4R5Z(G-I)T_L4R7ZIT_L4S5ZIT_L4S7ZIT

# Generic L4S7VITx
GenL4.menu.pnum.GENERIC_L4S7VITX=Generic L4S7VITx
GenL4.menu.pnum.GENERIC_L4S7VITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4S7VITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4S7VITX.build.board=GENERIC_L4S7VITX
GenL4.menu.pnum.GENERIC_L4S7VITX.build.product_line=STM32L4S7xx
GenL4.menu.pnum.GENERIC_L4S7VITX.build.variant=STM32L4xx/L4R5V(G-I)T_L4R7VIT_L4S5VIT_L4S7VIT

# Generic L4S7ZITx
GenL4.menu.pnum.GENERIC_L4S7ZITX=Generic L4S7ZITx
GenL4.menu.pnum.GENERIC_L4S7ZITX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4S7ZITX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4S7ZITX.build.board=GENERIC_L4S7ZITX
GenL4.menu.pnum.GENERIC_L4S7ZITX.build.product_line=STM32L4S7xx
GenL4.menu.pnum.GENERIC_L4S7ZITX.build.variant=STM32L4xx/L4R5Z(G-I)T_L4R7ZIT_L4S5ZIT_L4S7ZIT

# Generic L4S9ZIJx
GenL4.menu.pnum.GENERIC_L4S9ZIJX=Generic L4S9ZIJx
GenL4.menu.pnum.GENERIC_L4S9ZIJX.upload.maximum_size=2097152
GenL4.menu.pnum.GENERIC_L4S9ZIJX.upload.maximum_data_size=655360
GenL4.menu.pnum.GENERIC_L4S9ZIJX.build.board=GENERIC_L4S9ZIJX
GenL4.menu.pnum.GENERIC_L4S9ZIJX.build.product_line=STM32L4S9xx
GenL4.menu.pnum.GENERIC_L4S9ZIJX.build.variant=STM32L4xx/L4R9Z(G-I)J_L4S9ZIJ

# Upload menu
GenL4.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenL4.menu.upload_method.swdMethod.upload.protocol=0
GenL4.menu.upload_method.swdMethod.upload.options=-g
GenL4.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenL4.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenL4.menu.upload_method.serialMethod.upload.protocol=1
GenL4.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenL4.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenL4.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenL4.menu.upload_method.dfuMethod.upload.protocol=2
GenL4.menu.upload_method.dfuMethod.upload.options=-g
GenL4.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Generic L5
GenL5.name=Generic STM32L5 series

GenL5.build.core=arduino
GenL5.build.board=GenL5
GenL5.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
GenL5.build.mcu=cortex-m33
GenL5.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenL5.build.series=STM32L5xx
GenL5.build.cmsis_lib_gcc=arm_ARMv8MMLlfsp_math

# Generic L552ZCTxQ
GenL5.menu.pnum.GENERIC_L552ZCTXQ=Generic L552ZCTxQ
GenL5.menu.pnum.GENERIC_L552ZCTXQ.upload.maximum_size=262144
GenL5.menu.pnum.GENERIC_L552ZCTXQ.upload.maximum_data_size=196608
GenL5.menu.pnum.GENERIC_L552ZCTXQ.build.board=GENERIC_L552ZCTXQ
GenL5.menu.pnum.GENERIC_L552ZCTXQ.build.product_line=STM32L552xx
GenL5.menu.pnum.GENERIC_L552ZCTXQ.build.variant=STM32L5xx/L552Z(C-E)TxQ_L562ZETxQ

# Generic L552ZETxQ
GenL5.menu.pnum.GENERIC_L552ZETXQ=Generic L552ZETxQ
GenL5.menu.pnum.GENERIC_L552ZETXQ.upload.maximum_size=524288
GenL5.menu.pnum.GENERIC_L552ZETXQ.upload.maximum_data_size=196608
GenL5.menu.pnum.GENERIC_L552ZETXQ.build.board=GENERIC_L552ZETXQ
GenL5.menu.pnum.GENERIC_L552ZETXQ.build.product_line=STM32L552xx
GenL5.menu.pnum.GENERIC_L552ZETXQ.build.variant=STM32L5xx/L552Z(C-E)TxQ_L562ZETxQ

# Generic L562ZETxQ
GenL5.menu.pnum.GENERIC_L562ZETXQ=Generic L562ZETxQ
GenL5.menu.pnum.GENERIC_L562ZETXQ.upload.maximum_size=524288
GenL5.menu.pnum.GENERIC_L562ZETXQ.upload.maximum_data_size=196608
GenL5.menu.pnum.GENERIC_L562ZETXQ.build.board=GENERIC_L562ZETXQ
GenL5.menu.pnum.GENERIC_L562ZETXQ.build.product_line=STM32L562xx
GenL5.menu.pnum.GENERIC_L562ZETXQ.build.variant=STM32L5xx/L552Z(C-E)TxQ_L562ZETxQ

# Upload menu
GenL5.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenL5.menu.upload_method.swdMethod.upload.protocol=0
GenL5.menu.upload_method.swdMethod.upload.options=-g
GenL5.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenL5.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenL5.menu.upload_method.serialMethod.upload.protocol=1
GenL5.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenL5.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenL5.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenL5.menu.upload_method.dfuMethod.upload.protocol=2
GenL5.menu.upload_method.dfuMethod.upload.options=-g
GenL5.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Generic WB
GenWB.name=Generic STM32WB series

GenWB.build.core=arduino
GenWB.build.board=GenWB
GenWB.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
GenWB.build.mcu=cortex-m4
GenWB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenWB.build.series=STM32WBxx
GenWB.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Generic WB55CCUx
GenWB.menu.pnum.GENERIC_WB55CCUX=Generic WB55CCUx
GenWB.menu.pnum.GENERIC_WB55CCUX.upload.maximum_size=131072
GenWB.menu.pnum.GENERIC_WB55CCUX.upload.maximum_data_size=65536
GenWB.menu.pnum.GENERIC_WB55CCUX.build.board=GENERIC_WB55CCUX
GenWB.menu.pnum.GENERIC_WB55CCUX.build.product_line=STM32WB55xx
GenWB.menu.pnum.GENERIC_WB55CCUX.build.variant=STM32WBxx/WB55C(C-E-G)U

# Generic WB55CEUx
GenWB.menu.pnum.GENERIC_WB55CEUX=Generic WB55CEUx
GenWB.menu.pnum.GENERIC_WB55CEUX.upload.maximum_size=262144
GenWB.menu.pnum.GENERIC_WB55CEUX.upload.maximum_data_size=196608
GenWB.menu.pnum.GENERIC_WB55CEUX.build.board=GENERIC_WB55CEUX
GenWB.menu.pnum.GENERIC_WB55CEUX.build.product_line=STM32WB55xx
GenWB.menu.pnum.GENERIC_WB55CEUX.build.variant=STM32WBxx/WB55C(C-E-G)U

# Generic WB55CGUx
GenWB.menu.pnum.GENERIC_WB55CGUX=Generic WB55CGUx
GenWB.menu.pnum.GENERIC_WB55CGUX.upload.maximum_size=524288
GenWB.menu.pnum.GENERIC_WB55CGUX.upload.maximum_data_size=196608
GenWB.menu.pnum.GENERIC_WB55CGUX.build.board=GENERIC_WB55CGUX
GenWB.menu.pnum.GENERIC_WB55CGUX.build.product_line=STM32WB55xx
GenWB.menu.pnum.GENERIC_WB55CGUX.build.variant=STM32WBxx/WB55C(C-E-G)U

# Generic WB55RCVx
GenWB.menu.pnum.GENERIC_WB55RCVX=Generic WB55RCVx
GenWB.menu.pnum.GENERIC_WB55RCVX.upload.maximum_size=131072
GenWB.menu.pnum.GENERIC_WB55RCVX.upload.maximum_data_size=65536
GenWB.menu.pnum.GENERIC_WB55RCVX.build.board=GENERIC_WB55RCVX
GenWB.menu.pnum.GENERIC_WB55RCVX.build.product_line=STM32WB55xx
GenWB.menu.pnum.GENERIC_WB55RCVX.build.variant=STM32WBxx/WB55R(C-E-G)V

# Generic WB55REVx
GenWB.menu.pnum.GENERIC_WB55REVX=Generic WB55REVx
GenWB.menu.pnum.GENERIC_WB55REVX.upload.maximum_size=262144
GenWB.menu.pnum.GENERIC_WB55REVX.upload.maximum_data_size=196608
GenWB.menu.pnum.GENERIC_WB55REVX.build.board=GENERIC_WB55REVX
GenWB.menu.pnum.GENERIC_WB55REVX.build.product_line=STM32WB55xx
GenWB.menu.pnum.GENERIC_WB55REVX.build.variant=STM32WBxx/WB55R(C-E-G)V

# Generic WB55RGVx
GenWB.menu.pnum.GENERIC_WB55RGVX=Generic WB55RGVx
GenWB.menu.pnum.GENERIC_WB55RGVX.upload.maximum_size=524288
GenWB.menu.pnum.GENERIC_WB55RGVX.upload.maximum_data_size=196608
GenWB.menu.pnum.GENERIC_WB55RGVX.build.board=GENERIC_WB55RGVX
GenWB.menu.pnum.GENERIC_WB55RGVX.build.product_line=STM32WB55xx
GenWB.menu.pnum.GENERIC_WB55RGVX.build.variant=STM32WBxx/WB55R(C-E-G)V

# Upload menu
GenWB.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenWB.menu.upload_method.swdMethod.upload.protocol=0
GenWB.menu.upload_method.swdMethod.upload.options=-g
GenWB.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenWB.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenWB.menu.upload_method.serialMethod.upload.protocol=1
GenWB.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenWB.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenWB.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenWB.menu.upload_method.dfuMethod.upload.protocol=2
GenWB.menu.upload_method.dfuMethod.upload.options=-g
GenWB.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Electronic Speed Controller boards

ESC_board.name=Electronic speed controllers

ESC_board.build.core=arduino
ESC_board.build.board=FCE_board
ESC_board.build.variant_h=variant_{build.board}.h
ESC_board.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# WRAITH32_V1 board
ESC_board.menu.pnum.WRAITH32_V1=Wraith V1 ESC
ESC_board.menu.pnum.WRAITH32_V1.upload.maximum_size=32768
ESC_board.menu.pnum.WRAITH32_V1.upload.maximum_data_size=7936
ESC_board.menu.pnum.WRAITH32_V1.build.mcu=cortex-m0
ESC_board.menu.pnum.WRAITH32_V1.build.board=WRAITH32_V1
ESC_board.menu.pnum.WRAITH32_V1.build.series=STM32F0xx
ESC_board.menu.pnum.WRAITH32_V1.build.product_line=STM32F051x8
ESC_board.menu.pnum.WRAITH32_V1.build.variant=STM32F0xx/F051K(6-8)U
ESC_board.menu.pnum.WRAITH32_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
ESC_board.menu.pnum.WRAITH32_V1.build.cmsis_lib_gcc=arm_cortexM0l_math

# Upload menu
ESC_board.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
ESC_board.menu.upload_method.swdMethod.upload.protocol=0
ESC_board.menu.upload_method.swdMethod.upload.options=-g
ESC_board.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

ESC_board.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
ESC_board.menu.upload_method.serialMethod.upload.protocol=1
ESC_board.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
ESC_board.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

ESC_board.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
ESC_board.menu.upload_method.dfuMethod.upload.protocol=2
ESC_board.menu.upload_method.dfuMethod.upload.options=-g
ESC_board.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# LoRa boards

LoRa.name=LoRa boards
LoRa.build.core=arduino
LoRa.build.board=LoRa
LoRa.build.variant_h=variant_{build.board}.h
LoRa.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# RAK811_TRACKER board
LoRa.menu.pnum.RAK811_TRACKER=RAK811 LoRa Tracker (16kb RAM)
LoRa.menu.pnum.RAK811_TRACKER.upload.maximum_size=131072
LoRa.menu.pnum.RAK811_TRACKER.upload.maximum_data_size=16384
LoRa.menu.pnum.RAK811_TRACKER.build.mcu=cortex-m3
LoRa.menu.pnum.RAK811_TRACKER.build.board=RAK811_TRACKER
LoRa.menu.pnum.RAK811_TRACKER.build.series=STM32L1xx
LoRa.menu.pnum.RAK811_TRACKER.build.product_line=STM32L151xB
LoRa.menu.pnum.RAK811_TRACKER.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)
LoRa.menu.pnum.RAK811_TRACKER.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
LoRa.menu.pnum.RAK811_TRACKER.build.cmsis_lib_gcc=arm_cortexM3l_math

LoRa.menu.pnum.RAK811_TRACKERA=RAK811 LoRa Tracker (32kb RAM)
LoRa.menu.pnum.RAK811_TRACKERA.upload.maximum_size=131072
LoRa.menu.pnum.RAK811_TRACKERA.upload.maximum_data_size=32768
LoRa.menu.pnum.RAK811_TRACKERA.build.mcu=cortex-m3
LoRa.menu.pnum.RAK811_TRACKERA.build.board=RAK811_TRACKERA
LoRa.menu.pnum.RAK811_TRACKERA.build.series=STM32L1xx
LoRa.menu.pnum.RAK811_TRACKERA.build.product_line=STM32L151xBA
LoRa.menu.pnum.RAK811_TRACKERA.build.variant=STM32L1xx/L100C6Ux(A)_L151C(6-8-B)(T-U)x(A)_L152C(6-8-B)(T-U)x(A)
LoRa.menu.pnum.RAK811_TRACKERA.build.variant_h=variant_RAK811_TRACKER.h
LoRa.menu.pnum.RAK811_TRACKERA.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
LoRa.menu.pnum.RAK811_TRACKERA.build.cmsis_lib_gcc=arm_cortexM3l_math

# RHF76_052 board
LoRa.menu.pnum.RHF76_052=RHF76 052
LoRa.menu.pnum.RHF76_052.upload.maximum_size=65536
LoRa.menu.pnum.RHF76_052.upload.maximum_data_size=8192
LoRa.menu.pnum.RHF76_052.build.mcu=cortex-m0plus
LoRa.menu.pnum.RHF76_052.build.board=RHF76_052
LoRa.menu.pnum.RHF76_052.build.series=STM32L0xx
LoRa.menu.pnum.RHF76_052.build.product_line=STM32L051xx
LoRa.menu.pnum.RHF76_052.build.variant=STM32L0xx/L051C(6-8)(T-U)
LoRa.menu.pnum.RHF76_052.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
LoRa.menu.pnum.RHF76_052.build.cmsis_lib_gcc=arm_cortexM0l_math
LoRa.menu.pnum.RHF76_052.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0

# ELEKTOR_F072C8
LoRa.menu.pnum.ELEKTOR_F072C8=Elektor LoRa Node Core F072C8 (64kB)
LoRa.menu.pnum.ELEKTOR_F072C8.upload.maximum_data_size=16384
LoRa.menu.pnum.ELEKTOR_F072C8.upload.maximum_size=65536
LoRa.menu.pnum.ELEKTOR_F072C8.build.mcu=cortex-m0
LoRa.menu.pnum.ELEKTOR_F072C8.build.board=ELEKTOR_F072C8
LoRa.menu.pnum.ELEKTOR_F072C8.build.series=STM32F0xx
LoRa.menu.pnum.ELEKTOR_F072C8.build.product_line=STM32F072xB
LoRa.menu.pnum.ELEKTOR_F072C8.build.variant=STM32F0xx/F072C8(T-U)_F072CB(T-U-Y)
LoRa.menu.pnum.ELEKTOR_F072C8.build.variant_h=variant_ELEKTOR_F072Cx.h
LoRa.menu.pnum.ELEKTOR_F072C8.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
LoRa.menu.pnum.ELEKTOR_F072C8.build.cmsis_lib_gcc=arm_cortexM0l_math
LoRa.menu.pnum.ELEKTOR_F072C8.build.extra_flags=-D{build.product_line} {build.xSerial}

# ELEKTOR_F072CB
LoRa.menu.pnum.ELEKTOR_F072CB=Elektor LoRa Node Core F072CB (128kB)
LoRa.menu.pnum.ELEKTOR_F072CB.upload.maximum_data_size=16384
LoRa.menu.pnum.ELEKTOR_F072CB.upload.maximum_size=131072
LoRa.menu.pnum.ELEKTOR_F072CB.build.mcu=cortex-m0
LoRa.menu.pnum.ELEKTOR_F072CB.build.board=ELEKTOR_F072CB
LoRa.menu.pnum.ELEKTOR_F072CB.build.series=STM32F0xx
LoRa.menu.pnum.ELEKTOR_F072CB.build.product_line=STM32F072xB
LoRa.menu.pnum.ELEKTOR_F072CB.build.variant=STM32F0xx/F072C8(T-U)_F072CB(T-U-Y)
LoRa.menu.pnum.ELEKTOR_F072CB.build.variant_h=variant_ELEKTOR_F072Cx.h
LoRa.menu.pnum.ELEKTOR_F072CB.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
LoRa.menu.pnum.ELEKTOR_F072CB.build.cmsis_lib_gcc=arm_cortexM0l_math
LoRa.menu.pnum.ELEKTOR_F072CB.build.extra_flags=-D{build.product_line} {build.xSerial}

# Upload menu
LoRa.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
LoRa.menu.upload_method.swdMethod.upload.protocol=0
LoRa.menu.upload_method.swdMethod.upload.options=-g
LoRa.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

LoRa.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
LoRa.menu.upload_method.serialMethod.upload.protocol=1
LoRa.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
LoRa.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

LoRa.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
LoRa.menu.upload_method.dfuMethod.upload.protocol=2
LoRa.menu.upload_method.dfuMethod.upload.options=-g
LoRa.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

###############################
# 3D printer boards

3dprinter.name=3D printer boards

3dprinter.build.core=arduino
3dprinter.build.board=3dprinter
3dprinter.build.variant_h=variant_{build.board}.h
3dprinter.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# ARMED_V1 board
3dprinter.menu.pnum.ARMED_V1=Armed V1
3dprinter.menu.pnum.ARMED_V1.upload.maximum_size=524288
3dprinter.menu.pnum.ARMED_V1.upload.maximum_data_size=131072
3dprinter.menu.pnum.ARMED_V1.build.mcu=cortex-m4
3dprinter.menu.pnum.ARMED_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.ARMED_V1.build.board=ARMED_V1
3dprinter.menu.pnum.ARMED_V1.build.series=STM32F4xx
3dprinter.menu.pnum.ARMED_V1.build.product_line=STM32F407xx
3dprinter.menu.pnum.ARMED_V1.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
3dprinter.menu.pnum.ARMED_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.ARMED_V1.build.cmsis_lib_gcc=arm_cortexM4lf_math

# REMRAM_V1 board
3dprinter.menu.pnum.REMRAM_V1=RemRam v1
3dprinter.menu.pnum.REMRAM_V1.upload.maximum_size=2097152
3dprinter.menu.pnum.REMRAM_V1.upload.maximum_data_size=524288
3dprinter.menu.pnum.REMRAM_V1.build.mcu=cortex-m7
3dprinter.menu.pnum.REMRAM_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.REMRAM_V1.build.board=REMRAM_V1
3dprinter.menu.pnum.REMRAM_V1.build.series=STM32F7xx
3dprinter.menu.pnum.REMRAM_V1.build.product_line=STM32F765xx
3dprinter.menu.pnum.REMRAM_V1.build.variant=STM32F7xx/F765V(G-I)(H-T)_F767V(G-I)(H-T)_F777VI(H-T)
3dprinter.menu.pnum.REMRAM_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.REMRAM_V1.build.cmsis_lib_gcc=arm_cortexM7lfsp_math

# RUMBA32 board
3dprinter.menu.pnum.RUMBA32=RUMBA32
3dprinter.menu.pnum.RUMBA32.upload.maximum_size=524288
3dprinter.menu.pnum.RUMBA32.upload.maximum_data_size=131072
3dprinter.menu.pnum.RUMBA32.build.mcu=cortex-m4
3dprinter.menu.pnum.RUMBA32.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.RUMBA32.build.board=RUMBA32
3dprinter.menu.pnum.RUMBA32.build.series=STM32F4xx
3dprinter.menu.pnum.RUMBA32.build.product_line=STM32F446xx
3dprinter.menu.pnum.RUMBA32.build.variant=STM32F4xx/F446V(C-E)T
3dprinter.menu.pnum.RUMBA32.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.RUMBA32.build.cmsis_lib_gcc=arm_cortexM4lf_math

# STEVAL-3DP001V1 board
3dprinter.menu.pnum.ST3DP001_EVAL=STEVAL-3DP001V1
3dprinter.menu.pnum.ST3DP001_EVAL.upload.maximum_size=524288
3dprinter.menu.pnum.ST3DP001_EVAL.upload.maximum_data_size=98304
3dprinter.menu.pnum.ST3DP001_EVAL.build.mcu=cortex-m4
3dprinter.menu.pnum.ST3DP001_EVAL.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.ST3DP001_EVAL.build.board=ST3DP001_EVAL
3dprinter.menu.pnum.ST3DP001_EVAL.build.series=STM32F4xx
3dprinter.menu.pnum.ST3DP001_EVAL.build.product_line=STM32F401xE
3dprinter.menu.pnum.ST3DP001_EVAL.build.variant=STM32F4xx/F401V(B-C-D-E)T
3dprinter.menu.pnum.ST3DP001_EVAL.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.ST3DP001_EVAL.build.cmsis_lib_gcc=arm_cortexM4lf_math

# PRNTR_V1 board
3dprinter.menu.pnum.PRNTR_V1=PRNTR v1
3dprinter.menu.pnum.PRNTR_V1.upload.maximum_size=524288
3dprinter.menu.pnum.PRNTR_V1.upload.maximum_data_size=131072
3dprinter.menu.pnum.PRNTR_V1.build.mcu=cortex-m4
3dprinter.menu.pnum.PRNTR_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.PRNTR_V1.build.board=PRNTR_V1
3dprinter.menu.pnum.PRNTR_V1.build.series=STM32F4xx
3dprinter.menu.pnum.PRNTR_V1.build.product_line=STM32F407xx
3dprinter.menu.pnum.PRNTR_V1.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
3dprinter.menu.pnum.PRNTR_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.PRNTR_V1.build.cmsis_lib_gcc=arm_cortexM4lf_math

# PRNTR_V2 board
3dprinter.menu.pnum.PRNTR_V2=PRNTR v2
3dprinter.menu.pnum.PRNTR_V2.upload.maximum_size=524288
3dprinter.menu.pnum.PRNTR_V2.upload.maximum_data_size=131072
3dprinter.menu.pnum.PRNTR_V2.build.mcu=cortex-m4
3dprinter.menu.pnum.PRNTR_V2.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.PRNTR_V2.build.board=PRNTR_V2
3dprinter.menu.pnum.PRNTR_V2.build.series=STM32F4xx
3dprinter.menu.pnum.PRNTR_V2.build.product_line=STM32F407xx
3dprinter.menu.pnum.PRNTR_V2.build.variant=STM32F4xx/F407V(E-G)T_F417V(E-G)T
3dprinter.menu.pnum.PRNTR_V2.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.PRNTR_V2.build.cmsis_lib_gcc=arm_cortexM4lf_math
3dprinter.menu.pnum.PRNTR_V2.build.flash_offset=0x8000
3dprinter.menu.pnum.PRNTR_V2.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -DVECT_TAB_OFFSET={build.flash_offset}

# EEXTR_F030_V1 board
3dprinter.menu.pnum.EEXTR_F030_V1=EExtruder F030 V1
3dprinter.menu.pnum.EEXTR_F030_V1.upload.maximum_size=65536
3dprinter.menu.pnum.EEXTR_F030_V1.upload.maximum_data_size=8192
3dprinter.menu.pnum.EEXTR_F030_V1.build.mcu=cortex-m0
3dprinter.menu.pnum.EEXTR_F030_V1.build.board=EEXTR_F030_V1
3dprinter.menu.pnum.EEXTR_F030_V1.build.series=STM32F0xx
3dprinter.menu.pnum.EEXTR_F030_V1.build.product_line=STM32F030x8
3dprinter.menu.pnum.EEXTR_F030_V1.build.variant=STM32F0xx/F030C8T
3dprinter.menu.pnum.EEXTR_F030_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.EEXTR_F030_V1.build.cmsis_lib_gcc=arm_cortexM0l_math

# MALYANM200_F103CB board
3dprinter.menu.pnum.MALYANM200_F103CB=Malyan M200 V1
3dprinter.menu.pnum.MALYANM200_F103CB.upload.maximum_size=122880
3dprinter.menu.pnum.MALYANM200_F103CB.upload.maximum_data_size=20480
3dprinter.menu.pnum.MALYANM200_F103CB.build.mcu=cortex-m3
3dprinter.menu.pnum.MALYANM200_F103CB.build.board=MALYANM200_F103CB
3dprinter.menu.pnum.MALYANM200_F103CB.build.series=STM32F1xx
3dprinter.menu.pnum.MALYANM200_F103CB.build.product_line=STM32F103xB
3dprinter.menu.pnum.MALYANM200_F103CB.build.variant=STM32F1xx/F103C8T_F103CB(T-U)
3dprinter.menu.pnum.MALYANM200_F103CB.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.MALYANM200_F103CB.build.cmsis_lib_gcc=arm_cortexM3l_math
3dprinter.menu.pnum.MALYANM200_F103CB.build.startup_file=-DCUSTOM_STARTUP_FILE
3dprinter.menu.pnum.MALYANM200_F103CB.build.flash_offset=0x2000
3dprinter.menu.pnum.MALYANM200_F103CB.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -DVECT_TAB_OFFSET={build.flash_offset}

# MALYANM200_F070CB board
3dprinter.menu.pnum.MALYANM200_F070CB=Malyan M200 V2
3dprinter.menu.pnum.MALYANM200_F070CB.upload.maximum_size=122880
3dprinter.menu.pnum.MALYANM200_F070CB.upload.maximum_data_size=15168
3dprinter.menu.pnum.MALYANM200_F070CB.build.mcu=cortex-m0
3dprinter.menu.pnum.MALYANM200_F070CB.build.board=MALYANM200_F070CB
3dprinter.menu.pnum.MALYANM200_F070CB.build.series=STM32F0xx
3dprinter.menu.pnum.MALYANM200_F070CB.build.product_line=STM32F070xB
3dprinter.menu.pnum.MALYANM200_F070CB.build.variant=STM32F0xx/F070CBT
3dprinter.menu.pnum.MALYANM200_F070CB.build.variant_h=variant_MALYANMx00_F070CB.h
3dprinter.menu.pnum.MALYANM200_F070CB.build.cmsis_lib_gcc=arm_cortexM0l_math
3dprinter.menu.pnum.MALYANM200_F070CB.build.startup_file=-DCUSTOM_STARTUP_FILE
3dprinter.menu.pnum.MALYANM200_F070CB.build.ldscript=MALYANMx00_F070CB.ld
3dprinter.menu.pnum.MALYANM200_F070CB.build.flash_offset=0x2000
3dprinter.menu.pnum.MALYANM200_F070CB.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -DVECT_TAB_OFFSET={build.flash_offset}

# MALYANM300_F070CB board
3dprinter.menu.pnum.MALYANM300_F070CB=Malyan M300
3dprinter.menu.pnum.MALYANM300_F070CB.upload.maximum_size=122880
3dprinter.menu.pnum.MALYANM300_F070CB.upload.maximum_data_size=15168
3dprinter.menu.pnum.MALYANM300_F070CB.build.mcu=cortex-m0
3dprinter.menu.pnum.MALYANM300_F070CB.build.board=MALYANM300_F070CB
3dprinter.menu.pnum.MALYANM300_F070CB.build.series=STM32F0xx
3dprinter.menu.pnum.MALYANM300_F070CB.build.product_line=STM32F070xB
3dprinter.menu.pnum.MALYANM300_F070CB.build.variant=STM32F0xx/F070CBT
3dprinter.menu.pnum.MALYANM300_F070CB.build.variant_h=variant_MALYANMx00_F070CB.h
3dprinter.menu.pnum.MALYANM300_F070CB.build.cmsis_lib_gcc=arm_cortexM0l_math
3dprinter.menu.pnum.MALYANM300_F070CB.build.startup_file=-DCUSTOM_STARTUP_FILE
3dprinter.menu.pnum.MALYANM200_F070CB.build.ldscript=MALYANMx00_F070CB.ld
3dprinter.menu.pnum.MALYANM300_F070CB.build.flash_offset=0x2000
3dprinter.menu.pnum.MALYANM300_F070CB.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -DVECT_TAB_OFFSET={build.flash_offset}

# VAkE v1.0
3dprinter.menu.pnum.VAKE_V1=VAkE v1.0
3dprinter.menu.pnum.VAKE_V1.upload.maximum_size=524288
3dprinter.menu.pnum.VAKE_V1.upload.maximum_data_size=131072
3dprinter.menu.pnum.VAKE_V1.build.mcu=cortex-m4
3dprinter.menu.pnum.VAKE_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.VAKE_V1.build.board=VAKE_V1
3dprinter.menu.pnum.VAKE_V1.build.series=STM32F4xx
3dprinter.menu.pnum.VAKE_V1.build.product_line=STM32F446xx
3dprinter.menu.pnum.VAKE_V1.build.variant=STM32F4xx/F446V(C-E)T
3dprinter.menu.pnum.VAKE_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.VAKE_V1.build.cmsis_lib_gcc=arm_cortexM4lf_math

# FYSETC_S6 board
3dprinter.menu.pnum.FYSETC_S6=FYSETC_S6
3dprinter.menu.pnum.FYSETC_S6.upload.maximum_size=458752
3dprinter.menu.pnum.FYSETC_S6.upload.maximum_data_size=131072
3dprinter.menu.pnum.FYSETC_S6.build.mcu=cortex-m4
3dprinter.menu.pnum.FYSETC_S6.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
3dprinter.menu.pnum.FYSETC_S6.build.board=FYSETC_S6
3dprinter.menu.pnum.FYSETC_S6.build.series=STM32F4xx
3dprinter.menu.pnum.FYSETC_S6.build.product_line=STM32F446xx
3dprinter.menu.pnum.FYSETC_S6.build.variant=STM32F4xx/F446V(C-E)T
3dprinter.menu.pnum.FYSETC_S6.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3dprinter.menu.pnum.FYSETC_S6.build.cmsis_lib_gcc=arm_cortexM4lf_math
3dprinter.menu.pnum.FYSETC_S6.build.flash_offset=0x10000
3dprinter.menu.pnum.FYSETC_S6.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -DVECT_TAB_OFFSET={build.flash_offset}

# Upload menu
3dprinter.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
3dprinter.menu.upload_method.swdMethod.upload.protocol=0
3dprinter.menu.upload_method.swdMethod.upload.options=-g
3dprinter.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

3dprinter.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
3dprinter.menu.upload_method.serialMethod.upload.protocol=1
3dprinter.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
3dprinter.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

3dprinter.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
3dprinter.menu.upload_method.dfuMethod.upload.protocol=2
3dprinter.menu.upload_method.dfuMethod.upload.options=-g
3dprinter.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

###############################
# Generic Flight Controllers

GenFlight.name=Generic Flight Controllers

GenFlight.build.core=arduino
GenFlight.build.board=Genericflight
GenFlight.build.variant_h=variant_{build.board}.h
GenFlight.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags}

# AfroFlight Rev5
GenFlight.menu.pnum.AFROFLIGHT_F103CB=Afro Flight Rev5 (8MHz)
GenFlight.menu.pnum.AFROFLIGHT_F103CB.upload.maximum_size=131072
GenFlight.menu.pnum.AFROFLIGHT_F103CB.upload.maximum_data_size=20480
GenFlight.menu.pnum.AFROFLIGHT_F103CB.build.mcu=cortex-m3
GenFlight.menu.pnum.AFROFLIGHT_F103CB.build.series=STM32F1xx
GenFlight.menu.pnum.AFROFLIGHT_F103CB.build.cmsis_lib_gcc=arm_cortexM3l_math
GenFlight.menu.pnum.AFROFLIGHT_F103CB.build.board=AFROFLIGHT_F103CB
GenFlight.menu.pnum.AFROFLIGHT_F103CB.build.product_line=STM32F103xB
GenFlight.menu.pnum.AFROFLIGHT_F103CB.build.variant=STM32F1xx/F103C8T_F103CB(T-U)
GenFlight.menu.pnum.AFROFLIGHT_F103CB.build.variant_h=variant_AFROFLIGHT_F103CB_XX.h

GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M=Afro Flight Rev5 (12MHz)
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.upload.maximum_size=131072
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.upload.maximum_data_size=20480
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.build.mcu=cortex-m3
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.build.series=STM32F1xx
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.build.cmsis_lib_gcc=arm_cortexM3l_math
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.build.board=AFROFLIGHT_F103CB_12M
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.build.product_line=STM32F103xB
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.build.variant=STM32F1xx/F103C8T_F103CB(T-U)
GenFlight.menu.pnum.AFROFLIGHT_F103CB_12M.build.variant_h=variant_AFROFLIGHT_F103CB_XX.h

# Sparky_V1 board
GenFlight.menu.pnum.Sparky_V1=Sparky V1 F303 FC
GenFlight.menu.pnum.Sparky_V1.upload.maximum_size=262144
GenFlight.menu.pnum.Sparky_V1.upload.maximum_data_size=40960
GenFlight.menu.pnum.Sparky_V1.build.mcu=cortex-m4
GenFlight.menu.pnum.Sparky_V1.build.series=STM32F3xx
GenFlight.menu.pnum.Sparky_V1.build.cmsis_lib_gcc=arm_cortexM4lf_math
GenFlight.menu.pnum.Sparky_V1.build.board=SPARKY_F303CC
GenFlight.menu.pnum.Sparky_V1.build.product_line=STM32F303xC
GenFlight.menu.pnum.Sparky_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
GenFlight.menu.pnum.Sparky_V1.build.variant=STM32F3xx/F303C(B-C)T
GenFlight.menu.pnum.Sparky_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS

# Upload menu
GenFlight.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
GenFlight.menu.upload_method.swdMethod.upload.protocol=0
GenFlight.menu.upload_method.swdMethod.upload.options=-g
GenFlight.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

GenFlight.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
GenFlight.menu.upload_method.serialMethod.upload.protocol=1
GenFlight.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
GenFlight.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

GenFlight.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
GenFlight.menu.upload_method.dfuMethod.upload.protocol=2
GenFlight.menu.upload_method.dfuMethod.upload.options=-g
GenFlight.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

GenFlight.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
GenFlight.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
GenFlight.menu.upload_method.bmpMethod.upload.tool=bmp_upload

GenFlight.menu.upload_method.hidMethod=HID Bootloader 2.2
GenFlight.menu.upload_method.hidMethod.upload.protocol=hid22
GenFlight.menu.upload_method.hidMethod.upload.tool=hid_upload
GenFlight.menu.upload_method.hidMethod.build.flash_offset=0x800
GenFlight.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset}

GenFlight.menu.upload_method.dfu2Method=Maple DFU Bootloader 2.0
GenFlight.menu.upload_method.dfu2Method.upload.protocol=maple
GenFlight.menu.upload_method.dfu2Method.upload.tool=maple_upload
GenFlight.menu.upload_method.dfu2Method.upload.usbID=1EAF:0003
GenFlight.menu.upload_method.dfu2Method.upload.altID=2
GenFlight.menu.upload_method.dfu2Method.build.flash_offset=0x2000
GenFlight.menu.upload_method.dfu2Method.build.bootloader_flags=-DBL_LEGACY_LEAF -DVECT_TAB_OFFSET={build.flash_offset}

GenFlight.menu.upload_method.dfuoMethod=Maple DFU Bootloader original
GenFlight.menu.upload_method.dfuoMethod.upload.protocol=maple
GenFlight.menu.upload_method.dfuoMethod.upload.tool=maple_upload
GenFlight.menu.upload_method.dfuoMethod.upload.usbID=1EAF:0003
GenFlight.menu.upload_method.dfuoMethod.upload.altID=1
GenFlight.menu.upload_method.dfuoMethod.build.flash_offset=0x5000
GenFlight.menu.upload_method.dfuoMethod.build.bootloader_flags=-DBL_LEGACY_LEAF -DVECT_TAB_OFFSET={build.flash_offset}

################################################################################
# Garatronic-McHobby STM32 boards

Garatronic.name=Garatronic-McHobby

Garatronic.build.core=arduino
Garatronic.build.board=Garatronic
Garatronic.build.variant_h=variant_{build.board}.h
Garatronic.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# PYBSTICK26(DUINO) board with F072RB
Garatronic.menu.pnum.PYBSTICK26_DUINO=PYBSTICK26 Duino
Garatronic.menu.pnum.PYBSTICK26_DUINO.upload.maximum_size=131072
Garatronic.menu.pnum.PYBSTICK26_DUINO.upload.maximum_data_size=16384
Garatronic.menu.pnum.PYBSTICK26_DUINO.build.mcu=cortex-m0
Garatronic.menu.pnum.PYBSTICK26_DUINO.build.board=PYBSTICK26_DUINO
Garatronic.menu.pnum.PYBSTICK26_DUINO.build.series=STM32F0xx
Garatronic.menu.pnum.PYBSTICK26_DUINO.build.product_line=STM32F072xB
Garatronic.menu.pnum.PYBSTICK26_DUINO.build.variant=STM32F0xx/F072R8T_F072RB(H-I-T)
Garatronic.menu.pnum.PYBSTICK26_DUINO.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Garatronic.menu.pnum.PYBSTICK26_DUINO.build.cmsis_lib_gcc=arm_cortexM0l_math

# PYBSTICK26(LITE) board with F401CE
Garatronic.menu.pnum.PYBSTICK26_LITE=PYBSTICK26 Lite
Garatronic.menu.pnum.PYBSTICK26_LITE.upload.maximum_size=524288
Garatronic.menu.pnum.PYBSTICK26_LITE.upload.maximum_data_size=98304
Garatronic.menu.pnum.PYBSTICK26_LITE.build.mcu=cortex-m4
Garatronic.menu.pnum.PYBSTICK26_LITE.build.board=PYBSTICK26_LITE
Garatronic.menu.pnum.PYBSTICK26_LITE.build.series=STM32F4xx
Garatronic.menu.pnum.PYBSTICK26_LITE.build.product_line=STM32F401xE
Garatronic.menu.pnum.PYBSTICK26_LITE.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y)
Garatronic.menu.pnum.PYBSTICK26_LITE.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Garatronic.menu.pnum.PYBSTICK26_LITE.build.cmsis_lib_gcc=arm_cortexM4lf_math
Garatronic.menu.pnum.PYBSTICK26_LITE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard

# PYBSTICK26(STD/Programmez!) board with F411RE
Garatronic.menu.pnum.PYBSTICK26_STD=PYBSTICK26 STD-Programmez
Garatronic.menu.pnum.PYBSTICK26_STD.upload.maximum_size=524288
Garatronic.menu.pnum.PYBSTICK26_STD.upload.maximum_data_size=131072
Garatronic.menu.pnum.PYBSTICK26_STD.build.mcu=cortex-m4
Garatronic.menu.pnum.PYBSTICK26_STD.build.board=PYBSTICK26_STD
Garatronic.menu.pnum.PYBSTICK26_STD.build.series=STM32F4xx
Garatronic.menu.pnum.PYBSTICK26_STD.build.product_line=STM32F411xE
Garatronic.menu.pnum.PYBSTICK26_STD.build.variant=STM32F4xx/F411R(C-E)T
Garatronic.menu.pnum.PYBSTICK26_STD.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Garatronic.menu.pnum.PYBSTICK26_STD.build.cmsis_lib_gcc=arm_cortexM4lf_math
Garatronic.menu.pnum.PYBSTICK26_STD.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard

# PYBSTICK26(PRO) board with F412RE
Garatronic.menu.pnum.PYBSTICK26_PRO=PYBSTICK26 Pro
Garatronic.menu.pnum.PYBSTICK26_PRO.upload.maximum_size=524288
Garatronic.menu.pnum.PYBSTICK26_PRO.upload.maximum_data_size=262144
Garatronic.menu.pnum.PYBSTICK26_PRO.build.mcu=cortex-m4
Garatronic.menu.pnum.PYBSTICK26_PRO.build.board=PYBSTICK26_PRO
Garatronic.menu.pnum.PYBSTICK26_PRO.build.series=STM32F4xx
Garatronic.menu.pnum.PYBSTICK26_PRO.build.product_line=STM32F412Rx
Garatronic.menu.pnum.PYBSTICK26_PRO.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P)
Garatronic.menu.pnum.PYBSTICK26_PRO.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Garatronic.menu.pnum.PYBSTICK26_PRO.build.cmsis_lib_gcc=arm_cortexM4lf_math
Garatronic.menu.pnum.PYBSTICK26_PRO.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard

# PYBSTICK26 boards upload method
Garatronic.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
Garatronic.menu.upload_method.dfuMethod.upload.protocol=2
Garatronic.menu.upload_method.dfuMethod.upload.options=-g
Garatronic.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Midatronics boards

Midatronics.name=Midatronics boards

Midatronics.build.core=arduino
Midatronics.build.board=Midatronics
Midatronics.build.variant_h=variant_{build.board}.h
Midatronics.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# MKR_SHARKY board
Midatronics.menu.pnum.MKR_SHARKY=MKR Sharky
Midatronics.menu.pnum.MKR_SHARKY.node=NODE_WB55CE
Midatronics.menu.pnum.MKR_SHARKY.upload.maximum_size=262144
Midatronics.menu.pnum.MKR_SHARKY.upload.maximum_data_size=196608
Midatronics.menu.pnum.MKR_SHARKY.build.mcu=cortex-m4
Midatronics.menu.pnum.MKR_SHARKY.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Midatronics.menu.pnum.MKR_SHARKY.build.board=MKR_SHARKY
Midatronics.menu.pnum.MKR_SHARKY.build.series=STM32WBxx
Midatronics.menu.pnum.MKR_SHARKY.build.product_line=STM32WB55xx
Midatronics.menu.pnum.MKR_SHARKY.build.variant=STM32WBxx/WB55C(C-E-G)U
Midatronics.menu.pnum.MKR_SHARKY.build.cmsis_lib_gcc=arm_cortexM4lf_math

# Upload menu
Midatronics.menu.upload_method.MassStorage=Mass Storage
Midatronics.menu.upload_method.MassStorage.upload.protocol=
Midatronics.menu.upload_method.MassStorage.upload.tool=massStorageCopy

Midatronics.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
Midatronics.menu.upload_method.swdMethod.upload.protocol=0
Midatronics.menu.upload_method.swdMethod.upload.options=-g
Midatronics.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

Midatronics.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
Midatronics.menu.upload_method.serialMethod.upload.protocol=1
Midatronics.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
Midatronics.menu.upload_method.serialMethod.upload.tool=stm32CubeProg

Midatronics.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
Midatronics.menu.upload_method.dfuMethod.upload.protocol=2
Midatronics.menu.upload_method.dfuMethod.upload.options=-g
Midatronics.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg

################################################################################
# Serialx activation
Nucleo_144.menu.xserial.generic=Enabled (generic 'Serial')
Nucleo_144.menu.xserial.none=Enabled (no generic 'Serial')
Nucleo_144.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
Nucleo_144.menu.xserial.disabled=Disabled (No Serial support)
Nucleo_144.menu.xserial.disabled.build.xSerial=

Nucleo_64.menu.xserial.generic=Enabled (generic 'Serial')
Nucleo_64.menu.xserial.none=Enabled (no generic 'Serial')
Nucleo_64.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
Nucleo_64.menu.xserial.disabled=Disabled (No Serial support)
Nucleo_64.menu.xserial.disabled.build.xSerial=

Nucleo_32.menu.xserial.generic=Enabled (generic 'Serial')
Nucleo_32.menu.xserial.none=Enabled (no generic 'Serial')
Nucleo_32.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
Nucleo_32.menu.xserial.disabled=Disabled (No Serial support)
Nucleo_32.menu.xserial.disabled.build.xSerial=

Disco.menu.xserial.generic=Enabled (generic 'Serial')
Disco.menu.xserial.none=Enabled (no generic 'Serial')
Disco.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
Disco.menu.xserial.disabled=Disabled (no Serial support)
Disco.menu.xserial.disabled.build.xSerial=

Eval.menu.xserial.generic=Enabled (generic 'Serial')
Eval.menu.xserial.none=Enabled (no generic 'Serial')
Eval.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
Eval.menu.xserial.disabled=Disabled (no Serial support)
Eval.menu.xserial.disabled.build.xSerial=

STM32MP1.menu.virtio.disable=Disabled (no SerialVirtIO nor /dev/ttyRPMSG0 available)
STM32MP1.menu.virtio.disable.build.enable_virtio=
STM32MP1.menu.virtio.generic=SerialVirtIO (= generic 'Serial') <=> /dev/ttyRPMSG0
STM32MP1.menu.virtio.generic.build.enable_virtio={build.virtio_flags}
STM32MP1.menu.virtio.enabled=SerialVirtIO <=> /dev/ttyRPMSG0
STM32MP1.menu.virtio.enabled.build.enable_virtio={build.virtio_flags} -DDISABLE_GENERIC_SERIALVIRTIO

STM32MP1.menu.xserial.generic=UART only (generic 'Serial')
STM32MP1.menu.xserial.generic.build.xSerial=-DHAL_UART_MODULE_ENABLED
STM32MP1.menu.xserial.none=UART only (no generic 'Serial')
STM32MP1.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
STM32MP1.menu.xserial.disabled=Disabled (no Serial support)
STM32MP1.menu.xserial.disabled.build.xSerial=

GenF0.menu.xserial.generic=Enabled (generic 'Serial')
GenF0.menu.xserial.none=Enabled (no generic 'Serial')
GenF0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenF0.menu.xserial.disabled=Disabled (no Serial support)
GenF0.menu.xserial.disabled.build.xSerial=

GenF1.menu.xserial.generic=Enabled (generic 'Serial')
GenF1.menu.xserial.none=Enabled (no generic 'Serial')
GenF1.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenF1.menu.xserial.disabled=Disabled (no Serial support)
GenF1.menu.xserial.disabled.build.xSerial=

GenF2.menu.xserial.generic=Enabled (generic 'Serial')
GenF2.menu.xserial.none=Enabled (no generic 'Serial')
GenF2.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenF2.menu.xserial.disabled=Disabled (no Serial support)
GenF2.menu.xserial.disabled.build.xSerial=

GenF3.menu.xserial.generic=Enabled (generic 'Serial')
GenF3.menu.xserial.none=Enabled (no generic 'Serial')
GenF3.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenF3.menu.xserial.disabled=Disabled (no Serial support)
GenF3.menu.xserial.disabled.build.xSerial=

GenF4.menu.xserial.generic=Enabled (generic 'Serial')
GenF4.menu.xserial.none=Enabled (no generic 'Serial')
GenF4.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenF4.menu.xserial.disabled=Disabled (no Serial support)
GenF4.menu.xserial.disabled.build.xSerial=

GenF7.menu.xserial.generic=Enabled (generic 'Serial')
GenF7.menu.xserial.none=Enabled (no generic 'Serial')
GenF7.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenF7.menu.xserial.disabled=Disabled (no Serial support)
GenF7.menu.xserial.disabled.build.xSerial=

GenG0.menu.xserial.generic=Enabled (generic 'Serial')
GenG0.menu.xserial.none=Enabled (no generic 'Serial')
GenG0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenG0.menu.xserial.disabled=Disabled (no Serial support)
GenG0.menu.xserial.disabled.build.xSerial=

GenG4.menu.xserial.generic=Enabled (generic 'Serial')
GenG4.menu.xserial.none=Enabled (no generic 'Serial')
GenG4.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenG4.menu.xserial.disabled=Disabled (no Serial support)
GenG4.menu.xserial.disabled.build.xSerial=

GenH7.menu.xserial.generic=Enabled (generic 'Serial')
GenH7.menu.xserial.none=Enabled (no generic 'Serial')
GenH7.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenH7.menu.xserial.disabled=Disabled (No Serial support)
GenH7.menu.xserial.disabled.build.xSerial=

GenL0.menu.xserial.generic=Enabled (generic 'Serial')
GenL0.menu.xserial.none=Enabled (no generic 'Serial')
GenL0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenL0.menu.xserial.disabled=Disabled (no Serial support)
GenL0.menu.xserial.disabled.build.xSerial=

GenL1.menu.xserial.generic=Enabled (generic 'Serial')
GenL1.menu.xserial.none=Enabled (no generic 'Serial')
GenL1.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenL1.menu.xserial.disabled=Disabled (no Serial support)
GenL1.menu.xserial.disabled.build.xSerial=

GenL4.menu.xserial.generic=Enabled (generic 'Serial')
GenL4.menu.xserial.none=Enabled (no generic 'Serial')
GenL4.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenL4.menu.xserial.disabled=Disabled (no Serial support)
GenL4.menu.xserial.disabled.build.xSerial=

GenL5.menu.xserial.generic=Enabled (generic 'Serial')
GenL5.menu.xserial.none=Enabled (no generic 'Serial')
GenL5.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenL5.menu.xserial.disabled=Disabled (no Serial support)
GenL5.menu.xserial.disabled.build.xSerial=

GenWB.menu.xserial.generic=Enabled (generic 'Serial')
GenWB.menu.xserial.none=Enabled (no generic 'Serial')
GenWB.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenWB.menu.xserial.disabled=Disabled (no Serial support)
GenWB.menu.xserial.disabled.build.xSerial=

ESC_board.menu.xserial.generic=Enabled (generic 'Serial')
ESC_board.menu.xserial.none=Enabled (no generic 'Serial')
ESC_board.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
ESC_board.menu.xserial.disabled=Disabled (no Serial support)
ESC_board.menu.xserial.disabled.build.xSerial=

LoRa.menu.xserial.generic=Enabled (generic 'Serial')
LoRa.menu.xserial.none=Enabled (no generic 'Serial')
LoRa.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
LoRa.menu.xserial.disabled=Disabled (no Serial support)
LoRa.menu.xserial.disabled.build.xSerial=

3dprinter.menu.xserial.generic=Enabled (generic 'Serial')
3dprinter.menu.xserial.none=Enabled (no generic 'Serial')
3dprinter.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
3dprinter.menu.xserial.disabled=Disabled (no Serial support)
3dprinter.menu.xserial.disabled.build.xSerial=

GenFlight.menu.xserial.generic=Enabled (generic 'Serial')
GenFlight.menu.xserial.none=Enabled (no generic 'Serial')
GenFlight.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
GenFlight.menu.xserial.disabled=Disabled (no Serial support)
GenFlight.menu.xserial.disabled.build.xSerial=

Garatronic.menu.xserial.generic=Enabled (generic 'Serial')
Garatronic.menu.xserial.none=Enabled (no generic 'Serial')
Garatronic.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
Garatronic.menu.xserial.disabled=Disabled (no Serial support)
Garatronic.menu.xserial.disabled.build.xSerial=

Midatronics.menu.xserial.generic=Enabled (generic 'Serial')
Midatronics.menu.xserial.none=Enabled (no generic 'Serial')
Midatronics.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
Midatronics.menu.xserial.disabled=Disabled (No Serial support)
Midatronics.menu.xserial.disabled.build.xSerial=

# USB connectivity
Nucleo_144.menu.usb.none=None
Nucleo_144.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
Nucleo_144.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Nucleo_144.menu.usb.CDC=CDC (no generic 'Serial')
Nucleo_144.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
Nucleo_144.menu.usb.HID=HID (keyboard and mouse)
Nucleo_144.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Nucleo_144.menu.xusb.FS=Low/Full Speed
Nucleo_144.menu.xusb.HS=High Speed
Nucleo_144.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
Nucleo_144.menu.xusb.HSFS=High Speed in Full Speed mode
Nucleo_144.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

Nucleo_64.menu.usb.none=None
Nucleo_64.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
Nucleo_64.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Nucleo_64.menu.usb.CDC=CDC (no generic 'Serial')
Nucleo_64.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
Nucleo_64.menu.usb.HID=HID (keyboard and mouse)
Nucleo_64.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Nucleo_64.menu.xusb.FS=Low/Full Speed
Nucleo_64.menu.xusb.HS=High Speed
Nucleo_64.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
Nucleo_64.menu.xusb.HSFS=High Speed in Full Speed mode
Nucleo_64.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

Nucleo_32.menu.usb.none=None
Nucleo_32.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
Nucleo_32.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Nucleo_32.menu.usb.CDC=CDC (no generic 'Serial')
Nucleo_32.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
Nucleo_32.menu.usb.HID=HID (keyboard and mouse)
Nucleo_32.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Nucleo_32.menu.xusb.FS=Low/Full Speed
Nucleo_32.menu.xusb.HS=High Speed
Nucleo_32.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
Nucleo_32.menu.xusb.HSFS=High Speed in Full Speed mode
Nucleo_32.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

Disco.menu.usb.none=None
Disco.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
Disco.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Disco.menu.usb.CDC=CDC (no generic 'Serial')
Disco.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
Disco.menu.usb.HID=HID (keyboard and mouse)
Disco.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Disco.menu.xusb.FS=Low/Full Speed
Disco.menu.xusb.HS=High Speed
Disco.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
Disco.menu.xusb.HSFS=High Speed in Full Speed mode
Disco.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

Eval.menu.usb.none=None
Eval.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
Eval.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Eval.menu.usb.CDC=CDC (no generic 'Serial')
Eval.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
Eval.menu.usb.HID=HID (keyboard and mouse)
Eval.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Eval.menu.xusb.FS=Low/Full Speed
Eval.menu.xusb.HS=High Speed
Eval.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
Eval.menu.xusb.HSFS=High Speed in Full Speed mode
Eval.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenF0.menu.usb.none=None
GenF0.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenF0.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF0.menu.usb.CDC=CDC (no generic 'Serial')
GenF0.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenF0.menu.usb.HID=HID (keyboard and mouse)
GenF0.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE

GenF1.menu.usb.none=None
GenF1.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenF1.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF1.menu.usb.CDC=CDC (no generic 'Serial')
GenF1.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenF1.menu.usb.HID=HID (keyboard and mouse)
GenF1.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenF1.menu.xusb.FS=Low/Full Speed
GenF1.menu.xusb.HS=High Speed
GenF1.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenF1.menu.xusb.HSFS=High Speed in Full Speed mode
GenF1.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenF2.menu.usb.none=None
GenF2.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenF2.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF2.menu.usb.CDC=CDC (no generic 'Serial')
GenF2.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenF2.menu.usb.HID=HID (keyboard and mouse)
GenF2.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenF2.menu.xusb.FS=Low/Full Speed
GenF2.menu.xusb.HS=High Speed
GenF2.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenF2.menu.xusb.HSFS=High Speed in Full Speed mode
GenF2.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenF3.menu.usb.none=None
GenF3.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenF3.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF3.menu.usb.CDC=CDC (no generic 'Serial')
GenF3.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenF3.menu.usb.HID=HID (keyboard and mouse)
GenF3.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenF3.menu.xusb.FS=Low/Full Speed
GenF3.menu.xusb.HS=High Speed
GenF3.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenF3.menu.xusb.HSFS=High Speed in Full Speed mode
GenF3.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenF4.menu.usb.none=None
GenF4.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenF4.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF4.menu.usb.CDC=CDC (no generic 'Serial')
GenF4.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenF4.menu.usb.HID=HID (keyboard and mouse)
GenF4.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenF4.menu.xusb.FS=Low/Full Speed
GenF4.menu.xusb.HS=High Speed
GenF4.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenF4.menu.xusb.HSFS=High Speed in Full Speed mode
GenF4.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenF7.menu.usb.none=None
GenF7.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenF7.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF7.menu.usb.CDC=CDC (no generic 'Serial')
GenF7.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenF7.menu.usb.HID=HID (keyboard and mouse)
GenF7.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenF7.menu.xusb.FS=Low/Full Speed
GenF7.menu.xusb.HS=High Speed
GenF7.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenF7.menu.xusb.HSFS=High Speed in Full Speed mode
GenF7.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenG4.menu.usb.none=None
GenG4.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenG4.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenG4.menu.usb.CDC=CDC (no generic 'Serial')
GenG4.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenG4.menu.usb.HID=HID (keyboard and mouse)
GenG4.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenG4.menu.xusb.FS=Low/Full Speed
GenG4.menu.xusb.HS=High Speed
GenG4.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenG4.menu.xusb.HSFS=High Speed in Full Speed mode
GenG4.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenH7.menu.usb.none=None
GenH7.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenH7.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenH7.menu.usb.CDC=CDC (no generic 'Serial')
GenH7.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenH7.menu.usb.HID=HID (keyboard and mouse)
GenH7.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenH7.menu.xusb.FS=Low/Full Speed
GenH7.menu.xusb.HSFS=High Speed in Full Speed mode
GenH7.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenL0.menu.usb.none=None
GenL0.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenL0.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenL0.menu.usb.CDC=CDC (no generic 'Serial')
GenL0.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenL0.menu.usb.HID=HID (keyboard and mouse)
GenL0.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE

GenL1.menu.usb.none=None
GenL1.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenL1.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenL1.menu.usb.CDC=CDC (no generic 'Serial')
GenL1.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenL1.menu.usb.HID=HID (keyboard and mouse)
GenL1.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE

GenL4.menu.usb.none=None
GenL4.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenL4.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenL4.menu.usb.CDC=CDC (no generic 'Serial')
GenL4.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenL4.menu.usb.HID=HID (keyboard and mouse)
GenL4.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenL4.menu.xusb.FS=Low/Full Speed
GenL4.menu.xusb.HS=High Speed
GenL4.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenL4.menu.xusb.HSFS=High Speed in Full Speed mode
GenL4.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenL5.menu.usb.none=None
GenL5.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenL5.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenL5.menu.usb.CDC=CDC (no generic 'Serial')
GenL5.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenL5.menu.usb.HID=HID (keyboard and mouse)
GenL5.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenL5.menu.xusb.FS=Low/Full Speed
GenL5.menu.xusb.HS=High Speed
GenL5.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenL5.menu.xusb.HSFS=High Speed in Full Speed mode
GenL5.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenWB.menu.usb.none=None
GenWB.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenWB.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenWB.menu.usb.CDC=CDC (no generic 'Serial')
GenWB.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenWB.menu.usb.HID=HID (keyboard and mouse)
GenWB.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenWB.menu.xusb.FS=Low/Full Speed
GenWB.menu.xusb.HS=High Speed
GenWB.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenWB.menu.xusb.HSFS=High Speed in Full Speed mode
GenWB.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

3dprinter.menu.usb.none=None
3dprinter.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
3dprinter.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
3dprinter.menu.usb.CDC=CDC (no generic 'Serial')
3dprinter.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
3dprinter.menu.xusb.FS=Low/Full Speed
3dprinter.menu.xusb.HS=High Speed
3dprinter.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
3dprinter.menu.xusb.HSFS=High Speed in Full Speed mode
3dprinter.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

GenFlight.menu.usb.none=None
GenFlight.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
GenFlight.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenFlight.menu.usb.CDC=CDC (no generic 'Serial')
GenFlight.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
GenFlight.menu.usb.HID=HID (keyboard and mouse)
GenFlight.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenFlight.menu.xusb.FS=Low/Full Speed
GenFlight.menu.xusb.HS=High Speed
GenFlight.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
GenFlight.menu.xusb.HSFS=High Speed in Full Speed mode
GenFlight.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

Garatronic.menu.usb.none=None
Garatronic.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
Garatronic.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Garatronic.menu.usb.CDC=CDC (no generic 'Serial')
Garatronic.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
Garatronic.menu.usb.HID=HID (keyboard and mouse)
Garatronic.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE

Midatronics.menu.usb.none=None
Midatronics.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
Midatronics.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Midatronics.menu.usb.CDC=CDC (no generic 'Serial')
Midatronics.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
Midatronics.menu.usb.HID=HID (keyboard and mouse)
Midatronics.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Midatronics.menu.xusb.FS=Low/Full Speed
Midatronics.menu.xusb.HS=High Speed
Midatronics.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
Midatronics.menu.xusb.HSFS=High Speed in Full Speed mode
Midatronics.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS

# Optimizations
Nucleo_144.menu.opt.osstd=Smallest (-Os default)
Nucleo_144.menu.opt.oslto=Smallest (-Os) with LTO
Nucleo_144.menu.opt.oslto.build.flags.optimize=-Os -flto
Nucleo_144.menu.opt.o1std=Fast (-O1)
Nucleo_144.menu.opt.o1std.build.flags.optimize=-O1
Nucleo_144.menu.opt.o1lto=Fast (-O1) with LTO
Nucleo_144.menu.opt.o1lto.build.flags.optimize=-O1 -flto
Nucleo_144.menu.opt.o2std=Faster (-O2)
Nucleo_144.menu.opt.o2std.build.flags.optimize=-O2
Nucleo_144.menu.opt.o2lto=Faster (-O2) with LTO
Nucleo_144.menu.opt.o2lto.build.flags.optimize=-O2 -flto
Nucleo_144.menu.opt.o3std=Fastest (-O3)
Nucleo_144.menu.opt.o3std.build.flags.optimize=-O3
Nucleo_144.menu.opt.o3lto=Fastest (-O3) with LTO
Nucleo_144.menu.opt.o3lto.build.flags.optimize=-O3 -flto
Nucleo_144.menu.opt.ogstd=Debug (-g)
Nucleo_144.menu.opt.ogstd.build.flags.optimize=-g -Og

Nucleo_64.menu.opt.osstd=Smallest (-Os default)
Nucleo_64.menu.opt.oslto=Smallest (-Os) with LTO
Nucleo_64.menu.opt.oslto.build.flags.optimize=-Os -flto
Nucleo_64.menu.opt.o1std=Fast (-O1)
Nucleo_64.menu.opt.o1std.build.flags.optimize=-O1
Nucleo_64.menu.opt.o1lto=Fast (-O1) with LTO
Nucleo_64.menu.opt.o1lto.build.flags.optimize=-O1 -flto
Nucleo_64.menu.opt.o2std=Faster (-O2)
Nucleo_64.menu.opt.o2std.build.flags.optimize=-O2
Nucleo_64.menu.opt.o2lto=Faster (-O2) with LTO
Nucleo_64.menu.opt.o2lto.build.flags.optimize=-O2 -flto
Nucleo_64.menu.opt.o3std=Fastest (-O3)
Nucleo_64.menu.opt.o3std.build.flags.optimize=-O3
Nucleo_64.menu.opt.o3lto=Fastest (-O3) with LTO
Nucleo_64.menu.opt.o3lto.build.flags.optimize=-O3 -flto
Nucleo_64.menu.opt.ogstd=Debug (-g)
Nucleo_64.menu.opt.ogstd.build.flags.optimize=-g -Og

Nucleo_32.menu.opt.osstd=Smallest (-Os default)
Nucleo_32.menu.opt.oslto=Smallest (-Os) with LTO
Nucleo_32.menu.opt.oslto.build.flags.optimize=-Os -flto
Nucleo_32.menu.opt.o1std=Fast (-O1)
Nucleo_32.menu.opt.o1std.build.flags.optimize=-O1
Nucleo_32.menu.opt.o1lto=Fast (-O1) with LTO
Nucleo_32.menu.opt.o1lto.build.flags.optimize=-O1 -flto
Nucleo_32.menu.opt.o2std=Faster (-O2)
Nucleo_32.menu.opt.o2std.build.flags.optimize=-O2
Nucleo_32.menu.opt.o2lto=Faster (-O2) with LTO
Nucleo_32.menu.opt.o2lto.build.flags.optimize=-O2 -flto
Nucleo_32.menu.opt.o3std=Fastest (-O3)
Nucleo_32.menu.opt.o3std.build.flags.optimize=-O3
Nucleo_32.menu.opt.o3lto=Fastest (-O3) with LTO
Nucleo_32.menu.opt.o3lto.build.flags.optimize=-O3 -flto
Nucleo_32.menu.opt.ogstd=Debug (-g)
Nucleo_32.menu.opt.ogstd.build.flags.optimize=-g -Og

Disco.menu.opt.osstd=Smallest (-Os default)
Disco.menu.opt.oslto=Smallest (-Os) with LTO
Disco.menu.opt.oslto.build.flags.optimize=-Os -flto
Disco.menu.opt.o1std=Fast (-O1)
Disco.menu.opt.o1std.build.flags.optimize=-O1
Disco.menu.opt.o1lto=Fast (-O1) with LTO
Disco.menu.opt.o1lto.build.flags.optimize=-O1 -flto
Disco.menu.opt.o2std=Faster (-O2)
Disco.menu.opt.o2std.build.flags.optimize=-O2
Disco.menu.opt.o2lto=Faster (-O2) with LTO
Disco.menu.opt.o2lto.build.flags.optimize=-O2 -flto
Disco.menu.opt.o3std=Fastest (-O3)
Disco.menu.opt.o3std.build.flags.optimize=-O3
Disco.menu.opt.o3lto=Fastest (-O3) with LTO
Disco.menu.opt.o3lto.build.flags.optimize=-O3 -flto
Disco.menu.opt.ogstd=Debug (-g)
Disco.menu.opt.ogstd.build.flags.optimize=-g -Og

Eval.menu.opt.osstd=Smallest (-Os default)
Eval.menu.opt.oslto=Smallest (-Os) with LTO
Eval.menu.opt.oslto.build.flags.optimize=-Os -flto
Eval.menu.opt.o1std=Fast (-O1)
Eval.menu.opt.o1std.build.flags.optimize=-O1
Eval.menu.opt.o1lto=Fast (-O1) with LTO
Eval.menu.opt.o1lto.build.flags.optimize=-O1 -flto
Eval.menu.opt.o2std=Faster (-O2)
Eval.menu.opt.o2std.build.flags.optimize=-O2
Eval.menu.opt.o2lto=Faster (-O2) with LTO
Eval.menu.opt.o2lto.build.flags.optimize=-O2 -flto
Eval.menu.opt.o3std=Fastest (-O3)
Eval.menu.opt.o3std.build.flags.optimize=-O3
Eval.menu.opt.o3lto=Fastest (-O3) with LTO
Eval.menu.opt.o3lto.build.flags.optimize=-O3 -flto
Eval.menu.opt.ogstd=Debug (-g)
Eval.menu.opt.ogstd.build.flags.optimize=-g -Og

STM32MP1.menu.opt.osstd=Smallest (-Os default)
STM32MP1.menu.opt.oslto=Smallest (-Os) with LTO
STM32MP1.menu.opt.oslto.build.flags.optimize=-Os -flto
STM32MP1.menu.opt.o1std=Fast (-O1)
STM32MP1.menu.opt.o1std.build.flags.optimize=-O1
STM32MP1.menu.opt.o1lto=Fast (-O1) with LTO
STM32MP1.menu.opt.o1lto.build.flags.optimize=-O1 -flto
STM32MP1.menu.opt.o2std=Faster (-O2)
STM32MP1.menu.opt.o2std.build.flags.optimize=-O2
STM32MP1.menu.opt.o2lto=Faster (-O2) with LTO
STM32MP1.menu.opt.o2lto.build.flags.optimize=-O2 -flto
STM32MP1.menu.opt.o3std=Fastest (-O3)
STM32MP1.menu.opt.o3std.build.flags.optimize=-O3
STM32MP1.menu.opt.o3lto=Fastest (-O3) with LTO
STM32MP1.menu.opt.o3lto.build.flags.optimize=-O3 -flto
STM32MP1.menu.opt.ogstd=Debug (-g)
STM32MP1.menu.opt.ogstd.build.flags.optimize=-g -Og

GenF0.menu.opt.osstd=Smallest (-Os default)
GenF0.menu.opt.oslto=Smallest (-Os) with LTO
GenF0.menu.opt.oslto.build.flags.optimize=-Os -flto
GenF0.menu.opt.o1std=Fast (-O1)
GenF0.menu.opt.o1std.build.flags.optimize=-O1
GenF0.menu.opt.o1lto=Fast (-O1) with LTO
GenF0.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenF0.menu.opt.o2std=Faster (-O2)
GenF0.menu.opt.o2std.build.flags.optimize=-O2
GenF0.menu.opt.o2lto=Faster (-O2) with LTO
GenF0.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenF0.menu.opt.o3std=Fastest (-O3)
GenF0.menu.opt.o3std.build.flags.optimize=-O3
GenF0.menu.opt.o3lto=Fastest (-O3) with LTO
GenF0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenF0.menu.opt.ogstd=Debug (-g)
GenF0.menu.opt.ogstd.build.flags.optimize=-g -Og

GenF1.menu.opt.osstd=Smallest (-Os default)
GenF1.menu.opt.oslto=Smallest (-Os) with LTO
GenF1.menu.opt.oslto.build.flags.optimize=-Os -flto
GenF1.menu.opt.o1std=Fast (-O1)
GenF1.menu.opt.o1std.build.flags.optimize=-O1
GenF1.menu.opt.o1lto=Fast (-O1) with LTO
GenF1.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenF1.menu.opt.o2std=Faster (-O2)
GenF1.menu.opt.o2std.build.flags.optimize=-O2
GenF1.menu.opt.o2lto=Faster (-O2) with LTO
GenF1.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenF1.menu.opt.o3std=Fastest (-O3)
GenF1.menu.opt.o3std.build.flags.optimize=-O3
GenF1.menu.opt.o3lto=Fastest (-O3) with LTO
GenF1.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenF1.menu.opt.ogstd=Debug (-g)
GenF1.menu.opt.ogstd.build.flags.optimize=-g -Og

GenF2.menu.opt.osstd=Smallest (-Os default)
GenF2.menu.opt.oslto=Smallest (-Os) with LTO
GenF2.menu.opt.oslto.build.flags.optimize=-Os -flto
GenF2.menu.opt.o1std=Fast (-O1)
GenF2.menu.opt.o1std.build.flags.optimize=-O1
GenF2.menu.opt.o1lto=Fast (-O1) with LTO
GenF2.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenF2.menu.opt.o2std=Faster (-O2)
GenF2.menu.opt.o2std.build.flags.optimize=-O2
GenF2.menu.opt.o2lto=Faster (-O2) with LTO
GenF2.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenF2.menu.opt.o3std=Fastest (-O3)
GenF2.menu.opt.o3std.build.flags.optimize=-O3
GenF2.menu.opt.o3lto=Fastest (-O3) with LTO
GenF2.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenF2.menu.opt.ogstd=Debug (-g)
GenF2.menu.opt.ogstd.build.flags.optimize=-g -Og

GenF3.menu.opt.osstd=Smallest (-Os default)
GenF3.menu.opt.osstd.build.flags.optimize=-Os
GenF3.menu.opt.oslto=Smallest (-Os) with LTO
GenF3.menu.opt.oslto.build.flags.optimize=-Os -flto
GenF3.menu.opt.o1std=Fast (-O1)
GenF3.menu.opt.o1std.build.flags.optimize=-O1
GenF3.menu.opt.o1lto=Fast (-O1) with LTO
GenF3.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenF3.menu.opt.o2std=Faster (-O2)
GenF3.menu.opt.o2std.build.flags.optimize=-O2
GenF3.menu.opt.o2lto=Faster (-O2) with LTO
GenF3.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenF3.menu.opt.o3std=Fastest (-O3)
GenF3.menu.opt.o3std.build.flags.optimize=-O3
GenF3.menu.opt.o3lto=Fastest (-O3) with LTO
GenF3.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenF3.menu.opt.ogstd=Debug (-g)
GenF3.menu.opt.ogstd.build.flags.optimize=-g -Og

GenF4.menu.opt.osstd=Smallest (-Os default)
GenF4.menu.opt.osstd.build.flags.optimize=-Os
GenF4.menu.opt.oslto=Smallest (-Os) with LTO
GenF4.menu.opt.oslto.build.flags.optimize=-Os -flto
GenF4.menu.opt.o1std=Fast (-O1)
GenF4.menu.opt.o1std.build.flags.optimize=-O1
GenF4.menu.opt.o1lto=Fast (-O1) with LTO
GenF4.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenF4.menu.opt.o2std=Faster (-O2)
GenF4.menu.opt.o2std.build.flags.optimize=-O2
GenF4.menu.opt.o2lto=Faster (-O2) with LTO
GenF4.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenF4.menu.opt.o3std=Fastest (-O3)
GenF4.menu.opt.o3std.build.flags.optimize=-O3
GenF4.menu.opt.o3lto=Fastest (-O3) with LTO
GenF4.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenF4.menu.opt.ogstd=Debug (-g)
GenF4.menu.opt.ogstd.build.flags.optimize=-g -Og

GenF7.menu.opt.osstd=Smallest (-Os default)
GenF7.menu.opt.osstd.build.flags.optimize=-Os
GenF7.menu.opt.oslto=Smallest (-Os) with LTO
GenF7.menu.opt.oslto.build.flags.optimize=-Os -flto
GenF7.menu.opt.o1std=Fast (-O1)
GenF7.menu.opt.o1std.build.flags.optimize=-O1
GenF7.menu.opt.o1lto=Fast (-O1) with LTO
GenF7.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenF7.menu.opt.o2std=Faster (-O2)
GenF7.menu.opt.o2std.build.flags.optimize=-O2
GenF7.menu.opt.o2lto=Faster (-O2) with LTO
GenF7.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenF7.menu.opt.o3std=Fastest (-O3)
GenF7.menu.opt.o3std.build.flags.optimize=-O3
GenF7.menu.opt.o3lto=Fastest (-O3) with LTO
GenF7.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenF7.menu.opt.ogstd=Debug (-g)
GenF7.menu.opt.ogstd.build.flags.optimize=-g -Og

GenG0.menu.opt.osstd=Smallest (-Os default)
GenG0.menu.opt.oslto=Smallest (-Os) with LTO
GenG0.menu.opt.oslto.build.flags.optimize=-Os -flto
GenG0.menu.opt.o1std=Fast (-O1)
GenG0.menu.opt.o1std.build.flags.optimize=-O1
GenG0.menu.opt.o1lto=Fast (-O1) with LTO
GenG0.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenG0.menu.opt.o2std=Faster (-O2)
GenG0.menu.opt.o2std.build.flags.optimize=-O2
GenG0.menu.opt.o2lto=Faster (-O2) with LTO
GenG0.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenG0.menu.opt.o3std=Fastest (-O3)
GenG0.menu.opt.o3std.build.flags.optimize=-O3
GenG0.menu.opt.o3lto=Fastest (-O3) with LTO
GenG0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenG0.menu.opt.ogstd=Debug (-g)
GenG0.menu.opt.ogstd.build.flags.optimize=-g -Og

GenG4.menu.opt.osstd=Smallest (-Os default)
GenG4.menu.opt.osstd.build.flags.optimize=-Os
GenG4.menu.opt.oslto=Smallest (-Os) with LTO
GenG4.menu.opt.oslto.build.flags.optimize=-Os -flto
GenG4.menu.opt.o1std=Fast (-O1)
GenG4.menu.opt.o1std.build.flags.optimize=-O1
GenG4.menu.opt.o1lto=Fast (-O1) with LTO
GenG4.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenG4.menu.opt.o2std=Faster (-O2)
GenG4.menu.opt.o2std.build.flags.optimize=-O2
GenG4.menu.opt.o2lto=Faster (-O2) with LTO
GenG4.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenG4.menu.opt.o3std=Fastest (-O3)
GenG4.menu.opt.o3std.build.flags.optimize=-O3
GenG4.menu.opt.o3lto=Fastest (-O3) with LTO
GenG4.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenG4.menu.opt.ogstd=Debug (-g)
GenG4.menu.opt.ogstd.build.flags.optimize=-g -Og

GenH7.menu.opt.osstd=Smallest (-Os default)
GenH7.menu.opt.oslto=Smallest (-Os) with LTO
GenH7.menu.opt.oslto.build.flags.optimize=-Os -flto
GenH7.menu.opt.o1std=Fast (-O1)
GenH7.menu.opt.o1std.build.flags.optimize=-O1
GenH7.menu.opt.o1lto=Fast (-O1) with LTO
GenH7.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenH7.menu.opt.o2std=Faster (-O2)
GenH7.menu.opt.o2std.build.flags.optimize=-O2
GenH7.menu.opt.o2lto=Faster (-O2) with LTO
GenH7.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenH7.menu.opt.o3std=Fastest (-O3)
GenH7.menu.opt.o3std.build.flags.optimize=-O3
GenH7.menu.opt.o3lto=Fastest (-O3) with LTO
GenH7.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenH7.menu.opt.ogstd=Debug (-g)
GenH7.menu.opt.ogstd.build.flags.optimize=-g -Og

GenL0.menu.opt.osstd=Smallest (-Os default)
GenL0.menu.opt.oslto=Smallest (-Os) with LTO
GenL0.menu.opt.oslto.build.flags.optimize=-Os -flto
GenL0.menu.opt.o1std=Fast (-O1)
GenL0.menu.opt.o1std.build.flags.optimize=-O1
GenL0.menu.opt.o1lto=Fast (-O1) with LTO
GenL0.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenL0.menu.opt.o2std=Faster (-O2)
GenL0.menu.opt.o2std.build.flags.optimize=-O2
GenL0.menu.opt.o2lto=Faster (-O2) with LTO
GenL0.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenL0.menu.opt.o3std=Fastest (-O3)
GenL0.menu.opt.o3std.build.flags.optimize=-O3
GenL0.menu.opt.o3lto=Fastest (-O3) with LTO
GenL0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenL0.menu.opt.ogstd=Debug (-g)
GenL0.menu.opt.ogstd.build.flags.optimize=-g -Og

GenL1.menu.opt.osstd=Smallest (-Os default)
GenL1.menu.opt.osstd.build.flags.optimize=-Os
GenL1.menu.opt.oslto=Smallest (-Os) with LTO
GenL1.menu.opt.oslto.build.flags.optimize=-Os -flto
GenL1.menu.opt.o1std=Fast (-O1)
GenL1.menu.opt.o1std.build.flags.optimize=-O1
GenL1.menu.opt.o1lto=Fast (-O1) with LTO
GenL1.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenL1.menu.opt.o2std=Faster (-O2)
GenL1.menu.opt.o2std.build.flags.optimize=-O2
GenL1.menu.opt.o2lto=Faster (-O2) with LTO
GenL1.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenL1.menu.opt.o3std=Fastest (-O3)
GenL1.menu.opt.o3std.build.flags.optimize=-O3
GenL1.menu.opt.o3lto=Fastest (-O3) with LTO
GenL1.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenL1.menu.opt.ogstd=Debug (-g)
GenL1.menu.opt.ogstd.build.flags.optimize=-g -Og

GenL4.menu.opt.osstd=Smallest (-Os default)
GenL4.menu.opt.osstd.build.flags.optimize=-Os
GenL4.menu.opt.oslto=Smallest (-Os) with LTO
GenL4.menu.opt.oslto.build.flags.optimize=-Os -flto
GenL4.menu.opt.o1std=Fast (-O1)
GenL4.menu.opt.o1std.build.flags.optimize=-O1
GenL4.menu.opt.o1lto=Fast (-O1) with LTO
GenL4.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenL4.menu.opt.o2std=Faster (-O2)
GenL4.menu.opt.o2std.build.flags.optimize=-O2
GenL4.menu.opt.o2lto=Faster (-O2) with LTO
GenL4.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenL4.menu.opt.o3std=Fastest (-O3)
GenL4.menu.opt.o3std.build.flags.optimize=-O3
GenL4.menu.opt.o3lto=Fastest (-O3) with LTO
GenL4.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenL4.menu.opt.ogstd=Debug (-g)
GenL4.menu.opt.ogstd.build.flags.optimize=-g -Og

GenL5.menu.opt.osstd=Smallest (-Os default)
GenL5.menu.opt.osstd.build.flags.optimize=-Os
GenL5.menu.opt.oslto=Smallest (-Os) with LTO
GenL5.menu.opt.oslto.build.flags.optimize=-Os -flto
GenL5.menu.opt.o1std=Fast (-O1)
GenL5.menu.opt.o1std.build.flags.optimize=-O1
GenL5.menu.opt.o1lto=Fast (-O1) with LTO
GenL5.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenL5.menu.opt.o2std=Faster (-O2)
GenL5.menu.opt.o2std.build.flags.optimize=-O2
GenL5.menu.opt.o2lto=Faster (-O2) with LTO
GenL5.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenL5.menu.opt.o3std=Fastest (-O3)
GenL5.menu.opt.o3std.build.flags.optimize=-O3
GenL5.menu.opt.o3lto=Fastest (-O3) with LTO
GenL5.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenL5.menu.opt.ogstd=Debug (-g)
GenL5.menu.opt.ogstd.build.flags.optimize=-g -Og

GenWB.menu.opt.osstd=Smallest (-Os default)
GenWB.menu.opt.osstd.build.flags.optimize=-Os
GenWB.menu.opt.oslto=Smallest (-Os) with LTO
GenWB.menu.opt.oslto.build.flags.optimize=-Os -flto
GenWB.menu.opt.o1std=Fast (-O1)
GenWB.menu.opt.o1std.build.flags.optimize=-O1
GenWB.menu.opt.o1lto=Fast (-O1) with LTO
GenWB.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenWB.menu.opt.o2std=Faster (-O2)
GenWB.menu.opt.o2std.build.flags.optimize=-O2
GenWB.menu.opt.o2lto=Faster (-O2) with LTO
GenWB.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenWB.menu.opt.o3std=Fastest (-O3)
GenWB.menu.opt.o3std.build.flags.optimize=-O3
GenWB.menu.opt.o3lto=Fastest (-O3) with LTO
GenWB.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenWB.menu.opt.ogstd=Debug (-g)
GenWB.menu.opt.ogstd.build.flags.optimize=-g -Og

ESC_board.menu.opt.osstd=Smallest (-Os default)
ESC_board.menu.opt.oslto=Smallest (-Os) with LTO
ESC_board.menu.opt.oslto.build.flags.optimize=-Os -flto
ESC_board.menu.opt.o1std=Fast (-O1)
ESC_board.menu.opt.o1std.build.flags.optimize=-O1
ESC_board.menu.opt.o1lto=Fast (-O1) with LTO
ESC_board.menu.opt.o1lto.build.flags.optimize=-O1 -flto
ESC_board.menu.opt.o2std=Faster (-O2)
ESC_board.menu.opt.o2std.build.flags.optimize=-O2
ESC_board.menu.opt.o2lto=Faster (-O2) with LTO
ESC_board.menu.opt.o2lto.build.flags.optimize=-O2 -flto
ESC_board.menu.opt.o3std=Fastest (-O3)
ESC_board.menu.opt.o3std.build.flags.optimize=-O3
ESC_board.menu.opt.o3lto=Fastest (-O3) with LTO
ESC_board.menu.opt.o3lto.build.flags.optimize=-O3 -flto
ESC_board.menu.opt.ogstd=Debug (-g)
ESC_board.menu.opt.ogstd.build.flags.optimize=-g -Og

LoRa.menu.opt.osstd=Smallest (-Os default)
LoRa.menu.opt.oslto=Smallest (-Os) with LTO
LoRa.menu.opt.oslto.build.flags.optimize=-Os -flto
LoRa.menu.opt.o1std=Fast (-O1)
LoRa.menu.opt.o1std.build.flags.optimize=-O1
LoRa.menu.opt.o1lto=Fast (-O1) with LTO
LoRa.menu.opt.o1lto.build.flags.optimize=-O1 -flto
LoRa.menu.opt.o2std=Faster (-O2)
LoRa.menu.opt.o2std.build.flags.optimize=-O2
LoRa.menu.opt.o2lto=Faster (-O2) with LTO
LoRa.menu.opt.o2lto.build.flags.optimize=-O2 -flto
LoRa.menu.opt.o3std=Fastest (-O3)
LoRa.menu.opt.o3std.build.flags.optimize=-O3
LoRa.menu.opt.o3lto=Fastest (-O3) with LTO
LoRa.menu.opt.o3lto.build.flags.optimize=-O3 -flto
LoRa.menu.opt.ogstd=Debug (-g)
LoRa.menu.opt.ogstd.build.flags.optimize=-g -Og

3dprinter.menu.opt.osstd=Smallest (-Os default)
3dprinter.menu.opt.oslto=Smallest (-Os) with LTO
3dprinter.menu.opt.oslto.build.flags.optimize=-Os -flto
3dprinter.menu.opt.o1std=Fast (-O1)
3dprinter.menu.opt.o1std.build.flags.optimize=-O1
3dprinter.menu.opt.o1lto=Fast (-O1) with LTO
3dprinter.menu.opt.o1lto.build.flags.optimize=-O1 -flto
3dprinter.menu.opt.o2std=Faster (-O2)
3dprinter.menu.opt.o2std.build.flags.optimize=-O2
3dprinter.menu.opt.o2lto=Faster (-O2) with LTO
3dprinter.menu.opt.o2lto.build.flags.optimize=-O2 -flto
3dprinter.menu.opt.o3std=Fastest (-O3)
3dprinter.menu.opt.o3std.build.flags.optimize=-O3
3dprinter.menu.opt.o3lto=Fastest (-O3) with LTO
3dprinter.menu.opt.o3lto.build.flags.optimize=-O3 -flto
3dprinter.menu.opt.ogstd=Debug (-g)
3dprinter.menu.opt.ogstd.build.flags.optimize=-g -Og

GenFlight.menu.opt.osstd=Smallest (-Os default)
GenFlight.menu.opt.oslto=Smallest (-Os) with LTO
GenFlight.menu.opt.oslto.build.flags.optimize=-Os -flto
GenFlight.menu.opt.o1std=Fast (-O1)
GenFlight.menu.opt.o1std.build.flags.optimize=-O1
GenFlight.menu.opt.o1lto=Fast (-O1) with LTO
GenFlight.menu.opt.o1lto.build.flags.optimize=-O1 -flto
GenFlight.menu.opt.o2std=Faster (-O2)
GenFlight.menu.opt.o2std.build.flags.optimize=-O2
GenFlight.menu.opt.o2lto=Faster (-O2) with LTO
GenFlight.menu.opt.o2lto.build.flags.optimize=-O2 -flto
GenFlight.menu.opt.o3std=Fastest (-O3)
GenFlight.menu.opt.o3std.build.flags.optimize=-O3
GenFlight.menu.opt.o3lto=Fastest (-O3) with LTO
GenFlight.menu.opt.o3lto.build.flags.optimize=-O3 -flto
GenFlight.menu.opt.ogstd=Debug (-g)
GenFlight.menu.opt.ogstd.build.flags.optimize=-g -Og

Garatronic.menu.opt.osstd=Smallest (-Os default)
Garatronic.menu.opt.oslto=Smallest (-Os) with LTO
Garatronic.menu.opt.oslto.build.flags.optimize=-Os -flto
Garatronic.menu.opt.o1std=Fast (-O1)
Garatronic.menu.opt.o1std.build.flags.optimize=-O1
Garatronic.menu.opt.o1lto=Fast (-O1) with LTO
Garatronic.menu.opt.o1lto.build.flags.optimize=-O1 -flto
Garatronic.menu.opt.o2std=Faster (-O2)
Garatronic.menu.opt.o2std.build.flags.optimize=-O2
Garatronic.menu.opt.o2lto=Faster (-O2) with LTO
Garatronic.menu.opt.o2lto.build.flags.optimize=-O2 -flto
Garatronic.menu.opt.o3std=Fastest (-O3)
Garatronic.menu.opt.o3std.build.flags.optimize=-O3
Garatronic.menu.opt.o3lto=Fastest (-O3) with LTO
Garatronic.menu.opt.o3lto.build.flags.optimize=-O3 -flto
Garatronic.menu.opt.ogstd=Debug (-g)
Garatronic.menu.opt.ogstd.build.flags.optimize=-g -Og

Midatronics.menu.opt.osstd=Smallest (-Os default)
Midatronics.menu.opt.oslto=Smallest (-Os) with LTO
Midatronics.menu.opt.oslto.build.flags.optimize=-Os -flto
Midatronics.menu.opt.o1std=Fast (-O1)
Midatronics.menu.opt.o1std.build.flags.optimize=-O1
Midatronics.menu.opt.o1lto=Fast (-O1) with LTO
Midatronics.menu.opt.o1lto.build.flags.optimize=-O1 -flto
Midatronics.menu.opt.o2std=Faster (-O2)
Midatronics.menu.opt.o2std.build.flags.optimize=-O2
Midatronics.menu.opt.o2lto=Faster (-O2) with LTO
Midatronics.menu.opt.o2lto.build.flags.optimize=-O2 -flto
Midatronics.menu.opt.o3std=Fastest (-O3)
Midatronics.menu.opt.o3std.build.flags.optimize=-O3
Midatronics.menu.opt.o3lto=Fastest (-O3) with LTO
Midatronics.menu.opt.o3lto.build.flags.optimize=-O3 -flto
Midatronics.menu.opt.ogstd=Debug (-g)
Midatronics.menu.opt.ogstd.build.flags.optimize=-g -Og

# C Runtime Library
Nucleo_144.menu.rtlib.nano=Newlib Nano (default)
Nucleo_144.menu.rtlib.nanofp=Newlib Nano + Float Printf
Nucleo_144.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
Nucleo_144.menu.rtlib.nanofs=Newlib Nano + Float Scanf
Nucleo_144.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
Nucleo_144.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
Nucleo_144.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
Nucleo_144.menu.rtlib.full=Newlib Standard
Nucleo_144.menu.rtlib.full.build.flags.ldspecs=

Nucleo_64.menu.rtlib.nano=Newlib Nano (default)
Nucleo_64.menu.rtlib.nanofp=Newlib Nano + Float Printf
Nucleo_64.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
Nucleo_64.menu.rtlib.nanofs=Newlib Nano + Float Scanf
Nucleo_64.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
Nucleo_64.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
Nucleo_64.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
Nucleo_64.menu.rtlib.full=Newlib Standard
Nucleo_64.menu.rtlib.full.build.flags.ldspecs=

Nucleo_32.menu.rtlib.nano=Newlib Nano (default)
Nucleo_32.menu.rtlib.nanofp=Newlib Nano + Float Printf
Nucleo_32.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
Nucleo_32.menu.rtlib.nanofs=Newlib Nano + Float Scanf
Nucleo_32.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
Nucleo_32.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
Nucleo_32.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
Nucleo_32.menu.rtlib.full=Newlib Standard
Nucleo_32.menu.rtlib.full.build.flags.ldspecs=

Disco.menu.rtlib.nano=Newlib Nano (default)
Disco.menu.rtlib.nanofp=Newlib Nano + Float Printf
Disco.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
Disco.menu.rtlib.nanofs=Newlib Nano + Float Scanf
Disco.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
Disco.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
Disco.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
Disco.menu.rtlib.full=Newlib Standard
Disco.menu.rtlib.full.build.flags.ldspecs=

Eval.menu.rtlib.nano=Newlib Nano (default)
Eval.menu.rtlib.nanofp=Newlib Nano + Float Printf
Eval.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
Eval.menu.rtlib.nanofs=Newlib Nano + Float Scanf
Eval.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
Eval.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
Eval.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
Eval.menu.rtlib.full=Newlib Standard
Eval.menu.rtlib.full.build.flags.ldspecs=

STM32MP1.menu.rtlib.nano=Newlib Nano (default)
STM32MP1.menu.rtlib.nanofp=Newlib Nano + Float Printf
STM32MP1.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
STM32MP1.menu.rtlib.nanofs=Newlib Nano + Float Scanf
STM32MP1.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
STM32MP1.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
STM32MP1.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
STM32MP1.menu.rtlib.full=Newlib Standard
STM32MP1.menu.rtlib.full.build.flags.ldspecs=

GenF0.menu.rtlib.nano=Newlib Nano (default)
GenF0.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenF0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenF0.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenF0.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenF0.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenF0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenF0.menu.rtlib.full=Newlib Standard
GenF0.menu.rtlib.full.build.flags.ldspecs=

GenF1.menu.rtlib.nano=Newlib Nano (default)
GenF1.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenF1.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenF1.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenF1.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenF1.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenF1.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenF1.menu.rtlib.full=Newlib Standard
GenF1.menu.rtlib.full.build.flags.ldspecs=

GenF2.menu.rtlib.nano=Newlib Nano (default)
GenF2.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenF2.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenF2.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenF2.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenF2.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenF2.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenF2.menu.rtlib.full=Newlib Standard
GenF2.menu.rtlib.full.build.flags.ldspecs=

GenF3.menu.rtlib.nano=Newlib Nano (default)
GenF3.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenF3.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenF3.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenF3.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenF3.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenF3.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenF3.menu.rtlib.full=Newlib Standard
GenF3.menu.rtlib.full.build.flags.ldspecs=

GenF4.menu.rtlib.nano=Newlib Nano (default)
GenF4.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenF4.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenF4.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenF4.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenF4.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenF4.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenF4.menu.rtlib.full=Newlib Standard
GenF4.menu.rtlib.full.build.flags.ldspecs=

GenF7.menu.rtlib.nano=Newlib Nano (default)
GenF7.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenF7.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenF7.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenF7.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenF7.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenF7.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenF7.menu.rtlib.full=Newlib Standard
GenF7.menu.rtlib.full.build.flags.ldspecs=

GenG0.menu.rtlib.nano=Newlib Nano (default)
GenG0.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenG0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenG0.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenG0.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenG0.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenG0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenG0.menu.rtlib.full=Newlib Standard
GenG0.menu.rtlib.full.build.flags.ldspecs=

GenG4.menu.rtlib.nano=Newlib Nano (default)
GenG4.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenG4.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenG4.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenG4.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenG4.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenG4.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenG4.menu.rtlib.full=Newlib Standard
GenG4.menu.rtlib.full.build.flags.ldspecs=

GenH7.menu.rtlib.nano=Newlib Nano (default)
GenH7.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenH7.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenH7.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenH7.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenH7.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenH7.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenH7.menu.rtlib.full=Newlib Standard
GenH7.menu.rtlib.full.build.flags.ldspecs=

GenL0.menu.rtlib.nano=Newlib Nano (default)
GenL0.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenL0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenL0.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenL0.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenL0.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenL0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenL0.menu.rtlib.full=Newlib Standard
GenL0.menu.rtlib.full.build.flags.ldspecs=

GenL1.menu.rtlib.nano=Newlib Nano (default)
GenL1.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenL1.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenL1.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenL1.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenL1.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenL1.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenL1.menu.rtlib.full=Newlib Standard
GenL1.menu.rtlib.full.build.flags.ldspecs=

GenL4.menu.rtlib.nano=Newlib Nano (default)
GenL4.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenL4.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenL4.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenL4.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenL4.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenL4.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenL4.menu.rtlib.full=Newlib Standard
GenL4.menu.rtlib.full.build.flags.ldspecs=

GenL5.menu.rtlib.nano=Newlib Nano (default)
GenL5.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenL5.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenL5.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenL5.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenL5.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenL5.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenL5.menu.rtlib.full=Newlib Standard
GenL5.menu.rtlib.full.build.flags.ldspecs=

GenWB.menu.rtlib.nano=Newlib Nano (default)
GenWB.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenWB.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenWB.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenWB.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenWB.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenWB.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenWB.menu.rtlib.full=Newlib Standard
GenWB.menu.rtlib.full.build.flags.ldspecs=

ESC_board.menu.rtlib.nano=Newlib Nano (default)
ESC_board.menu.rtlib.nanofp=Newlib Nano + Float Printf
ESC_board.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
ESC_board.menu.rtlib.nanofs=Newlib Nano + Float Scanf
ESC_board.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
ESC_board.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
ESC_board.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
ESC_board.menu.rtlib.full=Newlib Standard
ESC_board.menu.rtlib.full.build.flags.ldspecs=

LoRa.menu.rtlib.nano=Newlib Nano (default)
LoRa.menu.rtlib.nanofp=Newlib Nano + Float Printf
LoRa.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
LoRa.menu.rtlib.nanofs=Newlib Nano + Float Scanf
LoRa.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
LoRa.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
LoRa.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
LoRa.menu.rtlib.full=Newlib Standard
LoRa.menu.rtlib.full.build.flags.ldspecs=

3dprinter.menu.rtlib.nano=Newlib Nano (default)
3dprinter.menu.rtlib.nanofp=Newlib Nano + Float Printf
3dprinter.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
3dprinter.menu.rtlib.nanofs=Newlib Nano + Float Scanf
3dprinter.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
3dprinter.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
3dprinter.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
3dprinter.menu.rtlib.full=Newlib Standard
3dprinter.menu.rtlib.full.build.flags.ldspecs=

GenFlight.menu.rtlib.nano=Newlib Nano (default)
GenFlight.menu.rtlib.nanofp=Newlib Nano + Float Printf
GenFlight.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
GenFlight.menu.rtlib.nanofs=Newlib Nano + Float Scanf
GenFlight.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
GenFlight.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
GenFlight.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
GenFlight.menu.rtlib.full=Newlib Standard
GenFlight.menu.rtlib.full.build.flags.ldspecs=

Garatronic.menu.rtlib.nano=Newlib Nano (default)
Garatronic.menu.rtlib.nanofp=Newlib Nano + Float Printf
Garatronic.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
Garatronic.menu.rtlib.nanofs=Newlib Nano + Float Scanf
Garatronic.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
Garatronic.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
Garatronic.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
Garatronic.menu.rtlib.full=Newlib Standard
Garatronic.menu.rtlib.full.build.flags.ldspecs=

Midatronics.menu.rtlib.nano=Newlib Nano (default)
Midatronics.menu.rtlib.nanofp=Newlib Nano + Float Printf
Midatronics.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
Midatronics.menu.rtlib.nanofs=Newlib Nano + Float Scanf
Midatronics.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
Midatronics.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
Midatronics.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
Midatronics.menu.rtlib.full=Newlib Standard
Midatronics.menu.rtlib.full.build.flags.ldspecs=
