A Quadcopter From Scratch


[AwesomeAwesomeness] wanted a low cost quadcopter, so he built one from scratch. Okay, not quite from scratch. [AA’s] cookie mix came in the form of an Arduino Uno and some motors. He started with motors and propellers from a Hubsan X4 quadcopter. Once the power system was specified, [AA] designed a frame, arms, and motor pods in Solidworks. He printed his parts out and had a sweet quadcopter that just needed a brain.

Rather than buy a pre-made control board, [AA] started with an Arduino Uno.  An Arduino alone can’t source enough current to drive the Hubsan motors. To handle this, [AA] added a ULN2003A  Darlington transistor array. The 2003A did work, but [AA] had some glitching issues. We think FETs would do much better in this application, especially when running PWM.

On the control side of things, [AA] added an MPU-6050 Triple Axis Accelerometer and Gyro breakout from SparkFun. The 6050 has 3 gyros and 3 accelerometers in one package. Plenty for a quadcopter.

All this left was the coding. Multicopters generally use Proportional-Integral-Derivative (PID) control loops to maintain stability in the air. [AA] used the Arduino PID library for his quadcopter. He actually created two PID instances – one for pitch and one for roll.

[AA] doesn’t have any videos of his quadcopter in action yet, and we’re guessing this is due in part to weight. Lifting an Uno, a perfboard, and a frame is a tall task for those motors. Going with a one of the many tiny Arduino’s out there would help reduce weight. In addition, [AA] could use a gear system similar to what is used in the Syma X series quadcopters. Stick with it – you’re on the right track!


13 thoughts on “A Quadcopter From Scratch

  1. I can’t help but wonder if the airframes of the multicopters I have seen lately are clunky or too fragile. I make various things out of piano wire. It is very strong, springy, tool bent, or unbent, solderable, from .00X to .030 inch gauge, and in my case is scrap. Triangular space frame design, should be near crash proof. It just springs back, if not it’s up to two pliers and it’s tweaked. Wrap one turn around other wire (vise grips) and solder to join elements. Find a full service piano tuner-rebuilder. No toolbox or shop should be without it.

    1. Yeah, I agree. This frame looks quite heavy and fragile. I use music wire on occasions too, but my material of choice these days is carbon fiber rod. It’s not as expensive, rare or as outlandish as it sounds, as rods and strips of various sizes can be found at pretty much any hobby store nowadays. It’s super light and strong.
      Now, to attach CF to things I use my next-favourite modern material – Kevlar thread. It’s easy to buy a 50yd cotton reel of fly-tying Kevlar on eBay, and once again not expensive. Bind the rod or strip using the Kevlar, fix in place with cyanoacrylate (superglue) and smear a thin layer of epoxy over the binding. The result is a massively strong and light assembly.

    2. That sounds really interesting but I’m having trouble visualizing the construction you described – could you point me to some examples of structural frames built from music wire?

  2. This is great! This is exactly what i have been looking for :) Was kind of hoping HaD would have a some suggestion to other 3D printed frames, can’t help but think that the shapes of the “arms” should be flat and more aerodynamic.

  3. I don’t see (read) of a control mechanism. If it is to be autonomous, it will need MEMS and sonar or something, if radio controlled it will need TX/RX circuits (additional weight)

  4. While I won’t deny this might be able to lift itself off the ground, I have serious doubts about its ability to fly around on its own. The Arduino Uno alone weighs 28 grams, which is more than half of the lift capacity of the Hubsan X4’s motors.

    Add in the frame, the rest of the electronics, battery…I don’t see it happening. Especially once you get into adding an actual radio or the hardware necessary for autonomous flight.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.