From eb52a5e2506ea3745087d74047340d14f1db67d0 Mon Sep 17 00:00:00 2001 From: "Cliff (Synersign)" Date: Sat, 1 Aug 2026 15:26:32 +0800 Subject: [PATCH 1/6] Add files via upload --- src/main/target/SYNERDUINOH7/CMakeLists.txt | 1 + src/main/target/SYNERDUINOH7/target.c | 56 ++++ src/main/target/SYNERDUINOH7/target.h | 263 ++++++++++++++++++ .../target/SYNERDUINOSTM_F405/CMakeLists.txt | 1 + src/main/target/SYNERDUINOSTM_F405/target.c | 61 ++++ src/main/target/SYNERDUINOSTM_F405/target.h | 253 +++++++++++++++++ 6 files changed, 635 insertions(+) create mode 100644 src/main/target/SYNERDUINOH7/CMakeLists.txt create mode 100644 src/main/target/SYNERDUINOH7/target.c create mode 100644 src/main/target/SYNERDUINOH7/target.h create mode 100644 src/main/target/SYNERDUINOSTM_F405/CMakeLists.txt create mode 100644 src/main/target/SYNERDUINOSTM_F405/target.c create mode 100644 src/main/target/SYNERDUINOSTM_F405/target.h diff --git a/src/main/target/SYNERDUINOH7/CMakeLists.txt b/src/main/target/SYNERDUINOH7/CMakeLists.txt new file mode 100644 index 00000000000..2b73ef8d8ea --- /dev/null +++ b/src/main/target/SYNERDUINOH7/CMakeLists.txt @@ -0,0 +1 @@ +target_stm32h743xi(SYNERDUINOH7 HSE_MHZ 25 SKIP_RELEASES) diff --git a/src/main/target/SYNERDUINOH7/target.c b/src/main/target/SYNERDUINOH7/target.c new file mode 100644 index 00000000000..df7404cd94b --- /dev/null +++ b/src/main/target/SYNERDUINOH7/target.c @@ -0,0 +1,56 @@ +/* + * 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/pinio.h" + +#include "drivers/sensor.h" +#include "drivers/timer_def_stm32h7xx.h" + +timerHardware_t timerHardware[] = { + DEF_TIM(TIM3, CH3, PB0, TIM_USE_OUTPUT_AUTO, 0, 0), // S1 + DEF_TIM(TIM3, CH4, PB1, TIM_USE_OUTPUT_AUTO, 0, 1), // S2 + + DEF_TIM(TIM5, CH1, PA0, TIM_USE_OUTPUT_AUTO, 0, 2), // S3 + DEF_TIM(TIM5, CH2, PA1, TIM_USE_OUTPUT_AUTO, 0, 3), // S4 + DEF_TIM(TIM5, CH3, PA2, TIM_USE_OUTPUT_AUTO, 0, 4), // S5 + DEF_TIM(TIM5, CH4, PA3, TIM_USE_OUTPUT_AUTO, 0, 5), // S6 + + DEF_TIM(TIM4, CH1, PD12, TIM_USE_OUTPUT_AUTO, 0, 6), // S7 + DEF_TIM(TIM4, CH2, PD13, TIM_USE_OUTPUT_AUTO, 0, 7), // S8 + DEF_TIM(TIM4, CH3, PD14, TIM_USE_OUTPUT_AUTO, 0, 0), // S9 + DEF_TIM(TIM4, CH4, PD15, TIM_USE_OUTPUT_AUTO, 0, 0), // S10 DMA_NONE + + DEF_TIM(TIM15, CH1, PE5, TIM_USE_OUTPUT_AUTO, 0, 0), // S11 + DEF_TIM(TIM15, CH2, PE6, TIM_USE_OUTPUT_AUTO, 0, 0), // S12 DMA_NONE + + DEF_TIM(TIM1, CH1, PA8, TIM_USE_LED, 0, 9), // LED_2812 + DEF_TIM(TIM2, CH1, PA15, TIM_USE_BEEPER, 0, 0), // BEEPER PWM + + // DEF_TIM(TIM8, CH2, PC7, TIM_USE_PPM, 0, 0), // RX6 PPM + // DEF_TIM(TIM8, CH1, PC6, TIM_USE_ANY, 0, 0), // TX6 SoftwareSerial + // DEF_TIM(TIM16, CH1, PB8, TIM_USE_ANY, 0, 0), // RX4 + // DEF_TIM(TIM17, CH1, PB9, TIM_USE_ANY, 0, 0), // TX4 +}; + +const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]); diff --git a/src/main/target/SYNERDUINOH7/target.h b/src/main/target/SYNERDUINOH7/target.h new file mode 100644 index 00000000000..bd3e9d35045 --- /dev/null +++ b/src/main/target/SYNERDUINOH7/target.h @@ -0,0 +1,263 @@ +/* + * 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 . + * + ***Base of the Matek H743 Modded** + */ + + + +#pragma once + +#define TARGET_BOARD_IDENTIFIER "SYNH743" +#define USBD_PRODUCT_STRING "SYNERDUIN0H7" + + +#define LED0 PE3 +#define LED1 PE4 + +#define BEEPER PA15 +#define BEEPER_INVERTED +#define BEEPER_PWM_FREQUENCY 2500 + +// *************** SPI1 Flash BLACKBOX ****************** +//#define USE_SPI_DEVICE_1 +//#define SPI1_SCK_PIN PB3 +//#define SPI1_MISO_PIN PB4 +//#define SPI1_MOSI_PIN PD7 + +//#define USE_BLACKBOX +//#define USE_FLASHFS + +//#define USE_FLASH_W25N01G +//#define W25N01G_SPI_BUS BUS_SPI1 +//#define W25N01G_CS_PIN PD6 + +//#define USE_FLASH_W25Q64 +//#define W25Q64_SPI_BUS BUS_SPI1 +//#define W25Q64_CS_PIN PD6 + +//#define USE_FLASH_M25P16 +//#define M25P16_SPI_BUS BUS_SPI1 +//#define M25P16_CS_PIN PD6 + + +// *************** SPI1 Flash BLACKBOX *********Might Affect UART2******** +//#define USE_SPI_DEVICE_1 +//#define SPI1_SCK_PIN PB3 +//#define SPI1_MISO_PIN PB4 +//#define SPI1_MOSI_PIN PD7 + +//#define USE_BLACKBOX +//#define USE_FLASHFS + +//#define USE_FLASH_W25N01G +//#define W25N01G_SPI_BUS BUS_SPI1 +//#define W25N01G_CS_PIN PD6 + +//#define USE_FLASH_W25Q64 +//#define W25Q64_SPI_BUS BUS_SPI1 +//#define W25Q64_CS_PIN PD6 + +//#define USE_FLASH_M25P16 +//#define M25P16_SPI_BUS BUS_SPI1 +//#define M25P16_CS_PIN PD6 + +//#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT +// *************** IMU generic *********************** +//#define USE_DUAL_GYRO +// *************** SPI2 IMU1 ****************************** +//#define USE_SPI_DEVICE_2 +//#define SPI1_SCK_PIN PB13 +//#define SPI1_MISO_PIN PB14 +//#define SPI1_MOSI_PIN PB15 + +//#define USE_IMU_ICM42605 + +//#define IMU_ICM42605_ALIGN CW90_DEG_FLIP +//#define ICM42605_SPI_BUS BUS_SPI1 +//#define ICM42605_CS_PIN PB15 + +//#define USE_IMU_ICM20689 + +//#define IMU_ICM20689_ALIGN CW90_DEG_FLIP +//#define ICM20689_SPI_BUS BUS_SPI1 +//#define ICM20689_CS_PIN PB15 + +// *************** SPI1 IMU0 ****************************** +#define USE_SPI +#define USE_SPI_DEVICE_1 +#define SPI2_SCK_PIN PA5 // PB13 +#define SPI2_MISO_PIN PA6 // PB14 +#define SPI2_MOSI_PIN PA7 // PB15 + +#define USE_IMU_MPU6000 + +#define IMU_MPU6000_ALIGN CW90_DEG +#define MPU6000_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define MPU6000_CS_PIN PA4 // PB12 + +#define USE_IMU_MPU6500 + +#define IMU_MPU6500_ALIGN CW90_DEG +#define MPU6500_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define MPU6500_CS_PIN PA4 // PB12 + +#define USE_IMU_MPU9250 + +#define IMU_MPU9250_ALIGN CW90_DEG +#define MPU9250_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define MPU9250_CS_PIN PA4 // PB12 + +#define USE_IMU_BMI160 + +#define IMU_BMI160_ALIGN CW270_DEG +#define BMI160_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define BMI160_CS_PIN PA4 // PB12 + +#define USE_IMU_BMI270 + +#define IMU_BMI270_ALIGN CW270_DEG +#define BMI270_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define BMI270_CS_PIN PA4 // PB12 + +// *************** SPI4 OSD **********Some readon the SPI OLED was there*********** +//#define USE_SPI_DEVICE_4 +//#define SPI4_SCK_PIN PE12 +//#define SPI4_MISO_PIN PE13 +//#define SPI4_MOSI_PIN PE14 + +//#define USE_MAX7456 +//#define MAX7456_SPI_BUS BUS_SPI4 +//#define MAX7456_CS_PIN PE11 + +// *************** I2C /Baro/Mag ********************* +#define USE_I2C +#define USE_I2C_DEVICE_1 +#define I2C1_SCL PB6 +#define I2C1_SDA PB7 + +#define USE_I2C_DEVICE_2 +#define I2C2_SCL PB10 +#define I2C2_SDA PB11 +//** BARO **// +#define USE_BARO +#define BARO_I2C_BUS BUS_I2C2 +#define USE_BARO_BMP085 +#define USE_BARO_BMP280 +#define USE_BARO_MS5611 +#define USE_BARO_DPS310 +#define USE_BARO_SPL06 +//** MAG **// +#define USE_MAG +#define MAG_I2C_BUS BUS_I2C1 +#define USE_MAG_ALL +//** TEMP **// +#define TEMPERATURE_I2C_BUS BUS_I2C2 +#define PITOT_I2C_BUS BUS_I2C2 +//** RANGE **// +#define USE_RANGEFINDER +#define RANGEFINDER_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 PD5 +#define UART2_RX_PIN PD6 + +#define USE_UART3 +#define UART3_TX_PIN PD8 +#define UART3_RX_PIN PD9 + +#define USE_UART4 +#define UART4_TX_PIN PB9 +#define UART4_RX_PIN PB8 + +#define USE_UART6 +#define UART6_TX_PIN PC6 +#define UART6_RX_PIN PC7 + +#define USE_UART7 +#define UART7_TX_PIN PE8 +#define UART7_RX_PIN PE7 + +#define USE_UART8 +#define UART8_TX_PIN PE1 +#define UART8_RX_PIN PE0 + +//#define USE_SOFTSERIAL1 +//#define SOFTSERIAL_1_TX_PIN PC6 //TX6 pad +//#define SOFTSERIAL_1_RX_PIN PC6 //TX6 pad + +#define SERIAL_PORT_COUNT 8 + +#define DEFAULT_RX_TYPE RX_TYPE_SERIAL +#define SERIALRX_PROVIDER SERIALRX_CRSF +#define SERIALRX_UART SERIAL_PORT_USART6 + +// *************** SDIO SD BLACKBOX******************* +#define USE_SDCARD +#define USE_SDCARD_SDIO +#define SDCARD_SDIO_DEVICE SDIODEV_1 +#define SDCARD_SDIO_4BIT + +#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT + +// *************** ADC ***************************** +#define USE_ADC +#define ADC_INSTANCE ADC1 + +#define ADC_CHANNEL_1_PIN PC0 //ADC123 VBAT1 +#define ADC_CHANNEL_2_PIN PC1 //ADC123 CURR1 +#define ADC_CHANNEL_3_PIN PC5 //ADC12 RSSI +#define ADC_CHANNEL_4_PIN PC4 //ADC12 AirS +//#define ADC_CHANNEL_5_PIN PA4 //ADC12 VB2 +//#define ADC_CHANNEL_6_PIN PA7 //ADC12 CU2 + +#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 PD10 // VTX power switcher +#define PINIO2_PIN PD11 // 2xCamera switcher + +// *************** LEDSTRIP ************************ +#define USE_LED_STRIP +#define WS2811_PIN PA8 + +#define DEFAULT_FEATURES (FEATURE_TELEMETRY | FEATURE_CURRENT_METER | FEATURE_VBAT | FEATURE_TX_PROF_SEL | FEATURE_BLACKBOX)//FEATURE_OSD | +#define CURRENT_METER_SCALE 250 + +#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 0xffff + +#define MAX_PWM_OUTPUT_PORTS 14 +#define USE_DSHOT +#define USE_ESC_SENSOR + diff --git a/src/main/target/SYNERDUINOSTM_F405/CMakeLists.txt b/src/main/target/SYNERDUINOSTM_F405/CMakeLists.txt new file mode 100644 index 00000000000..533a25c4064 --- /dev/null +++ b/src/main/target/SYNERDUINOSTM_F405/CMakeLists.txt @@ -0,0 +1 @@ +target_stm32f405xg(SYNERDUINOSTM_F405 HSE_MHZ 8 SKIP_RELEASES) diff --git a/src/main/target/SYNERDUINOSTM_F405/target.c b/src/main/target/SYNERDUINOSTM_F405/target.c new file mode 100644 index 00000000000..584d124cb53 --- /dev/null +++ b/src/main/target/SYNERDUINOSTM_F405/target.c @@ -0,0 +1,61 @@ +/* +* 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 +#include "drivers/bus.h" +#include "drivers/io.h" +#include "drivers/pwm_mapping.h" +#include "drivers/timer.h" +#include "drivers/pinio.h" + +#include "drivers/sensor.h" +#include "drivers/timer_def_stm32f4xx.h" + + +/**Motors & Servos for FW & MC**/ +/**See Datasheet of the WA STM32F405XG**/ +/**Base of the Riza**/ +/**DEF_TIM(Timer , Channle , Pin , Multirotor Motor | Fixwing Motor/Servo , 0 ,0 ))**/ + +timerHardware_t timerHardware[] = { + DEF_TIM(TIM4, CH3, PB8, TIM_USE_OUTPUT_AUTO, 0, 0), // S1 D(2,7,7) UP217 / TIM10, CH1 / TIM4, CH3 / + DEF_TIM(TIM3, CH2, PB5, TIM_USE_OUTPUT_AUTO, 0, 0), // S2 D(2,2,0) UP217 / TIM3, CH2 + DEF_TIM(TIM3, CH1, PB4, TIM_USE_OUTPUT_AUTO, 0, 0), // S3 D(2,6,0) UP256 / TIM3, CH1 + DEF_TIM(TIM2, CH2, PB3, TIM_USE_OUTPUT_AUTO, 0, 0), //0,1) S4 D(2,1,6) UP256 / TIM2, CH2 + DEF_TIM(TIM1, CH3, PA10, TIM_USE_OUTPUT_AUTO, 0, 0), // S5 D(1,7,3) UP173 / TIM1, CH3 + DEF_TIM(TIM1, CH2, PA9, TIM_USE_OUTPUT_AUTO, 0, 0), // S6 D(1,1,3) UP173 / TIM1 ,CH2 + DEF_TIM(TIM12, CH2, PB15, TIM_USE_OUTPUT_AUTO, 0, 0), // S7 D(1,6,3) UP173 / TIM1, CH3N / TIM8, CH3N / TIM12, CH2 / + DEF_TIM(TIM12, CH1, PB14, TIM_USE_OUTPUT_AUTO, 0, 0), // S8 D(1,5,3) UP173 / TIM1, CH2N / TIM8, CH2N / TIM12, CH1 / + DEF_TIM(TIM14, CH1, PA7, TIM_USE_OUTPUT_AUTO, 0, 0), // S9 DMA NONE / TIM8, CH1N /TIM14, CH1/TIM3, CH2/TIM1, CH1N / + DEF_TIM(TIM13, CH1, PA6, TIM_USE_OUTPUT_AUTO, 0, 0), // S10 DMA NONE / TIM13, CH1 / TIM3, CH1 + + DEF_TIM(TIM8, CH3N, PB1, TIM_USE_LED, 0, 0), // 2812LED D(1,2,5) / TIM3, CH4 / TIM8, CH3N/ TIM1, CH3N / + DEF_TIM(TIM11, CH1, PB9, TIM_USE_BEEPER, 0, 0), // BEEPER PWM / SPI2_NSS/ TIM4, CH4/ TIM11, CH1 / + + //DEF_TIM(TIM9, CH2, PA3, TIM_USE_PPM, 0, 0), //RX2 + //DEF_TIM(TIM5, CH3, PA2, TIM_USE_ANY, 0, 0), //TX2 softserial1_Tx + + //DEF_TIM(TIM1, CH1, PA8, TIM_USE_ANY, 0, 0), //SSRX2 + //DEF_TIM(TIM1, CH4, PA11, TIM_USE_ANY, 0, 0), //SSTX2 softserial1_Tx + + // DEF_TIM(TIM8, CH2, PC7, TIM_USE_ANY, 0, 0), //SSRX1 + //DEF_TIM(TIM8, CH1, PC6, TIM_USE_ANY, 0, 0), //SSTX1 softserial2_Tx + +}; + +const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]); diff --git a/src/main/target/SYNERDUINOSTM_F405/target.h b/src/main/target/SYNERDUINOSTM_F405/target.h new file mode 100644 index 00000000000..74b06ec2244 --- /dev/null +++ b/src/main/target/SYNERDUINOSTM_F405/target.h @@ -0,0 +1,253 @@ +/* + * 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 . + */ + + /**See Datasheet of the WA STM32F405XG**/ +/**Base of the RIZA**/ + +#pragma once + +#define TARGET_BOARD_IDENTIFIER "SYND_F405" +#define USBD_PRODUCT_STRING "SYNERDUINOSTM_F405" + +#define LED0 PB2 //Blue +#define LED1 PA13 //Green +// *************** BLEEP ********************** +#define BEEPER PB9 +#define BEEPER_INVERTED +#define BEEPER_PWM_FREQUENCY 2500 + +// *************** SPI2 Gyro & ACC ********************** +#define USE_SPI +#define USE_SPI_DEVICE_2 + +#define SPI2_SCK_PIN PB13 +#define SPI2_MISO_PIN PC2 +#define SPI2_MOSI_PIN PC3 + +// **** MPU IMU ****// + +#define USE_IMU_MPU6000 +#define IMU_MPU6000_ALIGN CW90_DEG +#define MPU6000_CS_PIN PB12 +#define MPU6000_SPI_BUS BUS_SPI2 + +#define USE_IMU_MPU9250 +#define IMU_MPU9250_ALIGN CW90_DEG +#define MPU9250_CS_PIN PB12 +#define MPU9250_SPI_BUS BUS_SPI2 + +#define USE_IMU_MPU6500 +#define IMU_MPU6500_ALIGN CW90_DEG +#define MPU6500_CS_PIN PB12 +#define MPU6500_SPI_BUS BUS_SPI2 + +// **** BMI IMU ****// +#define USE_IMU_BMI088 +#define IMU_BMI088_ALIGN CW270_DEG +#define BMI160_CS_PIN PB12 +#define BMI160_SPI_BUS BUS_SPI2 + +#define USE_IMU_BMI160 +#define IMU_BMI160_ALIGN CW270_DEG +#define BMI160_CS_PIN PB12 +#define BMI160_SPI_BUS BUS_SPI2 + + +#define USE_IMU_BMI270 +#define IMU_BMI270_ALIGN CW270_DEG +#define BMI270_CS_PIN PB12 +#define BMI270_SPI_BUS BUS_SPI2 + +// **** ICM IMU ****// +#define USE_IMU_ICM20689 +#define IMU_ICM20689_ALIGN CW90_DEG +#define ICM20689_CS_PIN PB12 +#define ICM20689_SPI_BUS BUS_SPI2 + +#define USE_IMU_ICM42605 +#define IMU_ICM42605_ALIGN CW90_DEG +#define ICM42605_CS_PIN PB12 +#define ICM42605_SPI_BUS BUS_SPI2 + +// **** BNO IMU ****// +#define USE_IMU_BNO055 +#define IMU_BNO055_ALIGN CW90_DEG +#define BNO055_CS_PIN PB12 +#define BNO055_SPI_BUS BUS_SPI2 + +// **** SPI OSD ****// +#define USE_MAX7456 +#define MAX7456_SPI_BUS BUS_SPI2 +#define MAX7456_CS_PIN PC1 + +// *************** SPI3 Flash/SD Card ****************uncomment to use SPI3 +//#define USE_SPI_DEVICE_3 +//#define SPI3_SCK_PIN PC10 +//#define SPI3_MISO_PIN PC11 +//#define SPI3_MOSI_PIN PC12 +// *************** SD BLACKBOX******************* +#define USE_SDCARD +// *************** SPI SD *******************uncomment to use SPI3 +//#define USE_SDCARD_SPI +//#define SDCARD_SPI_BUS BUS_SPI3 +//#define SDCARD_CS_PIN PA15 + +// *************** SDIO SD *******************uncomment to use SDIO +#define USE_SDCARD_SDIO +#define SDCARD_SDIO_DEVICE SDIODEV_1 +#define SDCARD_SDIO_4BIT +#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT +//#else +//# define USE_FLASHFS +//# define USE_FLASH_M25P16 +//# define M25P16_SPI_BUS BUS_SPI3 +//# define M25P16_CS_PIN PC13 +//# define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT +//#endif + +// *************** I2C /Baro/Mag/Pitot ******************** + +#define USE_I2C +#define USE_I2C_DEVICE_2 +#define I2C2_SCL PB10 +#define I2C2_SDA PB11 + +//** BARO **// + +#define USE_BARO +#define BARO_I2C_BUS BUS_I2C2 +#define USE_BARO_BMP280 +#define USE_BARO_MS5611 +#define USE_BARO_BMP085 +#define USE_BARO_DPS310 +#define USE_BARO_SPL06 + +//** MAG **// + +#define USE_MAG +#define MAG_I2C_BUS BUS_I2C2 +#define USE_MAG_HMC5883 +#define USE_MAG_QMC5883 +#define USE_MAG_IST8310 +#define USE_MAG_MAG3110 +#define USE_MAG_LIS3MDL +#define USE_MAG_MPU9250 + +//#define USE_MAG_ALL + + +// *************** I2C PITOT***************************** +#define PITOT_I2C_BUS BUS_I2C2 +// *************** I2C TEMP***************************** +#define TEMPERATURE_I2C_BUS BUS_I2C2 +// *************** I2C RANGE***************************** +#define USE_RANGEFINDER +#define USE_RANGEFINDER_MSP +#define RANGEFINDER_I2C_BUS BUS_I2C2 + + +// *************** UART ***************************** +#define USE_VCP + +//UART1_RX_PIN PA10 // TIM1_CH3 +//UART1_TX_PIN PA9 // TIM1_CH2 + +#define USE_UART1 +#define UART1_TX_PIN PB6 +#define UART1_RX_PIN PB7 + +#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 // TIM8_CH1 +#define UART6_RX_PIN PC7 // TIM8_CH2 + +//#define USE_SOFTSERIAL1 +//#define SOFTSERIAL_1_TX_PIN PC6 +//#define SOFTSERIAL_1_RX_PIN PC7 + +//#define USE_SOFTSERIAL2 +//#define SOFTSERIAL_2_TX_PIN PA11 +//#define SOFTSERIAL_2_RX_PIN PA8 + +#define SERIAL_PORT_COUNT 5 + +#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 PA5 + +// *************** LEDSTRIP ************************ +#define USE_LED_STRIP +#define WS2811_PIN PB1 + +// *************** OTHERS ************************* +#define DEFAULT_FEATURES (FEATURE_TX_PROF_SEL | FEATURE_CURRENT_METER | FEATURE_VBAT | FEATURE_TELEMETRY | FEATURE_SOFTSERIAL ) //FEATURE_OSD | +#define VBAT_SCALE_DEFAULT 2100 +#define CURRENT_METER_SCALE 423 + +//#define USE_SPEKTRUM_BIND +//#define BIND_PIN PA3 // RX2 + +#define USE_DSHOT +#define USE_ESC_SENSOR +#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 (BIT(2)) + +#define MAX_PWM_OUTPUT_PORTS 10 + +#define USE_SERIAL_4WAY_BLHELI_INTERFACE +#define USE_DSHOT +#define USE_DSHOT_DMAR +#define USE_ESC_SENSOR From 9b30db2d9eebeb5832edb174648d83aa6e4682fc Mon Sep 17 00:00:00 2001 From: "Cliff (Synersign)" Date: Sun, 2 Aug 2026 21:56:41 +0800 Subject: [PATCH 2/6] Add files via upload --- src/main/target/SYNERDUINOH7/target.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/target/SYNERDUINOH7/target.h b/src/main/target/SYNERDUINOH7/target.h index bd3e9d35045..cd188baaa3b 100644 --- a/src/main/target/SYNERDUINOH7/target.h +++ b/src/main/target/SYNERDUINOH7/target.h @@ -98,7 +98,7 @@ // *************** SPI1 IMU0 ****************************** #define USE_SPI -#define USE_SPI_DEVICE_1 +#define USE_SPI_DEVICE_2 #define SPI2_SCK_PIN PA5 // PB13 #define SPI2_MISO_PIN PA6 // PB14 #define SPI2_MOSI_PIN PA7 // PB15 From 4c0e420458a87625a3babd8572f77732e3f9ccbf Mon Sep 17 00:00:00 2001 From: "Cliff (Synersign)" Date: Sun, 2 Aug 2026 22:13:12 +0800 Subject: [PATCH 3/6] Add files via upload --- src/main/target/SYNERDUINOH7A/CMakeLists.txt | 1 + src/main/target/SYNERDUINOH7A/config.c | 28 ++ src/main/target/SYNERDUINOH7A/target.c | 56 ++++ src/main/target/SYNERDUINOH7A/target.h | 221 ++++++++++++++ .../target/SYNERDUINOSTM_F405A/CMakeLists.txt | 1 + src/main/target/SYNERDUINOSTM_F405A/target.c | 61 ++++ src/main/target/SYNERDUINOSTM_F405A/target.h | 270 ++++++++++++++++++ 7 files changed, 638 insertions(+) create mode 100644 src/main/target/SYNERDUINOH7A/CMakeLists.txt create mode 100644 src/main/target/SYNERDUINOH7A/config.c create mode 100644 src/main/target/SYNERDUINOH7A/target.c create mode 100644 src/main/target/SYNERDUINOH7A/target.h create mode 100644 src/main/target/SYNERDUINOSTM_F405A/CMakeLists.txt create mode 100644 src/main/target/SYNERDUINOSTM_F405A/target.c create mode 100644 src/main/target/SYNERDUINOSTM_F405A/target.h diff --git a/src/main/target/SYNERDUINOH7A/CMakeLists.txt b/src/main/target/SYNERDUINOH7A/CMakeLists.txt new file mode 100644 index 00000000000..cbaac21d2e1 --- /dev/null +++ b/src/main/target/SYNERDUINOH7A/CMakeLists.txt @@ -0,0 +1 @@ +target_stm32h743xi(SYNERDUINOH7A HSE_MHZ 25 SKIP_RELEASES) \ No newline at end of file diff --git a/src/main/target/SYNERDUINOH7A/config.c b/src/main/target/SYNERDUINOH7A/config.c new file mode 100644 index 00000000000..07f6de46971 --- /dev/null +++ b/src/main/target/SYNERDUINOH7A/config.c @@ -0,0 +1,28 @@ +/* + * 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 "fc/fc_msp_box.h" + +#include "io/piniobox.h" + +void targetConfiguration(void) +{ + pinioBoxConfigMutable()->permanentId[0] = BOX_PERMANENT_ID_USER1; +} diff --git a/src/main/target/SYNERDUINOH7A/target.c b/src/main/target/SYNERDUINOH7A/target.c new file mode 100644 index 00000000000..d8009070561 --- /dev/null +++ b/src/main/target/SYNERDUINOH7A/target.c @@ -0,0 +1,56 @@ +/* + * 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 "platform.h" + +#include "drivers/bus.h" +#include "drivers/io.h" +#include "drivers/pwm_mapping.h" +#include "drivers/timer.h" +#include "drivers/pinio.h" +#include "drivers/sensor.h" +#include "drivers/timer_def_stm32h7xx.h" + +timerHardware_t timerHardware[] = { + DEF_TIM(TIM3, CH3, PB0, TIM_USE_OUTPUT_AUTO, 0, 0), // S1 + DEF_TIM(TIM3, CH4, PB1, TIM_USE_OUTPUT_AUTO, 0, 1), // S2 + + DEF_TIM(TIM5, CH1, PA0, TIM_USE_OUTPUT_AUTO, 0, 2), // S3 + DEF_TIM(TIM5, CH2, PA1, TIM_USE_OUTPUT_AUTO, 0, 3), // S4 + DEF_TIM(TIM5, CH3, PA2, TIM_USE_OUTPUT_AUTO, 0, 4), // S5 + DEF_TIM(TIM5, CH4, PA3, TIM_USE_OUTPUT_AUTO, 0, 5), // S6 + + DEF_TIM(TIM4, CH1, PD12, TIM_USE_OUTPUT_AUTO, 0, 6), // S7 + DEF_TIM(TIM4, CH2, PD13, TIM_USE_OUTPUT_AUTO, 0, 7), // S8 + DEF_TIM(TIM4, CH3, PD14, TIM_USE_OUTPUT_AUTO, 0, 0), // S9 + DEF_TIM(TIM4, CH4, PD15, TIM_USE_OUTPUT_AUTO, 0, 0), // S10 DMA_NONE + + DEF_TIM(TIM15, CH1, PE5, TIM_USE_OUTPUT_AUTO, 0, 0), // S11 + DEF_TIM(TIM15, CH2, PE6, TIM_USE_OUTPUT_AUTO, 0, 0), // S12 DMA_NONE + + DEF_TIM(TIM1, CH1, PA8, TIM_USE_LED, 0, 9), // LED_2812 + DEF_TIM(TIM2, CH1, PA15, TIM_USE_BEEPER, 0, 0), // BEEPER PWM + + // DEF_TIM(TIM8, CH2, PC7, TIM_USE_PPM, 0, 0), // RX6 PPM + //DEF_TIM(TIM8, CH1, PC6, TIM_USE_ANY, 0, 0), // TX6 SoftwareSerial + // DEF_TIM(TIM16, CH1, PB8, TIM_USE_ANY, 0, 0), // RX4 + // DEF_TIM(TIM17, CH1, PB9, TIM_USE_ANY, 0, 0), // TX4 +}; + +const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]); diff --git a/src/main/target/SYNERDUINOH7A/target.h b/src/main/target/SYNERDUINOH7A/target.h new file mode 100644 index 00000000000..d10363d37c4 --- /dev/null +++ b/src/main/target/SYNERDUINOH7A/target.h @@ -0,0 +1,221 @@ +/* + * 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 TARGET_BOARD_IDENTIFIER "SYNH743A" +#define USBD_PRODUCT_STRING "SYNERDUINOH7A" + + +#define USE_TARGET_CONFIG + +#define LED0 PE3 +#define LED1 PE4 + +#define BEEPER PA15 +#define BEEPER_INVERTED +#define BEEPER_PWM_FREQUENCY 2500 + +// *************** IMU generic *********************** +#define USE_DUAL_GYRO +//#define USE_TARGET_IMU_HARDWARE_DESCRIPTORS + +// *************** SPI2 IMU0 BMI BNO **************** +#define USE_SPI +#define USE_SPI_DEVICE_2 +#define SPI2_SCK_PIN PA5 +#define SPI2_MISO_PIN PA6 +#define SPI2_MOSI_PIN PA7 + +#define USE_IMU_BMI160 + +#define IMU_BMI160_ALIGN CW270_DEG +#define BMI160_SPI_BUS BUS_SPI2 +#define BMI160_CS_PIN PA4 + +#define USE_IMU_BMI270 + +#define IMU_BMI270_ALIGN CW270_DEG +#define BMI270_SPI_BUS BUS_SPI2 +#define BMI270_CS_PIN PA4 + + + +// *************** SPI1 IMU1 ICM MPU ************** +#define USE_SPI_DEVICE_1 +#define SPI1_SCK_PIN PB13 +#define SPI1_MISO_PIN PB14 +#define SPI1_MOSI_PIN PB15 + +#define USE_IMU_MPU6000 + +#define IMU_MPU6000_ALIGN CW0_DEG_FLIP +#define MPU6000_SPI_BUS BUS_SPI1 +#define MPU6000_CS_PIN PB12 + +#define USE_IMU_MPU6500 + +#define IMU_MPU6500_ALIGN CW0_DEG_FLIP +#define MPU6500_SPI_BUS BUS_SPI1 +#define MPU6500_CS_PIN PB12 + +#define USE_IMU_MPU9250 + +#define IMU_MPU9250_ALIGN CW90_DEG +#define MPU9250_SPI_BUS BUS_SPI1 +#define MPU9250_CS_PIN PB12 + +#define USE_IMU_ICM42605 + +#define IMU_ICM42605_ALIGN CW90_DEG_FLIP +#define ICM42605_SPI_BUS BUS_SPI1 +#define ICM42605_CS_PIN PB12 + +#define USE_IMU_ICM20689 + +#define IMU_ICM20689_ALIGN CW90_DEG_FLIP +#define ICM20689_SPI_BUS BUS_SPI1 +#define ICM20689_CS_PIN PB12 + +// *************** SPI2 OSD *********************** +// #define USE_SPI_DEVICE_2 +// #define SPI2_SCK_PIN PB13 +// #define SPI2_MISO_PIN PB14 +// #define SPI2_MOSI_PIN PB15 + + +// #define USE_MAX7456 +// #define MAX7456_SPI_BUS BUS_SPI2 +// #define MAX7456_CS_PIN PB12 + + +// *************** I2C /Baro/Mag ********************* +#define USE_I2C +#define USE_I2C_DEVICE_1 +#define I2C1_SCL PB6 +#define I2C1_SDA PB7 + +#define USE_I2C_DEVICE_2 +#define I2C2_SCL PB10 +#define I2C2_SDA PB11 + +#define USE_BARO +#define BARO_I2C_BUS BUS_I2C2 +#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 TEMPERATURE_I2C_BUS BUS_I2C2 +#define PITOT_I2C_BUS BUS_I2C2 + +#define USE_RANGEFINDER +#define RANGEFINDER_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 PD5 +#define UART2_RX_PIN PD6 + +#define USE_UART3 +#define UART3_TX_PIN PD8 +#define UART3_RX_PIN PD9 + +#define USE_UART4 +#define UART4_TX_PIN PB9 +#define UART4_RX_PIN PB8 + +#define USE_UART6 +#define UART6_TX_PIN PC6 +#define UART6_RX_PIN PC7 + +#define USE_UART7 +#define UART7_TX_PIN PE8 +#define UART7_RX_PIN PE7 + +#define USE_UART8 +#define UART8_TX_PIN PE1 +#define UART8_RX_PIN PE0 + +//#define USE_SOFTSERIAL1 +//#define SOFTSERIAL_1_TX_PIN PC6 //TX6 pad +//#define SOFTSERIAL_1_RX_PIN PC6 //TX6 pad + +#define SERIAL_PORT_COUNT 8 + +#define DEFAULT_RX_TYPE RX_TYPE_SERIAL +#define SERIALRX_PROVIDER SERIALRX_CRSF +#define SERIALRX_UART SERIAL_PORT_USART6 + +// *************** SDIO SD BLACKBOX******************* +#define USE_SDCARD +#define USE_SDCARD_SDIO +#define SDCARD_SDIO_DEVICE SDIODEV_1 +#define SDCARD_SDIO_4BIT + +#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT + +// *************** ADC ***************************** +#define USE_ADC +#define ADC_INSTANCE ADC1 + +#define ADC_CHANNEL_1_PIN PC0 //ADC123 VBAT1 +#define ADC_CHANNEL_2_PIN PC1 //ADC123 CURR1 +#define ADC_CHANNEL_3_PIN PC5 //ADC12 RSSI +#define ADC_CHANNEL_4_PIN PC4 //ADC12 AirS +//#define ADC_CHANNEL_5_PIN PA4 //ADC12 VB2 +//#define ADC_CHANNEL_6_PIN PA7 //ADC12 CU2 + +#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 PD10 // VTX power switcher +#define PINIO2_PIN PD11 // 2xCamera switcher + +// *************** LEDSTRIP ************************ +#define USE_LED_STRIP +#define WS2811_PIN PA8 + +#define DEFAULT_FEATURES (FEATURE_TELEMETRY | FEATURE_CURRENT_METER | FEATURE_VBAT | FEATURE_TX_PROF_SEL | FEATURE_BLACKBOX) +#define CURRENT_METER_SCALE 250 + +#define USE_SERIAL_4WAY_BLHELI_INTERFACE + +#define TARGET_IO_PORTA (0xffff & ~(BIT(14) | BIT(13))) +#define TARGET_IO_PORTB 0xffff +#define TARGET_IO_PORTC 0xffff +#define TARGET_IO_PORTD 0xffff +#define TARGET_IO_PORTE 0xffff + +#define MAX_PWM_OUTPUT_PORTS 14 +#define USE_DSHOT +#define USE_ESC_SENSOR + diff --git a/src/main/target/SYNERDUINOSTM_F405A/CMakeLists.txt b/src/main/target/SYNERDUINOSTM_F405A/CMakeLists.txt new file mode 100644 index 00000000000..42b80d3f0b7 --- /dev/null +++ b/src/main/target/SYNERDUINOSTM_F405A/CMakeLists.txt @@ -0,0 +1 @@ +target_stm32f405xg(SYNERDUINOSTM_F405A HSE_MHZ 8 SKIP_RELEASES) diff --git a/src/main/target/SYNERDUINOSTM_F405A/target.c b/src/main/target/SYNERDUINOSTM_F405A/target.c new file mode 100644 index 00000000000..9b61bb13940 --- /dev/null +++ b/src/main/target/SYNERDUINOSTM_F405A/target.c @@ -0,0 +1,61 @@ +/* +* 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 +#include "drivers/bus.h" +#include "drivers/io.h" +#include "drivers/pwm_mapping.h" +#include "drivers/timer.h" +#include "drivers/pinio.h" + +#include "drivers/sensor.h" +#include "drivers/timer_def_stm32f4xx.h" + + +/**Motors & Servos for FW & MC**/ +/**See Datasheet of the WA STM32F405XG**/ +/**Base of the Riza**/ +/**DEF_TIM(Timer , Channle , Pin , Multirotor Motor | Fixwing Motor/Servo , 0 ,0 ))**/ + +timerHardware_t timerHardware[] = { + DEF_TIM(TIM4, CH3, PB8, TIM_USE_OUTPUT_AUTO, 0, 0), // S1 D(2,7,7) UP217 / TIM10, CH1 / TIM4, CH3 / + DEF_TIM(TIM3, CH2, PB5, TIM_USE_OUTPUT_AUTO, 0, 0), // S2 D(2,2,0) UP217 / TIM3, CH2 + DEF_TIM(TIM3, CH1, PB4, TIM_USE_OUTPUT_AUTO, 0, 0), // S3 D(2,6,0) UP256 / TIM3, CH1 + DEF_TIM(TIM2, CH2, PB3, TIM_USE_OUTPUT_AUTO, 0, 0), //0,1) S4 D(2,1,6) UP256 / TIM2, CH2 + DEF_TIM(TIM1, CH3, PA10, TIM_USE_OUTPUT_AUTO, 0, 0), // S5 D(1,7,3) UP173 / TIM1, CH3 + DEF_TIM(TIM1, CH2, PA9, TIM_USE_OUTPUT_AUTO, 0, 0), // S6 D(1,1,3) UP173 / TIM1 ,CH2 + DEF_TIM(TIM12, CH2, PB15, TIM_USE_OUTPUT_AUTO, 0, 0), // S7 D(1,6,3) UP173 / TIM1, CH3N / TIM8, CH3N / TIM12, CH2 / + DEF_TIM(TIM12, CH1, PB14, TIM_USE_OUTPUT_AUTO, 0, 0), // S8 D(1,5,3) UP173 / TIM1, CH2N / TIM8, CH2N / TIM12, CH1 / + //DEF_TIM(TIM14, CH1, PA7, TIM_USE_OUTPUT_AUTO, 0, 0), // S9 DMA NONE / TIM8, CH1N /TIM14, CH1/TIM3, CH2/TIM1, CH1N / + //DEF_TIM(TIM13, CH1, PA6, TIM_USE_OUTPUT_AUTO, 0, 0), // S10 DMA NONE / TIM13, CH1 / TIM3, CH1 + + DEF_TIM(TIM8, CH3N, PB1, TIM_USE_LED, 0, 0), // 2812LED D(1,2,5) / TIM3, CH4 / TIM8, CH3N/ TIM1, CH3N / + DEF_TIM(TIM11, CH1, PB9, TIM_USE_BEEPER, 0, 0), // BEEPER PWM / SPI2_NSS/ TIM4, CH4/ TIM11, CH1 / + + //DEF_TIM(TIM9, CH2, PA3, TIM_USE_PPM, 0, 0), //RX2 + //DEF_TIM(TIM5, CH3, PA2, TIM_USE_ANY, 0, 0), //TX2 softserial1_Tx + + //DEF_TIM(TIM1, CH1, PA8, TIM_USE_ANY, 0, 0), //SSRX2 + //DEF_TIM(TIM1, CH4, PA11, TIM_USE_ANY, 0, 0), //SSTX2 softserial1_Tx + + // DEF_TIM(TIM8, CH2, PC7, TIM_USE_ANY, 0, 0), //SSRX1 + //DEF_TIM(TIM8, CH1, PC6, TIM_USE_ANY, 0, 0), //SSTX1 softserial2_Tx + +}; + +const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]); diff --git a/src/main/target/SYNERDUINOSTM_F405A/target.h b/src/main/target/SYNERDUINOSTM_F405A/target.h new file mode 100644 index 00000000000..c94e6e184a4 --- /dev/null +++ b/src/main/target/SYNERDUINOSTM_F405A/target.h @@ -0,0 +1,270 @@ +/* + * 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 . + */ + +/* +*#define SPI1_SCK_PIN PA5 +*#define SPI1_MISO_PIN PA6 +*#define SPI1_MOSI_PIN PA7 +*#define BMI160_CS_PIN PA4 +*/ +/**See Datasheet of the WA STM32F405XG**/ +/**Base of the RIZA but as Dual IMU and 8PWM**/ + +#pragma once + +#define TARGET_BOARD_IDENTIFIER "SYND_F405A" +#define USBD_PRODUCT_STRING "SYNERDUINOSTM_F405A" + +#define LED0 PB2 //Blue +#define LED1 PA13 //Green +// *************** BLEEP ********************** +#define BEEPER PB9 +#define BEEPER_INVERTED +#define BEEPER_PWM_FREQUENCY 2500 + +// *************** IMU generic *********************** +#define USE_DUAL_GYRO + +// *************** SPI1 Gyro & ACC ICM MPU ********************** +#define USE_SPI +#define USE_SPI_DEVICE_1 + +#define SPI1_SCK_PIN PA5 +#define SPI1_MISO_PIN PA6 +#define SPI1_MOSI_PIN PA7 + +// **** MPU IMU ****// +#define USE_IMU_MPU6000 +#define IMU_MPU6000_ALIGN CW90_DEG +#define MPU6000_CS_PIN PA4 +#define MPU6000_SPI_BUS BUS_SPI1 + +#define USE_IMU_MPU9250 +#define IMU_MPU9250_ALIGN CW90_DEG +#define MPU9250_CS_PIN PA4 +#define MPU9250_SPI_BUS BUS_SPI1 + +#define USE_IMU_MPU6500 +#define IMU_MPU6500_ALIGN CW90_DEG +#define MPU6500_CS_PIN PA4 +#define MPU6500_SPI_BUS BUS_SPI1 + +// **** ICM IMU ****// +#define USE_IMU_ICM20689 +#define IMU_ICM20689_ALIGN CW90_DEG +#define ICM20689_CS_PIN PA4 +#define ICM20689_SPI_BUS BUS_SPI1 + +#define USE_IMU_ICM42605 +#define IMU_ICM42605_ALIGN CW90_DEG +#define ICM42605_CS_PIN PA4 +#define ICM42605_SPI_BUS BUS_SPI1 + + +// *************** SPI2 Gyro & ACC BMI BNO ********************** +#define USE_SPI +#define USE_SPI_DEVICE_2 + +#define SPI2_SCK_PIN PB13 +#define SPI2_MISO_PIN PC2 +#define SPI2_MOSI_PIN PC3 + +// **** BMI IMU ****// +#define USE_IMU_BMI088 +#define IMU_BMI088_ALIGN CW270_DEG +#define BMI160_CS_PIN PB12 +#define BMI160_SPI_BUS BUS_SPI2 + +#define USE_IMU_BMI160 +#define IMU_BMI160_ALIGN CW270_DEG +#define BMI160_CS_PIN PB12 +#define BMI160_SPI_BUS BUS_SPI2 + +#define USE_IMU_BMI270 +#define IMU_BMI270_ALIGN CW270_DEG +#define BMI270_CS_PIN PB12 +#define BMI270_SPI_BUS BUS_SPI2 + +// **** BNO IMU ****// +#define USE_IMU_BNO055 +#define IMU_BNO055_ALIGN CW90_DEG +#define BNO055_CS_PIN PB12 +#define BNO055_SPI_BUS BUS_SPI2 + +// **** SPI OSD ****// +//#define USE_MAX7456 +//#define MAX7456_SPI_BUS BUS_SPI2 +//#define MAX7456_CS_PIN PC1 + +// *************** SPI3 Flash/SD Card ****************uncomment to use SPI3 +//#define USE_SPI_DEVICE_3 +//#define SPI3_SCK_PIN PC10 +//#define SPI3_MISO_PIN PC11 +//#define SPI3_MOSI_PIN PC12 +// *************** SD BLACKBOX******************* +#define USE_SDCARD +// *************** SPI SD *******************uncomment to use SPI3 +//#define USE_SDCARD_SPI +//#define SDCARD_SPI_BUS BUS_SPI3 +//#define SDCARD_CS_PIN PA15 + +// *************** SDIO SD *******************uncomment to use SDIO +#define USE_SDCARD_SDIO +#define SDCARD_SDIO_DEVICE SDIODEV_1 +#define SDCARD_SDIO_4BIT +#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT +//#else +//# define USE_FLASHFS +//# define USE_FLASH_M25P16 +//# define M25P16_SPI_BUS BUS_SPI3 +//# define M25P16_CS_PIN PC13 +//# define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT +//#endif + +// *************** I2C /Baro/Mag/Pitot ******************** + +#define USE_I2C +#define USE_I2C_DEVICE_2 +#define I2C2_SCL PB10 +#define I2C2_SDA PB11 + +//** BARO **// + +#define USE_BARO +#define BARO_I2C_BUS BUS_I2C2 +#define USE_BARO_BMP280 +#define USE_BARO_MS5611 +#define USE_BARO_BMP085 +#define USE_BARO_DPS310 +#define USE_BARO_SPL06 + +//** MAG **// + +#define USE_MAG +#define MAG_I2C_BUS BUS_I2C2 +#define USE_MAG_HMC5883 +#define USE_MAG_QMC5883 +#define USE_MAG_QMC5883P +#define USE_MAG_IST8310 +#define USE_MAG_MAG3110 +#define USE_MAG_LIS3MDL +#define USE_MAG_MPU9250 + +//#define USE_MAG_ALL + + +// *************** I2C PITOT***************************** +#define PITOT_I2C_BUS BUS_I2C2 +// *************** I2C TEMP***************************** +#define TEMPERATURE_I2C_BUS BUS_I2C2 +// *************** I2C RANGE***************************** +#define USE_RANGEFINDER +#define USE_RANGEFINDER_MSP +#define RANGEFINDER_I2C_BUS BUS_I2C2 + + +// *************** UART ***************************** +#define USE_VCP + +//UART1_RX_PIN PA10 // TIM1_CH3 +//UART1_TX_PIN PA9 // TIM1_CH2 + +#define USE_UART1 +#define UART1_TX_PIN PB6 +#define UART1_RX_PIN PB7 + +#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 // TIM8_CH1 +#define UART6_RX_PIN PC7 // TIM8_CH2 + +//#define USE_SOFTSERIAL1 +//#define SOFTSERIAL_1_TX_PIN PC6 +//#define SOFTSERIAL_1_RX_PIN PC7 + +//#define USE_SOFTSERIAL2 +//#define SOFTSERIAL_2_TX_PIN PA11 +//#define SOFTSERIAL_2_RX_PIN PA8 + +#define SERIAL_PORT_COUNT 5 + +#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 PA5 + +// *************** LEDSTRIP ************************ +#define USE_LED_STRIP +#define WS2811_PIN PB1 + +// *************** OTHERS ************************* +#define DEFAULT_FEATURES (FEATURE_TX_PROF_SEL | FEATURE_CURRENT_METER | FEATURE_VBAT | FEATURE_TELEMETRY | FEATURE_SOFTSERIAL ) //FEATURE_OSD | +#define VBAT_SCALE_DEFAULT 2100 +#define CURRENT_METER_SCALE 423 + +//#define USE_SPEKTRUM_BIND +//#define BIND_PIN PA3 // RX2 + +#define USE_DSHOT +#define USE_ESC_SENSOR +#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 (BIT(2)) + +#define MAX_PWM_OUTPUT_PORTS 10 + +#define USE_SERIAL_4WAY_BLHELI_INTERFACE +#define USE_DSHOT +#define USE_DSHOT_DMAR +#define USE_ESC_SENSOR From 09b904b8e941d2aaceeba6d8456d4fafe2954062 Mon Sep 17 00:00:00 2001 From: "Cliff (Synersign)" Date: Sun, 2 Aug 2026 22:59:04 +0800 Subject: [PATCH 4/6] Add files via upload --- src/main/target/SYNERDUINOH7/target.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/target/SYNERDUINOH7/target.h b/src/main/target/SYNERDUINOH7/target.h index cd188baaa3b..2ab9fcfe7fb 100644 --- a/src/main/target/SYNERDUINOH7/target.h +++ b/src/main/target/SYNERDUINOH7/target.h @@ -106,31 +106,31 @@ #define USE_IMU_MPU6000 #define IMU_MPU6000_ALIGN CW90_DEG -#define MPU6000_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define MPU6000_SPI_BUS BUS_SPI2 // BUS_SPI2 #define MPU6000_CS_PIN PA4 // PB12 #define USE_IMU_MPU6500 #define IMU_MPU6500_ALIGN CW90_DEG -#define MPU6500_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define MPU6500_SPI_BUS BUS_SPI2 // BUS_SPI2 #define MPU6500_CS_PIN PA4 // PB12 #define USE_IMU_MPU9250 #define IMU_MPU9250_ALIGN CW90_DEG -#define MPU9250_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define MPU9250_SPI_BUS BUS_SPI2 // BUS_SPI2 #define MPU9250_CS_PIN PA4 // PB12 #define USE_IMU_BMI160 #define IMU_BMI160_ALIGN CW270_DEG -#define BMI160_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define BMI160_SPI_BUS BUS_SPI2 // BUS_SPI2 #define BMI160_CS_PIN PA4 // PB12 #define USE_IMU_BMI270 #define IMU_BMI270_ALIGN CW270_DEG -#define BMI270_SPI_BUS BUS_SPI1 // BUS_SPI2 +#define BMI270_SPI_BUS BUS_SPI2 // BUS_SPI2 #define BMI270_CS_PIN PA4 // PB12 // *************** SPI4 OSD **********Some readon the SPI OLED was there*********** From 5941cb09d5b6119a2b87bd8bc2ac071714590d18 Mon Sep 17 00:00:00 2001 From: "Cliff (Synersign)" Date: Sun, 2 Aug 2026 23:33:10 +0800 Subject: [PATCH 5/6] Add files via upload --- src/main/target/SYNERDUINOH7/target.h | 18 +++++++++--------- src/main/target/SYNERDUINOH7A/target.h | 22 +++++++++++----------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/target/SYNERDUINOH7/target.h b/src/main/target/SYNERDUINOH7/target.h index 2ab9fcfe7fb..d4700cf8859 100644 --- a/src/main/target/SYNERDUINOH7/target.h +++ b/src/main/target/SYNERDUINOH7/target.h @@ -88,49 +88,49 @@ //#define IMU_ICM42605_ALIGN CW90_DEG_FLIP //#define ICM42605_SPI_BUS BUS_SPI1 -//#define ICM42605_CS_PIN PB15 +//#define ICM42605_CS_PIN PB12 //#define USE_IMU_ICM20689 //#define IMU_ICM20689_ALIGN CW90_DEG_FLIP //#define ICM20689_SPI_BUS BUS_SPI1 -//#define ICM20689_CS_PIN PB15 +//#define ICM20689_CS_PIN PB12 // *************** SPI1 IMU0 ****************************** #define USE_SPI -#define USE_SPI_DEVICE_2 +#define USE_SPI_DEVICE_1 #define SPI2_SCK_PIN PA5 // PB13 #define SPI2_MISO_PIN PA6 // PB14 -#define SPI2_MOSI_PIN PA7 // PB15 +#define SPI2_MOSI_PIN PA7 // PB12 #define USE_IMU_MPU6000 #define IMU_MPU6000_ALIGN CW90_DEG -#define MPU6000_SPI_BUS BUS_SPI2 // BUS_SPI2 +#define MPU6000_SPI_BUS BUS_SPI1 // BUS_SPI2 #define MPU6000_CS_PIN PA4 // PB12 #define USE_IMU_MPU6500 #define IMU_MPU6500_ALIGN CW90_DEG -#define MPU6500_SPI_BUS BUS_SPI2 // BUS_SPI2 +#define MPU6500_SPI_BUS BUS_SPI1 // BUS_SPI2 #define MPU6500_CS_PIN PA4 // PB12 #define USE_IMU_MPU9250 #define IMU_MPU9250_ALIGN CW90_DEG -#define MPU9250_SPI_BUS BUS_SPI2 // BUS_SPI2 +#define MPU9250_SPI_BUS BUS_SPI1 // BUS_SPI2 #define MPU9250_CS_PIN PA4 // PB12 #define USE_IMU_BMI160 #define IMU_BMI160_ALIGN CW270_DEG -#define BMI160_SPI_BUS BUS_SPI2 // BUS_SPI2 +#define BMI160_SPI_BUS BUS_SPI1 // BUS_SPI2 #define BMI160_CS_PIN PA4 // PB12 #define USE_IMU_BMI270 #define IMU_BMI270_ALIGN CW270_DEG -#define BMI270_SPI_BUS BUS_SPI2 // BUS_SPI2 +#define BMI270_SPI_BUS BUS_SPI1 // BUS_SPI2 #define BMI270_CS_PIN PA4 // PB12 // *************** SPI4 OSD **********Some readon the SPI OLED was there*********** diff --git a/src/main/target/SYNERDUINOH7A/target.h b/src/main/target/SYNERDUINOH7A/target.h index d10363d37c4..57631dd80fb 100644 --- a/src/main/target/SYNERDUINOH7A/target.h +++ b/src/main/target/SYNERDUINOH7A/target.h @@ -33,9 +33,9 @@ #define USE_DUAL_GYRO //#define USE_TARGET_IMU_HARDWARE_DESCRIPTORS -// *************** SPI2 IMU0 BMI BNO **************** +// *************** SPI1 IMU0 BMI BNO **************** #define USE_SPI -#define USE_SPI_DEVICE_2 +#define USE_SPI_DEVICE_1 #define SPI2_SCK_PIN PA5 #define SPI2_MISO_PIN PA6 #define SPI2_MOSI_PIN PA7 @@ -43,19 +43,19 @@ #define USE_IMU_BMI160 #define IMU_BMI160_ALIGN CW270_DEG -#define BMI160_SPI_BUS BUS_SPI2 +#define BMI160_SPI_BUS BUS_SPI1 #define BMI160_CS_PIN PA4 #define USE_IMU_BMI270 #define IMU_BMI270_ALIGN CW270_DEG -#define BMI270_SPI_BUS BUS_SPI2 +#define BMI270_SPI_BUS BUS_SPI1 #define BMI270_CS_PIN PA4 -// *************** SPI1 IMU1 ICM MPU ************** -#define USE_SPI_DEVICE_1 +// *************** SPI2 IMU1 ICM MPU ************** +#define USE_SPI_DEVICE_2 #define SPI1_SCK_PIN PB13 #define SPI1_MISO_PIN PB14 #define SPI1_MOSI_PIN PB15 @@ -63,31 +63,31 @@ #define USE_IMU_MPU6000 #define IMU_MPU6000_ALIGN CW0_DEG_FLIP -#define MPU6000_SPI_BUS BUS_SPI1 +#define MPU6000_SPI_BUS BUS_SPI2 #define MPU6000_CS_PIN PB12 #define USE_IMU_MPU6500 #define IMU_MPU6500_ALIGN CW0_DEG_FLIP -#define MPU6500_SPI_BUS BUS_SPI1 +#define MPU6500_SPI_BUS BUS_SPI2 #define MPU6500_CS_PIN PB12 #define USE_IMU_MPU9250 #define IMU_MPU9250_ALIGN CW90_DEG -#define MPU9250_SPI_BUS BUS_SPI1 +#define MPU9250_SPI_BUS BUS_SPI2 #define MPU9250_CS_PIN PB12 #define USE_IMU_ICM42605 #define IMU_ICM42605_ALIGN CW90_DEG_FLIP -#define ICM42605_SPI_BUS BUS_SPI1 +#define ICM42605_SPI_BUS BUS_SPI2 #define ICM42605_CS_PIN PB12 #define USE_IMU_ICM20689 #define IMU_ICM20689_ALIGN CW90_DEG_FLIP -#define ICM20689_SPI_BUS BUS_SPI1 +#define ICM20689_SPI_BUS BUS_SPI2 #define ICM20689_CS_PIN PB12 // *************** SPI2 OSD *********************** From 61fef50b2567f9a9718bcbd3b3265e8ad111e56a Mon Sep 17 00:00:00 2001 From: "Cliff (Synersign)" Date: Sun, 2 Aug 2026 23:50:28 +0800 Subject: [PATCH 6/6] Add files via upload --- src/main/target/SYNERDUINOH7A/target.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/target/SYNERDUINOH7A/target.h b/src/main/target/SYNERDUINOH7A/target.h index 57631dd80fb..21103d60684 100644 --- a/src/main/target/SYNERDUINOH7A/target.h +++ b/src/main/target/SYNERDUINOH7A/target.h @@ -36,9 +36,9 @@ // *************** SPI1 IMU0 BMI BNO **************** #define USE_SPI #define USE_SPI_DEVICE_1 -#define SPI2_SCK_PIN PA5 -#define SPI2_MISO_PIN PA6 -#define SPI2_MOSI_PIN PA7 +#define SPI1_SCK_PIN PA5 +#define SPI1_MISO_PIN PA6 +#define SPI1_MOSI_PIN PA7 #define USE_IMU_BMI160 @@ -56,14 +56,14 @@ // *************** SPI2 IMU1 ICM MPU ************** #define USE_SPI_DEVICE_2 -#define SPI1_SCK_PIN PB13 -#define SPI1_MISO_PIN PB14 -#define SPI1_MOSI_PIN PB15 +#define SPI2_SCK_PIN PB13 +#define SPI2_MISO_PIN PB14 +#define SPI2_MOSI_PIN PB15 #define USE_IMU_MPU6000 #define IMU_MPU6000_ALIGN CW0_DEG_FLIP -#define MPU6000_SPI_BUS BUS_SPI2 +#define MPU6000_SPI_BUS BUS_SPI2 #define MPU6000_CS_PIN PB12 #define USE_IMU_MPU6500