ArduOktoKopter Flies

3689377728?profile=original

I have just tried my Oktokopter on its second flight (despite the wind and light rain that made it a very short flight) and it seems flyable. When the weather calms down I will give it a longer flight and try and shoot some video.

Here are some brief details:
KDA20-22L motors, Turnigy 30A ESC's converted to I2C, APC 10 x 4.7 props, UBEC, GWS RX8 receiver, 10mm sq aluminium frame with pcb central hub and mounting plates

RC1 code modified to add I2C motor control and mixertable for controlling 8motors. ArduOktoKopter.zip


Peter
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • I'm currently building Okto-frame for Arducopter electronics. My plan is to make it codewise like a quad but have two ESCs and motors for each motor output with Y-servo wires. How do you think this will work?
  • Robero,

    I have discovered that my Xbee used with the Configurator will not work if the I2C bus to the ESC's is connected. Any suggestions as to why this might be?

    Peter
  • I am using converted Turnigy Plush ESC's that use the Quax software. As far as I know they do not return any data, but I will need to check.

    Peter
  • Moderator
    Normaly some BL-Ctrl as MK send back some bytes to Arducopter board with info about temperature and amp ... if you don't recive that byte the interrupt could be enable and freeze the bus i don't know if your i2c controller send back some info to Arducopter Board ... I'm testing MK controller and had that kind of problem.
  • Thanks Robero,

    I commented this out as I was not expecting to read any data back from the ESC. Why might the bus freeze without a read?

    Peter
  • Moderator
    my original code is this :
    http://code.google.com/p/lnmultipilot10/source/browse/branches/Redf...
    I see that in your code you comment :
    while(1)
    //while((Wire.available())&&(i<6))
    {
    buff_i2c[i] = Wire.receive(); // receive one byte
    i++;
    if (i>6)break;
    //Serial.print(i);
    if (Wire.available()==0)break;
    }

    }
    But you need this part because without it you can have same problem on bus .. freeze the code fox example ...
    Regards
    Roberto
  • Robero,
    The WireMotorWrite is used in the Motors code as the method to write the data to the ESC. I am not sure where you think I have something missing?

    Thnak you for your help and interest.

    Peter
  • Moderator
    Hi Peter ,
    I check your code that is my mixertable ... Congratulation you are the first user that are using my code in your Multicopter :) So i check it and i see that you change the void WireMotorWrite() function .. without that code that you comment you can have some freeze on i2c bus ... is better that you use it.
    Do you have a VIdeo of your first flight ?
    This is my first video using the mixertable and Hexafox Coaxial configuration :
    http://www.virtualrobotix.com/video/multipilot-board-hexafox-coax-1
  • Robero,

    If you look in the zip file above you will find the 'copter code including the mixertable. I used the data suggested by Arthur P on the Aeroquad forum but had to change the sign of the yaw values. I number my motors as suggested by Arthur (1 at the front going clockwise).

    Peter
  • Moderator
    Hi Peter .. so the mixertable in Aeroquad code is my code .I'm Redfox74 ... perfect so you are testing that on a okto ... send me the configurazion that are you tested so i can update the code with your configuration ,too
    Regards
    Roberto
This reply was deleted.