From 4ecf41d3258eaaed4d3677455bae610477d64ae4 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 31 Aug 2023 17:46:08 +0100 Subject: [PATCH] hwdef: SpeedyBeeF405Mini --- .../hwdef/SpeedyBeeF405Mini/README.md | 102 ++++++++++++ .../SpeedyBee_F405_Mini_Board.JPG | Bin 0 -> 83874 bytes .../hwdef/SpeedyBeeF405Mini/hwdef-bl.dat | 43 +++++ .../hwdef/SpeedyBeeF405Mini/hwdef.dat | 152 ++++++++++++++++++ 4 files changed, 297 insertions(+) create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/README.md create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/SpeedyBee_F405_Mini_Board.JPG create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef-bl.dat create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/README.md b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/README.md new file mode 100644 index 0000000000..1954a85c27 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/README.md @@ -0,0 +1,102 @@ +# SpeedyBee F405 Mini Flight Controller + +The SpeedyBee F405 Mini is a flight controller produced by [SpeedyBee](http://www.speedybee.com/). + +## Features + + - STM32F405 microcontroller + - ICM42688-P IMU + - DPS310 barometer + - 8Mb flash logging + - AT7456E OSD + - 6 UARTs + - 5 PWM outputs + +## Pinout + +![SpeedyBee F405 Mini](SpeedyBee_F405_Mini_Board.JPG "SpeedyBee F405 Mini") + +## UART Mapping + +The UARTs are marked Rn and Tn in the above pinouts. The Rn pin is the +receive pin for UARTn. The Tn pin is the transmit pin for UARTn. + + - SERIAL0 -> USB + - SERIAL1 -> UART1 (DJI-VTX, DMA-enabled) + - SERIAL2 -> UART2 (RX, DMA-enabled) + - SERIAL3 -> UART3 + - SERIAL4 -> UART4 (connected to internal BT module, not currently usable by ArduPilot) + - SERIAL5 -> UART5 (ESC Telemetry, RX only on ESC connector) + - SERIAL6 -> UART6 (GPS, DMA-enabled) + +## RC Input + +RC input is configured on the R2 (UART2_RX) pin for most RC unidirectional protocols except SBUS which should be applied at the SBUS pin. PPM is not supported. +For Fport, a bi-directional inverter will be required. See https://ardupilot.org/plane/docs/common-connecting-sport-fport.html +For CRSF/ELRS/SRXL2 connection of the receiver to T2 will also be required. + +## FrSky Telemetry + +FrSky Telemetry is supported using the Tx pin of any UART including SERIAL2/UART2. You need to set the following parameters to enable support for FrSky S.PORT (example shows SERIAL3). + + - SERIAL3_PROTOCOL 10 + - SERIAL3_OPTIONS 7 + +## OSD Support + +The SpeedyBee F405 Mini supports OSD using OSD_TYPE 1 (MAX7456 driver). + +## VTX Support + +The JST-GH-6P connector supports a standard DJI HD VTX connection. Pin 1 of the connector is 9v so be careful not to connect +this to a peripheral requiring 5v. + +## PWM Output + +The SpeedyBee F405 Mini supports up to 5 PWM outputs. The pads for motor output +M1 to M4 on the motor connector, plus M5 for LED strip or another +PWM output. + +The PWM is in 3 groups: + + - PWM 1-2 in group1 + - PWM 3-4 in group2 + - PWM 5 in group3 + +Channels within the same group need to use the same output rate. If +any channel in a group uses DShot then all channels in the group need +to use DShot. Channels 1-4 support bi-directional DShot. + +## Battery Monitoring + +The board has a internal voltage sensor and connections on the ESC connector for an external current sensor input. +The voltage sensor can handle up to 6S. +LiPo batteries. + +The default battery parameters are: + + - BATT_MONITOR 4 + - BATT_VOLT_PIN 10 + - BATT_CURR_PIN 11 + - BATT_VOLT_MULT 11.2 + - BATT_AMP_PERVLT 40 (will need to be adjusted for whichever current sensor is attached) + + +## RSSI + +Analog RSSI input (pin 15) + +## Compass + +The SpeedyBee F405 Mini does not have a builtin compass, but you can attach an external compass using I2C on the SDA and SCL pads. + +## Loading Firmware + +Initial firmware load can be done with DFU by plugging in USB with the +bootloader button pressed. Then you should load the "with_bl.hex" +firmware, using your favourite DFU loading tool. + +Once the initial firmware is loaded you can update the firmware using +any ArduPilot ground station software. Updates should be done with the +*.apj firmware files. + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/SpeedyBee_F405_Mini_Board.JPG b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/SpeedyBee_F405_Mini_Board.JPG new file mode 100644 index 0000000000000000000000000000000000000000..1b091e18fe15a8ed7ed8ab9a1de4e4e3d54c644d GIT binary patch literal 83874 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 literal 0 HcmV?d00001 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef-bl.dat new file mode 100644 index 0000000000..e043e37c01 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef-bl.dat @@ -0,0 +1,43 @@ + +# hw definition file for processing by chibios_hwdef.py +# for SPEEDYBEEF405MINI hardware. +# thanks to betaflight for pin information + +# MCU class and specific type +MCU STM32F4xx STM32F405xx + +# board ID for firmware load +APJ_BOARD_ID 1135 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +FLASH_SIZE_KB 1024 + +# bootloader starts at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 48 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 + +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# default to all pins low to avoid ESD issues +DEFAULTGPIO OUTPUT LOW PULLDOWN + + +# Chip select pins +PC14 FLASH1_CS CS +PB12 OSD1_CS CS +PA4 GYRO1_CS CS + +PA8 LED_BOOTLOADER OUTPUT LOW +define HAL_LED_ON 0 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat new file mode 100644 index 0000000000..9717ab8d56 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat @@ -0,0 +1,152 @@ + +# hw definition file for processing by chibios_hwdef.py +# for SPEEDYBEEF405MINI hardware. +# thanks to betaflight for pin information + +# MCU class and specific type +MCU STM32F4xx STM32F405xx + +# board ID for firmware load +APJ_BOARD_ID 1135 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +FLASH_SIZE_KB 1024 + +# bootloader takes first sector +FLASH_RESERVE_START_KB 48 + +define HAL_STORAGE_SIZE 16384 +define STORAGE_FLASH_PAGE 1 + +# SPI devices + +# SPI1 +PA5 SPI1_SCK SPI1 +PA6 SPI1_MISO SPI1 +PA7 SPI1_MOSI SPI1 + +# SPI2 +PB13 SPI2_SCK SPI2 +PC2 SPI2_MISO SPI2 +PC3 SPI2_MOSI SPI2 + +# SPI3 +PB3 SPI3_SCK SPI3 +PB4 SPI3_MISO SPI3 +PB5 SPI3_MOSI SPI3 + +# Chip select pins +PC14 FLASH1_CS CS +PB12 OSD1_CS CS +PA4 GYRO1_CS CS + +# Beeper +PC15 BUZZER OUTPUT GPIO(80) LOW +define HAL_BUZZER_PIN 80 + +# SERIAL ports +SERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 UART5 USART6 +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# USART1 (DJI) +PA10 USART1_RX USART1 +PA9 USART1_TX USART1 +define DEFAULT_SERIAL1_PROTOCOL SerialProtocol_DJI_FPV + +# USART2 (RX/SBUS) +PA2 USART2_TX USART2 +PA3 USART2_RX USART2 +define DEFAULT_SERIAL2_PROTOCOL SerialProtocol_RCIN + +# USART3 +PC10 USART3_TX USART3 +PC11 USART3_RX USART3 +define DEFAULT_SERIAL3_PROTOCOL SerialProtocol_None + +# UART4 (Bluetooth) +PA0 UART4_TX UART4 NODMA +PA1 UART4_RX UART4 NODMA +define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_None + +# UART5 (ESC) +PD2 UART5_RX UART5 NODMA +define DEFAULT_SERIAL5_PROTOCOL SerialProtocol_ESCTelemetry + +# USART6 (GPS) +PC6 USART6_TX USART6 +PC7 USART6_RX USART6 +define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_GPS + +# I2C ports +I2C_ORDER I2C1 +# I2C1 +PB8 I2C1_SCL I2C1 +PB9 I2C1_SDA I2C1 + +# Servos +PB14 CAMERA1 OUTPUT GPIO(70) LOW +define RELAY2_PIN_DEFAULT 70 + +# ADC ports + +# ADC1 +PC0 BATT_VOLTAGE_SENS ADC1 SCALE(1) +define HAL_BATT_VOLT_PIN 10 +define HAL_BATT_VOLT_SCALE 11.0 +PC1 BATT_CURRENT_SENS ADC1 SCALE(1) +define HAL_BATT_CURR_PIN 11 +define HAL_BATT_CURR_SCALE 40.0 +PC5 RSSI_ADC ADC1 +define BOARD_RSSI_ANA_PIN 15 +define HAL_BATT_MONITOR_DEFAULT 4 + +# MOTORS +PB6 TIM4_CH1 TIM4 PWM(1) GPIO(50) # M1 +PB7 TIM4_CH2 TIM4 PWM(2) GPIO(51) BIDIR # M2 +PB1 TIM3_CH4 TIM3 PWM(3) GPIO(52) BIDIR # M3 +PB0 TIM3_CH3 TIM3 PWM(4) GPIO(53) # M4 + +# LEDs +PA8 TIM1_CH1 TIM1 PWM(5) GPIO(54) # M5 + +PC13 LED0 OUTPUT LOW GPIO(90) +define HAL_GPIO_A_LED_PIN 90 +define HAL_GPIO_LED_OFF 1 + +# Dataflash setup +SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ + +define HAL_LOGGING_DATAFLASH_ENABLED 1 + +# OSD setup +SPIDEV osd SPI2 DEVID1 OSD1_CS MODE0 10*MHZ 10*MHZ + +define OSD_ENABLED 1 +define HAL_OSD_TYPE_DEFAULT 1 +ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin + +# Barometer setup +BARO DPS310 I2C:0:0x76 + +# IMU setup + +# IMU setup +SPIDEV imu1 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 8*MHZ + +IMU Invensensev3 SPI:imu1 ROTATION_PITCH_180_YAW_90 +#DMA_NOSHARE TIM4_UP TIM3_UP SPI1* +DMA_PRIORITY TIM4* TIM3* SPI1* + +# no built-in compass, but probe the i2c bus for all possible +# external compass types +define ALLOW_ARM_NO_COMPASS +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_I2C_INTERNAL_MASK 0 +define HAL_COMPASS_AUTO_ROT_DEFAULT 2 +define HAL_DEFAULT_INS_FAST_SAMPLE 3 +# Motor order implies Betaflight/X for standard ESCs +define HAL_FRAME_TYPE_DEFAULT 12