Flashing Flight Core Bootloader to New STM32 Microcontroller
-
Hey guys, while messing around with my flight core board I kinda messed up the STM32 microcontroller on the board and soldered a new one onto it. I know that you can update the bootloader through QGroundControl based on the instructions at https://docs.modalai.com/flight-core-bootloader/ but is that also possible on a brand new STM32 microcontroller? Are there some other things I would need to do to flash the bootloader such as using a debug probe or would it all be possible through USB. Thanks.
-
Hi @emuhaimen ,
Holycow! That's some soldering skills!
On a fresh board, we internally use a SEGGER JLink to flash it.... We've been trying with the little STLink but haven't had success just yet....
So if there's no FW at all, I don't know how to update the bootloader....
I can share more details if you want to pursue this route.
-
I would love to hear more about how you guys do it. Since you use the SEGGER JLink, do you connect it to the J2 connector for the programming and debug console or is there another connection? What connections and connectors do you need for it? And what is the process once you have everything hooked up?
-
Yes, pinout here and connector type here:
https://docs.modalai.com/flight-core-datasheet-connectors/#j2---programming-and-debug-consoleYou need to make a little wiring harness to connect the JLink to J2
You don't need to the debug console (pins 2/3) for flashing, but if you are making a harness might as well and you can use it for debugging bootup if needed.
Download the bootloader here:
https://storage.googleapis.com/modalai_public/flight_core/bootloader/v5.0-167-g7bc2734/modalai_fc_v1_bl.binApp here:
https://storage.googleapis.com/flight-core-firmware-1-10/latest/modalai_fc-v1.binYou can download the JLink tools from the SEGGER website if needed.
You can use JFlash with a .jlink file with command like so:
erase loadbin foo/v5.0-167-g7bc2734.bin,0x08000000 loadbin foo/v1.10.0-15-g782a54bfd6.bin,0x08008000 r q x