Introduction: DIY RC Drone
In this instructable, I will be sharing my journey of creating an RC Drone, which is capable of deploying relief supplies to inaccessible areas.
I will try not to go into the programming of the Drone, else it becomes an extremely long instructable. Instead, I will keep my focus on the construction methodology.
The Drone is equipped with arduino uno micro controllers at both ends, which communicate via nrf24l01+ transceivers.
Need: It can be used to deploy packages of medicines or essential supplies in areas, where it is not possible to send these items via land routes like areas affected by floods, earthquakes or other natural disasters.
Currently, it can only be operated by line of sight but I have plans to add a raspberry pi and a camera and interface it with an on board GPS, later on in the second iteration of the project.
I made this Drone with materials which can be found at home, or can easily be acquired at the local store. The entire model weighs about 1 kilograms. I used polystyrene, as other options were either too expensive or not available, but I made up for the strength by adding aluminium strips across the entire body, and also at the tips, so it wouldn't break (much...) if it were to crash.
I hope to share my techniques, tips & tricks, problems faced during the build, and I hope you enjoy the same :)
Step 1: Design
Center of Gravity
The center of gravity is crucial. Notice I have two battery packs at the front and a motor at the back to balance out the weight difference across the model.
If you can lift your model with two fingers (both the hands), at a point such that it doesn't fall over, you have found the center of gravity for your Drone. (Image 1)
To visualize this, imagine you have a ball underneath the Drone. If the Drone tilts too mush in one direction, it will fall off. Similar is the situation with the COG, mid air, you have to make sure your Drone maintains steady flight while flying.
In a Plane this big, there would be considerable forces of wind and drag affecting the plane, so you have to make sure you make sure your Drone does not rip apart from its own weight when taking off.
To make sure of that, I have added aluminium strips across the body of the plane to provide strength to the main body and the wings.
The Drone's design limits the control over the altitude gain as the Drone takes off.
The control surfaces at the back only provide
1) Control over Roll of the drone
2) Air brakes
The design is not efficient with some major control issues, but for the most part works.
The vertical stabilizers provide
1) Control over Yaw of the drone
I added the stabilizers at an angle, so as to control the lift and the fall of the plane since the control surfaces at the back were not up for the job.
Step 2: List of Materials and Equipment
1) Soldering Iron
2) Solder Wire
3) Hot Glue Gun
4) Multi meter
6) wire cutter
7) Arts and crafts Blade
8) Screw driver set
2) Thick Polystyrene board
3) Fiber Glass (The thin and light one)
4) Bicycle wheel spokes (For landing gear)
5) flexible iron wires (For servo aileron connection)
6) small nuts and bolts (For connecting the fiberglass sheets)
7) Aluminium strips (20) (For structural support)
I would not recommend Aluminium strips if you are low on budget because they were very expensive. But on the bright side they are reusable.
1) Arduino (2)
2) nrf24l01+ transceivers (2)
3) 1000kv Brushless motor (Outrunner)
4) 7 V 1000mAh 20C 2S Turnigy LiPo Battery Pack (2)
5) ZTW Beatles 30A ESC
6) Male/Female 2 Pair Pigtail connectors
8) 3x toy wheels
9) (Optional) Helicopter motor frame
10) 5 volt regulator (2)
11) 9g Servos (5)
Step 3: Body Construction
I used a Hot wire cutter to shape the model. I also made an instructable on how to build the hot wire cutter so you can check that out at:
One of the main problems I encountered while shaping the foam was to keep the cutter straight, to do that i used a fiberglass sheet and laid it across the line where I had to cut. This way my hot wire cutter cut along a straight path only. You may use a scale or a ruler to do so, or any hard plane surface with a straight edge would suffice.
I started to cut with the tip, then did the edges. Notice I didn't cut the back edge of the wing, but you may do so if your building material is strong, since I used foam, I had to leave that out in order to attach the control surfaces.
A small note on attaching the aluminium strips, I only applied hot glue at the ends of the strip and not on the whole surface, because when the wing vibrates, the aluminium can expand and contract to absorb the force, else there would be wear and tear in the structure.
Step 4: The Motor, Propeller, ESC, Battery Theory
When purchasing a Motor, ESC and a battery for your RC plane there are a few factors that need to be considered:
The more the kv rating, the less the Wattage, the faster is the turning speed, and lesser torque.
The more the Wattage, the lower the kv rating, the slower the turning speed, the more the torque.
So if your plane needs to fly fast and weighs less, you should go for motor with higher kv rating. But if your plane is a glider, and has a lot of weight, you should go for higher wattage.
If your motor has high torque, but low speed you should go for a larger prop size, but if your motor has a high kv rating and low torque, you should use a small prop because you risk overheating the motor if you use a large prop.
reading propeller labels : 11x4.5 means 11 is the prop size and 4.5 is the units it will move forward in air per revolution.
CAUTION: never use a damaged propeller, a damaged propeller can damage the motor and can break off during rotation.
3) ESC or Electronic Speed Control:
It is responsible for controlling the power given to the motor. An ESC must always be of a higher rating than taht of the brushless motor it controls. If the motor is 20A then the ESC should be 30A or can bee more, but never equal to or less than the motors rating.
There are several different types of batteries available, but I am going to discuss Lithium Polymer or LiPo for short
If your motor is rated 20A, use a battery pack that matches the same rating, don't use a large battery pack for a small motor because you risk overheating the motor.
Reading the labels: mAh rating tells the capacity of the battery, the more the mAh rating, the longer the battery will last. 1S/2S/3S tells the number of individual cells in the pack. 20C/30C is the rate of discharge for the battery pack.
CAUTION: Lithium Polymer are extremely volatile batteries and must be dealt with care.
A: Never let the battery drain below 3.7 Volts, you risk a battery explosion if you attempt to charge a battery gone below 3.7 Volts!
B: Never charge a Lithium Polymer more than required. Use a GOOD charger which automatically tells you when a battery is charged, or buy a battery voltage indicator.
C: Never rupture a battery or use excessive force, or the battery will explode or catch fire!
D: If the battery pack is swollen, safely dispose it off, and don't attempt to charge or use it.
If you want more details on how to choose an optimum combination best for your rc model, watch this video:
Or go to the following link:
If you want more details regarding propellers watch the following video, Also flite test makes awesome videos so I highly recommend their channel
Step 5: Constructing the Motor Mount
I used a carbon fiber base to mount the motor onto, then screwed it to an aluminium frame.
The aluminium frame is from an rc helicopter, in which it serves as the main motor mount, Then screwed the whole assembly to the fiberglass assembly.
The fiberglass assembly is bound together by screws and aluminium strips cut to length. The fiberglass sheets were very light therefore there was no problem attaching it to the foam.
Such a complex construction ensures
1) The motor blade does not hit ground in case of partial landing gear failure
2) If the motor stops abruptly, the motor mount will absorb the shock and not damage the foam.
Step 6: Connecting the Motor With the ESC
Most ESC's do not come with bullet connectors whereas most of the brushless motors come with them, so in order to attach the ESC with the Brushless motor, there should be male/female connectors at both ends.
Just take the connector male/female, I have used female connector because my motor comes with a male connector.
1) fill the connector's back with hot solder, and instantly dip the ECS's exposed tip of the wire into it.
2) Tape the connector and the joint with electrical tape to avoid short circuit.
Step 7: Control Surfaces
I took a thick cardboard and hot glued it to the foam
Then I cut a hole in the cardboard the size of the servo, and hot glued the servo into the hole so it wont break easily during operation
One thing to be careful of is that the height of the servo should be less than the hold on the flap
I taped the flap to the body, the flap is made of thin cardboard so it does not need any structural strength
Step 8: Control Surfaces: Vertical Stablizers
The construction is pretty much the same for the most part.
Step 9: Building the Payload Carrier
The payload carrier is two fold, the servo deploy assembly and the projectile support strips.
Aluminium strips were used in the construction of the projectile support strips.
Step 10: The Reciever Circuit
Provides a good tutorial on how to interface nrf24l01 with arduino uno using the rf24 Library.
Personally I think the rf24 library is the easiest to use and understand, without adding much clutter to the code.
In my module I used the socket adapter board which improves the signal quality and improves the range of operation. since most chinese arduino uno boards don't provide constant voltage, so these modules won't work.
The GPS is attached to the Rx and the Tx of the arduino uno. One thing to take care of is that when transferring GPS data via the transceiver, make sure the plane mode is set to send, and the base station is set to receive mode, and this should happen when there is no control transmission, that is, control is idle.
When connecting the servos make sure to. Provide seprate GND and VCC for the servos, Arduino isn't designed to power servos, Also remember to common the GND of the Arduino to the GND of the external power supply to the servo.
Since I did not plan to use a socket adapter board to regulate the power supply to the transceiver, I had to create another circuit to interface the transceiver and the regulator onto my existing mother board. You can find the details of that in the next step.
The Tilt sensor uses three analog inputs to send the data to the arduino, and you get tilt info along the X, Y, and the Z axes. I connected the pins to A0, A1 and A2,
I plan to use the extra sensors (tilt sensor/GPS) with a raspberry pi so these are not really necessary if you plan to fly it in line of sight.
Step 11: Connecting the Socket Adapter With the NRF24L01
Since I couldn't accommodate the socket adapter board on to the motherboard, I connected via another chip as shown. The problem was to add the socket adapter without modifying the motherboard, so I added connectors in the same configuration as on the nrf24 on one end, and added connectors on the other end with the configuration of the socket adapter board.
The socket adapter has a 3.3 volt regulator on board along with capacitors, which ensure a regulated voltage from a 5 volt source. Even though arduino has an inbuilt 3.3 volt regulator, it is good to use bypass capacitors and/or regulator to maintain constant supply.
Use a bypass capacitor if you plan to use the 3.3Volt supply of the arduino, else use a 3.3 Volt regulator if you plan to the 5 volts of the arduino. But in my case I used the socket adapter as it has both the capacitors and the regulator integrated into a small module and would highly recommend to buy one if you want a reliable connection.
Step 12: Constructing the Base Station
I added a Touchscreen TFT LCD to give instant feedback to my input if I were not to use my laptop in the future, but right now I use my laptop keyboard and Windows forms application to control the Drone.
For the base I used quiet a large General Purpose PCB.
Again I had to add the socket adapter board later which in this case i used jumper cables to connect to the arduino uno. The TFT LCD connected with the arduino can be controlled by sending serial data from the windows forms to the serial port of the arduino uno.
For example, if you wanted to display elevation, you could send the value via serial port to the arduino and program the arduino if it receives this value, update the elevation graph.
The libraries for the TFT LCD can be found at the link below
The User Interface was built in windows Forms, the buttons are just for show but do work. The main control is done by the key board keys because they are faster for some reason, But I would recommend to use keyboard for control and remove other extra unnecessary events to decrease the overhead of polling and increase reaction time.
Right now the following is the list of usable controls:
UP (For dive) , DOWN (For Lift), LEFT, RIGHT, W (Motor speed up), S (motor Speed down), X (Motor emergency Stop)
I added the Emergency stop button because if a plane crashes, you need to stop the motor immediately to prevent damage to it. Though it is never a good idea to stop a motor running at high speed, some damage is better than not working.
Step 13: Power and Connections
I have two LiPo's powering the whole plane, a 1200mAh provides power to the motherboard, which further provides to the servos, the second one is a 1000mAh for powering the motor. I would recommend using good quality battery as they last longer than cheaper ones. They are expensive but a good investment.
The motherboard is powered via 5 Volt DC regulator, connected to the lithium polymer.
The two LiPo's are fixed onto the frame very rigidly via hot glue so they pose no problem at all, also keep in mind let the hot glue cool before applying it to the LiPo or you might overheat the battery which is not good. This is very important, I would suggest to use a double sided tape if you have problems attaching the battery because hot glue.
The GPS is not necessary, If you plane on operating the Drone in line of sight. But I added it anyway to use it with a raspberry pi in the future.
In theory you could use the transceiver to send the GPS data and the tilt sensor data, but the fact that the transceivers would be idle for 5-10 seconds is rare in case of operation in line of sight, so it would be better to use a raspberry pi micro-controller and upload the data to a server, and reserve the transceivers for flight operations.
Step 14: Useful Links for Reference or Further Research
Flite Test is a great channel on YouTube for rc plane hobbyists and the have a great series on Beginners RC how to's:
For interfacing nrf24 modules:
For interfacing arduino uno with an ESC, down below is a great instructable:
other website and videos:
For controlling servos with arduino uno:
Step 15: Update 5-12-15: Lessons Learnt
Tokyo drift :D
I Tried to fly it again but ended up damaging it, this time pretty badly. The body cracked, and the blade got a dent. The whole landing gear was destroyed.
I was moving in circles before flight when a sudden jerk broke the front landing gear (I think because of the grass/pebbles. should have done on concrete floor).
I would not recommend polystyrene as it is susceptible to damage easily. Also, recommend making the landing gear stronger.
As suggested in the comments I will try EPP foam in the next build.
Rx/Tx: The range was pretty bad, I would suggest using a standard handheld transmitter and receiver. I think it should be more reliable easier than writing my own program or making my on PCB. I'll try it next time.
Strength: The body should be more strong, during the first and second attempts the front landing gear came off, first time didn't do much damage as I landed pretty harshly on its belly (no video but it was a straight flight pretty much),
the second attempt it cracked the body (as in the video) ;_; like I said before, so I should have used a better foam.
Battery: one of my battery died (before flight), I think the reason was I stuck it too tightly to the body. Anyway I had to use the single 1200mAh battery and re-route the power to both (via regulator) servo and motor.
Thanks for the likes and comments!