Build an Arduino shield for Quadcopter – Arduino Adapter


I have been searching for ideas of making a Quadcopter Arduino flight controller Adapter to sit my Arduino nano board and the GY80, also have some header pins for motors and receiver to make the cabling tidy. There are a lot of Arduino shields people have designed for the Quadcopter.

I didn’t follow any of the designs. I actually didn’t follow any planned design, and solder the parts on the veroboard as I go along.

My Arduino Quadcopter flight controller adapter Design

Here is my own build. I deliberately left some empty space on the top right corner, so I can extend the board if I want to for example for the GPS module or ultrasonic sensor and so on.


arduion nano quadcopter adapter IMAG0967

This design has a few disadvantages, and there are some quick fixes I applied. Here are some thoughts.

BEC voltage input

The ESC BEC voltage input should have been all disconnected except one of them. There are people arguing about this, saying multiple voltage supply could cause problem if they have voltage difference (which is very likely since they are different voltage regulators although very small). It’s impossible to separate the connection from the back because of the soldering, therefore I snapped off the voltage header pins for motor 2,3 and 4, so only the signal and ground pins are still there.

I should actually utilize these BEC 5V voltage supply. For example, backup (secondary) voltage supply for flight controller in case the first one dies (when the motor 1 ESC has power issue). And the rest of the BEC could be servo power supply for the camera gimbal.

Motor and Receiver header pins position

motor pins should be placed on all four directions for easier access. Receiver pins should be placed in one group. I realize it doesn’t require an additional power supply pin for it, as they can be powered from the channel voltage pins.

Microcontroller Socket

To implement GPS or sonar on an Arduino nano, UNO or pro mini, we need an additional Microcontroller to interface with the GPS and sonar modules, then pass the data to the flight controller board using i2c.

A build in socket, or some sort of I2C connection pins to the flight controller would be really handy.

2 more motor pins (to run a hexacopter)


Design By Other People

Here are some design (mostly PCB design) by other people.

An interface adapter board for the Arduino Nano made by Yorbid

The board can be used for a Tri- and Quadcopter with optional camera roll & pitch stabilization.
It uses the 3.3VDC output from the Nano as a power source for the sensors. No automatic WM+ reset is available if the I2C bus freezes with this option.

Yorbid Nano interface board

Round adapter board by Warthox. A proven board originally designed by Warthox. The board can be used for a Tri- and Quadcopter.

Warthox original round board

This is an adapter board based on Ilmar’s round adapter board. The board can be used for a Tri- and Quadcopter with optional camera roll & pitch stabilization.

Connections for battery voltage monitoring with a buzzer are available. The board can be powered with a separate BEC and has a power available + status LED.

Pepetone nano1 shield

This “commercial” available PCB is an upgraded version of Warthox his round adapter board. The board can be used for a Tri- ,Quad-, Hexa, & Y6-copter together with all the features of the MultiWii1.6 version. It has an on board 3.3V regulator.


19 thoughts on “Build an Arduino shield for Quadcopter – Arduino Adapter

  1. my quad keeps on flipping to left
    1.i have calibrated the esc
    2.the y axis is the front of the quad where the gy 87 sensor y axis lies
    3.motors are moving in right direction as per the i check them without props
    4.even the propellers are connected properly so they create a pressure between them
    so pls guys help me with it
    hoping for a positive reply

  2. Hey!
    I am trying to build an quad using Arduino Mega 2560 using multiwii and i want to ask you if you have to connect all the grounds from the ESC to Arduino? Or you can connect only the signal pins?
    Thank you.

  3. Hi Oscar
    I built a multiwii board with Arduino nano and MPU 6050.I compiled and uploaded the mw v2.3 on my board on a h-copter but when i arm it, when it want to flying it give yaw to left or right(sometimes left , some times right) without any stick .so it’s very Unstable.please help me.This is my source code:
    Please see it.Is there any problem in my source code?
    Thank you and sorry for my bad English.

  4. Hi Oscar
    this is the part of arming in the source code:
    /******************************** ARM/DISARM *********************************/
    /* optionally disable stick combinations to arm/disarm the motors.
    * In most cases one of the two options to arm/disarm via TX stick is sufficient */

    and in MW conf app on PC my yaw change from 1000 to 2000 but my board isn’t arm!!
    can you help me?

    • Hi,
      What is your MINCHECK?
      your throttle must be lower than MINCHECK to arm. I usually have it at 1100.
      Lowering will make it less likely to arm

      Also, calibrate your ACC first too.

  5. Hi Oscar
    I want to build a flight control with Arduino nano and an IMU(mpu5060 or gy80).but i dont know anything about its program.Do I have to write the program or i can get a program from Arduino library?

  6. I already have an FC on that small 330 quad. I have programmed processing with the Arduino and know how to build things and program them… I am just looking for a fun project! So should I program it myself or install a program.


    P.S. – I have experience with rc modeling and building!! I learned from my Dad! (who also taught me Arduino and programming it!)

  7. Hi!

    I am 12 and building a FC board similar to this one that you built and I am wondering if I should program the arduino myself or if I should simply install a pre written program.


    • Hi again, just buy a flight controller, it’s A LOT easier, and more reliable.
      I recommend the KK2, if you are just starting this hobby.

  8. Hi,
    I replicated quite close your shematic. I took latetest mutiwii firware and I configured as:

    #define NANOWII
    #define QUADX
    #define MPU6050
    burned, tuned with MutliWiiconfig 4 linux. All throtle, pitch, yaw, rool aux1 – ARM, from turnigy works ok.

    I dont have the esc yet, but I osciloscoped the motors PWM.
    I can see the % of PWM changing from equidistant squared wave to combwise form . throotle works fine.
    Picth roll yaw does not seems to chnage the PWM on motors, though tthe UI shows the levels progres bars OK.
    Inclining the board seems also that does not trigger any PWM chnage, though the UI shows the inclination angles OK.

    Any ideas. Thx.
    Marius C.

    • what happen if you increase your PID gain?
      also, the yaw/pitch/roll would only respond if throttle is up. Make throttle 50% then change pitch roll see if that works.

  9. Mr Oscar,,
    thank you for your blog, its very informative.Can I ask you one question?Before I ask you , I want to tell you me problem.I learn a lot of example to create arduino flight controller. Most of the example explain about Arduino uno and wii motion + and nunchank. Some Arduino + IMU like your example.But I don’t find any one write about
    (Arduino , wm+ , nunchunk , gps ) or ( Arduino + IMU + gps ). My question is how to wire ( Arduino + imu + gps )
    or ( Arduino + wii motion plus + nunchunk + gps ).Please guide me, how to.


  10. Hi,

    thank you for your blog, its very informative.
    Can you please give me more details about the receiver? i might have missed it but your board has pin settings for it but no actual receiver right? which receiver did you used?


Leave a Reply

Your email address will not be published. Required fields are marked *

three × = 9

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>