Help! Need some help with Multiwii Issue

Minibeat

New member
Heyo, I'm completely new to building anything in my life and I just recently started to work on the drone. So, I got the basic quad-cop setup using arduino nano as the flight controller, but I got into some issue when I got to multiwii.

As for the wiring setup, I basically followed the schematic on this website (pwm). http://www.electronoobs.com/eng_robotica_tut5_3.php

In my current state, I got a basic setup of arduino nano and MPU-6050 for the gyro, and I'm able to read the info from the gyro and most of the receiver's data... but here's the issue:
1. somehow, arduino isn't reading the roll signal (pin D4) from the receiver (the receiver is properly getting the info from the transmitter, and I can see that it's sending because when I connect the roll output from the receiver to the tilt input of the multiwii, it reads it properly)
2. Multiwii DOES work when I connect it through usb... but it just freezes when I try and connect it to the battery
3. When I just connect it though the battery, it does light up... but it doesn't respond to anything... Even if I try and arm the damb thing. I did try arming it using Aux switch on the trasmitter controller, but no luck on that

But yeah... I need some help with this issue... Thank you.
 

Minibeat

New member
As for the config setup, this is it:
The only thing I changed is uncomment QuadX and nanowii
Code:
#ifndef CONFIG_H_

#define CONFIG_H_



/*************************************************************************************************/

/****           CONFIGURABLE PARAMETERS                                                       ****/

/*************************************************************************************************/



/* this file consists of several sections

* to create a working combination you must at least make your choices in section 1.

* 1 - BASIC SETUP - you must select an option in every block.

*      this assumes you have 4 channels connected to your board with standard ESCs and servos.

* 2 - COPTER TYPE SPECIFIC OPTIONS - you likely want to check for options for your copter type

* 3 - RC SYSTEM SETUP

* 4 - ALTERNATE CPUs & BOARDS - if you have

* 5 - ALTERNATE SETUP - select alternate RX (SBUS, PPM, etc.), alternate ESC-range, etc. here

* 6 - OPTIONAL FEATURES - enable nice to have features here (FlightModes, LCD, telemetry, battery monitor etc.)

* 7 - TUNING & DEVELOPER - if you know what you are doing; you have been warned

*     - (ESCs calibration, Dynamic Motor/Prop Balancing, Diagnostics,Memory savings.....)

* 8 - DEPRECATED - these features will be removed in some future release

*/



/* Notes:

* 1. parameters marked with (*) in the comment are stored in eeprom and can be changed via serial monitor or LCD.

* 2. parameters marked with (**) in the comment are stored in eeprom and can be changed via the GUI

*/





/*************************************************************************************************/

/*****************                                                                 ***************/

/****************  SECTION  1 - BASIC SETUP                                                *******/

/*****************                                                                 ***************/

/*************************************************************************************************/



  /**************************    The type of multicopter    ****************************/

    //#define GIMBAL

    //#define BI

    //#define TRI

    //#define QUADP

    #define QUADX

    //#define Y4

    //#define Y6

    //#define HEX6

    //#define HEX6X

    //#define HEX6H  // New Model

    //#define OCTOX8

    //#define OCTOFLATP

    //#define OCTOFLATX

    //#define FLYING_WING

    //#define VTAIL4

    //#define AIRPLANE

    //#define SINGLECOPTER

    //#define DUALCOPTER

    //#define HELI_120_CCPM

    //#define HELI_90_DEG



  /****************************    Motor minthrottle    *******************************/

    /* Set the minimum throttle command sent to the ESC (Electronic Speed Controller)

       This is the minimum value that allow motors to run at a idle speed  */

    //#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A

    //#define MINTHROTTLE 1120 // for Super Simple ESCs 10A

    //#define MINTHROTTLE 1064 // special ESC (simonk)

    //#define MINTHROTTLE 1050 // for brushed ESCs like ladybird

    #define MINTHROTTLE 1150 // (*) (**)
/****************************    Motor maxthrottle    *******************************/
    /* this is the maximum value for the ESCs at full power, this value can be increased up to 2000 */
    #define MAXTHROTTLE 1850

  /****************************    Mincommand          *******************************/
    /* this is the value for the ESCs when they are not armed
       in some cases, this value must be lowered down to 900 for some specific ESCs, otherwise they failed to initiate */
    #define MINCOMMAND  1000

  /**********************************  I2C speed for old WMP config (useless config for other sensors)  *************/
    #define I2C_SPEED 100000L     //100kHz normal mode, this value must be used for a genuine WMP
    //#define I2C_SPEED 400000L   //400kHz fast mode, it works only with some WMP clones

  /***************************    Internal i2c Pullups   ********************************/
    /* enable internal I2C pull ups (in most cases it is better to use external pullups) */
    //#define INTERNAL_I2C_PULLUPS

  /**********************************  constant loop time  ******************************/
    #define LOOP_TIME 2800

  /**************************************************************************************/
  /*****************          boards and sensor definitions            ******************/
  /**************************************************************************************/

    /***************************    Combined IMU Boards    ********************************/
      /* if you use a specific sensor board:
         please submit any correction to this list.
           Note from Alex: I only own some boards, for other boards, I'm not sure, the info was gathered via rc forums, be cautious */
      //#define FFIMUv1         // first 9DOF+baro board from Jussi, with HMC5843                   <- confirmed by Alex
      //#define FFIMUv2         // second version of 9DOF+baro board from Jussi, with HMC5883       <- confirmed by Alex
      //#define FREEIMUv1       // v0.1 & v0.2 & v0.3 version of 9DOF board from Fabio
      //#define FREEIMUv03      // FreeIMU v0.3 and v0.3.1
      //#define FREEIMUv035     // FreeIMU v0.3.5 no baro
      //#define FREEIMUv035_MS  // FreeIMU v0.3.5_MS                                                <- confirmed by Alex
      //#define FREEIMUv035_BMP // FreeIMU v0.3.5_BMP
      //#define FREEIMUv04      // FreeIMU v0.4 with MPU6050, HMC5883L, MS561101BA                  <- confirmed by Alex
      //#define FREEIMUv043     // same as FREEIMUv04 with final MPU6050 (with the right ACC scale)
      #define NANOWII         // the smallest multiwii FC based on MPU6050 + pro micro based proc <- confirmed by Alex
      //#define PIPO            // 9DOF board from erazz
      //#define QUADRINO        // full FC board 9DOF+baro board from witespy  with BMP085 baro     <- confirmed by Alex
      //#define QUADRINO_ZOOM   // full FC board 9DOF+baro board from witespy  second edition
      //#define QUADRINO_ZOOM_MS// full FC board 9DOF+baro board from witespy  second edition       <- confirmed by Alex
      //#define ALLINONE        // full FC board or standalone 9DOF+baro board from CSG_EU
      //#define AEROQUADSHIELDv2
      //#define ATAVRSBIN1      // Atmel 9DOF (Contribution by EOSBandi). requires 3.3V power.
      //#define SIRIUS          // Sirius Navigator IMU                                             <- confirmed by Alex
      //#define SIRIUSGPS       // Sirius Navigator IMU  using external MAG on GPS board            <- confirmed by Alex
      //#define SIRIUS600       // Sirius Navigator IMU  using the WMP for the gyro
      //#define SIRIUS_AIR      // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com           <- confirmed by Alex
      //#define SIRIUS_AIR_GPS  // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com with GPS/MAG remote located
      //#define SIRIUS_MEGAv5_OSD //  Paris_Sirius™ ITG3050,BMA280,MS5611,HMC5883,uBlox  http://www.Multiwiicopter.com <- confirmed by Alex
      //#define MINIWII         // Jussi's MiniWii Flight Controller                                <- confirmed by Alex
      //#define MICROWII        // MicroWii 10DOF with ATmega32u4, MPU6050, HMC5883L, MS561101BA from http://flyduino.net/
      //#define CITRUSv2_1      // CITRUS from qcrc.ca
      //#define CHERRY6DOFv1_0
      //#define DROTEK_10DOF    // Drotek 10DOF with ITG3200, BMA180, HMC5883, BMP085, w or w/o LLC
      //#define DROTEK_10DOF_MS // Drotek 10DOF with ITG3200, BMA180, HMC5883, MS5611, LLC
      //#define DROTEK_6DOFv2   // Drotek 6DOF v2
      //#define DROTEK_6DOF_MPU // Drotek 6DOF with MPU6050
      //#define DROTEK_10DOF_MPU//
      //#define MONGOOSE1_0     // mongoose 1.0    http://store.ckdevices.com/
      //#define CRIUS_LITE      // Crius MultiWii Lite
      //#define CRIUS_SE        // Crius MultiWii SE
      //#define CRIUS_SE_v2_0   // Crius MultiWii SE 2.0 with MPU6050, HMC5883 and BMP085
      //#define OPENLRSv2MULTI  // OpenLRS v2 Multi Rc Receiver board including ITG3205 and ADXL345
      //#define BOARD_PROTO_1   // with MPU6050 + HMC5883L + MS baro
      //#define BOARD_PROTO_2   // with MPU6050 + slave  MAG3110 + MS baro
      //#define GY_80           // Chinese 10 DOF with  L3G4200D ADXL345 HMC5883L BMP085, LLC
      //#define GY_85           // Chinese 9 DOF with  ITG3205 ADXL345 HMC5883L LLC
      //#define GY_86           // Chinese 10 DOF with  MPU6050 HMC5883L MS5611, LLC
      //#define GY_88 // Chinese 10 DOF with MPU6050 HMC5883L BMP085, LLC
      //#define GY_521          // Chinese 6  DOF with  MPU6050, LLC
      //#define INNOVWORKS_10DOF // with ITG3200, BMA180, HMC5883, BMP085 available here http://www.diymulticopter.com
      //#define INNOVWORKS_6DOF // with ITG3200, BMA180 available here http://www.diymulticopter.com
      //#define MultiWiiMega    // MEGA + MPU6050+HMC5883L+MS5611 available here http://www.diymulticopter.com
      //#define PROTO_DIY       // 10DOF mega board
      //#define IOI_MINI_MULTIWII// www.bambucopter.com
      //#define Bobs_6DOF_V1     // BobsQuads 6DOF V1 with ITG3200 & BMA180
      //#define Bobs_9DOF_V1     // BobsQuads 9DOF V1 with ITG3200, BMA180 & HMC5883L
      //#define Bobs_10DOF_BMP_V1 // BobsQuads 10DOF V1 with ITG3200, BMA180, HMC5883L & BMP180 - BMP180 is software compatible with BMP085
      //#define FLYDUINO_MPU       // MPU6050 Break Out onboard 3.3V reg
      //#define CRIUS_AIO_PRO
      //#define DESQUARED6DOFV2GO  // DEsquared V2 with ITG3200 only
      //#define DESQUARED6DOFV4    // DEsquared V4 with MPU6050
      //#define LADYBIRD
      //#define MEGAWAP_V2_STD     // available here: http://www.multircshop.com                    <- confirmed by Alex
      //#define MEGAWAP_V2_ADV
      //#define HK_MultiWii_SE_V2  // Hobbyking board with MPU6050 + HMC5883L + BMP085
      //#define HK_MultiWii_328P   // Also labeled "Hobbybro" on the back.  ITG3205 + BMA180 + BMP085 + NMC5583L + DSM2 Connector (Spektrum Satellite)
      //#define RCNet_FC           // RCNet FC with MPU6050 and MS561101BA  http://www.rcnet.com
      //#define RCNet_FC_GPS       // RCNet FC with MPU6050 + MS561101BA + HMC5883L + UBLOX GPS http://www.rcnet.com
      //#define FLYDU_ULTRA        // MEGA+10DOF+MT3339 FC
      //#define DIYFLYING_MAGE_V1  // diyflying 10DOF mega board with MPU6050 + HMC5883L + BMP085 http://www.indoor-flying.hk
      //#define MultiWii_32U4_SE         // Hextronik MultiWii_32U4_SE
      //#define MultiWii_32U4_SE_no_baro // Hextronik MultiWii_32U4_SE without the MS561101BA to free flash-memory for other functions
      //#define Flyduino9DOF       // Flyduino 9DOF IMU MPU6050+HMC5883l
      //#define Nano_Plane         // Multiwii Plane version with tail-front LSM330 sensor http://www.radiosait.ru/en/page_5324.html
   

    /***************************    independent sensors    ********************************/
      /* leave it commented if you already checked a specific board above */
      /* I2C gyroscope */
      //#define WMP
      //#define ITG3050
      //#define ITG3200
      //#define MPU3050
      //#define L3G4200D
      //#define MPU6050       //combo + ACC
      //#define LSM330        //combo + ACC
    
      /* I2C accelerometer */
      //#define MMA7455
      //#define ADXL345
      //#define BMA020
      //#define BMA180
      //#define BMA280
      //#define LIS3LV02
      //#define LSM303DLx_ACC
      //#define MMA8451Q

      /* I2C barometer */
      //#define BMP085
      //#define MS561101BA

      /* I2C magnetometer */
      //#define HMC5843
      //#define HMC5883
      //#define AK8975
      //#define MAG3110

      /* Sonar */ // for visualization purpose currently - no control code behind
      //#define SRF02 // use the Devantech SRF i2c sensors
      //#define SRF08
      //#define SRF10
      //#define SRF23

      /* ADC accelerometer */ // for 5DOF from sparkfun, uses analog PIN A1/A2/A3
      //#define ADCACC

      /* enforce your individual sensor orientation - even overrides board specific defaults */
      //#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  Y; imu.accADC[PITCH]  = -X; imu.accADC[YAW]  = Z;}
      //#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = -Y; imu.gyroADC[PITCH] =  X; imu.gyroADC[YAW] = Z;}
      //#define FORCE_MAG_ORIENTATION(X, Y, Z)  {imu.magADC[ROLL]  =  X; imu.magADC[PITCH]  =  Y; imu.magADC[YAW]  = Z;}

      /* Board orientation shift */
      /* If you have frame designed only for + mode and you cannot rotate FC phisycally for flying in X mode (or vice versa)
       * you can use one of of this options for virtual sensors rotation by 45 deegres, then set type of multicopter according to flight mode.
       * Check motors order and directions of motors rotation for matching with new front point!  Uncomment only one option! */
      //#define SENSORS_TILT_45DEG_RIGHT        // rotate the FRONT 45 degres clockwise
      //#define SENSORS_TILT_45DEG_LEFT         // rotate the FRONT 45 degres counterclockwise


/*************************************************************************************************/
/*****************                                                                 ***************/
/****************  SECTION  2 - COPTER TYPE SPECIFIC OPTIONS                               *******/
/*****************                                                                 ***************/
/*************************************************************************************************/
  /********************************  PID Controller *********************************/
    /* choose one of the alternate PID control algorithms
     * 1 = evolved oldschool algorithm (similar to v2.2)
     * 2 = new experimental algorithm from Alex Khoroshko - unsupported - http://www.multiwii.com/forum/viewtopic.php?f=8&t=3671&start=10#p37387
     * */
    #define PID_CONTROLLER 1

    /* NEW: not used anymore for servo coptertypes  <== NEEDS FIXING - MOVE TO WIKI */
    #define YAW_DIRECTION 1
    //#define YAW_DIRECTION -1 // if you want to reverse the yaw correction direction

    #define ONLYARMWHENFLAT //prevent the copter from arming when the copter is tilted

   /********************************    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

    /********************************    SERVOS      *********************************/
    /* info on which servos connect where and how to setup can be found here
     * http://www.multiwii.com/wiki/index.php?title=Config.h#Servos_configuration
     */

    /* Do not move servos if copter is unarmed
     * It is a quick hack to overcome feedback tail wigglight when copter has a flexibile
     * landing gear
    */
    //#define DISABLE_SERVOS_WHEN_UNARMED


    /* if you want to preset min/middle/max values for servos right after flashing, because of limited physical
     * room for servo travel, then you must enable and set all three following options */
     //#define SERVO_MIN  {1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020}
     //#define  SERVO_MAX {2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000}
     //#define  SERVO_MID {1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500} // (*)
     //#define FORCE_SERVO_RATES      {30,30,100,100,100,100,100,100} // 0 = normal, 1= reverse

  /***********************          Cam Stabilisation             ***********************/
    /* The following lines apply only for a pitch/roll tilt stabilization system. Uncomment the first or second line to activate it */
    //#define SERVO_MIX_TILT
    //#define SERVO_TILT

    /* camera trigger function : activated via Rc Options in the GUI, servo output=A2 on promini */
    // trigger interval can be changed via (*GUI*) or via AUX channel
    //#define CAMTRIG
    #define CAM_TIME_HIGH 1000   // the duration of HIGH state servo expressed in ms

  /***********************          Airplane                       ***********************/
    //#define USE_THROTTLESERVO // For use of standard 50Hz servo on throttle.

    //#define FLAPPERONS    AUX4          // Mix Flaps with Aileroins.
    #define FLAPPERON_EP   { 1500, 1700 } // Endpooints for flaps on a 2 way switch else set {1020,2000} and program in radio.
    #define FLAPPERON_INVERT { -1, 1 }    // Change direction om flapperons { Wing1, Wing2 }
  
    //#define FLAPS                       // Traditional Flaps on SERVO3.
    //#define FLAPSPEED     3             // Make flaps move slowm Higher value is Higher Speed.
 

ElectriSean

Eternal Student
Mentor
Kicking it old school... Like really old school. I'd recommend getting a modern flight controller and running Betaflight, that's the easy solution. If you're set on this path, you may need to look elsewhere for help... I've never seen multiwii discussed here ;)
 

Minibeat

New member
The thing is, I had a modern flight controller and I kinda blew the voltage regulator. That's why I decided to use arduino cause I didn't want to wait another 1 month to ship that thing from China... oh well, I'll look for more options. If it doesn't work, welp I guess that's the only other option.
 

Minibeat

New member
Actually, any good/cheap suggestion on flight controller which I don't have to wait for like a month to ship?
 

ElectriSean

Eternal Student
Mentor

Minibeat

New member
Thx for the suggestion. Also, I just found this out recently, but it DOES still work when it's connected to the battery. It's when the battery AND transmitter is on, multiwii just stop working LMAO