Difficulty porting & Bootloader: Request for the USB Device descriptor failed

I am trying to install the latest (build from source, main branch, Copter) on a new board I’m working on. I previously got it working but I needed to restart my build process with a clean build.

Unfortunately now it doesn’t seem to be working. I’ve forked the main Ardupilot repo, copied my board definition (reproduced below). Trying to build the bootloader, I can get it to build and install, and can install it using the CubeMX programmer in DFU mode.

But when I then reboot the autopilot into normal mode it fails to properly connect through USB, giving a “Request for the USB Device descriptor failed” error under Windows so I can’t update the main system through Mission Planner.

The full board definition file is below. (A 753 is a 743 with some crypto-goop).

Suggestions?

# hw definition file for processing by chibios_pins.py
# for Kestrel
# MCU class and specific type
MCU STM32H7xx STM32H753xx
# board ID for firmware load
APJ_BOARD_ID 1049

# crystal frequency, internal occilator
# OSCILLATOR_HZ 64000000
OSCILLATOR_HZ 0

FLASH_SIZE_KB 2048
# bootloader starts at zero offset
FLASH_RESERVE_START_KB 0
# reserve space for flash storage in last 2 sectors
FLASH_RESERVE_END_KB 256
# 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 serial to RPi CM4
SERIAL_ORDER OTG1 USART1

# UART1, connected to CM4
PA10 USART1_RX USART1
PB6 USART1_TX USART1

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

# JTAG
PA13 JTMS-SWDIO SWD
PA14 JTCK-SWCLK SWD

# define HAL_USE_EMPTY_STORAGE 0
define HAL_STORAGE_SIZE 16384

# Add CS pins to ensure they are high in bootloader
PE2 IMU1_CS CS

@Nicholas_Weaver,

I’m not very familiar with how to port to a new autopilot but I’ve posted a link in the Discord “chibios” channel. That’s where most of the developers who know about this kind of thing can be found.