diff --git a/.github/workflows/carbonix_build.yml b/.github/workflows/carbonix_build.yml index 7611ea3034..d2f6c8453c 100644 --- a/.github/workflows/carbonix_build.yml +++ b/.github/workflows/carbonix_build.yml @@ -184,7 +184,7 @@ jobs: - name: build Carbonix Periph boards shell: bash run: | - boards=("CarbonixF405" "CarbonixF405-no-crystal" "CarbonixL496") + boards=("CarbonixF405" "CarbonixF405-no-crystal") for board in "${boards[@]}"; do echo "Compiling AP_Periph for $board..." ./waf configure --board "$board" --define=CARBOPILOT=1 @@ -195,7 +195,7 @@ jobs: id: check_files uses: andstor/file-existence-action@v2 with: - files: "build/CubeOrange/*, build/CubeOrange-Volanti/*, build/CubeOrange-Ottano/*, build/sitl/*, build/CarbonixF405/*, build/CarbonixF405-no-crystal/*, build/CarbonixL496/*" + files: "build/CubeOrange/*, build/CubeOrange-Volanti/*, build/CubeOrange-Ottano/*, build/sitl/*, build/CarbonixF405/*, build/CarbonixF405-no-crystal/*" fail: true - name: Extract firmware version and commit id id: extract_info @@ -208,7 +208,7 @@ jobs: - name: Gather build output run: | mkdir -p temp - for dir in CubeOrange CubeOrange-Volanti CubeOrange-Ottano sitl CarbonixF405 CarbonixF405-no-crystal CarbonixL496; do + for dir in CubeOrange CubeOrange-Volanti CubeOrange-Ottano sitl CarbonixF405 CarbonixF405-no-crystal; do mkdir -p temp/$dir/bin cp -v build/$dir/bin/* temp/$dir/bin/ done diff --git a/.github/workflows/cx_build_compare.yml b/.github/workflows/cx_build_compare.yml index 5fd338f66e..51720cdf1a 100644 --- a/.github/workflows/cx_build_compare.yml +++ b/.github/workflows/cx_build_compare.yml @@ -24,7 +24,7 @@ jobs: exclude: - gcc: 10 toolchain: chibios-clang - board: ["CubeOrange-Volanti", "CubeOrange-Ottano", "CarbonixF405", "CarbonixF405-no-crystal", "CarbonixL496"] + board: ["CubeOrange-Volanti", "CubeOrange-Ottano", "CarbonixF405", "CarbonixF405-no-crystal"] steps: # git checkout the PR - uses: actions/checkout@v3 diff --git a/Tools/Carbonix_scripts/carbonix_waf_build.sh b/Tools/Carbonix_scripts/carbonix_waf_build.sh index 19e2dec5ea..785489ecf4 100755 --- a/Tools/Carbonix_scripts/carbonix_waf_build.sh +++ b/Tools/Carbonix_scripts/carbonix_waf_build.sh @@ -29,7 +29,7 @@ for board in "${main_boards[@]}"; do ./waf plane done -periph_boards=("CarbonixF405" "CarbonixF405-no-crystal" "CarbonixL496") +periph_boards=("CarbonixF405" "CarbonixF405-no-crystal") for board in "${periph_boards[@]}"; do echo "Compiling AP_Periph for $board..." diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn-bl.inc b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn-bl.inc deleted file mode 100644 index 17a8e2473d..0000000000 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn-bl.inc +++ /dev/null @@ -1,66 +0,0 @@ -FLASH_RESERVE_START_KB 0 -FLASH_BOOTLOADER_LOAD_KB 60 - -# reserve some space for params -APP_START_OFFSET_KB 4 - -# board ID for firmware load -APJ_BOARD_ID 1064 - -# setup build for a peripheral firmware -env AP_PERIPH 1 - -# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ -OSCILLATOR_HZ 12000000 - -# assume 1024K flash part -FLASH_SIZE_KB 1024 - -STDOUT_SERIAL SD2 -STDOUT_BAUDRATE 57600 - -# order of UARTs -SERIAL_ORDER OTG1 USART2 - -# a fault LED -PA15 LED_BOOTLOADER OUTPUT HIGH # blue -define HAL_LED_ON 0 - -# USART1 -PA2 USART2_TX USART2 SPEED_HIGH NODMA -PA3 USART2_RX USART2 SPEED_HIGH NODMA - -# USB -PA11 OTG_FS_DM OTG1 -PA12 OTG_FS_DP OTG1 - -define HAL_USE_SERIAL TRUE - -define STM32_SERIAL_USE_USART2 TRUE - -define HAL_NO_GPIO_IRQ - -define SERIAL_BUFFERS_SIZE 32 -define HAL_USE_EMPTY_IO TRUE -define PORT_INT_REQUIRED_STACK 64 - -define DMA_RESERVE_SIZE 0 - -MAIN_STACK 0x800 -PROCESS_STACK 0x800 - -define HAL_DISABLE_LOOP_DELAY - -# enable CAN support -PB8 CAN1_RX CAN1 -PB9 CAN1_TX CAN1 - -# debugger support -PA13 JTMS-SWDIO SWD -PA14 JTCK-SWCLK SWD - -# make bl baudrate match debug baudrate for easier debugging -define BOOTLOADER_BAUDRATE 57600 - -# use a small bootloader timeout -define HAL_BOOTLOADER_TIMEOUT 1000 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn.inc b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn.inc deleted file mode 100644 index b605339912..0000000000 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn.inc +++ /dev/null @@ -1,135 +0,0 @@ - -# bootloader starts firmware at 60+ 4k -FLASH_RESERVE_START_KB 64 - -#MCU F405 store parameters in pages 2 and 3 -STORAGE_FLASH_PAGE 2 -define HAL_STORAGE_SIZE 15360 - -# board ID for firmware load -APJ_BOARD_ID 1064 - -# setup build for a peripheral firmware -env AP_PERIPH 1 - -# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ -OSCILLATOR_HZ 12000000 - -#MCU F405 Flash 1024 -FLASH_SIZE_KB 1024 - -# order of UARTs -SERIAL_ORDER OTG1 USART2 USART3 UART4 - -define HAL_CAN_POOL_SIZE 6000 - -# PWM outputs -PA9 TIM1_CH2 TIM1 PWM(1) GPIO(50) -PA8 TIM1_CH1 TIM1 PWM(2) GPIO(51) - -# USART2, ESC telem -PA2 USART2_TX USART2 SPEED_HIGH NODMA -PA3 USART2_RX USART2 SPEED_HIGH NODMA - -# USART3 -PC10 USART3_TX USART3 SPEED_HIGH NODMA -PC11 USART3_RX USART3 SPEED_HIGH NODMA - -# UART4 -PA0 UART4_TX UART4 SPEED_HIGH NODMA -PA1 UART4_RX UART4 SPEED_HIGH NODMA - -# USB -PA11 OTG_FS_DM OTG1 -PA12 OTG_FS_DP OTG1 - -# LED, active low -PA15 LED OUTPUT HIGH GPIO(1) - -# spi2 -PB10 SPI2_SCK SPI2 -PB14 SPI2_MISO SPI2 -PB15 SPI2_MOSI SPI2 - -# CS pins -PC8 BMI088_A_CS CS -PC9 BMI088_G_CS CS - -SPIDEV bmi088_g SPI2 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ -SPIDEV bmi088_a SPI2 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ - -# one I2C bus -PB6 I2C1_SCL I2C1 -PB7 I2C1_SDA I2C1 - -I2C_ORDER I2C1 - -# allow for reboot command for faster development -define HAL_PERIPH_LISTEN_FOR_SERIAL_UART_REBOOT_CMD_PORT 0 - -# debugger support -PA13 JTMS-SWDIO SWD -PA14 JTCK-SWCLK SWD - -define HAL_NO_GPIO_IRQ -define SERIAL_BUFFERS_SIZE 512 - -define DMA_RESERVE_SIZE 2048 - -# stack for fast interrupts -define PORT_INT_REQUIRED_STACK 64 - -# MAIN_STACK is stack for ISR handlers -MAIN_STACK 0x300 - -# PROCESS_STACK controls stack for main thread -PROCESS_STACK 0xA00 - -define HAL_DISABLE_LOOP_DELAY - -# enable CAN support -PB8 CAN1_RX CAN1 -PB9 CAN1_TX CAN1 - -# ADC inputs -define HAL_USE_ADC TRUE -define STM32_ADC_USE_ADC1 TRUE - -PA5 VSENSE1 ADC1 SCALE(1) -PA6 VSENSE2 ADC1 SCALE(1) -PB0 VSENSE3 ADC1 SCALE(1) -PB1 VSENSE4 ADC1 SCALE(1) - -define AP_STATS_ENABLED 1 - -define HAL_NO_GCS -define HAL_NO_MONITOR_THREAD - -define AP_PARAM_MAX_EMBEDDED_PARAM 512 - -# enable ESC control -define HAL_PERIPH_ENABLE_RC_OUT -define HAL_PERIPH_ARM_MONITORING_ENABLE -define HAL_SUPPORT_RCOUT_SERIAL 1 -define HAL_WITH_ESC_TELEM 1 - -# enable GPS -define HAL_PERIPH_ENABLE_GPS -define HAL_PERIPH_GPS_PORT_DEFAULT -1 -define HAL_PERIPH_ENABLE_NOTIFY - -# enable Compass -define HAL_PERIPH_ENABLE_MAG -define AP_COMPASS_QMC5883P_ENABLED 1 -COMPASS QMC5883P I2C:0:0x2C false ROTATION_YAW_180 -define HAL_PROBE_EXTERNAL_I2C_COMPASSES -COMPASS IST8310 I2C:ALL_EXTERNAL:0x0E true ROTATION_NONE - -# enable ADSB -define HAL_PERIPH_ENABLE_ADSB -define HAL_PERIPH_ADSB_PORT_DEFAULT -1 -define HAL_PERIPH_ADSB_BAUD_DEFAULT 57600 - -#enable baro -define HAL_PERIPH_ENABLE_BARO -BARO MS56XX I2C:0:0x76 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat index 4a8d8fc44b..9c713c3b26 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat @@ -3,6 +3,71 @@ # MCU class and specific type MCU STM32F4xx STM32F405xx -include ../CarbonixCommon/cpn-bl.inc +FLASH_RESERVE_START_KB 0 +FLASH_BOOTLOADER_LOAD_KB 60 + +# reserve some space for params +APP_START_OFFSET_KB 4 + +# board ID for firmware load +APJ_BOARD_ID 1064 + +# setup build for a peripheral firmware +env AP_PERIPH 1 + +# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ +OSCILLATOR_HZ 12000000 + +# assume 1024K flash part +FLASH_SIZE_KB 1024 + +STDOUT_SERIAL SD2 +STDOUT_BAUDRATE 57600 + +# order of UARTs +SERIAL_ORDER OTG1 USART2 + +# a fault LED +PA15 LED_BOOTLOADER OUTPUT HIGH # blue +define HAL_LED_ON 0 + +# USART1 +PA2 USART2_TX USART2 SPEED_HIGH NODMA +PA3 USART2_RX USART2 SPEED_HIGH NODMA + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +define HAL_USE_SERIAL TRUE + +define STM32_SERIAL_USE_USART2 TRUE + +define HAL_NO_GPIO_IRQ + +define SERIAL_BUFFERS_SIZE 32 +define HAL_USE_EMPTY_IO TRUE +define PORT_INT_REQUIRED_STACK 64 + +define DMA_RESERVE_SIZE 0 + +MAIN_STACK 0x800 +PROCESS_STACK 0x800 + +define HAL_DISABLE_LOOP_DELAY + +# enable CAN support +PB8 CAN1_RX CAN1 +PB9 CAN1_TX CAN1 + +# debugger support +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# make bl baudrate match debug baudrate for easier debugging +define BOOTLOADER_BAUDRATE 57600 + +# use a small bootloader timeout +define HAL_BOOTLOADER_TIMEOUT 1000 define CAN_APP_NODE_NAME "org.ardupilot.CarbonixF405" diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat index 104870c7b1..0c8ea6f848 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat @@ -3,6 +3,139 @@ # MCU class and specific type MCU STM32F4xx STM32F405xx -include ../CarbonixCommon/cpn.inc +# bootloader starts firmware at 60+ 4k +FLASH_RESERVE_START_KB 64 + +#MCU F405 store parameters in pages 2 and 3 +STORAGE_FLASH_PAGE 2 +define HAL_STORAGE_SIZE 15360 + +# board ID for firmware load +APJ_BOARD_ID 1064 + +# setup build for a peripheral firmware +env AP_PERIPH 1 + +# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ +OSCILLATOR_HZ 12000000 + +#MCU F405 Flash 1024 +FLASH_SIZE_KB 1024 + +# order of UARTs +SERIAL_ORDER OTG1 USART2 USART3 UART4 + +define HAL_CAN_POOL_SIZE 6000 + +# PWM outputs +PA9 TIM1_CH2 TIM1 PWM(1) GPIO(50) +PA8 TIM1_CH1 TIM1 PWM(2) GPIO(51) + +# USART2, ESC telem +PA2 USART2_TX USART2 SPEED_HIGH NODMA +PA3 USART2_RX USART2 SPEED_HIGH NODMA + +# USART3 +PC10 USART3_TX USART3 SPEED_HIGH NODMA +PC11 USART3_RX USART3 SPEED_HIGH NODMA + +# UART4 +PA0 UART4_TX UART4 SPEED_HIGH NODMA +PA1 UART4_RX UART4 SPEED_HIGH NODMA + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# LED, active low +PA15 LED OUTPUT HIGH GPIO(1) + +# spi2 +PB10 SPI2_SCK SPI2 +PB14 SPI2_MISO SPI2 +PB15 SPI2_MOSI SPI2 + +# CS pins +PC8 BMI088_A_CS CS +PC9 BMI088_G_CS CS + +SPIDEV bmi088_g SPI2 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ +SPIDEV bmi088_a SPI2 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ + +# one I2C bus +PB6 I2C1_SCL I2C1 +PB7 I2C1_SDA I2C1 + +I2C_ORDER I2C1 + +# allow for reboot command for faster development +define HAL_PERIPH_LISTEN_FOR_SERIAL_UART_REBOOT_CMD_PORT 0 + +# debugger support +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +define HAL_NO_GPIO_IRQ +define SERIAL_BUFFERS_SIZE 512 + +define DMA_RESERVE_SIZE 2048 + +# stack for fast interrupts +define PORT_INT_REQUIRED_STACK 64 + +# MAIN_STACK is stack for ISR handlers +MAIN_STACK 0x300 + +# PROCESS_STACK controls stack for main thread +PROCESS_STACK 0xA00 + +define HAL_DISABLE_LOOP_DELAY + +# enable CAN support +PB8 CAN1_RX CAN1 +PB9 CAN1_TX CAN1 + +# ADC inputs +define HAL_USE_ADC TRUE +define STM32_ADC_USE_ADC1 TRUE + +PA5 VSENSE1 ADC1 SCALE(1) +PA6 VSENSE2 ADC1 SCALE(1) +PB0 VSENSE3 ADC1 SCALE(1) +PB1 VSENSE4 ADC1 SCALE(1) + +define AP_STATS_ENABLED 1 + +define HAL_NO_GCS +define HAL_NO_MONITOR_THREAD + +define AP_PARAM_MAX_EMBEDDED_PARAM 512 + +# enable ESC control +define HAL_PERIPH_ENABLE_RC_OUT +define HAL_PERIPH_ARM_MONITORING_ENABLE +define HAL_SUPPORT_RCOUT_SERIAL 1 +define HAL_WITH_ESC_TELEM 1 + +# enable GPS +define HAL_PERIPH_ENABLE_GPS +define HAL_PERIPH_GPS_PORT_DEFAULT -1 +define HAL_PERIPH_ENABLE_NOTIFY + +# enable Compass +define HAL_PERIPH_ENABLE_MAG +define AP_COMPASS_QMC5883P_ENABLED 1 +COMPASS QMC5883P I2C:0:0x2C false ROTATION_YAW_180 +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +COMPASS IST8310 I2C:ALL_EXTERNAL:0x0E true ROTATION_NONE + +# enable ADSB +define HAL_PERIPH_ENABLE_ADSB +define HAL_PERIPH_ADSB_PORT_DEFAULT -1 +define HAL_PERIPH_ADSB_BAUD_DEFAULT 57600 + +#enable baro +define HAL_PERIPH_ENABLE_BARO +BARO MS56XX I2C:0:0x76 define CAN_APP_NODE_NAME "org.ardupilot.CarbonixF405" diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef-bl.dat deleted file mode 100644 index 01871d3d40..0000000000 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef-bl.dat +++ /dev/null @@ -1,27 +0,0 @@ -# hw definition file for processing by chibios_pins.py - -# MCU class and specific type -MCU STM32L496 STM32L496xx - -include ../CarbonixCommon/cpn-bl.inc - -undef FLASH_BOOTLOADER_LOAD_KB -FLASH_BOOTLOADER_LOAD_KB 36 - -# board ID for firmware load -undef APJ_BOARD_ID -APJ_BOARD_ID 1053 - -# assume 256k flash part -undef FLASH_SIZE_KB -FLASH_SIZE_KB 256 - -# disable debugger support (disabled as conflicts with LED) -undef PA13 -undef PA14 - -# a fault LED -undef PA15 -PA13 LED_BOOTLOADER OUTPUT HIGH # blue - -define CAN_APP_NODE_NAME "org.ardupilot.CarbonixL496" diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef.dat deleted file mode 100644 index a33f2716ec..0000000000 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef.dat +++ /dev/null @@ -1,60 +0,0 @@ -# hw definition file for processing by chibios_pins.py - -# MCU class and specific type -MCU STM32L496 STM32L496xx - -include ../CarbonixCommon/cpn.inc - -# bootloader starts firmware at 36k + 4k (STORAGE_FLASH) -undef FLASH_RESERVE_START_KB -FLASH_RESERVE_START_KB 40 - -# store parameters in pages 18 and 19 -undef STORAGE_FLASH_PAGE -STORAGE_FLASH_PAGE 18 -undef HAL_STORAGE_SIZE -define HAL_STORAGE_SIZE 800 - -# board ID for firmware load -undef APJ_BOARD_ID -APJ_BOARD_ID 1053 - -# assume the 256k flash part -undef FLASH_SIZE_KB -FLASH_SIZE_KB 256 - -PC6 TIM3_CH1 TIM3 PWM(3) GPIO(52) # LED - -# USART3 -undef PC10 -undef PC11 -PC4 USART3_TX USART3 SPEED_HIGH NODMA -PC5 USART3_RX USART3 SPEED_HIGH NODMA - -# disable debugger support (disabled as conflicts with LED) -undef PA13 -undef PA14 - -# LED, active low -undef PA15 -PA13 LED OUTPUT HIGH GPIO(1) - -# one I2C bus -undef I2C1 -undef PB6 -PB6 I2C4_SCL I2C4 -undef PB7 -PB7 I2C4_SDA I2C4 - -undef I2C_ORDER -I2C_ORDER I2C4 - -# Reassign VSENSE pins -undef PA5 -undef PA6 -undef PB0 -PA4 VSENSE1 ADC1 SCALE(1) -PA5 VSENSE2 ADC1 SCALE(1) -PA6 VSENSE3 ADC1 SCALE(1) - -define CAN_APP_NODE_NAME "org.ardupilot.CarbonixL496"