Skip to main content

Dronecode Technical Update January 2016

By January 12, 2016July 2nd, 2018Announcements

We are nearly ready for the 3.5.0 release, with a lot of new features. Key features include

  • parachute support
  • RTK GPS improvements
  • QuadPlane support
  • Qualcomm Flight support
  • improved landing abort
  • waf build system
  • ADS-B adapter support
  • new SITL plane and quadplane simulator
  • switch to EKF2 by default


Version 3.3.2 released Dec 1st to resolve some issue found including:

  • bug fix for desired climb rate initialisation that could lead to a drop when entering AltHold, Loiter, PosHold (video)
  • Fix to hard landings when WPNAV_SPEED_DN set high in RTL, Auto (resolved by using non-feedforward alt hold)
  • EKF fix to reduce “Bad AHRS” message by filtering innovations
  • Allow arming without GPS if using Optical Flow
  • Smoother throttle control in Guided mode (incl follow me) by increasing control rate to 400hz.

 Support for new flight controllers in master:

  • AUAV’s PixRacer (video)
  • Qualcomm’s SnapDragon (video)
  • Bebop2

 Architectural improvements:

  • Quaternion rate controller
  • Attitude controller interface renaming and internally uses SI units
  • removing Frame_Config #defines in preparation for run-time vehicle selection in future

 Features in progress only some of which will make Copter-3.4

  • Throw mode  (video)
  • Motor library refactoring to better allow modularization
  • Precision Landing  video
  • Terrain Following

Trad Heli:

  • 3.3 is ready to go stable for TradHeli.
  • Waiting on the 3.3.3 release for Multirotors to make the release process easier to manage.  Last change to go in was to force 1 m/s descent rate if the motor is switched off in flight in an auto-collective mode.
  • For 3.4, the internal-governor code is well underway, mostly useable for gassers.  This included some improvements to the RPM measuring code which benefits all.
  • The airplane guys might also be interested in the governor code for variable pitch props, but it may also benefit them to have the throttle control prop RPM instead of simply throttle.

Antenna Tracker:

Version  0.7.5 released which includes:

  • dataflash logging
  • fixed occasional pitch problems by requesting baro from vehicle at 1hz


  • A new build system was added to allow integrating unit tests, benchmarks and simplify the support for the several boards. The basic infrastructure is in place and boards are being gradually migrated from the old build system.
  • Support for generic auxiliary bus on MPU9250 was added in order to support additional sensors on this bus and also allow MPU9250 to be connected on an I2C bus.
  • Now we can use kernel drivers to drive PWM output. This allows them to be used for RCOutput, PWM Heater and also aux channels.
  • General improvements to the codebase was made in order to detect better the Linux boards and share more code among them. New boards are always being added and for this cycle there was support added for Bebop2, Bhat (RPI-based) and qflight (a Linux port for Qualcomm’s Snapdragon). AP_Progmem and other legacy libraries from when AVR-boards were supported were completely removed to improve the code.
  • PX4Flow algorithm was implemented using V4L2 APIs allowing to connect USB cameras. Right now only some of them are supported but new ones can be added by converting the video format they support to one of the formats supported by the algorithm.
  • The Linux boards now support the perf API to time each event in the scheduler. Support for getting this values from the flight stack is still under work.
  • AP_Math library continues to be refactored to include safer and faster methods and at the same time modernized the code base.

PX4 Flight Core:

Last quarter saw a significant investment in infrastructure.

  • The whole project switched to the CMake build system with Ninja replacing GNU Make as the default build tool. This speeds up incremental builds by several orders of magnitudes and greatly improves the development experience.
  • SITL is now implemented with jMAVSim and Gazebo as backends and multicopter to VTOL support.
  • UAVCAN nodes can be upgraded directly from the autopilot and the default build carries up-to-date binaries for the first two ESCs.
  • A new tailsitter simulation in Gazebo is available and we simulate now optical flow and lidar data directly in Gazebo with real flow calculation.
  • The PX4 dev team created a Wifi Firmware for the ESP8266 with considerably better throughput than existing solutions. This allows MAVLink telemetry and Firmware upgrade. Qualcomm Snapdragon support for PX4 was released October 2015 by Qualcomm with proprietary drivers. Now the generation 2 of this API reached testing status, based on DriverFramework and open source drivers. This allows the reuse of the framework across projects and for different hardware.
  • New Pixracer support for final hardware revision. With support for this racing board came also the popular Rattitude flight mode. Current prototypes are incompatible and will not be maintained.
  • Introduction of the Estimation & Control Library: A flight stack independent modular library including EKF2 (which is an error-state formulation and currently in flight testing).
  • Refinements in VTOL support (Tailsitter, Tiltrotors, Quad Planes (video)) including automatic transitions in missions. New support for coaxial helicopters. PX4 now also knows how to autonomously takeoff and land on runways (video).



  • Significant progress in development of Python library (pyuavcan) and lightweight C library for resource constrained systems (libcanard).
  • Second release candidate of Libuavcan is now available.

Mission Planner:

  • Support for a vlc supported video stream on the hud
  • a customizable preflight list is not available
  • rtcm/sbp packet information display for rtk operations


  • Largest change is APM Stack support including vehicle setup
Hamish Willee

Author Hamish Willee

Hamish is the Dronecode Technical Content expert! You can find out more about him here:

More posts by Hamish Willee