Build an Arduino shield for Quadcopter – Arduino Adapter

IMAG0965

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.

IMAG0957

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)

hex6

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.

MutiWiiCopter.com_paris_board

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

  1. Sarvesh Thakur

    Hi Oscar,
    I am working on the same project with arduino uno and mpu6050. Can you send me the connection details of your version at my email id: thakursarvesh89 ATgmail.com asap…
    It would be of great help.
    and lastly, this is one of the best tutorials about the topic on internet :)

    Reply
  2. DEVIL KING

    HI!

    thanks for ur blog it very nice & actually i m a beginner and i want to build an arduino uno shield for quad-copter
    i ve mpu 6050(gy-521)(ACCELERO & GYRO)+
    GY-273(MAGNETO)+GY-68(BERO) so i want to know how to connect them together with arduino ????
    shall i connect slc & sda of all sensor togerther to connect to arduino or i use individual pin for connection??????
    plzzzz plzz pllzzzzz help me immiediately!!!!

    Reply
    1. Oscar Post author

      for i2c connection you can use the same pins on the Arduino, you just need to speicify the address for each device.

      Reply
  3. ginnyc

    Hi Mr Oscar, so glad to have found your blog to help me out in a Quadcopter project I am currently working on. I am currently using an Arduino Pro Mini 3.3V with the sensor, SEN-10724 and Futaba R6208SB Receiver. My adapter design is quite close or similar to what you have shown above.

    I would like to make sure if I’m right on the color representatives of the wire when signal is being sent from Receiver to my Arduino adapter. Does brown represents ground, orange representing power signal and the yellow representing signal?

    I expect my receiver LED to light up when I connect it to my Ardiuno shield with the power generating from the computer itself, but it doesn’t light up. I was thinking if I solder the pin wrongly which caused it to not light up.

    Reply
    1. Oscar Post author

      yes your wire assumption is correct.
      To power the receiver, you need external power source, computer USB isn’t enough, it’s quite “current hungry”.

      Reply
  4. yash jhunjhunwala

    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

    Reply
  5. addy

    hi oscar, can you please send me the exact connection diagram of arduino shield for quadcopter that you have made using arduino nano? please send that to [email protected]
    thank you oscar

    Reply
    1. Sarvesh Thakur

      hi addy, if you got the connection details it would be of great help if you forward me at thakursarvesh89 ATgmail.com

      Reply
  6. lohith

    Can u please send me exact connection diagram of flight controller that what you have made using arduino nano.. iam new to this field.. I am planning to do the same one for my project ..please send that to
    [email protected]
    Thanks in advance

    Reply
  7. Cata

    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.

    Reply
  8. MRH

    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:
    http://uploadboy.com/imeq2gmzyrd3.html
    Please see it.Is there any problem in my source code?
    Thank you and sorry for my bad English.

    Reply
  9. osdar

    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 */
    #define ALLOW_ARM_DISARM_VIA_TX_YAW
    //#define ALLOW_ARM_DISARM_VIA_TX_ROLL

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

    Reply
    1. Oscar Post author

      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.

      Reply
  10. MRH

    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?
    thanks

    Reply
  11. Tristan Semmelhack

    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.

    Thanks!!

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

    Reply
  12. Tristan Semmelhack

    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.

    Thanks!

    Reply
    1. Oscar Post author

      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.

      Reply
  13. marius

    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.
    But,
    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.

    Reply
    1. Oscar Post author

      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.

      Reply
  14. kyawkhaing

    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.

    Thanks

    Reply
  15. desh

    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?

    Thankks

    Reply

Leave a Reply

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


four + = 8

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=""> <s> <strike> <strong>