diff --git a/src/main/target/BLUEBERRYF405/CMakeLists.txt b/src/main/target/BLUEBERRYF405/CMakeLists.txt
new file mode 100644
index 0000000000..5cc3145549
--- /dev/null
+++ b/src/main/target/BLUEBERRYF405/CMakeLists.txt
@@ -0,0 +1,2 @@
+target_stm32f405xg(BLUEBERRYF405_SDCARD)
+target_stm32f405xg(BLUEBERRYF405_FLASH)
diff --git a/src/main/target/BLUEBERRYF405/config.c b/src/main/target/BLUEBERRYF405/config.c
new file mode 100644
index 0000000000..f149b4b8ec
--- /dev/null
+++ b/src/main/target/BLUEBERRYF405/config.c
@@ -0,0 +1,29 @@
+/*
+ * This file is part of INAV.
+ *
+ * INAV is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * INAV is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with INAV. If not, see .
+ */
+
+#include
+#include "platform.h"
+#include "fc/fc_msp_box.h"
+#include "fc/config.h"
+#include "io/piniobox.h"
+
+void targetConfiguration(void)
+{
+ pinioBoxConfigMutable()->permanentId[0] = BOX_PERMANENT_ID_USER1;
+ pinioBoxConfigMutable()->permanentId[1] = BOX_PERMANENT_ID_USER2;
+ beeperConfigMutable()->pwmMode = true;
+}
diff --git a/src/main/target/BLUEBERRYF405/target.c b/src/main/target/BLUEBERRYF405/target.c
new file mode 100644
index 0000000000..2240915365
--- /dev/null
+++ b/src/main/target/BLUEBERRYF405/target.c
@@ -0,0 +1,49 @@
+/*
+ * This file is part of INAV.
+ *
+ * INAV is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * INAV is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with INAV. If not, see .
+ */
+
+#include
+#include
+#include "drivers/bus.h"
+#include "drivers/io.h"
+#include "drivers/pwm_mapping.h"
+#include "drivers/timer.h"
+#include "drivers/sensor.h"
+#include "drivers/timer_def_stm32f4xx.h"
+
+timerHardware_t timerHardware[] = {
+ DEF_TIM(TIM8, CH4, PC9, TIM_USE_OUTPUT_AUTO, 0, 0), // S1 D(2,7,7) UP217
+ DEF_TIM(TIM8, CH3, PC8, TIM_USE_OUTPUT_AUTO, 0, 0), // S2 D(2,2,0) UP217
+ DEF_TIM(TIM1, CH3N, PB15, TIM_USE_OUTPUT_AUTO, 0, 0), // S3 D(2,6,0) UP256
+ DEF_TIM(TIM1, CH1, PA8, TIM_USE_OUTPUT_AUTO, 0, 1), // S4 D(2,1,6) UP256
+
+ DEF_TIM(TIM2, CH4, PB11, TIM_USE_OUTPUT_AUTO, 0, 0), // S5 D(1,7,3) UP173
+ DEF_TIM(TIM2, CH3, PB10, TIM_USE_OUTPUT_AUTO, 0, 0), // S6 D(1,1,3) UP173
+ DEF_TIM(TIM2, CH2, PB3, TIM_USE_OUTPUT_AUTO, 0, 0), // S7 D(1,6,3) UP173
+ DEF_TIM(TIM2, CH1, PA15, TIM_USE_OUTPUT_AUTO, 0, 0), // S8 D(1,5,3) UP173
+
+ DEF_TIM(TIM12, CH1, PB14, TIM_USE_OUTPUT_AUTO, 0, 0), // S9 DMA NONE
+ DEF_TIM(TIM13, CH1, PA6, TIM_USE_OUTPUT_AUTO, 0, 0), // S10 DMA NONE
+ DEF_TIM(TIM4, CH1, PB6, TIM_USE_OUTPUT_AUTO, 0, 0), // S11 D(1,0,2)
+
+ DEF_TIM(TIM3, CH4, PB1, TIM_USE_LED, 0, 0), // 2812LED D(1,2,5)
+ DEF_TIM(TIM11, CH1, PB9, TIM_USE_BEEPER, 0, 0), // BEEPER PWM
+
+ // DEF_TIM(TIM9, CH2, PA3, TIM_USE_PPM, 0, 0), //RX2
+ DEF_TIM(TIM5, CH3, PA2, TIM_USE_ANY, 0, 0), //TX2 softserial1_Tx
+};
+
+const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]);
diff --git a/src/main/target/BLUEBERRYF405/target.h b/src/main/target/BLUEBERRYF405/target.h
new file mode 100644
index 0000000000..0dfffc66fc
--- /dev/null
+++ b/src/main/target/BLUEBERRYF405/target.h
@@ -0,0 +1,178 @@
+/*
+ * This file is part of INAV.
+ *
+ * INAV is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * INAV is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with INAV. If not, see .
+ */
+
+#pragma once
+#define USE_TARGET_CONFIG
+
+#if defined(BLUEBERRYF405_SDCARD)
+# define TARGET_BOARD_IDENTIFIER "BlueBerry"
+# define USBD_PRODUCT_STRING "BLUEBERRYF405_SDCARD"
+#else
+# define TARGET_BOARD_IDENTIFIER "BlueBerry"
+# define USBD_PRODUCT_STRING "BLUEBERRYF405_FLASH"
+#endif
+
+#define LED0 PA14 //Blue
+#define LED1 PA13 //Green
+
+#define BEEPER PB9
+#define BEEPER_INVERTED
+#define BEEPER_PWM_FREQUENCY 2500
+
+// *************** SPI1 IMU & OSD *******************
+#define USE_SPI
+#define USE_SPI_DEVICE_1
+
+#define SPI1_SCK_PIN PA5
+#define SPI1_MISO_PIN PB4
+#define SPI1_MOSI_PIN PA7
+
+#define USE_IMU_ICM42605
+#define IMU_ICM42605_ALIGN CW270_DEG_FLIP
+#define ICM42605_SPI_BUS BUS_SPI1
+#define ICM42605_CS_PIN PC14
+
+#define USE_IMU_BMI270
+#define IMU_BMI270_ALIGN CW270_DEG_FLIP
+#define BMI270_SPI_BUS BUS_SPI1
+#define BMI270_CS_PIN PC14
+
+
+
+#define USE_MAX7456
+#define MAX7456_SPI_BUS BUS_SPI1
+#define MAX7456_CS_PIN PB12
+
+// *************** SPI2 Flash/SD Card ****************
+#define USE_SPI_DEVICE_2
+#define SPI2_SCK_PIN PB13
+#define SPI2_MISO_PIN PC2
+#define SPI2_MOSI_PIN PC3
+
+#if defined(BLUEBERRYF405_SDCARD)
+# define USE_SDCARD
+# define USE_SDCARD_SPI
+# define SDCARD_SPI_BUS BUS_SPI2
+# define SDCARD_CS_PIN PC1
+# define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT
+#else
+# define USE_FLASHFS
+# define USE_FLASH_M25P16
+# define M25P16_SPI_BUS BUS_SPI2
+# define M25P16_CS_PIN PC13
+# define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT
+#endif
+
+// *************** I2C /Baro/Mag *********************
+#define USE_I2C
+#define USE_I2C_DEVICE_1
+#define I2C1_SCL PB8
+#define I2C1_SDA PB7
+
+#define USE_BARO
+#define BARO_I2C_BUS BUS_I2C1
+#define USE_BARO_BMP280
+#define USE_BARO_MS5611
+#define USE_BARO_DPS310
+#define USE_BARO_SPL06
+
+#define USE_MAG
+#define MAG_I2C_BUS BUS_I2C1
+#define USE_MAG_ALL
+
+#define USE_RANGEFINDER
+#define RANGEFINDER_I2C_BUS BUS_I2C1
+#define PITOT_I2C_BUS BUS_I2C1
+#define TEMPERATURE_I2C_BUS BUS_I2C1
+
+// *************** UART *****************************
+#define USE_VCP
+
+#define USE_UART1
+#define UART1_TX_PIN PA9
+#define UART1_RX_PIN PA10
+
+#define USE_UART2
+#define UART2_TX_PIN PA2
+#define UART2_RX_PIN PA3
+
+#define USE_UART3
+#define UART3_TX_PIN PC10
+#define UART3_RX_PIN PC11
+
+#define USE_UART4
+#define UART4_TX_PIN PA0
+#define UART4_RX_PIN PA1
+
+#define USE_UART5
+#define UART5_TX_PIN PC12
+#define UART5_RX_PIN PD2
+
+#define USE_UART6
+#define UART6_TX_PIN PC6
+#define UART6_RX_PIN PC7
+
+#define USE_SOFTSERIAL1
+#define SOFTSERIAL_1_TX_PIN PA2
+#define SOFTSERIAL_1_RX_PIN PA2
+
+#define SERIAL_PORT_COUNT 8
+
+#define DEFAULT_RX_TYPE RX_TYPE_SERIAL
+#define SERIALRX_PROVIDER SERIALRX_CRSF
+#define SERIALRX_UART SERIAL_PORT_USART2
+
+// *************** ADC ***************************
+#define USE_ADC
+#define ADC_INSTANCE ADC1
+#define ADC1_DMA_STREAM DMA2_Stream4
+#define ADC_CHANNEL_1_PIN PC4
+#define ADC_CHANNEL_2_PIN PC5
+#define ADC_CHANNEL_3_PIN PB0
+#define ADC_CHANNEL_4_PIN PC0
+#define VBAT_ADC_CHANNEL ADC_CHN_1
+#define CURRENT_METER_ADC_CHANNEL ADC_CHN_2
+#define RSSI_ADC_CHANNEL ADC_CHN_3
+#define AIRSPEED_ADC_CHANNEL ADC_CHN_4
+
+// *************** PINIO ***************************
+#define USE_PINIO
+#define USE_PINIOBOX
+#define PINIO1_PIN PA4
+#define PINIO2_PIN PB5
+
+// *************** LEDSTRIP ************************
+#define USE_LED_STRIP
+#define WS2811_PIN PB1
+
+// *************** others ************************
+#define DEFAULT_FEATURES (FEATURE_OSD | FEATURE_TELEMETRY | FEATURE_CURRENT_METER | FEATURE_VBAT | FEATURE_TX_PROF_SEL | FEATURE_BLACKBOX)
+#define VBAT_SCALE_DEFAULT 2100
+#define CURRENT_METER_SCALE 150
+
+#define TARGET_IO_PORTA 0xffff
+#define TARGET_IO_PORTB 0xffff
+#define TARGET_IO_PORTC 0xffff
+#define TARGET_IO_PORTD (BIT(2))
+
+#define MAX_PWM_OUTPUT_PORTS 11
+
+#define USE_SERIAL_4WAY_BLHELI_INTERFACE
+#define USE_DSHOT
+#define USE_DSHOT_DMAR
+#define USE_ESC_SENSOR
+
diff --git a/src/main/target/BLUEBERRYF435WING/CMakeLists.txt b/src/main/target/BLUEBERRYF435WING/CMakeLists.txt
new file mode 100644
index 0000000000..5c35cfbe0a
--- /dev/null
+++ b/src/main/target/BLUEBERRYF435WING/CMakeLists.txt
@@ -0,0 +1 @@
+target_at32f43x_xGT7(BLUEBERRYF435WING)
\ No newline at end of file
diff --git a/src/main/target/BLUEBERRYF435WING/target.c b/src/main/target/BLUEBERRYF435WING/target.c
new file mode 100644
index 0000000000..29258496fa
--- /dev/null
+++ b/src/main/target/BLUEBERRYF435WING/target.c
@@ -0,0 +1,56 @@
+/*
+* This file is part of Cleanflight.
+*
+* Cleanflight is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* Cleanflight is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with Cleanflight. If not, see .
+*/
+
+#include
+
+#include "platform.h"
+
+#include "drivers/bus.h"
+#include "drivers/io.h"
+#include "drivers/pwm_mapping.h"
+#include "drivers/timer.h"
+
+// timerHardware_t timerHardware[] = {
+
+// DEF_TIM(TMR1, CH1, PA8, TIM_USE_ANY |TIM_USE_LED, 0,6), // PWM1 - LED MCO1 DMA1 CH2
+
+// DEF_TIM(TMR4, CH1, PB6, TIM_USE_OUTPUT_AUTO, 0,0), // motor1 DMA2 CH7
+// DEF_TIM(TMR4, CH2, PB7, TIM_USE_OUTPUT_AUTO, 0,2), // motor2 DMA2 CH6
+// DEF_TIM(TMR2, CH4, PA3, TIM_USE_OUTPUT_AUTO, 0,1), // motor3 DMA2 CH5
+// DEF_TIM(TMR3, CH4, PB1, TIM_USE_OUTPUT_AUTO, 0,3), // motor4 DMA2 CH4
+
+// };
+
+// const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]);
+
+timerHardware_t timerHardware[] = {
+
+ DEF_TIM(TMR1, CH3, PA10, TIM_USE_OUTPUT_AUTO, 0,2), // motor1
+ DEF_TIM(TMR1, CH2, PA9, TIM_USE_OUTPUT_AUTO, 0,9), // motor2 -
+ DEF_TIM(TMR2, CH4, PA3, TIM_USE_OUTPUT_AUTO, 0,1), // PWM
+ DEF_TIM(TMR2, CH3, PA2, TIM_USE_OUTPUT_AUTO, 0,11), // PWM -
+ DEF_TIM(TMR3, CH4, PB1, TIM_USE_OUTPUT_AUTO, 0,3), // PWM
+ DEF_TIM(TMR3, CH3, PB0, TIM_USE_OUTPUT_AUTO, 0,8), // PWM -
+ DEF_TIM(TMR4, CH1, PB6, TIM_USE_OUTPUT_AUTO, 0,0), // PWM
+ DEF_TIM(TMR4, CH2, PB7, TIM_USE_OUTPUT_AUTO, 0,10), // PWM -
+
+ DEF_TIM(TMR1, CH1, PA8, TIM_USE_ANY |TIM_USE_LED, 0,7), // PWM1 - LED MCO1 DMA1 CH2
+
+};
+
+const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]);
+
diff --git a/src/main/target/BLUEBERRYF435WING/target.h b/src/main/target/BLUEBERRYF435WING/target.h
new file mode 100644
index 0000000000..0e6e0bb2e6
--- /dev/null
+++ b/src/main/target/BLUEBERRYF435WING/target.h
@@ -0,0 +1,195 @@
+/*
+ * This file is part of Cleanflight.
+ *
+ * Cleanflight is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Cleanflight is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Cleanflight. If not, see .
+ */
+
+#pragma once
+
+#define TARGET_BOARD_IDENTIFIER "BlueBerry"
+
+#define USBD_PRODUCT_STRING "BLUEBERRYF435WING"
+
+/**********swd debuger reserved *****************
+ *
+ * pa13 swdio
+ * pa14 swclk
+ * PA15 JTDI
+ * PB4 JREST
+ * pb3 swo /DTO
+
+ * other pin
+ *
+ * PB2 ->BOOT0 button
+ * PA8 MCO1
+ * PA11 OTG1 D+ DP
+ * PA10 OTG1 D- DN
+ * PH0 HEXT IN
+ * PH1 HEXT OUT
+ */
+
+#define LED0 PC13
+#define LED1 PC14
+#define LED0_INVERTED
+#define LED1_INVERTED
+
+#define BEEPER PC15
+#define BEEPER_INVERTED
+
+// *************** Gyro & ACC **********************
+#define USE_SPI
+#define USE_SPI_DEVICE_1
+
+#define SPI1_SCK_PIN PA5
+#define SPI1_MISO_PIN PA6
+#define SPI1_MOSI_PIN PA7
+#define SPI1_NSS_PIN PA4
+
+// MPU6500
+#define USE_IMU_MPU6500
+#define IMU_MPU6500_ALIGN CW0_DEG
+#define MPU6500_SPI_BUS BUS_SPI1
+#define MPU6500_CS_PIN SPI1_NSS_PIN
+
+// ICM42605/ICM42688P
+#define USE_IMU_ICM42605
+#define IMU_ICM42605_ALIGN CW0_DEG
+#define ICM42605_SPI_BUS BUS_SPI1
+#define ICM42605_CS_PIN SPI1_NSS_PIN
+
+// BMI270
+#define USE_IMU_BMI270
+#define IMU_BMI270_ALIGN CW0_DEG
+#define BMI270_SPI_BUS BUS_SPI1
+#define BMI270_CS_PIN SPI1_NSS_PIN
+
+// LSM6DXX
+#define USE_IMU_LSM6DXX
+#define IMU_LSM6DXX_ALIGN CW0_DEG
+#define LSM6DXX_CS_PIN SPI1_NSS_PIN
+#define LSM6DXX_SPI_BUS BUS_SPI1
+
+
+// *************** I2C/Baro/Mag/EXT*********************
+#define USE_I2C
+#define USE_I2C_DEVICE_2
+#define I2C2_SCL PH2 // SCL pad
+#define I2C2_SDA PH3 // SDA pad
+#define USE_I2C_PULLUP
+
+#define USE_BARO
+#define BARO_I2C_BUS BUS_I2C2
+#define USE_BARO_BMP280
+#define USE_BARO_DPS310
+
+#define USE_MAG
+#define MAG_I2C_BUS BUS_I2C2
+#define USE_MAG_ALL
+#define DEFAULT_I2C_BUS BUS_I2C2
+
+// temperature sensors
+//#define TEMPERATURE_I2C_BUS BUS_I2C1
+// air speed sensors
+//#define PITOT_I2C_BUS BUS_I2C1
+// ranger sensors
+//#define USE_RANGEFINDER
+//#define RANGEFINDER_I2C_BUS BUS_I2C1
+
+// *************** OSD *****************************
+#define USE_SPI_DEVICE_2
+#define SPI2_SCK_PIN PB13
+#define SPI2_MISO_PIN PB14
+#define SPI2_MOSI_PIN PB15
+#define SPI2_NSS_PIN PB12
+
+#define USE_MAX7456
+#define MAX7456_SPI_BUS BUS_SPI2
+#define MAX7456_CS_PIN SPI2_NSS_PIN
+
+
+// *************** SD/BLACKBOX **************************
+
+#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT
+#define USE_FLASHFS
+#define USE_FLASH_M25P16
+#define M25P16_SPI_BUS BUS_SPI2
+#define M25P16_CS_PIN PB5
+
+#define USE_FLASH_W25N01G
+#define W25N01G_SPI_BUS BUS_SPI2
+#define W25N01G_CS_PIN PB5
+
+// *************** UART *****************************
+#define USE_VCP
+//#define USB_DETECT_PIN PC14
+#define USE_USB_DETECT
+
+//#define USE_UART1
+//#define UART1_RX_PIN PA10
+//#define UART1_TX_PIN PA9
+
+//#define USE_UART2
+//#define UART2_RX_PIN PB0
+//#define UART2_TX_PIN PA2
+
+#define USE_UART3
+#define UART3_RX_PIN PB11
+#define UART3_TX_PIN PB10
+
+#define USE_UART5
+#define UART5_RX_PIN PB8
+#define UART5_TX_PIN PB9
+
+#define USE_UART7
+#define UART7_RX_PIN PB3
+#define UART7_TX_PIN PB4
+
+#define SERIAL_PORT_COUNT 4
+
+#define DEFAULT_RX_TYPE RX_TYPE_SERIAL
+#define SERIALRX_PROVIDER SERIALRX_SBUS
+#define SERIALRX_UART SERIAL_PORT_USART7
+
+// *************** ADC *****************************
+#define USE_ADC
+#define ADC_INSTANCE ADC1
+
+#define ADC1_DMA_STREAM DMA2_CHANNEL1
+#define ADC_CHANNEL_1_PIN PA0
+#define ADC_CHANNEL_2_PIN PA1
+//#define ADC_CHANNEL_3_PIN PB0
+#define VBAT_ADC_CHANNEL ADC_CHN_1
+#define CURRENT_METER_ADC_CHANNEL ADC_CHN_2
+//#define RSSI_ADC_CHANNEL ADC_CHN_3
+
+#define DEFAULT_FEATURES (FEATURE_TX_PROF_SEL | FEATURE_CURRENT_METER | FEATURE_TELEMETRY| FEATURE_VBAT | FEATURE_OSD )
+
+// #define USE_LED_STRIP
+// #define WS2811_PIN PB10 //TIM2_CH3
+
+// #define USE_SPEKTRUM_BIND
+// #define BIND_PIN PA3 //UART2_RX_PIN
+
+#define USE_SERIAL_4WAY_BLHELI_INTERFACE
+
+#define TARGET_IO_PORTA 0xffff
+#define TARGET_IO_PORTB 0xffff
+#define TARGET_IO_PORTC 0xffff
+#define TARGET_IO_PORTD 0xffff
+#define TARGET_IO_PORTE BIT(2)
+#define TARGET_IO_PORTH BIT(1)|BIT(2)|BIT(3)
+
+#define MAX_PWM_OUTPUT_PORTS 8
+#define USE_DSHOT
+#define USE_ESC_SENSOR