Introduction: Cheap Arduino Drone Using Bluetooth
In this Inscrutable I want to share a cool project I been working on. Making this project was quite an adventure and after hours tweaking and calibrating I was finally able to make this project work. That's why I want to share my experience and mistakes so that you can benefit from it.
Before we start let me briefly summarize the specs of this drone. Firstly this drone runs the MultiWii firmware , which is a popular flight control firmware that can be run on an Arduino board. We can control the Drone using any smartphone via Bluetooth connection. Also the drone can be given additional features by adding various sensors
- Brushed 3.7V 720 7.0x20mm Micro Coreless Motors x 4
- 2 Clockwise and 2 Anti Clockwise propellars
- 3.7v LiPo Battery (Anything between 300mAh to 500mAh should do )
- Frame which can be 3D printed or purchased
- Bluetooth module HM-10
- MPU6050 sensor module
- MT3608 DC DC Boast converter
- Atmega328p or can also use Arduino Pro Mini (5v 16MHz)
- SI2302 Mosfets x4
- SS12 Diodes x4
Step 1: Schematic
Here is the schematic for this Drone. Although this schematic can drive a 6 motor drone aka hexacopter, we will only be needing 4 for a quadcopter.
As for the Motor Connection for quadcopter , here are the Pin mappings
Front left : M1 (Pin D3 for Arduino)
Front right : M3 (Pin D6 for Arduino)
Rear right : M4 (Pin D9 for Arduino)
Rear left : M2 (Pin D5 for Arduino)
Note : Soldering SMD components is hard especially beginners, (took me a couple of tries to solder the atmega328p chip) , If your new to this I recommend using an Arduino Pro Mini.
Step 2: PCB Design
The PCB is made from the above schematic diagram. I got it fabricated, as some of the traces were to tiny for the toner transfer method. I then soldered all the components to the board as per the schematic.
The Schematic and Board can be downloaded from Here
Step 3: Wiring Everything Together
Connect the motors as given in the schematic. Note that two motors spin in the clockwise direction and two motors spin in the anti clockwise direction (Refer to the figure) , If a motor is not spinning in the right direction simply switch the polarity of the motor.
The Bluetooth module needs to be connected to a software serial port. Here are the connections if you plan to use Arduino Pro mini.
5V -> Vcc
GND -> GND
D8 -> Tx
D7 -> Rx
Note : The Serial Baudrate set for Bluetooth module should be 9600
DC DC Boast converter
Since the Arduino board Works on 5 Volts and the the LiPo battery voltage can range from 3.7 to 4.2V , We need to use this boast converter to step up the battery voltage to 5V. Here I am using MT3068 but any boast converter with similar input and output voltage ranges should work.
Note : We are only boasting the voltage for the Arduino, for the brushed motors the supply is given directly from the battery
Caution: Make sure you set the output of the boast converter to 5v using the little potentiometer before soldering the board to the main circuit as these boast converter are capable of producing voltages that can damage the arduino and other components
Step 4: Uploading the Firmware
To upload the firmware you need a USB-to-Serial converter. Connect it to the programming pins of the Drone.
Note : If you purchased the atmega328p chip separately, chances are that it does not have a bootloader, hence uploading firmware via Serial converter will not work, In that case you may use an ISP programmer or any other Arduino board to burn the bootloader (learn more)
Download the Firmware
Download the MultiWii firmware from here
Upload the Firmware
Open the MultiWii.ino in Arduino and make sure to select the correct board and serial port and click on the upload button
Step 5: Calibrating the Drone
We will be using a tool called MultiWiiConf which would be downloaded along with the firmware. This tool allows us to visualize the drone, calibrate the drone and set various parameters.
Note: MultiWiiConf requires java , you might need to install java if the program is not working
Now open MultiWiiConf and select the right COM Port , after which click on the START button, At this point you should be able to see the Drone visualization. Good, move the drone a bit and make sure the visualization moves accordingly.
Now Open the RemoteXY app on your phone and connect to the drone. move virtual joysticks and make sure the corresponding channels on the MultiWiiConf change.
Now keep the Drone on a level surface and click on CALIB_ACC button hold this position for a few seconds and finally click on the WRITE button to save the changes.
Step 6: Summary and Future Improvements
All in all this is a good project if your just getting started into Drones. Its cheap , you learn a lot and once your done you get a cool toy to play with. I had a lot of fun building and flying the drone.
- Adding additional sensors such as a barometer would have made flying the drone a bit easier for new drone pilots.
- Making the board a bit light and compact.
- On board charging circuit for the LiPo battery
Participated in the