How does MP know whether to use px4 v1, v2, v3, or v4?

How does MP know whether to install the v2, v2, v3, or v4 versions of the px4 files on a Pixhawk? Maybe reading the board type first? For example, my Solo’s Pixhawk 2 doesn’t have a BRD_TYPE parameter. Would it still know to use the v3.px4 file?

I think Pixhawk2 actually uses the -v4 firmware build. But, yes, it detects the board type. Like -v2 won’t work in the Pixhawk2 and it will just say something about firmware being invalid for this board.

Each board has a USB driver and boot loader that has a signature that is relayed to the USB driver on the computer. This is the same thing that happens when you use an Arduino board to program it. Each Arduino board has a signature as well.

On windows check the properties of the device that is plugged in and you will see it has 2 hex codes called VID and PID.

Mike

Just a small correction

PixHAwk v1 (the ones that have the STM32 chip with the 1MB bug) use v2

There might be PixHawk 1’s with a newer chip without the bug and could use the v3

PixHawk v2 and the Cube only have the revised STM32 chip without the bug, use the v3

PixRacer uses the v4

1 Like