Introducing the PX4 autopilot system

The PX4 team is pleased to announce early availability of the PX4 autopilot platform, with hardware available immediately from 3D Robotics. 


The platform is a low cost, modular, open hardware and software design targeting high-end research, hobby and industrial autopilot applications.

PX4 is an expandable, modular system comprising the PX4FMU Flight Management Unit (autopilot) and a number of optional interface modules.

The PX4FMU autopilot features include:

  • 168Mhz ARM CortexM4F microcontroller with DSP and floating-point hardware acceleration.
  • 1024KiB of flash memory, 192KiB of RAM.
  • MEMS accelerometer and gyro, magnetometer and barometric pressure sensor.
  • Flexible expansion bus and onboard power options.

Expansion modules available at release include:

  • PX4IOAR This module interfaces PX4 to the AR.Drone motor controllers, allowing a complete quadrotor to be assembled using an AR.Drone frame and motors.
  • PX4IO A flexible interface module with support for eight PWM servo outputs, relays, switched power and more.

As an open hardware design, third-party and DIY expansion modules can be easily developed for specific applications, and more PX4 modules are in development.

In addition to the versatile hardware platform, PX4 introduces a sophisticated, modular software environment built on top of a POSIX-like realtime operating system. The modular architecture and operating system support greatly simplify the process of experimenting with specific components of the system, as well as reducing the barriers to entry for new developers.

Adding support for new sensors, peripherals and expansion modules is straightforward due to standardized interface protocols between software components. Onboard microSD storage permits high-rate logging and data storage for custom applications. MAVLink protocol support provides direct integration with existing ground control systems including QGroundControl and the APM Mission Planner.

Pricing of the PX4 components reflects more than a year of careful development and a strong commitment from our manufacturing partner.

This release is targeted at early adopters and developers looking for a more capable platform than existing low-cost autopilots. With more than an order of magnitude more processing power and memory compared to popular 8-bit autopilot platforms, PX4 is exceptional value for money and provides substantial room for future growth.

For more information about the PX4 autopilot platform, visit the project website at

PX4 modules can be purchased from our manufacturing partner, 3DRobotics.

E-mail me when people leave their comments –

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

Join diydrones


  • Moderator

    so the erro is :

    sh: ../../ : No such file or directory

    I chek in px4 directory but i don't found that file ... and if you doing in ../../ are in c:/ 

    So is a strange place where put this download script.

  • Moderator

    Hi PX4 i don't know if you are Lorentz or Michael ... but the don't work .. :(



  • Developer

    I actually didn't initially have any better luck with the new build system.  I was still receiving the same annoying error:  install: invalid option -- C


    As discussed earlier over skype, it's definitely a path issue and some conflict with other tools installed on my  machine.  What seems to have helped me get things compiling is Roberto showed me in eclipse how to directly see your path and modify it easily.  See pic below:


  • Questions: Please here:

    An updated toolchain build for the official PX4 toolchain is available now here:

    Issues adressed in particular:
    - Should run fine on 32 bit systems
    - xxd.exe is now part of it, so the full build can be done
    - Automatic software download now downloads our new px4/Firmware repo.

    A video of the installation and first steps will follow later. I would appreciate if early adopters could already try it, so that any remaining issues can be sorted out before the boards arrive.

    1) Run the software download from the PX4 Toolchain application menu group (Start -> All Programs -> PX4 Toolchain -> Software download)

    2) Do a quick console-only test:
    Start -> All Programs -> PX4 Toolchain -> PX4 console. In the console, enter:
    cd Firmware

    It should run fine and show you the elapsed time at the end. Note that it only takes ONCE long, if you just change a line it will not recompile everything.

    If you don't want to wait for the tutorial video tomorrow, setup Eclipse (right-click into the empty left column, select C/C++ -> Import existing project as Makefile project. Then select Cross GCC in the list on the bottom, and in the top field select C:\px4\Firmware as folder.
    In the right pane, select Make Targets as view (there are multiple on top of each other, indicated by the >> symbol). Right-click on Firmware, select Add make target.

    Add these targets:


    More instruction steps will follow tomorrow.

    If you have questions, please head here:

  • Moderator

    Dear Friends,

    I add the new revamped build system to VR Universal IDE

    Now the building is really more light and efficient great work Lorentz and Michael.

    Here you can found the workspace with small patch for Building Enviroment Path

    here the discussion forum :

    VR Universal IDE support also Arducopter32 and Autoquad develop enviroment.

    Is important to decompress the rar file with winrar free application.

    At the moment the IDE is available only for Windows . If you are a guru of CLI (command line interface) don't need VR IDE . If you came from Arduino e would only ... download the enviroment open the folder and lunch Eclipse for develop your program use it :) 



    PX4 Autopilot Software. Contribute to PX4/Firmware development by creating an account on GitHub.
  • Randy, if you try this new repo (we've completely revamped the build system), you will notice it builds fine on Windows now:

    I'm just fixing / adjusting the installer to use this one. Clone with TortoiseGit, change to the directory and execute there.

    If you don't want to wait for the new toolchain drop, download Python 2.7.2, install it, copy from C:\Python2.7.2 to C:\px4\Pythonxx (same name as previous folder, do NOT name it Python 2.7.2 unless its the same). After that, copy C:\Windows\SysWOW64\python27.dll to C:\px4\Pythonxx.

    This is all fixed in the new installer, its just not up yet.

    PX4 Autopilot Software. Contribute to PX4/Firmware development by creating an account on GitHub.
  • Developer

    I was wondering if anyone had luck getting the tool chain working on windows?  I've got the code on my machine and eclipse running but it fails when I try to build the "all" target.  I suspect it's just 'cuz most of the core px4 people are not on windows so I've raised an issue about it.


    **** Build of configuration Default for project px4_nxbuilder ****

    make all

    Building px4fmu using sources from /c/px4/px4_nxbuilder/px4fmu/

    Working in /c/px4/px4_nxbuilder/build/px4fmu

    Copying NuttX and stock applications...

    The source and destination cannot both be remote.

    rsync error: syntax or usage error (code 1) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/main.c(1148) [Receiver=3.0.9]

    make: *** [installsrc] Error 1

    **** Build Finished ****


  • Any news on when these will ship?

  • @joe: This was the developer/research hardware release of the PX4 platform. Together with the hardware we've also released the current state of the software. This includes a finished API for the core autopilot infrastructure (NuttX, sensors, MAVLink, parameter, waypoints) and flight control code for quadrotors and fixed wing HIL. The outdoor fixed wing tests are scheduled for the next weeks. Although it is possible to fly with it (as seen on the videos) we do not want to claim that the firmware has yet all bells and whistles and this initial release is clearly targeted at developers and researchers in need for high-end hardware. If someone does not want to make his hands dirty on the code he should not expect too much user-friendliness from the current firmware - but this will change in near future.

    To answer your questions:

    1. The current estimation loop runs with 500 Hz and is a constant gain Kalman filter. A full-fledged 12 state EKF for attitude is also in the codebase and currently validated - it will also be able to run at 500 Hz thanks to the hardware floating point unit. In addition to that we also have a Kalman filter for position estimation for multirotors in place, which we are currently testing. It uses the control inputs in addition to the position to improve the accuracy.

    Note that the prevalent estimation technique so far are complimentary filters, not Kalman filters. Even fixed-point Kalman filters need more processing power than popular 8-bit autopilots have typically available. If you read up performance comparisons, you will however notice that various scientific publications have proven that the complimentary filter design, if tuned well, can perform very well and a full-fledged EKF might not be the best tradeoff of runtime speed and accuracy. Our main intent with following an EKF attitude estimation design is that it should be more robust to changes in the sensor noise distribution, e.g. due to frame vibrations.

    On the calibration side there is currently only a static gyro calibration available, Mag static calibration is currently worked on as we speak and should be finished early this week.

    2. Watch out for new QGroundControl binaries mid of this week which contain the UI elements to start the calibration procedures. Mission planner will follow shortly or may be available at the same time.

  • @Daniel Portillo, Any system that has sensors and is a control loop (AKA PID) you have to addjust for the physical hardware you attach. There is no such thing a  perfect out of the box PID loop setting.

    Understand that you have to start at a low value for P and then raise it until you get oscillation and then back it off a small percentage. This is true for industrial drives and any system with sensors. It's inpossible to predict what a person might attach to the controller and it's response rate so any default value for P is not garanteed to be the best for that system.

This reply was deleted.