Dronecode is an open source software project. Companies and organizations may join at any time and anyone can participate

The Working Groups bring together technical experts from our industry and component-project members to have regular discussions

Getting started

I just want to build or fly a drone

If you are completely new to drones, check out the Newbie’s Guide to UAVs. Next read the PX4 User Guide and the QGroundControl User Guide. If you get stuck with setup or configuration you can ask questions about the flight stack in the forums (for more general drone questions check out diydrones.com).

If you’re already experienced, helping other users in the community and answering their questions is a great way to contribute!

I want to help develop the platform

We can’t wait for you to start! Everything you need to become familiar with the individual projects that make up the Dronecode platform is linked from here: developer guides, source code (Github) and discussion forums.

A good way to begin is to look at the open issues for the project that you find most interesting. Then join the project’s developer comms channel and talk to the team about what you’d like to improve (or ask them for advice on where you can help).

I want modify flight code or add advance flight characteristics

Developers who want to change or enhance flight behaviour can do so within the flight stack or on a separate computer via an API (i.e. not within the core flight stack). You will need to become familiar with the PX4 Developer Guide, and you will be able to ask development questions in the PX4 Discussion Channels.

While the license does not obligate you to contribute your changes, we’d love you to do so. The process is covered in the DevGuide here.

I want to create new flight controller hardware

Flight controllers for computationally intensive use cases (for example computer vision for obstacle avoidance) require that the flight stack and additional software run on separate processors (or boards) connected via fast communications links. To address these use cases you’ll need to become familiar with the PX4 Developer Guide, MAVLink (for comms), and a developer API like ROS or DroneKit. In future you may need to be familiar with RTPS for comms, and also provide implementations of our Camera and other APIs. In the first place you should ask developer questions in the PX4 Discussion Channels.

If you want to create flight controller based on the Pixhawk open hardware then see the specifications and information at: https://pixhawk.org/.

I want to make compatible hardware accessories

Dronecode is actively working to standardise the integration points for Camera and other peripherals.

The flight stack is compatible with standard messaging and information protocols used for common peripheral hardware (e.g. UAVCAN). Compatibility is therefore straightforward for most sensors.

In the first instance you will want to review the PX4 Developer Guide, and you will be able to ask development questions in the PX4 Discussion Channels. Depending on your hardware you may also need to work closely with related projects (e.g. UAVCAN if you are using a CAN bus).

I want to integrate UAVs into my cloud service

You’ll need to create a bridge between your UAV “fleet” and your cloud services, either directly using a comms protocol (like MAVLink) or via a developer API like ROS or DroneKit that abstract some of the command and communication work. In the first instance you will want to review the PX4 Developer Guide and ask relevant development questions in the PX4 Discussion Channels. Depending on what APIs you choose to use, you may also need to become more familiar with MAVLink, ROS and/or DroneKit.

Source code

Source code is stored in Github repositories belonging to component sub-projects. Project developer guides show how to set up a developer environment and build the software/firmware.

Documentation

Documentation is usually generated using Gitbook, and translated into a number of languages. You can find the main documents at the following locations.

Discussion

Here you will find all DroneCode project related development mailing lists. If you are a member of DroneCode project, please register your self to participate on the discussions.

Working Groups

Working Groups are teams created by the TSC to investigate a particular area of development, process enhancement, or community engagement. You can find out more about the current areas we’re working on in the Active WG list.

The active working groups are hosted on the Working Groups Wiki.

WG Governance

A WG lead is appointed to steer the working group activities (usually this is the person most familiar with the WG proposal who will be active and engaged in the group).
WG leads report activities to the TSC, and are invited to monthly TSC meetings. Other responsibilities include:

  • Chairing WG meetings
  • Maintaining the group wiki page
  • Providing a monthly public update

Working Group meetings and development are otherwise managed by the individual groups.

Camera API WG

Camera API WG is focused on platform independent developer APIs for cameras and remote control of camera and gimbal.

Dronecode SDK WG

The Dronecode SDK WG is working towards creating a Software Development Kit that will enable easy use and customisation of the Dronecode platform.

Safety WG

The Safety WG is taking a systems approach to safety, bringing completeness and coordination to the various layers and contributors to the stack via the Dronecode Working Group process. This approach is actively being encouraged by the FAA.

Code Quality WG

The Code Quality WG is focused on ways to provide incremental improvements to Dronecode project code quality and testing.

Messaging WG

Evaluate middleware solutions for communication between GCS, drone, cloud, and between processes running on the vehicle. Select the best solution and evaluate ROS compatibility.

User experience (UX) WG

The User Experience WG is tasked to create and promote UX resources that ease, simplify and accelerate development of products based on (or part of) the Dronecode platform.

Member projects

Dronecode development happens at the project level. We encourage you to visit our member project’s sites and check out their other resources below.

Pixhawk