Skip to content

added radian f4 and h7 hardware definitions #30053

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Setup default params
LOG_FILE_BUFSIZE 16
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this the default anyway?

48 changes: 48 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/Aerium-RadianF405/hwdef-bl.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# hw definition file for processing by chibios_pins.py
# for minimal F405 bootloader

# MCU class and specific type
MCU STM32F4xx STM32F405xx

# board ID for firmware load
APJ_BOARD_ID 90

# crystal frequency
OSCILLATOR_HZ 8000000

FLASH_SIZE_KB 1024
FLASH_USE_MAX_KB 16

# bootloader is installed at zero offset
FLASH_RESERVE_START_KB 0

# LEDs
PB3 LED_ACTIVITY OUTPUT HIGH GPIO(0)
define HAL_LED_ON 0

# the location where the bootloader will put the firmware
FLASH_BOOTLOADER_LOAD_KB 64

# order of UARTs
SERIAL_ORDER OTG1

# USB setup
PA11 OTG_FS_DM OTG1
PA12 OTG_FS_DP OTG1
undef HAL_GPIO_PIN_VBUS
undef HAL_ENABLE_VBUS_CHECK

define HAL_USE_EMPTY_STORAGE 1
define HAL_STORAGE_SIZE 15360

USB_VENDOR 0x1021
USB_PRODUCT 0x1090
USB_STRING_MANUFACTURER "Aerium"
USB_STRING_PRODUCT "RadianF405-Bootloader"

# Add CS pins to ensure they are high in bootloader
PB4 BMI270_CS CS
PA4 LPS22HB_CS CS
PB12 BMP280_CS CS
PC13 SDCARD_CS CS
PC3 ICM42688_CS CS
204 changes: 204 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/Aerium-RadianF405/hwdef.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
# hw definition file for processing by chibios_pins.py
# Omnibus F4 PRO with on-board current sensor
# with F405 mcu, mpu6000 imu, bmp280 barometer, 7456 series osd and sdcard

MCU STM32F4xx STM32F405xx

HAL_CHIBIOS_ARCH_F405 1

# board ID for firmware load
APJ_BOARD_ID 90

# crystal frequency
OSCILLATOR_HZ 8000000

STM32_ST_USE_TIMER 4
define CH_CFG_ST_RESOLUTION 16

# flash size
FLASH_SIZE_KB 1024
FLASH_RESERVE_START_KB 64

define STORAGE_FLASH_PAGE 1
define HAL_STORAGE_SIZE 15360

# spi1 bus for IMU
PA5 SPI1_SCK SPI1
PA6 SPI1_MISO SPI1
PA7 SPI1_MOSI SPI1

# spi2 for Barometer
PB13 SPI2_SCK SPI2
PB14 SPI2_MISO SPI2
PB15 SPI2_MOSI SPI2

# spi3 for SD-Card
PC10 SPI3_SCK SPI3
PC11 SPI3_MISO SPI3
PC12 SPI3_MOSI SPI3

# CS pins
PB4 BMI270_CS CS
PA4 LPS22HB_CS CS
PB12 BMP280_CS CS
PC13 SDCARD_CS CS
PC3 ICM42688_CS CS

# DRDY pins
PC4 ICM42688P_DRDY INPUT
PA15 BMI270_DRDY INPUT

# SPI devices
SPIDEV bmi270 SPI1 DEVID1 BMI270_CS MODE3 10*MHZ 10*MHZ
SPIDEV icm42688 SPI2 DEVID1 ICM42688_CS MODE3 2*MHZ 16*MHZ
SPIDEV bmp280 SPI2 DEVID2 BMP280_CS MODE3 1*MHZ 8*MHZ
SPIDEV lps22h SPI1 DEVID2 LPS22HB_CS MODE3 1*MHZ 10*MHZ
SPIDEV sdcard SPI3 DEVID1 SDCARD_CS MODE0 400*KHZ 25*MHZ

define HAL_OS_FATFS_IO 1
define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS"
define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN"

# order of I2C buses
I2C_ORDER I2C1 I2C2

# order of UARTs
SERIAL_ORDER OTG1 USART6 USART3 USART1

#adc
PC5 BATT_CURRENT_SENS ADC1 SCALE(1)
PC0 BATT_VOLTAGE_SENS ADC1 SCALE(1)

PC1 BATT2_CURRENT_SENS ADC1 SCALE(1)
PC2 BATT2_VOLTAGE_SENS ADC1 SCALE(1)

# pwm output. 1 - 4 on main header, 5 & 6 on separated header w/o 5V supply, 7 & 8 on CH5 and CH6 pads
PB1 TIM1_CH3N TIM1 PWM(1) GPIO(50)
PB0 TIM1_CH2N TIM1 PWM(2) GPIO(51)
PA8 TIM1_CH1 TIM1 PWM(3) GPIO(52)
PA3 TIM2_CH4 TIM2 PWM(4) GPIO(53)
PA2 TIM2_CH3 TIM2 PWM(5) GPIO(54)
PA1 TIM2_CH2 TIM2 PWM(6) GPIO(55)
PC9 TIM8_CH4 TIM8 PWM(7) GPIO(56)
PC8 TIM8_CH3 TIM8 PWM(8) GPIO(57)

# CAN Bus
PB8 CAN1_RX CAN1
PB9 CAN1_TX CAN1
define CAN_APP_NODE_NAME "org.ardupilot.aerium"
define UAVCAN_NODE_POOL_SIZE 1024

# note that this board needs PULLUP on I2C pins
PB6 I2C1_SCL I2C1
PB7 I2C1_SDA I2C1

# I2C2 for compass with BRD_ALT_CONFIG=1 These pins can also be used as USART3
PB10 I2C2_SCL I2C2 ALT(1)
PB11 I2C2_SDA I2C2 ALT(1)

# USART3 with BRD_ALT_CONFIG=0
PB10 USART3_TX USART3 ALT(0)
PB11 USART3_RX USART3 ALT(0)

PA10 USART1_RX USART1
PA9 USART1_TX USART1

PC6 USART6_TX USART6
PC7 USART6_RX USART6

# LEDs & safety
PC15 LED_SAFETY OUTPUT
PC14 SAFETY_IN INPUT PULLDOWN
PB3 LED_BLUE OUTPUT HIGH GPIO(0)

# Alarm
PA0 TIM5_CH1 TIM5 GPIO(58) ALARM LOW
define BUZZER_ENABLE_DEFAULT 0

# USB
PA11 OTG_FS_DM OTG1
PA12 OTG_FS_DP OTG1

# USB setup
USB_VENDOR 0x1021
USB_PRODUCT 0x1090
USB_STRING_MANUFACTURER "Aerium"
USB_STRING_PRODUCT "RadianF405"

# RC Input
PB5 TIM3_CH2 TIM3 RCININT PULLDOWN LOW

# two Compass
COMPASS BMM150 I2C:0:0x10 false ROTATION_NONE
COMPASS LIS3MDL I2C:0:0x1C false ROTATION_NONE
define HAL_PROBE_EXTERNAL_I2C_COMPASSES
# by default first I2C bus is internal
define HAL_I2C_INTERNAL_MASK 1

# two IMU
IMU BMI270 SPI:bmi270 ROTATION_ROLL_180_YAW_270
IMU Invensensev3 SPI:icm42688 ROTATION_NONE

# two baro
BARO BMP280 SPI:bmp280
BARO LPS2XH SPI:lps22h

# define default battery setup
define HAL_BATT_VOLT_PIN 10
define HAL_BATT_CURR_PIN 15
define HAL_BATT2_VOLT_PIN 12
define HAL_BATT2_CURR_PIN 11
define HAL_BATT_VOLT_SCALE 1
define HAL_BATT2_VOLT_SCALE 1
define HAL_BATT_CURR_SCALE 1
define HAL_BATT2_CURR_SCALE 1

define CAN_D1_UC_POOL 1024

# For complementary channels to work we define this
define STM32_PWM_USE_ADVANCED TRUE

# reduce max size of embedded params for apj_tool.py
define AP_PARAM_MAX_EMBEDDED_PARAM 1024

# --------------------- save flash ----------------------
include ../include/minimize_features.inc

undef HAL_VISUALODOM_ENABLED
define HAL_VISUALODOM_ENABLED 1

undef MODE_GUIDED_NOGPS_ENABLED
define MODE_GUIDED_NOGPS_ENABLED 1

undef GPS_MOVING_BASELINE
define GPS_MOVING_BASELINE 1

undef AP_FOLLOW_ENABLED
define AP_FOLLOW_ENABLED 1

undef MODE_FOLLOW_ENABLED
define MODE_FOLLOW_ENABLED 1

undef AP_OPTICALFLOW_ENABLED
define AP_OPTICALFLOW_ENABLED 1

undef MODE_FLOWHOLD_ENABLED
define MODE_FLOWHOLD_ENABLED 1

undef HAL_BARO_WIND_COMP_ENABLED
define HAL_BARO_WIND_COMP_ENABLED 1

undef HAL_PARACHUTE_ENABLED
define HAL_PARACHUTE_ENABLED 1

undef HAL_PICCOLO_CAN_ENABLE
define HAL_PICCOLO_CAN_ENABLE 1

undef HAL_ENABLE_DRONECAN_DRIVERS
define HAL_ENABLE_DRONECAN_DRIVERS 1

undef AC_NAV_GUIDED
define AC_NAV_GUIDED 1

undef WEATHERVANE_ENABLED
define WEATHERVANE_ENABLED 1
49 changes: 49 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/Aerium-RadianH743/hwdef-bl.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# hw definition file for processing by chibios_pins.py
# for Aerium Radian H743 bootloader

# MCU class and specific type
MCU STM32H7xx STM32H743xx

# board ID for firmware load
APJ_BOARD_ID 91

# crystal frequency, setup to use external oscillator
OSCILLATOR_HZ 8000000

FLASH_SIZE_KB 2048

# bootloader starts at zero offset
FLASH_RESERVE_START_KB 0

# the location where the bootloader will put the firmware
# the H743 has 128k sectors
FLASH_BOOTLOADER_LOAD_KB 128


# order of UARTs (and USB). Allow bootloading on USB and telem1
SERIAL_ORDER OTG1 UART7

# UART7 (telem1)
PE7 UART7_RX UART7 NODMA
PE8 UART7_TX UART7 NODMA

# PA10 IO-debug-console
PA11 OTG_FS_DM OTG1
PA12 OTG_FS_DP OTG1

PA13 JTMS-SWDIO SWD
PA14 JTCK-SWCLK SWD

# make sure Vsw is on during bootloader
PD10 PINIO1 OUTPUT LOW

PE3 LED_BOOTLOADER OUTPUT LOW
define HAL_LED_ON 0

# Add CS pins to ensure they are high in bootloader
PC15 IMU1_CS CS
PB12 MAX7456_CS CS
PE11 IMU2_CS CS
PD4 EXT_CS1 CS
PE2 EXT_CS2 CS
PC13 IMU3_CS CS
Loading
Loading