QGroundControl displaying wrong flash size at runtime for 3DR Pixhawk 1

Hello. I have a 3DR Pixhawk 1 with 2MB flash. I would like to use with Arduplane for soaring, which conveniently requires 2MB flash.

I just flashed new fimrware following this guide:

I have just installed QGroundControl following this guide:
My machine is Ubuntu 22.04.

I have checked my board size following this guide:

In the startup logs in QGroundControl (Just installed latest today), it says the following:

Found device: PX4 FMU V2
Connected to bootloader:
Version: 4
Board ID: 9
Flash size: 2080768

However, right after it flashes, it wants to calibrate, but then fails because it’s saying I have the wrong firmware installed, and need the 1MB version. I do not want to install the 1MB flash, because I have a 2MB unit and Arduplane soaring requires 2MB.


I guess the alternative is buying a Pixhawk 4, but it has pretty much the same specs.

Any ideas why QGroundControl is conflicting with itself, and whether I can actually use this board with Ardusoar? Since I run Linux and plan to develop for ROS2, Mission Planner is not an option.

Following up on a thread with @dkemxr who was kindly helping me there: Pixhawk 1 or Pixhawk 1-1M, how to know - #18 by dkemxr

My next step is to try Mission Planner. I’ll need some time to set this up on Windows since I run Linux these days. I’ll circle back when I’ve got the logs. Many thanks thus far for the assistance!

Alright, I’ve installed Windows on a spare laptop and connected. Here’s the logs requested.

2/20/2023 9:51:42 PM : Pixhawk1 003E003C 31345105 32363834
2/20/2023 9:51:42 PM : ChibiOS: 66e5de0d
2/20/2023 9:51:42 PM : ArduCopter V4.3.3 (34e8e02c)
2/20/2023 9:51:39 PM : ERROR: 1M flash use Pixhawk1-1M

Any thoughts on if this will actually support 2MB flash?

This doesn’t work on latest mission planner. The guide on using terminal says it’s been moved to MavLink, but doesn’t explain how to use that.

I decided to crack open the case. Here’s some pictures. Based on the chip (STM32F47 VIT6) and the board that says PX4FMU v2.4, it appears I have the 1MB flash limit.

It’s the “1” that says its 1mb. 2mb flash boards are “3” So Pixhawk1-1M is the correct firmware.

Cool cool. Will run with that. Hope this thread helps someone else in my scenario.

During a meeting with Tridge, here is the recommended latest way of doing this.

  1. Clone ardupilot
  2. Connect your autopilot to the computer over usb.
  3. Use uploader.py in the rep like so
cd ardupilot
./Tools/scripts/uploader.py --identify

It generated the following:

If the board does not respond within 1-2 seconds, unplug and re-plug the USB connector.
Attempting reboot on /dev/serial/by-id/usb-ArduPilot_Pixhawk1-1M_3C003E000551343134383632-if00 with baudrate=57600...
If the board does not respond, unplug and re-plug the USB connector.
Could not get external flash size, assuming 0
Found board 9,0 bootloader rev 5 on /dev/serial/by-id/usb-ArduPilot_Pixhawk1-BL_3C003E000551343134383632-if00
Bootloader Protocol: 5
  type: PX4
  idtype: =00
  vid: 000026ac
  pid: 00000010
  coa: BgjDz5B2ipjze95LczicOVCIZoGxii3BCbaK/DtBbymQzujz6qCOwfLgmdzdUeqtrB3XvboXSPuiDqx8weKjHDWNdrQQzMb91lF/adajMMAFejFHWvPkht+6HpG4g1CUyrg9VTl6sKbQQn84RU4OvR/IzWdkhPbmXaeWItyZuoY=
  sn: 003e003c3134510532363834
  family: STM32F42x
  revision: 1
  10076419 STM32F42x_43x rev1 (flawed; 1M limit, see STM32F42XX Errata sheet sec. 2.1.10)
  flash size: 1032192
  ext flash size: 0
  board_type: 9 (fmuv3)
  board_rev: 0
Identification complete

Since flash size: 1032192, this is a 1MB flash. You also see the note about it being flawed with 1M limit