From 6efa27461799c86a238d9529fbf18026396e6c3e Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Sat, 4 Apr 2026 01:41:26 +0000 Subject: [PATCH 01/10] Enable ACCGYRO_BMI270 feature --- configs/HOBBYWING_XROTORF7CONV/config.h | 1 + configs/HWH7/config.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/HOBBYWING_XROTORF7CONV/config.h b/configs/HOBBYWING_XROTORF7CONV/config.h index 838ab5ba2..2f4ebfb93 100644 --- a/configs/HOBBYWING_XROTORF7CONV/config.h +++ b/configs/HOBBYWING_XROTORF7CONV/config.h @@ -30,6 +30,7 @@ #define USE_ACC_SPI_MPU6500 #define USE_ACC_SPI_ICM42688P #define USE_ACCGYRO_LSM6DSK320X +#define USE_ACCGYRO_BMI270 #define USE_GYRO #define USE_GYRO_SPI_MPU6500 #define USE_GYRO_SPI_ICM42688P diff --git a/configs/HWH7/config.h b/configs/HWH7/config.h index 0f9dcd88d..0949d0504 100644 --- a/configs/HWH7/config.h +++ b/configs/HWH7/config.h @@ -39,7 +39,7 @@ #define USE_GYRO_SPI_ICM42688P #define USE_ACCGYRO_LSM6DSV16X - +#define USE_ACCGYRO_BMI270 //barometer #define USE_BARO #define USE_BARO_DPS310 From 6b2c5c00cbf4d8f0b34136bc1deae413eb6352a4 Mon Sep 17 00:00:00 2001 From: Hebo98 <1098466228@qq.com> Date: Thu, 9 Apr 2026 11:21:53 +0800 Subject: [PATCH 02/10] Add HWF435 target --- configs/HWF435/config.h | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 configs/HWF435/config.h diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h new file mode 100644 index 000000000..38b0b001d --- /dev/null +++ b/configs/HWF435/config.h @@ -0,0 +1,151 @@ +/* + * This file is part of Betaflight. + * + * Betaflight is free software. You can redistribute this software + * and/or modify this software 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. + * + * Betaflight 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. + * + * If not, see . + */ + +#pragma once + +#define FC_TARGET_MCU AT32F435G +#define BOARD_NAME HWF435 +#define MANUFACTURER_ID HOWI +#define SYSTEM_HSE_MHZ 8 + +#define USE_GYRO +#define USE_ACC +#define USE_GYRO_SPI_MPU6500 +#define USE_ACC_SPI_MPU6500 +#define USE_GYRO_SPI_ICM42688P +#define USE_ACC_SPI_ICM42688P +#define USE_ACCGYRO_BMI270 +#define USE_ACCGYRO_LSM6DSK320X + +#define USE_BARO +#define USE_BARO_DPS310 + +#define USE_FLASH +#define USE_FLASH_W25Q128FV +#define USE_MAX7456 + +#define BEEPER_INVERTED +#define BEEPER_PIN PB2 + +#define LED_STRIP_PIN PH2 /* TIM5 CH1 */ +#define LED0_PIN PD2 + +#define MOTOR1_PIN PC6 /* TIM8 CH1 */ +#define MOTOR2_PIN PC7 /* TIM8 CH2 */ +#define MOTOR3_PIN PC8 /* TIM8 CH3 */ +#define MOTOR4_PIN PC9 /* TIM8 CH4 */ +#define MOTOR5_PIN PB0 /* TIM3 CH3 */ +#define MOTOR6_PIN PB1 /* TIM3 CH4 */ +#define MOTOR7_PIN PB4 /* TIM3 CH1 */ +#define MOTOR8_PIN PB5 /* TIM3 CH2 */ + +#define SERVO1_PIN PB6 /* TIM4 CH1 */ +#define SERVO2_PIN PB7 /* TIM4 CH2 */ +#define SERVO3_PIN PB3 /* TIM2 CH2 */ + +#define UART1_TX_PIN PA9 +#define UART1_RX_PIN PA10 +#define UART2_TX_PIN PA2 +#define UART2_RX_PIN PA3 +#define UART3_TX_PIN PB10 +#define UART3_RX_PIN PB11 +#define UART4_TX_PIN PH3 +#define UART4_RX_PIN PA1 +#define UART7_TX_PIN PC0 +#define UART7_RX_PIN PC1 +#define UART8_TX_PIN PC2 +#define UART8_RX_PIN PC3 + +#define USE_MAG +#define USE_GPS + +#define I2C1_SCL_PIN PB8 +#define I2C1_SDA_PIN PB9 + +#define SPI1_SCK_PIN PA5 +#define SPI1_SDI_PIN PA6 +#define SPI1_SDO_PIN PA7 +#define SPI2_SCK_PIN PB13 +#define SPI2_SDI_PIN PB14 +#define SPI2_SDO_PIN PB15 +#define SPI3_SCK_PIN PC10 +#define SPI3_SDI_PIN PC11 +#define SPI3_SDO_PIN PC12 + +#define ADC_VBAT_PIN PA0 +#define ADC_CURR_PIN PC5 +#define ADC1_DMA_OPT 9 + +#define FLASH_CS_PIN PB12 +#define MAX7456_SPI_CS_PIN PA15 +#define GYRO_1_EXTI_PIN PC4 +#define GYRO_1_CS_PIN PA4 +#define GYRO_1_CLKIN_PIN PA8 // TMR1_CH1( Gyro CLKIN ) + +#define PINIO1_PIN PC13 +#define PINIO1_CONFIG 1 +#define PINIO1_BOX 40 +#define BOX_USER1_NAME "CAM 1,2" + +#define GYRO_1_SPI_INSTANCE SPI1 +#define GYRO_1_ALIGN CW180_DEG + +#define BARO_I2C_INSTANCE I2CDEV_1 +#define MAG_I2C_INSTANCE I2CDEV_1 +#define FLASH_SPI_INSTANCE SPI2 +#define MAX7456_SPI_INSTANCE SPI3 + + + +#define TIMER_PIN_MAPPING \ + TIMER_PIN_MAP( 0, PC6, 2, 0) \ + TIMER_PIN_MAP( 1, PC7, 2, 1) \ + TIMER_PIN_MAP( 2, PC8, 2, 2) \ + TIMER_PIN_MAP( 3, PC9, 2, 3) \ + TIMER_PIN_MAP( 4, PB0, 2, 4) \ + TIMER_PIN_MAP( 5, PB1, 2, 5) \ + TIMER_PIN_MAP( 6, PB4, 1, 6) \ + TIMER_PIN_MAP( 7, PB5, 1, 7) \ + TIMER_PIN_MAP( 8, PB6, 1, -1) \ + TIMER_PIN_MAP( 9, PB7, 1, -1) \ + TIMER_PIN_MAP(10, PB3, 1, -1) \ + TIMER_PIN_MAP(11, PH2, 1, 11) \ + TIMER_PIN_MAP(12, PA8, 1, -1) + + + +#define DEFAULT_BLACKBOX_DEVICE BLACKBOX_DEVICE_FLASH + +#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC +#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC +#define DEFAULT_VOLTAGE_METER_SCALE 168 +#define DEFAULT_CURRENT_METER_SCALE 117 + +#define DEFAULT_MIXER MIXER_OCTOX8 +#define DEFAULT_DSHOT_BITBANG DSHOT_BITBANG_OFF +#define DEFAULT_MOTOR_DSHOT_SPEED PWM_TYPE_DSHOT600 + +#define DEFAULT_ALIGN_BOARD_ROLL 180 +#define DEFAULT_ALIGN_BOARD_PITCH 180 +#define DEFAULT_ALIGN_BOARD_YAW 270 + +#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL +#define SERIALRX_PROVIDER SERIALRX_CRSF +#define SERIALRX_UART SERIAL_PORT_USART7 +#define OSD_DISPLAYPORT_DEVICE MAX7456 + From c226eb6fd9fd61b71491e8b5a4d5c5a794c81edf Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Fri, 10 Apr 2026 09:03:24 +0800 Subject: [PATCH 03/10] Apply suggestions from code review Remove MPU6500 definitions as requested. Co-authored-by: Hebo98 <72866967+Hebo98@users.noreply.github.com> --- configs/HWF435/config.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index 38b0b001d..74faae8d7 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -25,8 +25,6 @@ #define USE_GYRO #define USE_ACC -#define USE_GYRO_SPI_MPU6500 -#define USE_ACC_SPI_MPU6500 #define USE_GYRO_SPI_ICM42688P #define USE_ACC_SPI_ICM42688P #define USE_ACCGYRO_BMI270 From 25a118cbc10da066c868cb0601a29244e99495cd Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Sat, 25 Apr 2026 09:18:03 +0800 Subject: [PATCH 04/10] UpdateRemove unused MAG and GPS defines from HWF435 config configs/HWF435/config.h HWF435 does not have onboard MAG or GNSS modules according to the schematic, so these user feature defines should not be enabled in config.h. Co-authored-by: Osiris Inferi --- configs/HWF435/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index 74faae8d7..78e288ac5 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -69,9 +69,6 @@ #define UART8_TX_PIN PC2 #define UART8_RX_PIN PC3 -#define USE_MAG -#define USE_GPS - #define I2C1_SCL_PIN PB8 #define I2C1_SDA_PIN PB9 From 8cd1f1068a61d4e4ac0bd11d5b70807c9306aea3 Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Sat, 25 Apr 2026 09:23:50 +0800 Subject: [PATCH 05/10] Update configs/HWF435/config.h Sorry, that was a typo. Co-authored-by: Osiris Inferi --- configs/HWF435/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index 78e288ac5..1f99c3e63 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -132,7 +132,7 @@ #define DEFAULT_CURRENT_METER_SCALE 117 #define DEFAULT_MIXER MIXER_OCTOX8 -#define DEFAULT_DSHOT_BITBANG DSHOT_BITBANG_OFF +#define DEFAULT_DSHOT_BITBANG DSHOT_BITBANG_ON #define DEFAULT_MOTOR_DSHOT_SPEED PWM_TYPE_DSHOT600 #define DEFAULT_ALIGN_BOARD_ROLL 180 From 00e5a09532d9a0833b12d82c328adea47feafd67 Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Sat, 25 Apr 2026 09:29:08 +0800 Subject: [PATCH 06/10] Update configs/HWF435/config.h Thank you for your advice. Co-authored-by: Osiris Inferi --- configs/HWF435/config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index 1f99c3e63..aa1f1a7f2 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -133,7 +133,8 @@ #define DEFAULT_MIXER MIXER_OCTOX8 #define DEFAULT_DSHOT_BITBANG DSHOT_BITBANG_ON -#define DEFAULT_MOTOR_DSHOT_SPEED PWM_TYPE_DSHOT600 +#define DEFAULT_MOTOR_DSHOT_SPEED PWM_TYPE_DSHOT300 +#define DEFAULT_PID_PROCESS_DENOM 2 #define DEFAULT_ALIGN_BOARD_ROLL 180 #define DEFAULT_ALIGN_BOARD_PITCH 180 From d593c13a95428591f348809cf84feec60d5b7f8b Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Sat, 25 Apr 2026 09:49:03 +0800 Subject: [PATCH 07/10] Simplify HWF435 board alignment The previous roll/pitch/yaw alignment was equivalent to a 90 degree yaw rotation, so simplify it to DEFAULT_ALIGN_BOARD_YAW 90. --- configs/HWF435/config.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index aa1f1a7f2..e9ace4bea 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -136,9 +136,8 @@ #define DEFAULT_MOTOR_DSHOT_SPEED PWM_TYPE_DSHOT300 #define DEFAULT_PID_PROCESS_DENOM 2 -#define DEFAULT_ALIGN_BOARD_ROLL 180 -#define DEFAULT_ALIGN_BOARD_PITCH 180 -#define DEFAULT_ALIGN_BOARD_YAW 270 + +#define DEFAULT_ALIGN_BOARD_YAW 90 #define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL #define SERIALRX_PROVIDER SERIALRX_CRSF From d380f15c4cf3b4b4c05ffb17766b3f68d38ceb93 Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Sat, 25 Apr 2026 09:53:58 +0800 Subject: [PATCH 08/10] Update configs/HWF435/config.h Co-authored-by: Osiris Inferi --- configs/HWF435/config.h | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index e9ace4bea..41e9286bb 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -142,5 +142,4 @@ #define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL #define SERIALRX_PROVIDER SERIALRX_CRSF #define SERIALRX_UART SERIAL_PORT_USART7 -#define OSD_DISPLAYPORT_DEVICE MAX7456 From 6487919ae4d63d969078f0ad2046d0ccd52941c9 Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Sat, 25 Apr 2026 10:25:40 +0800 Subject: [PATCH 09/10] Added a switchable VTX control port. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on osirisinferi’s suggestion, we added a user-switchable VTX control port. The specific control port is PC14. --- configs/HWF435/config.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index 41e9286bb..5f8454c99 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -97,6 +97,11 @@ #define PINIO1_BOX 40 #define BOX_USER1_NAME "CAM 1,2" +#define PINIO2_PIN PC14 +#define PINIO2_CONFIG 1 +#define PINIO2_BOX 41 +#define BOX_USER2_NAME "SW_VTX" + #define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_ALIGN CW180_DEG From dbb9f76867c9a014ba2fc80586b1b7daeb62e49f Mon Sep 17 00:00:00 2001 From: Hebo98 <72866967+Hebo98@users.noreply.github.com> Date: Thu, 14 May 2026 17:46:44 +0800 Subject: [PATCH 10/10] Update configs/HWF435/config.h Co-authored-by: Osiris Inferi --- configs/HWF435/config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/HWF435/config.h b/configs/HWF435/config.h index 5f8454c99..31f319d3d 100644 --- a/configs/HWF435/config.h +++ b/configs/HWF435/config.h @@ -125,7 +125,8 @@ TIMER_PIN_MAP( 9, PB7, 1, -1) \ TIMER_PIN_MAP(10, PB3, 1, -1) \ TIMER_PIN_MAP(11, PH2, 1, 11) \ - TIMER_PIN_MAP(12, PA8, 1, -1) + TIMER_PIN_MAP(12, PA8, 1, -1) \ + TIMER_PIN_MAP(13, PB2, 2, -1)