Fiva Drone: Automatic Landing/Charging Quadcopter

Fully Automatic Open Source Quadcopter and Landing/Charging Platform, made from scratch.

Similar projects worth following
In this project I document all the required steps to build a fully automatic quadcopter from scratch. This includes an automatic landing/charging platform. This project aims to build a weather monitoring drone, with a programable schedule of takeoffs, landings and routes. The schedule is stored in the cloud, as well as the collected data and photos.
Anyway the quadcopter could be used for:
- Weather monitoring.
- Air quality monitoring.
- Mines detecting.
- Seeds sowing.
- Photography.
- Video recording.
- Packages shipping.
- Others.

All the above applications and automatic landing are possible with OpenCV and a camera installed bellow the drone.
The battery is charged by inductance from the platform.

I have been postponing this project for a long time, but the 2016 HackadayPrize is a great opportunity to get funds, and contributions from users.

"Fiva" means "the air" in Muisca language, spoken by an indigenous civilization of South America.

The drone

Fiva Drone will include the following main parts:

- 1x USB SD camera (OpenCV) mounted on 2 servos.

- 1x HD camera.

- 1x aluminum case (red color) for circuitry.

Inside the case: Flight controller, Raspberry Pi Zero, 3G/GPS module, Xbee module, Voltage regulators, etc.

- GPS, 3G and Xbee antennas.

- 1x 3S 5800mAh battery.

- 4x brushless motors.

- 4x HW30A ESC.

- Wireless charging circuit.

- On foot magnets (allows to easily align the drone with platform)

- Battery cells balancing device.

- Cross laser (for alignment while landing, using the camera and OpenCV) [Optional].

Communication technologies


Web interface


Why OpenCV?

OpenCV is a software library that allows the computer vision. Thanks to this, Fiva Drone is able to recognize templates and control processes depending on the images, provided by the camera.

GPS is not accurate enough for a precise landing, but it assist this process just in the beginning, providing the approximate coordinates and elevation of platform. Thereby, the Fiva Drone's vision will try to find the platform within a small area.

Landing process

When the landing process begins, the camera will rotate and point directly to the floor, trying to find a valid template (with OpenCV).

Then, when the drone is very close to the platform, the cross on platform will assist the fine alignment. A proximity sensor on platform will activate the three electromagnets and the wireless charging circuit. This will smoothly force the landing and alignment. When the wireless charging process is done, the electromagnets release the drone, allowing the next takeoff.

Landing/Charging platform

View all 8 project logs

  • 1
    Step 1

    The first step is to define what the drone will include. I designed all the pieces and placed holes, in AutoCAD, according to the components list. I think the tubes are too long, but let's see what happens in flight, as it is easy to cut them again. I chose M3 screws, hence the holes have a diameter of 3.2 millimeters. The platform will be designed when I get the quadcopter to work.

    I successfully tested the ESC with an Arduino sketch and a potentiometer. Find the sketch inside the "ESC" folder in GitHub.

  • 2
    Step 2

    Although the drone will be autonomous, according to the FAA, you have to be able to take control over your drone at any time. Thereby, I ordered a Syma controller from Aliexpress. Then, I harvested all the components, enclosure, sticks and screws. I am planning to add a Xbee module, so that I drilled a hole on the enclosure for the SMA connector.

    The plan is to design a new controller PCB with custom and original parts. This new PCB should have the same shape.

  • 3
    Step 3

    In order to attach the brushless motors to the center parts, I cut four pieces from a square aluminum tube. My tools are limited, but I got it. Also, I drilled 12 holes on every piece. See dimensions in the DWG file (GitHub) and BOM section.

View all 4 instructions

Enjoy this project?



PMLukas88 wrote 06/14/2017 at 15:25 point

Hello Camilo,

I tried to contact you regarding your project.

Hope you can get in touch via LinkedIn Lukas Meilhammer

or send me an email:

Best regards,


  Are you sure? yes | no

Joseph wrote 05/17/2016 at 15:57 point

amazing project, I've working on a machine vision dev board which has a 32u4 mcu and embed cam system, those could run some simple CV program. look forward if we could combine the tech and build a cv enabled drone kit  :p 

  Are you sure? yes | no

Camilo Rojas wrote 07/13/2016 at 16:30 point

Hi Joseph, thank you for your comment and sorry for my late reply. I will take a look at your project, it looks very interesting.  My project does not need complex programs. Are you still interested in combining our projects? Best regards.

  Are you sure? yes | no

kd5ftn wrote 04/25/2016 at 16:42 point

I'm eagerly following your project, but I think you're going to find that even with OpenCV, translating positional data from your landing target into the desired movement of the quadcopter is going to be very challenging to land precisely on the posts - especially with undesired effects, such as wind.

For some background, you can look at the "companion computer" code in the APM/Pixhawk codebase.

  Are you sure? yes | no

Camilo Rojas wrote 04/25/2016 at 17:43 point

Hi kd5ftn,

Thank you for your contribution. Definitely it will be very challenging. Now I am looking for existing flight controllers and autopilots like the one you have mentioned, in order to build one by myself with the users contributions. The plan is to sense such wind conditions while the drone is close to the platform and get it down very slowly, trying to correct the course all the time. I want to use posts in order to avoid turbulence generated by the floor.

If you have more suggestions, please discuss them here.

  Are you sure? yes | no

Ab Cd wrote 04/10/2016 at 20:05 point

You will be making flight controller from scratch or you will be reprogramming existing one?

  Are you sure? yes | no

Camilo Rojas wrote 04/10/2016 at 20:32 point

Hi Michal, I would like to make it from scratch. I know it is a huge task, but it would be more interesting. I already got the IMU module, which should be placed away from magnetic interference. I think the most challenging part is the PID controller, but there are tons of literature about it. If you have any suggestion, please feel free to tell me.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates