Kit: Quadcopter

()

This is a Fablab friendly, hackable QuadCopter frame for you to experiment with. It is based on X configuration and is compatible with most 250mm FPV QUAD kits.

Materials:

  • One 500x800 mm HDF board (preferably 4mm thick, but 3mm works as well).
  • 250mm Quadcopter kit e.g. this on ebay.
  • Three screws. Two M5 65mm. One M5 40mm.
  • Ten M5 bolts.
  • A lot of strips.
  • One LiPo 11.1V battery
  • Two wires (one red, one black) and a wire connector.
  • Gluegun (Needed depending on how snug the fit is between the teeth).

Instructions:

1. Laser Cutting

2. Assembly

pieces

Attach the nuts and bolts to the central piece
nuts and bolts Put the HDF pieces together, according to the following pictures
(Note: The boxes themselves fitting together, doesn't necessarily mean the boxes fit together with each other. When assembling the boxes, pay attention to whether they can be attached to the base at the same time)

assembling the boxes Put the bottom box onto the central base.
assembling the boxes Put the upper box onto the central base. Put together the electronics for the Quadcopter. Do note that the boxes have holes for wiring as well as clips to ensure the battery doesn't move.

eletronics Screw together the nuts and bolts to keep it together.

final product

General information about calibration, wiring etch for the quad depends on the specific kit you are using. There are many tutorials online for you to look at.

Video link.

Notes for modding:

This copter kit is built in a way optimised for modding and changing it. If you wish to change the base itself, the SVG file is in the Dropbox folder. The holes in the copter as well as the boxes are built through coding in Processing, which is available below.

Processing Code

Copy and paste this code into the processing sketch. See the documentations page for more info.

    void setupElements()
    {
      //Bottom
      canvas.addTackyRectPiece(2, 10, 23, 13, "bottom");
      //bottom holes
      canvas.addPopCircle(3.5, 11.5, 1.25);
      canvas.addPopCircle(23.5, 21.5, 1.25);
      canvas.addRectPiece(12.5, 11, 2.5, 1, "");
      canvas.addRectPiece(12.5, 21, 2.5, 1, "");
      //bottom sides
      mfab botLs1 = canvas.addTackyRectPiece(2, 30, 23, 10, "bottom longside1");
      botLs1.top.lType = LTINVERSED;
      botLs1.bottom.lType = LTINVERSED;
      botLs1.addPopCircle(6,4,4);
      botLs1.addPopCircle(17,4,4);
      for (int i = 0; i < botLs1.top.length/4; i = i+1)
      {
        botLs1.top.addLine(0+i*4, 0, 1, 0);
      }
      mfab botLs2 = canvas.addTackyRectPiece(2, 45, 23, 10, "bottom longside2");
      botLs2.top.lType = LTINVERSED;
      botLs2.bottom.lType = LTINVERSED;
      for (int i = 0; i < botLs2.top.length/4; i = i+1)
      {
        botLs2.top.addLine(0+i*4, 0, 1, 0);
      }
      mfab botSs1 = canvas.addTackyRectPiece(2, 60, 13, 10, "bottom shortside");
      botSs1.top.lType = LTINVERSED;
      botSs1.bottom.lType = LTINVERSED;
      for (int i = 0; i < botSs1.top.length/4; i = i+1)
      {
        botSs1.top.addLine(0+i*4, 0, 1, 0);
      }
      mfab botSs2 = canvas.addTackyRectPiece(2, 75, 13, 10, "bottom shortside2");
      botSs2.top.lType = LTINVERSED;
      botSs2.bottom.lType = LTINVERSED;
      for (int i = 0; i < botSs2.top.length/4; i = i+1)
      {
        botSs2.top.addLine(0+i*4, 0, 1, 0);
      }

      // Top bottom
      canvas.addTackyRectPiece(30, 10, 23, 13, "top bottom");
      //top bottom holes
      canvas.addPopCircle(31.5, 11.5, 1.25);
      canvas.addPopCircle(51.5, 21.5, 1.25);
      canvas.addPopCircle(41.5, 11.5, 1.25);
      canvas.addPopCircle(41.50, 16.50, 4);

      //Top
      canvas.addTackyRectPiece(58, 10, 23, 13, "top");
      //top hole
      canvas.addPopCircle(69.5, 11.5, 1.25);
      //top sides
      mfab topLs1 = canvas.addTackyRectPiece(30, 30, 23, 10, "top longside1");
      topLs1.top.lType = LTINVERSED;
      topLs1.bottom.lType = LTINVERSED;
      //holes and gridholes
      topLs1.addMountHoleGrid(1, 2, 20.5, 1);
      topLs1.addRectPiece(3, 0, 3, 1, "");
      topLs1.addRectPiece(19, 0, 3, 1, "");
      for (int i = 0; i < topLs1.top.length/4; i = i+1)
      {
        topLs1.top.addLine(0+i*4, 0, 1, 0);
      }
      mfab topLs2 = canvas.addTackyRectPiece(30, 45, 23, 10, "top longside2");
      topLs2.top.lType = LTINVERSED;
      topLs2.bottom.lType = LTINVERSED;
      //holes and grindholes
      topLs2.addMountHoleGrid(1, 2, 20.5, 1);
      topLs2.addRectPiece(3, 0, 3, 1, "");
      topLs2.addRectPiece(19, 0, 3, 1, "");
      for (int i = 0; i < topLs2.top.length/4; i = i+1)
      {
        topLs2.top.addLine(0+i*4, 0, 1, 0);
      }
      mfab topSs1 = canvas.addTackyRectPiece(30, 60, 13, 10, "top shortside1");
      topSs1.top.lType = LTINVERSED;
      topSs1.bottom.lType = LTINVERSED;
      //grindholes 
      topSs1.addMountHoleGrid(1, 2, 11.5, 1);
      for (int i = 0; i < topSs1.top.length/4; i = i+1)
      {
        topSs1.top.addLine(2+i*4, 0, 1, 0);
      }
      mfab topSs2 = canvas.addTackyRectPiece(30, 75, 13, 10, "top shortside2");
      topSs2.top.lType = LTINVERSED;
      topSs2.bottom.lType = LTINVERSED;
      //gridholes
      topSs2.addMountHoleGrid(1, 2, 11.5, 1);
      for (int i = 0; i < topSs2.top.length/4; i = i+1)
      {
        topSs2.top.addLine(2+i*4, 0, 1, 0);
      }

      //Quadbase
      mfab quadBase = canvas.addSVG(100, 10, "quad1.svg");
      //grind holes 
      quadBase.addMountHoleGrid(25, 39, 24, 1);
      quadBase.addMountHoleGrid(24, 40, 1, 14);
      quadBase.addMountHoleGrid(25, 53, 24, 1);
      quadBase.addMountHoleGrid(48, 40, 1, 14);
      //holes
      quadBase.addPopCircle(26.5, 41.5, 1.25);
      quadBase.addPopCircle(46.5, 51.5, 1.25);
      quadBase.addPopCircle(36.5, 46.5, 4);
    }

Made by: Jens Bo Pedersen, Martin Elliott Jensen, Mikael Gamborg Lauridsen and Rasmus Baad

Share on : Twitter, Facebook or Google+