Have you ever dream about building <15 $ DIY remote control park flyer plane that control by your mobile phone (Android App over WiFi) and give you daily dose of adrenaline rush of 15 minutes (flying time of around 15minutes)? than this article is for you guys.. This plane is very stable and slow flying so its very easy for even kids to fly it.
Talking about range of the plane... I have got around 70 meter LOS range using my Moto G5S mobile acting as WiFi Hotspot and remote controller. Further real-time RSSI displayed on Android App and if plane about to go outside range (RSSI fall below -85 dBm ) than mobile phone starts vibrating. If plane goes outside range of Wi-Fi access point than motor stops to provide fail safe landing. Also battery voltage displayed on Android app and if battery voltage fall below 3.7V than mobile phone starts vibrating to provide feedback to pilot for land the plane before battery gets fully drained. Plane is fully gesture controlled means if you tilt mobile phone on left than plane turn left and opposite for right turn.
So here, I am sharing step by step build instruction of my ESP8266 based WiFi controlled tiny Plane.
Build time required for this plane is around 5-6 hours and requires basic soldering skill, little bit programming knowledge of ESP8266 using Arduino IDE and having Cup of hot coffee or chilled beer around will be great
Electronics Parts:If you are electronics hobbyist than you will find many of the parts listed below in your inventory..
1 nos. 50cm x 50cm 3mm depron sheet or any rigid 3mm foam sheet
Single core insulated jumper wire
Nodemcu or cp2102 USB to UART converter as programmer for upload firmware to esp8266
Hobby grade Soldering Tools
Surgical Blade with blade holder
Hot glue gun
Computer having Arduino IDE with ESP8266 Arduino Core
Android Mobile phone
That's it all we need... Now we are all set to build our crazy WiFi Controlled Plane
This Plane uses differential thrust for yaw control (Steering) and collective thrust for pitch (climb/descent) and air speed control hence no servo motor needed and only two main coreless DC motor provides thrust and control.
Polyhedral shape of wing provides roll stability against external force (Wind gust).
Intentionally avoiding servo motor on control surfaces (elevator, Aileron and Rudder) makes design of the plane very easy to build without any complex control mechanism and also reduce cost of the build.
To control the plane All we need is to control thrust of both Coreless DC motor remotely via WiFi using Android App running on mobile phone.
Just in case, any one want to observe this plane's design in 3D, I have attached Fusion 360 screen shot and stl file here.. you can use online stl viewer to look at the design from any view angle.. once again it is just a CAD design of plane for documentation, you do not need 3D printer or laser cutter.. so don't worry
ESP12e (ESP8266) Based receiver cum control module Schematic:
Lets start with understanding function of each component in schematic,
ESP12e : This ESP8266 WiFi SoC receives UDP control packets from Android App and controls RPM of Left and Right motor.It measures battery voltage and RSSI of WiFi signal and send it to Android App.
D1: ESP8266 module safely operates between 1.8V~3.6V as per its data sheet, hence single cell LiPo battery cant be used directly for ESP8266 power supply so step down converter is required. Reduce circuit weight and complexity I have used 1N4007 Diode to drop battery voltage (4.2V ~ 3.7V) by 0.7V (cut in voltage of 1N4007) to get voltage in range of 3.5V~3.0V which is used as supply voltage of ESP8266. I know its ugly way to do so but its working just fine for this plane.
R1, R2 and R3: these three resistors are minimum required for ESP8266 minimum setup. R1 pull-up CH_PD(EN) pin of ESP8266 to enable it. RST pin of ESP8266 is active low so R2 pull-up RST pin of ESP8266 and bring it out of reset mode. as per data sheet on power up, GPIO15 pin of ESP8266 must be low so R3 used to pull-down GPIO15 of ESP8266.
R4 and R5: R4 and R5 used to pull-down gate of T1 and T2 to avoid any false trigger of mosfets (motor run) when ESP8266 power up. (Note: R1 to R5 values used in this project is 3.3Kohms, however any resistance between 1K to 10K will work seamlessly)
T1 and T2: These are two Si2302DS N-channel power mosfets (2.5 Amp rating) controls RPM of Left and Right Motor by PWM coming from GPIO4 and GPIO5 of ESP8266.
L_MOTOR and R_MOTOR: These are 7mmx20mm 35000 RPM Coreless DC motors provides differential thrust for fly and control plane. Each motor provides 30gram thrust at 3.7V and draws 700mA Current at speed.
J1 and J2: These are mini JST connector used for ESP12e module and Battery connection. You can use any connector that can handles at least 2Amp current.
(Note : I completely understand importance of decoupling capacitor in mixed signal circuit design, but I have avoided decoupling capacitors in this project to avoid circuit complexity and part count as only WiFi part of ESP8266 is RF/Analog and ESP12e module itself having necessary decoupling capacitors on-board. BTW without any external decoupling capacitor circuit works just fine.)
ESP12e based receiver schematic with programming connection in pdf format is attached with this Article..
Above video with caption shows step by step build log of ESP12e Based Receiver cum controller designed for this project. I have tried to place components as per my skills. you can place components as per your skill by considering schematic given in previous step.
Only SMD mosfets (Si2302DS) are too small and needs taken care while soldering. I have these mosfets in my inventory so I have used it. You can use any bigger TO92 package power mosfet with Rdson < 0.2ohms and Vgson < 3.7V with current rating of >1.5Amps. (Suggest Me if you find such mosfet easily available in market..)
Once this hardware is ready, we are all set for upload firmware of WiFi Plane to nodemcu this process discussed in next step.
Firmware Setup and Upload:
ESP8266 firmware for this project is developed using Arduino IDE.
Nodemcu or USBtoUART Converter can be used to upload firmware to ESP12e. In this project I am using Nodemcu as a programmer to upload firmware to ESP12e.
Above Video shows step by step process of the same..
There are two methods to upload this firmware to ESP12e,
Using nodemcu flasher: If you just want to use wifiplane_esp8266_esp12e.bin binary file attached with this step without any modification in firmware than this is best method to follow.
Download wifiplane_esp8266_esp12e.bin from attachment of this article.
Download wifiplane_esp8266.ino from attachment of this article.
Open Arduino IDE and copy code from wifiplane_esp8266.ino and paste it in toArduino IDE.
Edit SSID and Password of your network in the code by editing following two lines.
char ssid = "wifiplane"; // your network SSID (name)char pass = "wifiplane1234"; // your network password (use for WPA, or use as key for WEP)
Connect ESP12e based WiFi receiver module to your computer via Nodemcu-as programmer or USB to UART Converter.
Hit Upload button from Arduino IDE and wait till firmware upload process completes.
If all goes fine than you can See blue LED on ESP12e start flashing at every one second.
Cheers ESP12e is now ready to communicate with Android App.
Now in next step I will provide step by step build information for making Airframe for this project.
Airframe Build Log:
Airframe build log is shown step by step in video above. I have used 18cmx40cm piece of depron foam for airframe. Barbecue stick used to provide extra strength to fuselage and wing. In above image Plan of of Airframe is provided, however you can modify plan as per your need by just keeping basic aerodynamics and weight of the plane in mind. By considering electronics setup of this plane, it is capable to fly plane with maximum weight of around 50grams. BTW with this airframe and all electronics including battery flying weight of this plane is 36grams.
CG Location: I have used general thumb rule of CG for smooth glide...its 20%-25% of the of chord length away from leading edge of wing... With this CG setup with slightly up elevator, it glides with zero throttle, level fly with 20-25% throttle and with added throttle it starts climbing due to slightly up elevator...