New guy here trying to make sense of it all

Hi all, I’m new to the world of drones. I’ve been developing software for about 18 years now. I’ve been scanning various sites like Ardupilot, dronecode, diydrones.

I’ve noticed that there is a lot of different players in this field with what seems to be many different options. This is where the lines get blurred for me as it seems like there is a lot of crossing between different systems. One example would be APM/ArduPilot and PX4

I’m trying to understand if I can pick one or the other. OR are there aspects of both systems I need. Lets say for example I want to buy a drone kit that has no software or controller. Just a base drone shell with motors and blades. From there, where do I go?

As I understand it, 3DR has the Pixhawk controller, this is a open source hardware platform. This controller was developed by the community and 3DR manufactures it.

Then you have flight controller such as ArduPilot and PX4, this is software that will use the Pixhawk hardware. Do I have this right so far?

I hate to ask this because I know it’s a loaded question but… What platform would I want? ArduPilot or PX4? What are the advantages, disadvantages to each?

I’ll leave it at that for now, but I’m sure I’ll have a 100 other questions soon. :slight_smile:

Thanks all

Also, I just realized that there is DroneKit by 3DR… How does this come into the mix?

Well the Dronekit will let you remotely control your copter. That’s what actually makes it a drone since it’s being controlled by software and not just flying by remote control.
APM flight stack versus PX4 flight stack is a sticky one. Actually APM kind of uses some of the PX4 flight stack as a base and then adds its differences on the top. It’s kind of a brand decision.

The great news is it’s all open source.

Don’t forget to look at the Pixracer while your at it.


Hi Mike…

Does that mean that DroneKit sends signals from say a computer to the drone? If that’s the case, does DroneKit contain both a client and server? Client running on the computer, server running on the copter?

How is this different from the functionality of APM and PX4?

DroneKit is a library that send MAVLink protocol messages to the drone. You can use and Android or Python versions. Or you can just use a MAVLink library and use Java/C++ or C#

You can run either PX4 or APM flight stacks on a Pixhawk. The middleware/OS layer on the Pixhawk for APM and PX4 stacks is common. But the code to actually make the vehicle fly is not.

That said they both can be controlled using MAVLink to are similar that way.

APM flight stack and PX4 FlightStack and two different ‘applications’ that do the same thing. both run on a pixhawk HW

[quote=“billb, post:5, topic:9255, full:true”]
DroneKit is a library that send MAVLink protocol messages to the drone. You can use and Android or Python versions. Or you can just use a MAVLink library and use Java/C++ or C#[/quote]

So, at runtime, the software is telling your drone what to do, yes? Are these pre recorded flight apps or can you control your drone at runtime from your computer or android app?

When you say APM, are you referring Ardupilot?

Can control at runtime. even multiple copters.
Guided mode lets you tell it where to go by picking a spot on a map.


ArduPilotMega I.e. APM name comes from the original HW based on the Arduino 2560 Mega platform.

These days it’s just short hand from ArduPilot software that will run on many platforms like Pixhawk and others

I’ll give my perspective since I went through the exact same thing a few months ago. Most of the APM platforms you’ll see on the market are slightly older versions. APM and PX4/Pixhawk hardware both run Arducopter but the bulk of APM hadware only supports older version of Arducopter - but for the purpose of most users that version is fine. The Pixhawk models I’ve seen available do support the latest Arducopter software.

To build a flying model you need the base frame, ESCs, motors, props, an appropriate receiver, and a flight controller. If you want advanced features like loiter you will need a GPS module / compass and a mounting setup (like a little flagpole). The GPS and compass modules vary between Pixhawk and APM…so get the appropriate module.

In terms of what is better for beginners…here’s my take. I’ve been flying for 6 months and I have 3 APM systems and 2 Pixhawk platforms. I prefer the Pixhawk. I have no idea if it’s the new software or what, but my Pixhawks just fly better right out of the box with stock settings. Minimal tuning. APM flies fine but lots more tuning. And it still just didn’t feel as “locked in”. For example, loiter performance on the Pixhawk is vastly superior in high wind, every time. Again with fairly minimal tuning.

I’m no expert but that is just my 2 cents.


1 Like

Thanks Jeff, appreciate the feedback

can I ask a question here?

so by using Dronekit I can control the drone directly from a PC/RPi3 + MAVProxy only ?

Just curious to know if it is possible that the GCS and the drone directly through wifi without the need to a RC especially if the drone I use can be controlled over wifi (bebop2) ?


Yes, you can. Use guided mode, auto mode, or enable joystick in mission planner or mavproxy (soon QGC too).

thank you for the reply . just to make sure I want to know if I still need to connect the RC to the GS(MAVProxy) even if I will not use it at all? because I am trying to use only the AUTO mode since I only want to do Autonomous mission.

thank you

It is always best to have RC as standby control, but it is possible to fly with gcs only.