Hi everyone,
I’m trying to bring up ArduPilot on my custom board for the first time. Below is the hardware definition I’m using. The board uses an STM32 microcontroller with an 8MHz external crystal.
I’ve compiled and flashed the firmware successfully using waf
and ST-Link, but unfortunately, the board is not booting — I get no MAVLink data on the serial port, and there are no signs of life (no heartbeat, no console output, etc.).
This is my first attempt at porting ArduPilot to custom hardware, and I would really appreciate any guidance or help from the community.
Hardware Summary:
MCU STM32F4xx STM32F412Rx
APJ_BOARD_ID 412
define CHIBIOS_SHORT_BOARD_NAME “F412Mini”
OSCILLATOR_HZ 8000000
define HAL_USE_HSE 1
define HAL_USE_HSI 0
define HAL_STORAGE_SIZE 16384
FLASH_SIZE_KB 1024
FLASH_RESERVE_START_KB 48
Console via USART2
STDOUT_SERIAL SD2
STDOUT_BAUDRATE 115200
SERIAL_ORDER USART2 EMPTY EMPTY EMPTY
SERIAL1_PROTOCOL 1 # MAVLink1
SERIAL1_BAUD 115200
USART2 pins
PA2 USART2_TX USART2
PA3 USART2_RX USART2
I2C1 (PF0 - SDA, PF1 - SCL)
#PB7 I2C1_SDA
#PB6 I2C1_SCL
PC0 MGND ADC1
PC1 PWM4_SENSE ADC1
PC2 PWM2_SENSE ADC1
PC3 PWM1_SENSE ADC1
PA0 PWM3_SENSE ADC1
define HAL_I2C_REQUIRED 1
LED and heartbeat (optional, useful for testing)
PB5 LED_BLUE OUTPUT LOW GPIO(0)
define HAL_GPIO_HEARTBEAT 0
Disable all sensor checks (so firmware won’t crash if IMU/Baro are absent)
define DISABLE_SENSOR_CHECKS 1
We’re not using ArduPilot bootloader
define AP_BOOTLOADER_FLASHING_ENABLED 0
Issues Observed:
1.No MAVLink data over UART
2.No heartbeat or serial output
3.No visible signs of firmware booting
If anyone could take a quick look or suggest debugging steps (especially regarding clock config or minimal boot verification), it would mean a lot!
Thanks in advance!