From c9b15a0e79794ca842ac120876774eab84831a2a Mon Sep 17 00:00:00 2001 From: MrScothh <167884257+MrScothh@users.noreply.github.com> Date: Tue, 6 Oct 2026 10:59:04 +0200 Subject: [PATCH] FLYWOOF722PROV2: target for the Flywoo GOKU F722 Pro V2 The V2 runs on FLYWOOF722PRO, whose pins all match, but that target cannot use what the V2 adds: an LSM6DSK320X as the alternative to the ICM-42688-P, a second IMU on CS PB2 of the same bus, and a DPS310 as its only barometer, as Betaflight's FLYWOOF722PROV2 config has them. Building only the DPS310 also keeps AUTO from taking this board's DPS310, at 0x76, for an SPL06. --- src/main/target/FLYWOOF722PRO/CMakeLists.txt | 1 + src/main/target/FLYWOOF722PRO/target.c | 7 ++++++ src/main/target/FLYWOOF722PRO/target.h | 23 +++++++++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/target/FLYWOOF722PRO/CMakeLists.txt b/src/main/target/FLYWOOF722PRO/CMakeLists.txt index 1906be3d599..775f1182115 100644 --- a/src/main/target/FLYWOOF722PRO/CMakeLists.txt +++ b/src/main/target/FLYWOOF722PRO/CMakeLists.txt @@ -1 +1,2 @@ target_stm32f722xe(FLYWOOF722PRO) +target_stm32f722xe(FLYWOOF722PROV2) diff --git a/src/main/target/FLYWOOF722PRO/target.c b/src/main/target/FLYWOOF722PRO/target.c index e8b78979f95..da6bf9f3078 100644 --- a/src/main/target/FLYWOOF722PRO/target.c +++ b/src/main/target/FLYWOOF722PRO/target.c @@ -26,9 +26,16 @@ #include "drivers/sensor.h" +#ifdef FLYWOOF722PROV2 +BUSDEV_REGISTER_SPI_TAG(busdev_icm42605_1, DEVHW_ICM42605, ICM42605_SPI_BUS, GYRO1_CS_PIN, NONE, 0, DEVFLAGS_NONE, IMU_ICM42605_ALIGN); +BUSDEV_REGISTER_SPI_TAG(busdev_lsm6dxx_1, DEVHW_LSM6D, LSM6DXX_SPI_BUS, GYRO1_CS_PIN, NONE, 0, DEVFLAGS_NONE, IMU_LSM6DXX_ALIGN); +BUSDEV_REGISTER_SPI_TAG(busdev_icm42605_2, DEVHW_ICM42605, ICM42605_SPI_BUS, GYRO2_CS_PIN, NONE, 1, DEVFLAGS_NONE, IMU_ICM42605_ALIGN); +BUSDEV_REGISTER_SPI_TAG(busdev_lsm6dxx_2, DEVHW_LSM6D, LSM6DXX_SPI_BUS, GYRO2_CS_PIN, NONE, 1, DEVFLAGS_NONE, IMU_LSM6DXX_ALIGN); +#else BUSDEV_REGISTER_SPI_TAG(busdev_mpu6000, DEVHW_MPU6000, MPU6000_SPI_BUS, MPU6000_CS_PIN, NONE, 0, DEVFLAGS_NONE, IMU_MPU6000_ALIGN); BUSDEV_REGISTER_SPI_TAG(busdev_ICM42605, DEVHW_ICM42605, ICM42605_SPI_BUS, ICM42605_CS_PIN, NONE, 0, DEVFLAGS_NONE, IMU_ICM42605_ALIGN); BUSDEV_REGISTER_SPI_TAG(busdev_BMI270, DEVHW_BMI270, BMI270_SPI_BUS, BMI270_CS_PIN, NONE, 0, DEVFLAGS_NONE, IMU_BMI270_ALIGN); +#endif timerHardware_t timerHardware[] = { //DEF_TIM(TIM8, CH1, PC6, TIM_USE_PPM,0, 0), // PPM&SBUS diff --git a/src/main/target/FLYWOOF722PRO/target.h b/src/main/target/FLYWOOF722PRO/target.h index 3f11b44e317..8098e9d28a2 100644 --- a/src/main/target/FLYWOOF722PRO/target.h +++ b/src/main/target/FLYWOOF722PRO/target.h @@ -16,7 +16,11 @@ */ #define TARGET_BOARD_IDENTIFIER "FWF7" +#ifdef FLYWOOF722PROV2 +#define USBD_PRODUCT_STRING "FLYWOOF722PROV2" +#else #define USBD_PRODUCT_STRING "FLYWOOF722PRO" +#endif /*** Indicators ***/ #define LED0 PC15 @@ -33,6 +37,20 @@ #define USE_TARGET_IMU_HARDWARE_DESCRIPTORS +#ifdef FLYWOOF722PROV2 +// An ICM-42688-P or an LSM6DSK320X, and a place for a second IMU on the same bus +#define USE_DUAL_GYRO +#define GYRO1_CS_PIN PA4 +#define GYRO2_CS_PIN PB2 + +#define USE_IMU_ICM42605 +#define IMU_ICM42605_ALIGN CW270_DEG +#define ICM42605_SPI_BUS BUS_SPI1 + +#define USE_IMU_LSM6DXX +#define IMU_LSM6DXX_ALIGN CW270_DEG +#define LSM6DXX_SPI_BUS BUS_SPI1 +#else #define USE_IMU_MPU6000 #define IMU_MPU6000_ALIGN CW0_DEG #define MPU6000_SPI_BUS BUS_SPI1 @@ -47,6 +65,7 @@ #define IMU_BMI270_ALIGN CW180_DEG #define BMI270_SPI_BUS BUS_SPI1 #define BMI270_CS_PIN PA4 +#endif #define USE_SPI_DEVICE_2 // MAX7456 @@ -109,10 +128,12 @@ /*** BARO & MAG ***/ #define USE_BARO #define BARO_I2C_BUS BUS_I2C1 +#define USE_BARO_DPS310 +#ifndef FLYWOOF722PROV2 #define USE_BARO_BMP280 #define USE_BARO_MS5611 -#define USE_BARO_DPS310 #define USE_BARO_SPL06 +#endif #define USE_MAG #define MAG_I2C_BUS BUS_I2C1