Unless you have a burning reason to write a flight controller from scratch (you don't), your aircraft will run PX4 or ArduPilot. Both are mature, actively developed, fly everything from 200 g quads to 600 kg VTOLs, and speak MAVLink. The differences that matter to a startup are licensing, architecture and ecosystem gravity — not feature checklists.

The two stacks in one paragraph each

ArduPilot grew from the DIY Drones community into the most widely deployed open flight stack on earth. Monolithic-ish architecture with vehicle types (Copter, Plane, Rover, Sub, Blimp…) sharing libraries; encyclopaedic parameter surface; famously conservative about breaking working behaviour. GPLv3.

PX4 came out of ETH Zurich and lives under the Dronecode Foundation (Linux Foundation). Modular publish/subscribe architecture (uORB) on NuttX/Linux, cleaner internal APIs, tight coupling to the broader Dronecode ecosystem (QGroundControl, MAVSDK, Pixhawk hardware standards). BSD-3.

The comparison that matters

DimensionArduPilotPX4
LicenceGPLv3 — distributed firmware mods must be offered as sourceBSD-3 — modify and keep private
ArchitectureShared libraries, vehicle firmwares; huge parameter spaceModular uORB pub/sub; cleaner for deep custom work
Vehicle breadthWidest (incl. exotic frames, boats, subs, helicopters)Wide for multirotor/FW/VTOL; thinner at the edges
Field maturity / tribal knowledgeEnormous; forums have seen your bug beforeStrong, more corporate-flavoured
Corporate ecosystemPartners programme, consultanciesDronecode/Pixhawk standards, Auterion heritage
Offboard/companion APIsMAVLink, DDS bridge, Lua scripting onboardMAVSDK, ROS 2 via uXRCE-DDS first-class
SimulationSITL (mature), Gazebo, RealFlightSITL, Gazebo first-class, HITL

Licensing: the decision most startups overrate

The GPL question triggers legal anxiety disproportionate to its practical weight. The boundary is clean: firmware is covered; everything talking to it over MAVLink is not. Most startups' IP — mission autonomy, perception, fleet software, payload logic — lives on the companion computer and in the cloud, untouched by either licence. GPL bites only if your differentiation requires deep proprietary changes inside the flight stack (custom estimators, control laws, safety logic you can't publish). If that's you, PX4's BSD licence removes the issue. If not, licence should not drive the decision.

What should drive it

  1. Team experience. An engineer with two years of ArduPilot tuning scars is worth more than any architectural elegance. Hire-pool gravity is real in your region and sector.
  2. Vehicle configuration. Traditional helicopter, quadplane variants, unusual actuator mixes: check the specific configuration's maturity, not the marketing page. ArduPilot's breadth wins the weird stuff.
  3. Autonomy roadmap. Deep ROS 2 integration → PX4's uXRCE-DDS path is smoother today. Lua-scripted onboard behaviours with no companion → ArduPilot has a lovely trick there.
  4. Certification ambitions. Heading toward certified-category or heavy Specific operations? Look at the commercial hardening offerings around each stack and where your consultants' evidence packages live.
The honest answer

For a typical multirotor or quadplane startup doing autonomy on a companion computer: both stacks will carry you to market. Pick the one your best engineer knows, adopt Pixhawk-standard hardware so you keep optionality, and invest the saved deliberation time in your test program.

Whichever you choose, do these

  • Pin versions. Fly a tagged release, upgrade deliberately with a regression flight-test plan — never track master on customer aircraft. Your test evidence is version-specific.
  • Own your parameter file. The tuned parameter set is your aircraft; version-control it, diff it between releases, treat changes as engineering changes.
  • Exercise the failsafes you configure. Datalink loss, GNSS loss, low battery, geofence — configured is not verified; see failsafes & redundancy.
  • Engage the community properly. Both projects run on contribution; sponsoring, upstreaming fixes and showing up in dev calls buys you influence and early warning of changes that affect you.

Frequently asked questions

Is PX4 or ArduPilot better for a commercial drone?

Both power serious commercial aircraft. PX4's BSD licence suits companies that will modify the stack and keep changes proprietary; ArduPilot's GPLv3 requires publishing firmware modifications but offers unmatched vehicle breadth and field-proven maturity. Team experience usually outweighs feature differences.

Does using ArduPilot force me to open-source my whole drone software?

No. GPLv3 covers the firmware itself: if you modify ArduPilot and distribute it (e.g. in a product), you must offer those firmware sources. Your companion-computer applications, cloud software and ground control software remain yours if they communicate via MAVLink rather than being linked into the firmware.

Can I switch flight stacks later?

Technically yes — much hardware runs both — but retuning, revalidating failsafes and requalifying your test evidence is months of work. Choose deliberately at the start; switch only for a blocking reason.