Developer

Pixhawk 1MB flash limit

This is a discussion for the 1MB flash limit issue so that we can consolidate any discussions and concerns about it in one place.

To give some background, all Pixhawk (and compatible) boards use STMicroelectronics's STM32F427 as their main CPU.  This CPU is advertised as having 2MB of flash space (flash is where the ardupilot software is held) but we have discovered that early revisions of this CPU (RevA, RevY and Rev1) have a hardware problem and can actually only hold 1MB and if we use more than that they start exhibiting USB communication problems.

Now currently APM:Copter-3.4 is 0.9MB so it's under the limit but as we add new features it grows and if it grows above 1MB users will find they can't reliable connect the ground station to the board using a USB cable (wireless would still work) which could make it very difficult to configure the board, download logs, etc.

We think many boards (perhaps most boards) out there are the early revisions (A, Y or 1) which suffer from this problem.  All the boards on my desk have this problem and you can check your board by following the instruction also shown in the video:

  • Ensure your Pixhawk (or compatible) is loaded with a recent version of ardupilot (like APM:Copter-3.3.x)
  • Connect with the Mission Planner
  • Go to the Terminal screen and select "NSH" on the drop-down on the left, then push the little green connect button beside the drop-down
  • type "ver all" and press Enter quickly into the terminal (the "Overtime in task 19" causes the MP some troubles)
  • look for the "WARNING! Revision Y has a silicon errata".

Some very recent boards do not suffer from this problem.  For example all Solo's are fine as are the XRacer (aka PixRacer) boards.

Before panic ensues I'd like to say that although APM:Copter-3.3.2 is already 90% of this limit, remember we've just done a release and we will put effort into keeping the code size under 1MB.  So for example, I can guarantee that APM:Copter-3.4 will fit and hopefully Copter-3.5 too.

Still, when you're shopping for your next Pixhawk you may consider asking the manufacturer if they are using the latest Rev3 STM32F427 processor.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Shall we consider the Pixhawk1 has only 1MB of flash memory ?

    We might accept the reality that expansion of new features or other improvement will not come to Pixhawk1, like old APM2.x. Then, we need Pixhawk2(?) for larger flash space and better accelerometers, etc. 

    • Developer

      I think it's possible to reliably flash a firmware larger than 1MB via USB (i.e. flashing via serial or SD card is not necessary - and maybe it's not even possible with the bootloader on all these boards) but the USB can't be used reliably after that for log downloads and set-up.  So yes, assuming people have telemetry connected, it's really just getting at the logs which is a problem and you could just pull the SD card out if it's accessible.

      • Developer

        Even if you flash using serial at 115k200 baud with 2MBytes it would take 3mins. If you compressed it using zip, you'd probably get 75% compression*. So that is 2 mins to flash over serial at 115200. If you can run the port at HS serial you can make it less. It's not perfect, but you can survive without using USB.

        *I did this before with the Arm Integrator Platform boot loader many years ago.!

        • Bill - Are you following the awesome ESP8266 WiFi progress that is going on with the PixRacer, PX4 and QGroundControl. Gus has developed a new native software for the < $10 ESP8266 boards called MavESP8266. It can be configured for either UDP or TCP. We are getting speeds of 921600 bps over a standard serial port without hardware flow control. The connection is instantaneous and requires almost no setup. Just connect to the WiFi network that gets created and the software automatically finds and connects. This will allow us to sever the USB connection once and for all. This works for setup and medium range telemetry. Give it a try, I am sure you will like it.

          • the ESP8266 might be a viable general approach for new/future boards, but - IMHO - is not for most old/current board users

            reasons are, which I think apply to many:

            (i) wifi based telemetry is no option in conjunction with 2.4Ghz RC equipment

            (ii) with most old/current boards one is already short on UARTs

            IMHO :)

            a small piece of electronics bridging USB to e.g. SPI or CAN, for those who can't have easy access to the SD card, and which could be well below 10$, seems a far better, more general solution to me

            • OlliW - Not so on your 1st point. I am running my 2.4 FrSky with Telem just fine along side my 8266 board. If range is affected, I am sure the radio can just be disabled after arming and reenabled after disarming, if that is required.

              • Phillip, you're jumping too short: disabling the ESP is a good idea to get around (i), but then you obviously can't use it for telemetry and thus need to have an additional telemetry at another UART, getting you into serious trouble with (ii) ... A + B = C

                of course, if one doesn't need RC nor telemetry one is fine, but I doubt that covers the large majority

                IMHO the ESP8266 is certainly not a general solution, just my 2 cents :)

              • I agree. While you probably don't want the radios mounted directly on top of each other, the real world interference issues between 2.4 Ghz RC and 2.4 Ghz Wi-Fi are much less significant than might be assumed. And of course in many typical autonomous or ground station control scenarios, the RC link isn't even in play.

                L

                • I agree to OlliW s concerns and won´t operate a 2.4GHz WiFi besides my RC . My bad experiences are coming from GoPro Wifi /Graupner Hott.

              • T3

                Phillip, disabling the 8266 when arming would indeed be a very welcome security feature! And it would make USB obsolete. 

This reply was deleted.

Activity

DIY Robocars via Twitter
Jan 28
DIY Robocars via Twitter
RT @Heavy02011: ⁦@diyrobocars⁩ : A Home-brew computer club* for Connected Autonomous Driving. talk at #piandmore ⁦@PiAndMore⁩ on Jan 23rd h…
Jan 23
DIY Robocars via Twitter
RT @a1k0n: New blog post! Deep dive into my ceiling light based localization algorithm which runs in 1ms on a Raspberry Pi 3: https://t.co/…
Jan 23
DIY Robocars via Twitter
Great new guide to using @donkey_car https://custom-build-robots.com/donkey-car-e-book-en
Jan 23
DIY Robocars via Twitter
RT @chr1sa: The next @DIYRobocars virtual AI race is tomorrow morn at 9:00am PT. You can watch live on Twitch https://www.meetup.com/DIYRobocars/events/275268196/
Jan 22
DIY Robocars via Twitter
New version of Intel OpenBot! This resolves many of the issues with the first version, including a much smoother tr… https://twitter.com/i/web/status/1352395636369313798
Jan 21
DIY Drones via Twitter
Using ArduRover with an RTK GPS https://ift.tt/2N9I3RO
Jan 18
DIY Drones via Twitter
Jan 18
DIY Robocars via Twitter
Jan 18
DIY Robocars via Twitter
Jan 15
DIY Robocars via Twitter
Jan 15
DIY Drones via Twitter
Jan 14
DIY Robocars via Twitter
RT @Heavy02011: @diyrobocars : A Home-brew computer club* for Connected Autonomous Driving on Jan 23rd, 2021 https://www.meetup.com/Connected-Autonomous-Driving/events/275728684/ #Meetu…
Jan 14
DIY Robocars via Twitter
Jan 14
DIY Robocars via Twitter
RT @Heavy02011: ⁦@diyrobocars⁩ Autonomous Driving Assembly at #rC3. join us at https://rc3.world/rc3/assembly/diyrobocars-f1tenth/ ⁦@f1tenth⁩ ⁦@DAVGtech⁩ ⁦@DWalmroth⁩…
Jan 11
DIY Robocars via Twitter
RT @chr1sa: New car designs coming for our next @DIYRobocars @donkey_car virtual race on the 23rd. Choose any one you want at race time Le…
Jan 11
More…