Broken bootloader or firmware for custom board

Hello!

I’m trying to build ArduCopter (current master branch, it seems like 4.8.0-dev) for HAKRC_F405v2. I got Betaflight config for start point and create hwdef.dat and hwdef-bl.dat files.

Building finished successfully. But when I flashed my flight controller (HAKRCF405v2), the COM-port was not recognized. There are no similar devices in the device list at all, even with a driver error.

Then I tried to build an existing bootloader and firmware for MambaF405v2. The build was also completed successfully. When I flashed HAKRC, it recognized the COM-port, and Mission Planner was able to connect to it and get at least the correct IMU data.

So, for the experiment, I just copied hwdef.dat and hwdef-bl.dat from MambaF405v2 and put it in my new folder for HAKRC. Then I built the firmware (without errors), flash FC, but the COM-port was not recognized again.

It looks like I have a problem with the bootloader or firmware build.

My system:

  • Windows 11 with WSL2 with VSCode
  • Ubuntu 24.04 (WSL2) for store and building source code

Also I use ArduPilot DevEnv extension for VSCode. I ran validation check and I have missing Python libs:

  • pymavlink
  • dronecan
  • mavproxy
  • gnureadline

and other tools:

  • MAVProxy
  • ccache
  • OpenOCD
  • J-Link
  • GDB
  • ARM GDB
  • GDB Server
  • lsusb

Could you help me figure out where to look for the problem?

Upd.

I switched to ArduPilot-4.6, and after a few problems during the build, I executed several commands:

  1. git submodule update --recursive
  2. git submodule init
  3. ./waf clean
  4. ./waf distclean
  5. fixed hwdef , because version 4.6 has differences with current master (4.8.0-dev), at least in the definition of the compass
  6. built a bootloader Tools/scripts/build_bootloaders.py HAKRC-F405V2
  7. ./waf configure --board HAKRC-F405V2
  8. ./waf copter

Then I tried flashing HAKRC again, and now it is recognized correctly as a COM port.

I have no idea what exactly helped. Perhaps it was a problem with dependencies or my environment in WSL (Ubuntu), maybe there are some features with the extension in version 4.8.0-dev.