DIY Mini Drone: Free Flight
Summary
Introduction
Make your mini popsicle stick drone lift off in this activity! You will build a dual-joystick controller to steer your drone so you can fly it manually. How well can you fly without any help from automatic controls?
See this page for a complete list of our mini drone projects. You may wish to do the projects in order.
Materials
In addition to the materials in the Program Drone Steering with an Arduino®, you will need:
- 2-axis analog joysticks (2)
- An additional solderless breadboard for your joystick controller
- Additional straws
- Paper or cardstock
The parts to build a basic drone are available in the DIY Mini Drone Kit.
Prep Work
- Follow the instructions in the DIY Mini Drone activity to build your drone, with the following important changes:
- Do not connect any of the motor wires to each other. Add a separate extension wire (roughly 1 m long) to each individual motor wire—8 wires total. To make it easier to keep track of the wires, make the extension wire colors match the motor wires.
- Use straws to build a "roll cage" for your drone. You can come up with your own design, but this picture shows an example. The yellow straws protect the propellers. The green straws make it harder for the drone to flip over.
Instructions
- Build the following circuit. Click for bigger versions of the breadboard diagram and circuit diagram. A few important notes:
- Make sure you do not short-circuit the Arduino's 5 V to the battery pack's 6 V.
- Use long jumper wires to connect the two breadboards, so you can easily pick up the "controller."
- Motors 1, 2, 3, and 4 are controlled by MOSFETs connected to Arduino pins 11, 10, 9, and 6, respectively (these are pins with PWM functionality for controlling motor speed).
- The joystick outputs are connected to the Arduino analog input pins as follows:
- Joystick 1 L/R: A2
- Joystick 1 U/D: A3
- Joystick 2 L/R: A0
- Joystick 2 U/D: A1
- Download drone_free_flight.ino. Read through the commented code to attempt to understand how it works. Note that there are several variables you can change that will affect your drone's steering.
- Upload the code to your Arduino.
- Place your drone on a flat, level surface and slowly try pushing on the right joystick ("joystick 2" should be on your right when you hold the controller). This joystick steers the drone forward, backward, left, and right. See if you can control the drone's direction as it glides around on the ground.
- Let go of the right joystick. Try to slowly press up on the left joystick to increase the speed of all four motors and make your drone lift off the ground.Can you use the right joystick to steer your drone and keep it level while it is up in the air?
- Try adding fins to your drone. They will increase drag, slowing down the drone's rotation. You can experiment with the size, location, and orientation of the fins. This picture shows just one example. If you are having trouble with your drone's propellers getting tangled in the wires, you can also try bundling the wires together with a twist tie, as shown in the picture.Does adding fins make it easier to steer your drone?
- Try changing the speedChange variable in the code to change your drone's steering sensitivity.Does increasing or decreasing the variable make it easier to steer the drone?
Cleanup
What Happened?
You probably found that it is quite difficult to steer a drone manually! Your drone is unstable, meaning it tends to flip over and crash. Adding a roll cage and fins can help slow the drone down and make it harder to flip. You might be able to control the drone's direction as it glides around on the ground, but it is very difficult to make the drone fly up in the air without crashing. Recreational drones use automatic control to help them stay level. Read the Digging Deeper section to learn more.
Digging Deeper
Most toy drones (the kind you can buy in a store) use a mix of automatic and human control. A human operator can make the drone move up, down, left, right, forward, and backward with a controller, typically with two joysticks. However, the drone also has on-board sensors that detect its angle of tilt, and constantly makes small adjustments to the motor speeds to keep itself upright. These automatic adjustments are necessary because as you discovered, human reaction time is not good enough to keep the drone from crashing!

Ask an Expert
For Further Exploration
- To explore some of the sensors that drones use to help with automatic flight control, check out the additional projects in this mini popsicle stick drone series, listed below.
- If you are ready to move on to build your own fully functional, radio-controlled drone, check out the resources in the Build Your Own RC Drone project.