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


  • PX4, thanks. I'm working on a small demo for the discovery board. I'm getting close...

    I ordered my PX4 board on July 26th, is there any time range I can expect it - I'm out of town in two weeks.

  • Thanks for the clarifications - it's nice to see there's some calibration.

    With the static you're freezing your controller for temperature compensation? The VN100, DJI, Autoquad all seem to add a multi axis movement to their dynamic calibrations too. Do you plan to add this, or see it as unnecessary? 

    I was looking over the SD card code when I made the DMA comment, I may have missed the DMA though...I'll go back and look again.

  • Developer

    The latest win build env works a-ok for me (I was having problems with the HOME variable not being set but that's all sorted now).

    Looking forward now to the PX4 arriving in the mail!

  • Developer

    I have a Discovery F4 board too. I hope get a PX4 stack soon.

    My Windows IDE is up. but Mac has brew errors that need fixing.

  • @Joe We're using DMA in various places, e.g. on UART and ADC. SPI DMA is pending, but will follow as well.

    You can use QGC as well as APM Mission Planner, we're mostly using QGC internally. The development platform we use includes Windows, Linux and Mac OS, there is no particular focus on any of these platforms.

    The IMU is calibrated statically and dynamically (mag). You can trigger the calibration from mission planner or QGC.

  • I browsed through the source, but it doesn't seem you're using DMA (?)

    I assume the developers are using linux - my personal preference - but the wiki seems to have more info on the APM GCS setup. Will the project focus most of their effort on QGroundControl? I assume yes since ETH developed QGCS.

    Any plans to calibrate your IMU (static?, dynaimc?)

    I've ordered a discovery board to try out the project until the PX4 board starts shipping.

    Nice to have AutoQuad, PX4, and Roberto's board to choose from. Of course, an Aspirin IMU + Discovery should work too - but the PX4, when available, is price competitive and ready to go. I might be missing something, but I don't see the point of the Due APM that everyone is waiting for....there seems to be a much brighter future for the F4 platform.

  • I'd be interested in a Discovery config too.

  • @chc2111 We'll try to get a Discovery config up and running as soon as we can, so that you can start playing with it. Not sure how soon we'll get to it, but your request is noted.

    I've also just uploaded a new installer for Windows, which has the updated source code repository paths. If you have already installed the toolchain, either reinstall with the new setup or adjust the paths in C:\px4\toolchain\msys\1.0\ to match these:

    You only need libopencm3, Firmware and Bootloader, all other folders are now obsolete. These are the final repository URLs, there are no further planned changes.

    PX4 Drone Autopilot
    Professional Open Source Autopilot Stack. PX4 Drone Autopilot has 65 repositories available. Follow their code on GitHub.
  • PX4, in my sources there is no px4fmu_xx.inf file. I checked the px4fmu.inf and the PID/VID are this one the USB dveice is asking for (they are coming from your BootLoader USB\VID_26AC&PID_0010). I took one .inf , which is supporting win64 and using the "usbser" and the driver installed. Performed a "make upload", ended in "Firmware not suitable for this board". I expected this already, because I flashed the px4discovery_bl.bin (after converting .elf to .bin) which has a different board ID. But it confirmed the px4 bootloader is able to connect to the px_uploader Then I tried  the simple app hello, but I got lost there, it does not compile. I'm looking for a small app to play with, before the already ordered px4 board is delivered. I know you all working on this project are busy, but I believe I'm not the only one looking for that. Just to get a starting point to get into the arichtecture you are using.


  • @Jason APM3.0 (if it is ARM / Due based) will likely have slightly more complex software, so you're not necessarily better off on complexity terms. PX4 is an advanced software design, but that does not mean you have to understand it from bottom up. You just need to use the API here and there is no need to mess with the main autopilot software stack (as it is the case with bare metal designs):

    @chc2111 What you miss is a USB-CDC driver for the discovery board. Go to C:\px4\drivers and look at the px4fmu_xx.inf file. Copy it, and edit it with a text editor. You need to exchange the product id (PID) and vendor id (VID) of 3D Robotics against the PID/VID that ST uses for the discovery board. The boot loader should work then.

This reply was deleted.