Electronica Multi MinimOSD con Multiwii

Tema en 'Arduino / Multiwii' iniciado por rortega, 31 Dic 2012.

  1. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Para aquellos que hayan montado su multicóptero con Multiwii y se hayan liado la manta a lacabeza con el FPV, seguro que están pensando en un OSD para ver en sus maravillosas "gafas virtuales" toda la información necesaria para sentirse seguros durante el vuelo.

    No voy a entrar en si este o aquel es mejor que el otro, o si es preferible volar sin OSD pero usar otros sistemas de telemetría. Sólo quiero comentar la solución que yo he adoptado porque me parece muy interesante y muy barata. Eso sí, tendremos que trastear con el hardware y el software como es habitual con Multiwii.

    Hardware

    El hardware que he empleado es MinimOSD, el mismo hardware utilizado para Ardupilot Mega. Concretamente yo he comprado un clone de MinimOSD por 18$ y pico en Goodluckbuy. Me ha tardado un mes en llegar, pero ha llegado.

    [​IMG]

    Se trata de un Atmega 328 que junto con el chip de OSD MAX 7456, y el firmware adecuado, es capaz de comunicarse con Multiwii (la controladora de vuelo) a través del puerto de comunicaciones serie (tx/rx).

    A continuación se muestra un esquema usado para Arducopter, pero que es equivalente a Multiwii. Por un lado se alimenta al Atmega328 (5v) y por el otro al MAX7456 y transmisor de vídeo con 12v.

    [​IMG]

    En los pines de entrada, además de la señal de vídeo podemos conectar la batería para alimentar al chip de vídeo y, de paso, se mide el voltaje y nos lo muestra sobreimpresionado en pantalla.

    En principio solo acepta lipos de tres celdas (3S), por lo que si deseamos usar lipos de 4 celdas (4S) no podremos conectar la batería directamente al OSD. La solución que se puede adoptar en este caso como sistema para medir la batería es la opción VBAT en el código fuente de Multiwii, conectando la batería a un pin de la contoladora de vuelo mediante un divisor de voltaje, formado por dos resistencias (100k y 33k), para que sea Multiwii quien envíe al MinimOSD las mediciones a través del puerto serie.

    Aunque usemos baterías 3S para alimentar al MinimOSD, aconsejan no conectarla directamente para alimentarlo pues al parecer, el regulador de voltaje que lleva se calienta muchísimo.

    Como alternativa para alimentar al MinimOSD, está la de usar la alimentación de 5v para ambos componentes del MinimOSD (Atmega+MAX7456), bien de la controladora de vuelo, bien de algún BEC de los ESC, o incluso algún BEC externo. La opción que yo estoy usando es la del BEC externo de 5V con el que alimento tanto a la controladora como al transmisor de vídeo, tal y como se muestra en la siguiente imágen. Pero esto requiere hacer un par de soldaduras en la parte posterior del MinimOSD, algo muy sencillo de hacer si se tienenen las herramientas adecuadas.

    [​IMG]

    De momento no puedo medir voltaje, pero lo haré usando la opción VBAT de Multiwii (es cuestión de tiempo).


    Software (Firmware)

    El software que estoy empleando es el creado para Rushduino OSD, concretamente la versión de desarrollo Rushduino OSD KV 2.1, que es la más reciente hasta la fecha, adaptada para MinimOSD por un tal kataventos del foro oficial de Multiwii (el hilo del foro es Rushduino OSD - Multiwii based open software osd que ya va por 720 páginas).

    La forma de subir el sketch al MinimOSD es idéntico al empleado para subirlo a la controladora de vuelo, es decir, a través un adaptador USB-FTDI con ayuda del IDE Arduino 1.0.

    La versión que yo estoy usando está programada para comunicarse con Multiwii 2.1 o superior. Concretamente yo estoy usando la versión de desarrollo de Multiwii r1240 en una controladora CRIUS AIO Pro, conectando el MinimOSD al puerto serie 3 (tx3/rx3).

    Si estás pensando en montarlo en una Crius SE, recuerda que sólo tienes un puerto serie tx0/rx0 que sólo puedes usarlo para un propósito a la vez. Y tendrás que realziar alguna que otra modificación en los parámetros de configuración para tener en cuenta los pines.

    Mapas de Caracteres

    El chip de video OSD MAX7456, al menos en el clone MinimOSD, viene de serie con un mapa de caracteres que hace que la información que vemos en pantalla sea lo más parecido a algún idioma asiático (porn o decir chino).

    Para solucionar este problema, antes de subir el firmware al MinimOSD, hay que subir un nuevo mapa de caracteres (archivo, al igual que el resto, descargable desde el link que he puesto más arriba donde está todo lo necesario).

    Los pasos son:

    1.- Subir al MinimOSD el sketch MAX_7456_Font_Update.ino, el cual habremos modificado las siguientes líneas para que queden con los siguientes valores:

    Insertar CODE, HTML o PHP:
    ...
    #define MAX7456SELECT 6 //10//10-ss
    #define MAX7456RESET 10 //9//10-ss
    ...
    
    Si no se hace no habrá forma de subir el mapa de caracteres.
    Este sketch hará que el Atmega328 del MinimOSD se ponga a la espera de recibir un archivo con el mapa de caracteres por puerto serie que grabará en la EEPROM del MAX7456.

    2.- Subir al MinimOSD el mapa de caracteres Rushduino.mcm con el programa software RealTerm. La versión que han colocado es para WindosXP/2000. Para Windows 7 podemos tenemos RealTerm 2.0.0.70

    Existe un pdf con instrucciones detalladas de como subir el mapa de caracteres para una versión anterior.

    3.- Subir al MinimOSD el software Rushduino OSD KV 2.1, con las modificaciones necesarias para que trabaje con nuestra versión de Multiwii (recuerda 2.1 o superior) y nuestra controladora.

    Aquí os dejo un vídeo (no es mío) en el que se está usando la adaptación de kataventos:


     

    Adjuntos:

  2. Israel Miembro

    Israel
    Registrado:
    16 Nov 2009
    Mensajes:
    111
    Me Gusta recibidos:
    0

    Adjuntos:

    • 861.jpg
      861.jpg
      Tamaño de archivo:
      62,2 KB
      Visitas:
      1.190
    #2 Israel, 5 Ene 2013
    Última edición: 5 Ene 2013
  3. Israel Miembro

    Israel
    Registrado:
    16 Nov 2009
    Mensajes:
    111
    Me Gusta recibidos:
    0
  4. Israel Miembro

    Israel
    Registrado:
    16 Nov 2009
    Mensajes:
    111
    Me Gusta recibidos:
    0
    #4 Israel, 5 Ene 2013
    Última edición: 5 Ene 2013
  5. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    ¡Ojo, no confundamos a la gente!
    El hardware de los vídeos y fotos que has puesto es el original, su precio es como 3 o 4 veces mayor que el clon. Además, aunque se puede hackear y adaptar el soft, el desarrollo del soft está mas enfocado a su uso con ardupilot mega (o controladora compatible usando Megapirates). Multiwii hasta donde yo sé no soporta el protocolo MAVLINK.

    Por ello, tanto con ese MinimOSD original como con el clon, para ponerlo en funcionamiento con Multiwii la opción que yo recomendaría es la que expliqué al inicio de este hilo: usar el sketch de Rushduino OSD adaptado por kataventos específicamente para Multiwii 2.1. o superior.

    Yo lo tengo funcionando y volando en FPV.
     
    #5 rortega, 5 Ene 2013
    Última edición: 5 Ene 2013
  6. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    En el foro de Multiwii han separado el hilo para MinimOSD del de Rushduino con idea de no confundir a los usuarios con las dos versiones del software. Además, será todo menos complicado.

    http://www.multiwii.com/forum/viewtopic.php?f=8&t=2918

    Yá resolví el problema de monitorizar el voltaje de las baterías 4S, simplemente creando un divisor de voltaje con dos resistencias, una de 100k y otra de 33k y ajustando el código fuente de Multiwii para el cálculo de VBAT. En el código fuentde del OSD únicamente descomentar una línea en el Config.h para que tome el voltaje de los datos pasados por el puerto serie dese Multiwii.
     
    #6 rortega, 12 Ene 2013
    Última edición: 17 Ene 2013
  7. sokoloko Miembro

    sokoloko
    Registrado:
    23 Nov 2008
    Mensajes:
    111
    Me Gusta recibidos:
    0
    Hola Rortega,

    Muy interesante el proyecto. De hecho tengo un minimOSD y lo estaba actualizando a Firmware de Rush, ya tengo actualizados los caracteres sin problema, pero a la hora de compilar y subir el firmware me da el siguiente error:

    Insertar CODE, HTML o PHP:
    In file included from Rush_KV_2_1.ino:50:
    GlobalVariables.h:15: error: 'Metro' does not name a type
    Rush_KV_2_1.ino: In function 'void loop()':
    Rush_KV_2_1:83: error: 'MetroTimer' was not declared in this scope
    Podrías compartir tu código para poder subirlo al OSD???

    Muchas gracias
     
  8. sokoloko Miembro

    sokoloko
    Registrado:
    23 Nov 2008
    Mensajes:
    111
    Me Gusta recibidos:
    0
    He probado a bajar el fichero (KV_Team_devr280_20130216), lo he instalado y es impresionante, primero de todo que compila sin problemas, y segundo que tiene un entorno grafico GUI muy interesante como se ve en esta captura de mi PC.

    Parece que va a merecer la pena trastear un rato........:biggrin2:
     

    Adjuntos:

    • KV_Team.jpg
      KV_Team.jpg
      Tamaño de archivo:
      96,2 KB
      Visitas:
      1.437
    #8 sokoloko, 21 Feb 2013
    Última edición: 21 Feb 2013
  9. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Estoy un poco desconectado de los avances al respecto desde que instale mi MinimOSD con este firm.

    Los errores que comentabas a la hora de compilar me suenan a que faltaba alguna librería en el IDE del Arduino que, o bien te la bajad y las instalas, o lo que parece que han hecho (corrígeme si me equivoco) que las hayan incluido junto al sketch ...

    No había visto esta interfaz, deben haberla desarrollado recientemente. Sí, es impresionante.
     
  10. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Caballeros .....

    Segun estoy entendiendo ..... ¿puedo alimentar la miltiwii a traves de la Minim OSD?.

    Vereis, tengo la camara alimentada a 12V. Si la alimento a traves del OSD y este alimenta la Multiwii con 5V, me ahorro una bateria .... Verdad??

    Y si a demas por "defecto" el OSD monitoriza la bateria, es para nota .....

    ¿Monitoriza alguna alimentacion directamente? o hay que poner las resistencias como se indica por ahi ???

    Saludos.

    Arfonzo.
     
    #10 arfonzo, 14 Ago 2013
    Última edición: 14 Ago 2013
  11. monzon Maestro FPV

    monzon
    Registrado:
    24 Feb 2011
    Mensajes:
    2.352
    Me Gusta recibidos:
    0
    puedes pasar ellink de descarga , no lo localizo , y tiene buena pinta.

    ya lo he encontrado
    http://code.google.com/p/rush-osd-development/downloads/detail?name=KV_Team_dev_r370.zip&can=2&q=
     
    #11 monzon, 14 Ago 2013
    Última edición: 14 Ago 2013
  12. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    No, no alimentes la controladora multiwii desde él MinimOSD. Es todo lo contrario.
    No necesitas dos baterías, te basta con una para alimentarlo todo. Lo que necesitas es un BEC que convierta los 12v de la batería a 5v y desde ahí alimentes la controladora, el MinimOSD y otros componentes.

    A parte, puedes conectar la batería al pin de 12v del MinimOSD para alimentar Su chip de vídeo y, de paso, monitorizar él voltaje de la batería.

    Aunque tienes la opción de hacer las dos soldaduras y basta con alimentar unicamente por él lado de los 5v. En este caso, él voltaje lo mide multiwii con ayuda de un divisor de tensión conectado a uno de los pines An de la controladora multiwii (por defecto A3).

    La versión vigente de KV Team OSD Development es la r345. Yo la estoy usando con soldaduras y 5v.
     
  13. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
  14. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Vale, creo que entendido.

    El OSD se alimenta el solito desde la Miltiwii. Pero necesito otra bateria para alimentar el emisor de video (se enciende un led rojo en un extremo del OSD y la camara a 12V (Y se enciende otro led en el otro extremo del OSD) .... todo funcionando.

    Como era eso de ... "en lonchas o en filetes? ... ja ja ja.

    Vale, ya veo el osd sobre impresionado en el vídeo .... pero cargue el firmware que cargue en el OSD, este no lle nada de la multiwii.

    Y esta bien conectada, rojo>rojo, negro>negro, tx>rx y rx>tx ... pero de la pantalla de inicio en ambas versiones no paso.

    ¿He de cambiar algo en el "config.h" para mandar informacion al OSD ?????

    Muchas gracias unas vez mas.

    Arfonzo.
     
    #14 arfonzo, 17 Ago 2013
    Última edición: 19 Ago 2013
  15. marapier Nuevo Miembro

    marapier
    Registrado:
    18 Ago 2013
    Mensajes:
    9
    Me Gusta recibidos:
    0
    Veo este osd muy buena opcion
     
  16. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    No, en principio no es necesario. Aunque a la hora de visulaizar el voltaje de la batería, si lo inyectas a través del pin A3 de la conroladora de Multiwii, si que tendrás que modificar el valor del parámetro VBATSCALE y los distintos valores de alarma para que en el OSD veas el dato correcto y además parpadee cuando se acerce a los valores indicados.

    Si no mal recuerdo tengo conectado los pines tx/rx del minimosd al puerto serie tx1/rx1 de la crius, aunque creo que da lo mismo.
     
  17. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Jopes ... ya si que vivo sin vivir en mi .....

    En la miltiwii que yo tengo, no hay pin A3 ...... tengo esta (http://www.hobbyking.com/hobbyking/store/uploads/652523747X462179X39.pdf)

    Lo de conectar tx/rx, eso si que estoy seguro que deben ir cruzados. Vamos, seguro seguriiiiiiiisimo.

    Por eso pregunto lo de cambiar algo en el config.h para que el OSD lea lo que la Multiwii le mande.

    Me falta probar el conectarlo al J2. Porque conectando el OSD a los tres serial nada de nada.

    Bueno, gracias ... seguire informando o ando la brasa ... ja ja ja.

    Saludos.

    Arfonzo.
     
  18. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Sí, por supuesto que es así.

    Es complicado desde aquí decir que te está ocurriendo, sobre todo por no tener la misma controladora que tú y posiblemente estar usando distintas versiones de multiwii y/o el soft de kv teamo multiwii osd.

    Cosas que me pregunto, que no necesariamente deben ser la fuente del problema, pero que no estaría mal comprobar por si las moscas:

    ¿Has comprobado si los puertos series en el código fuente están configurados a los mismos bauidos que el puerto serie en el minimosd?
    ¿Está correctamente configurada tu controladora y sus sensores en el confi.h?
    ¿Has calibrado ACC?
    ¿Y el magnetómetro?
    ¿Tienes conectado el receptor de la emisora y has movido los sticks?
    ¿Has borrado la EEPROM del MinimOSD tras cambiar de versiones?

    Que hayas visto la pantalla de inicio superpuesta a la imagen de vídeo ya es todo un éxito. Ya nos contarás. Suerte.
     
  19. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Buenos dias Compañero .... ante todo, grtacias por tu ayuda.
    Te contesto sobre tu respuesta ..... vale ¿?

    Cosas que me pregunto, que no necesariamente deben ser la fuente del problema, pero que no estaría mal comprobar por si las moscas: -Buen comienzo, verificar estas "tonterias"-

    ¿Has comprobado si los puertos series en el código fuente están configurados a los mismos bauidos que el puerto serie en el minimosd? -No, pero no he tocado nada y por defecto estan iguales, pero lo verificare-

    ¿Está correctamente configurada tu controladora y sus sensores en el confi.h? -]En principio si, puesto que tanto el GPS, como el Bluetooth funcionan indistintamente en cualquiera de las tres entradas-

    ¿Has calibrado ACC? -Si-

    ¿Y el magnetómetro? -Creo que si, no se como verificarlo. Le doy al boton y estoy un minuto girandole en los tres ejes.-

    ¿Tienes conectado el receptor de la emisora y has movido los sticks? -Si, se mueve el ordenador y funciona el coptero.-

    ¿Has borrado la EEPROM del MinimOSD tras cambiar de versiones? -Claro, si no, no deja meter el nuevo firmware.-

    Que hayas visto la pantalla de inicio superpuesta a la imagen de vídeo ya es todo un éxito. -Bueno, si, es un principio .... ja ja ja-

    Lo del sendor de tension, lo pretendia poner en el OSD con las resistencias y demas, pero a este paso, colgare un polimetro y lo veo a ojo.....

    Ya nos contarás. -Os contare ..... -

    Suerte. -Graciasssss-

    Saludos.

    Arfonzo.
     
  20. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Voy a echar un vistazo al config.h de mi multiwii y esta tarde verificaré donde tengo conectado el MinimOSD físicamente. De momento te confirmo que el GPS lo tengo en el rx2/tx2. Te lo comento porque he visto en el PDF de las specs de tu placa que te indican el serial1. Y no quiero decir que ese sea el problema porque se supone que el OSD va en cualquier puerto.

    Yo tengo Multiwii dev r1391 en la crius aio pro y KV Team OSD dev r34. Te lo puedo hacer llegar, si me pasas tu e-mail por privado, para que verifiques las posibles diferencias en la confuguración del código.

    Otra cosa que podrías mirar es qué clon del MinimOSD tienes porque tengo entendido que el soft no va bién en todos.
     
  21. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Te pongo más abajo el config.h de Multiwii r1391 y el config.h de KV Team OSD dev r345.

    Los 4 puertos del atmega2560 los tengo 115200 y he asignado el serial2 al GPS.

    Esta tarde le echo un vistazo a las conexiones del resto de puertos porque ya ni me acuerdo.


    • Multiwii r1391 (para Crius AIO Pro V2) - config.h:

    Insertar CODE, HTML o PHP:
    
    /*************************************************************************************************/
    /****           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
     */
    
    
    
    /*************************************************************************************************/
    /*****************                                                                 ***************/
    /****************  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 1950
    
      /****************************    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  950
    
      /**********************************    I2C speed   ************************************/
        //#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
    
      /**************************************************************************************/
      /*****************          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
          //#define SIRIUS_AIR_GPS  // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com with GPS/MAG remote located
          //#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 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_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
          #define CRIUS_AIO_PRO_V1
          //#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
    
          
        /***************************    independent sensors    ********************************/
          /* leave it commented if you already checked a specific board above */
          /* I2C gyroscope */
          //#define WMP
          //#define ITG3200
          //#define L3G4200D
          //#define MPU6050       //combo + ACC
    
          /* I2C accelerometer */
          //#define NUNCHUCK  // if you want to use the nunckuk connected to a WMP
          //#define MMA7455
          //#define ADXL345
          //#define BMA020
          //#define BMA180
          //#define NUNCHACK  // if you want to use the nunckuk as a standalone I2C ACC without WMP
          //#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                               *******/
    /*****************                                                                 ***************/
    /*************************************************************************************************/
    
      /********************************    TRI    *********************************/
        #define YAW_DIRECTION 1
        //#define YAW_DIRECTION -1 // if you want to reverse the yaw correction direction
        /* you can change the tricopter servo travel here */
          #define TRI_YAW_CONSTRAINT_MIN 1020
          #define TRI_YAW_CONSTRAINT_MAX 2000
          #define TRI_YAW_MIDDLE 1500 //  tail servo center pos. - use this for initial trim; later trim midpoint via LCD
    
      /********************************    BI    *********************************/
        /* you can change the bicopter servo travel direction here */     
        //#define BI_PITCH_DIRECTION 1
         #define BI_PITCH_DIRECTION -1
    
       /********************************    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
    
      /***********************          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
    
        /* The following lines enable pitch and roll servo streetching to values defined as TILT_MIN and TILT_MAX 
           This work only with haedware PWM's for gimbal servos (MEGA board with uncommented MEGA_HW_PWM_SERVOS option) 
           Tipical TILT_MIN should be about 500 and TILT_MAX abiut 2500 for 180 degres servo range */
        //#define SERVO_STRETH
    
        #define TILT_PITCH_MIN    1020    //servo travel min, don't set it below 1020 except mega HW pwm's is used
        #define TILT_PITCH_MAX    2000    //servo travel max, max value=2000
        #define TILT_PITCH_MIDDLE 1500    //servo neutral value
        #define TILT_PITCH_PROP   -14      //servo proportional (tied to angle) ; can be negative to invert movement
        //#define TILT_PITCH_AUX_CH AUX3    //AUX channel to overwrite CAM pitch (AUX1-AUX4), comment to disable manual input and free the AUX channel
        #define TILT_ROLL_MIN     1020
        #define TILT_ROLL_MAX     2000
        #define TILT_ROLL_MIDDLE  1500
        #define TILT_ROLL_PROP    10
        //#define TILT_ROLL_AUX_CH  AUX4    //AUX channel to overwrite CAM Roll (AUX1-AUX4), comment to disable manual input and free the AUX channel
    
        /* camera trigger function : activated via Rc Options in the GUI, servo output=A2 on promini */
        //#define CAMTRIG
        #define CAM_SERVO_HIGH 2000  // the position of HIGH state servo
        #define CAM_SERVO_LOW 1020   // the position of LOW state servo
        #define CAM_TIME_HIGH 1000   // the duration of HIGH state servo expressed in ms
        #define CAM_TIME_LOW 1000    // the duration of LOW state servo expressed in ms
    
      /***********************          Flying Wing                   ***********************/
        /* you can change change servo orientation and servo min/max values here
           valid for all flight modes, even passThrough mode
           need to setup servo directions here; no need to swap servos amongst channels at rx */
        #define PITCH_DIRECTION_L 1 // left servo - pitch orientation
        #define PITCH_DIRECTION_R -1  // right servo - pitch orientation (opposite sign to PITCH_DIRECTION_L, if servos are mounted in mirrored orientation)
        #define ROLL_DIRECTION_L 1  // left servo - roll orientation
        #define ROLL_DIRECTION_R 1  // right servo - roll orientation  (same sign as ROLL_DIRECTION_L, if servos are mounted in mirrored orientation)
        #define WING_LEFT_MID  1500 // left servo center pos. - use this for initial trim; later trim midpoint via LCD
        #define WING_RIGHT_MID 1500 // right servo center pos. - use this for initial trim; later trim midpoint via LCD
        #define WING_LEFT_MIN  1020 // limit servo travel range must be inside [1020;2000]
        #define WING_LEFT_MAX  2000 // limit servo travel range must be inside [1020;2000]
        #define WING_RIGHT_MIN 1020 // limit servo travel range must be inside [1020;2000]
        #define WING_RIGHT_MAX 2000 // limit servo travel range must be inside [1020;2000]
    
      /***********************          Airplane                       ***********************/
        //#define USE_THROTTLESERVO // For use of standard 50Hz servo on throttle.
        #define SERVO_RATES      {100, 100, 100, 100, 100, 100, 100, 100} // Rates in 0-100%
        #define SERVO_DIRECTION  { -1,   1,   1,   -1,  1,   1,   1,   1 } // Invert servos by setting -1
    
        //#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_EP   { 1200, 1500 } // Or Flapperons up for CrowMix 
        #define FLAPPERON_INVERT { 1, -1 }    // Change direction om flapperons { Wing1, Wing2 }
        
        //#define FLAPS         AUX4          // Traditional Flaps on A2 invert with SERVO_DIRECTION servo[2).
        #define FLAP_EP      { 1500, 1900 }   // Endpooints for flaps on a 2 way switch else set {1020,2000} and program in radio.
    
        //#define FLAPSPEED     3             // Make flaps move slowm Higher value is Higher Speed.
    
      /***********************      Common for Heli & Airplane         ***********************/
        //#define D12_POWER      // Use D12 on PROMINI to power sensors. Will disable servo[4] on D12
        #define SERVO_OFFSET     {  0,   0,   0,  0,   0,   0,  0,   0 } //  Adjust Servo MID Offset & Swash angles
        // Selectable channels:=    ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4
    
        /* Governor: attempts to maintain rpm through pitch and voltage changes
         * predictive approach: observe input signals and voltage and guess appropriate corrections.
         * (the throttle curve must leave room for the governor, so 0-50-75-80-80 is ok, 0-50-95-100-100 is _not_ ok.
         * Can be toggled via aux switch.
         */
        //#define GOVERNOR_P 7     //  proportional factor. Higher value -> higher throttle increase. Must be >=1; 0 = turn off
        //#define GOVERNOR_D 4     //  decay timing. Higher value -> takes longer to return throttle to normal. Must be >=1;
        //#define GOVERNOR_R 10    //  voltage impact correction scale in 0.1 units. Higher value -> more compensation for voltage drops. normal is value 10 <=> 1.0; 0 is off
    
      /***********************          Heli                           ***********************/
        /* Channel to control CollectivePitch */
        #define COLLECTIVE_PITCH      THROTTLE
        /* Set Maximum available movement for the servos. Depending on model */
        #define SERVO_ENDPOINT_HIGH {2000,2000,2000,2000,2000,2000,2000,2000};
        #define SERVO_ENDPOINT_LOW  {1020,1020,1020,1020,1020,1020,1020,1020};
    
        /* Limit the range of Collective Pitch. 100% is Full Range each way and position for Zero Pitch */
        #define COLLECTIVE_RANGE { 80, 0, 80 }   // {Min%, ZeroPitch offset from 1500, Max%}.
        #define YAW_CENTER             1500      // Use servo[5] SERVO_ENDPOINT_HIGH/LOW for the endpoits.
        #define YAWMOTOR                 0       // If a motor is used as YAW Set to 1 else set to 0.
    
        /* Servo mixing for heli 120 Use 1/10 fractions (ex.5 = 5/10 = 1/2)
                             {Coll,Nick,Roll} */
        #define SERVO_NICK   { +10, -10, -0 }
        #define SERVO_LEFT   { +10, +5, +10 } 
        #define SERVO_RIGHT  { +10, +5, -10 } 
    
        /* Servo mixing for heli 90 
                                {Coll,Nick,Roll} */
        #define SERVO_DIRECTIONS { +1, -1, -1 } // -1 will invert servo
    
        /* Limit Maximum controll for Roll & Nick  in 0-100% */
        #define CONTROL_RANGE   { 100, 100 }      //  { ROLL,PITCH }
    
        /* use servo code to drive the throttle output. You want this for analog servo driving the throttle on IC engines.
           if inactive, throttle output will be treated as a motor output, so it can drive an ESC */
        //#define HELI_USE_SERVO_FOR_THROTTLE
    
      /***********************      Single and DualCopter Settings     ***********************/
        /* Change to -1 to reverse servomovement per axis
           Servosettings for SingleCopter */
        #define SINGLECOPTRER_YAW   {1, 1, 1, 1} // Left, Right,Front,Rear
        #define SINGLECOPTRER_SERVO {1,-1, 1,-1} // Pitch,Pitch,Roll, Roll    
      
        /* Servosettings for DualCopter */
         #define DUALCOPTER_SERVO {1,1} //Pitch,Roll
        /* Use  SERVO_OFFSET and SERVO_RATES in Heli and Airplane section for centering and endpoints */
    
      /***********************      your individual mixing     ***********************/
        /* if you want to override an existing entry in the mixing table, you may want to avoid esditing the
         * mixTable() function for every version again and again. 
         * howto: http://www.multiwii.com/wiki/index.php?title=Config.h#Individual_Mixing
         */
        //#define MY_PRIVATE_MIXING "filename.h"
        //#define LEAVE_HEADROOM_FOR_MOTORS 4 // leave room for gyro corrrections only for first 4 motors
    
    /*************************************************************************************************/
    /*****************                                                                 ***************/
    /****************  SECTION  3 - RC SYSTEM SETUP                                            *******/
    /*****************                                                                 ***************/
    /*************************************************************************************************/
    
      /* note: no need to uncomment something in this section if you use a standard receiver */
    
      /**************************************************************************************/
      /********                       special receiver types             ********************/
      /**************************************************************************************/
    
        /****************************    PPM Sum Reciver    ***********************************/
          /* The following lines apply only for specific receiver with only one PPM sum signal, on digital PIN 2
             Select the right line depending on your radio brand. Feel free to modify the order in your PPM order is different */
          //#define SERIAL_SUM_PPM         PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Graupner/Spektrum
          //#define SERIAL_SUM_PPM         ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Robe/Hitec/Futaba
          //#define SERIAL_SUM_PPM         ROLL,PITCH,YAW,THROTTLE,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Multiplex
          //#define SERIAL_SUM_PPM         PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For some Hitec/Sanwa/Others
          #define SERIAL_SUM_PPM         ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For some Hitec/Sanwa/Others
    
          // Uncommenting following line allow to connect PPM_SUM receiver to standard THROTTLE PIN on MEGA boards (eg. A8 in CRIUS AIO)
          #define PPM_ON_THROTTLE
    
        /**********************    Spektrum Satellite Reciver    *******************************/
          /* The following lines apply only for Spektrum Satellite Receiver
             Spektrum Satellites are 3V devices.  DO NOT connect to 5V!
             For MEGA boards, attach sat grey wire to RX1, pin 19. Sat black wire to ground. Sat orange wire to Mega board's 3.3V (or any other 3V to 3.3V source).
             For PROMINI, attach sat grey to RX0.  Attach sat black to ground. */
          //#define SPEKTRUM 1024
          //#define SPEKTRUM 2048
          //#define SPEK_SERIAL_PORT 1    // Forced to 0 on Pro Mini and single serial boards; Set to your choice of 0, 1, or 2 on any Mega based board (defaults to 1 on Mega).
          //**************************
          // Defines that allow a "Bind" of a Spektrum or Compatible Remote Receiver (aka Satellite) via Configuration GUI.
          //   Bind mode will be same as declared above, if your TX is capable.
          //   Ground, Power, and Signal must come from three adjacent pins. 
          //   By default, these are Ground=4, Power=5, Signal=6.  These pins are in a row on most MultiWii shield boards. Pins can be overriden below.  
          //   Normally use 3.3V regulator is needed on the power pin!!  If your satellite hangs during bind (blinks, but won't complete bind with a solid light), go direct 5V on all pins. 
          //**************************
          //   For Pro Mini, the connector for the Satellite that resides on the FTDI can be unplugged and moved to these three adjacent pins. 
          //#define SPEK_BIND             //Un-Comment for Spektrum Satellie Bind Support.  Code is ~420 bytes smaller without it. 
          //#define SPEK_BIND_GROUND 4
          //#define SPEK_BIND_POWER  5
          //#define SPEK_BIND_DATA   6
    
        /*******************************    SBUS RECIVER    ************************************/
          /* The following line apply only for Futaba S-Bus Receiver on MEGA boards at RX1 only (Serial 1).
             You have to invert the S-Bus-Serial Signal e.g. with a Hex-Inverter like IC SN74 LS 04 */
          //#define SBUS
    
        /******************* RC signal from the serial port via Multiwii Serial Protocol *********/
          //#define RCSERIAL
    
    
    
    
    /*************************************************************************************************/
    /*****************                                                                 ***************/
    /****************  SECTION  4 - ALTERNATE CPUs & BOARDS                                    *******/
    /*****************                                                                 ***************/
    /*************************************************************************************************/
    
      /**************************************************************************************/
      /********                      Promini Specifig Settings           ********************/
      /**************************************************************************************/
    
        /**************************    Hexa Motor 5 & 6 Pins    *******************************/
          /* PIN A0 and A1 instead of PIN D5 & D6 for 6 motors config and promini config
             This mod allow the use of a standard receiver on a pro mini
             (no need to use a PPM sum receiver) */
          //#define A0_A1_PIN_HEX
    
        /*********************************    Aux 2 Pin     ***********************************/
          /* possibility to use PIN8 or PIN12 as the AUX2 RC input (only one, not both)
             it deactivates in this case the POWER PIN (pin 12) or the BUZZER PIN (pin 8) */
          //#define RCAUXPIN8
          //#define RCAUXPIN12
    
    
      /**************************************************************************************/
      /*****************             Teensy 2.0 Support                    ******************/
      /**************************************************************************************/
        /* uncomment this if you use a teensy 2.0 with teensyduino
           it needs to run at 16MHz */
        //#define TEENSY20
    
    
      /**************************************************************************************/
      /********   Settings for ProMicro, Leonardo and other Atmega32u4 Boards     ***********/
      /**************************************************************************************/
    
        /*********************************    pin Layout     **********************************/
          /* activate this for a better pinlayout if all pins can be used => not possible on ProMicro */
          //#define A32U4ALLPINS
    
        /**********************************    PWM Setup     **********************************/
          /* activate all 6 hardware PWM outputs Motor 5 = D11 and 6 = D13. 
             note: not possible on the sparkfun promicro (pin 11 & 13 are not broken out there)
             if activated:
             Motor 1-6 = 10-bit hardware PWM
             Motor 7-8 = 8-bit Software PWM
             Servos    = 8-bit Software PWM
             if deactivated:
             Motor 1-4 = 10-bit hardware PWM
             Motor 5-8 = 10-bit Software PWM
             Servos    = 10-bit Software PWM */
          //#define HWPWM6
    
        /**********************************    Aux 2 Pin     **********************************/
          /* AUX2 pin on pin RXO */
          //#define RCAUX2PINRXO
    
          /* aux2 pin on pin D17 (RXLED) */
          //#define RCAUX2PIND17
    
        /**********************************    Buzzer Pin    **********************************/
          /* this moves the Buzzer pin from TXO to D8 for use with ppm sum or spectrum sat. RX (not needed if A32U4ALLPINS is active) */
          //#define D8BUZZER
    
        /***********************      Promicro version related     ****************************/
          /* Inverted status LED for Promicro ver 10 */
          //#define PROMICRO10
    
    
      /**************************************************************************************/
      /********                      override default pin assignments    ********************/
      /**************************************************************************************/
    
      /* only enable any of this if you must change the default pin assignment, e.g. your board does not have a specific pin */
      /* you may need to change PINx and PORTx plus #shift according to the desired pin! */
      #define OVERRIDE_V_BATPIN                   A0 // instead of A3    // Analog PIN 3
    
      //#define OVERRIDE_PSENSORPIN                 A1 // instead of A2    // Analog PIN 2
    
      //#define OVERRIDE_LEDPIN_PINMODE             pinMode (A1, OUTPUT); // use A1 instead of d13
      //#define OVERRIDE_LEDPIN_TOGGLE              PINC |= 1<<1; // PINB |= 1<<5;     //switch LEDPIN state (digital PIN 13)
      //#define OVERRIDE_LEDPIN_OFF                 PORTC &= ~(1<<1); // PORTB &= ~(1<<5);
      //#define OVERRIDE_LEDPIN_ON                  PORTC |= 1<<1;    // was PORTB |= (1<<5);
    
      //#define OVERRIDE_BUZZERPIN_PINMODE          pinMode (A2, OUTPUT); // use A2 instead of d8
      //#define OVERRIDE_BUZZERPIN_ON               PORTC |= 1<<2 //PORTB |= 1;
      //#define OVERRIDE_BUZZERPIN_OFF              PORTC &= ~(1<<2); //PORTB &= ~1;
    
    /*************************************************************************************************/
    /*****************                                                                 ***************/
    /****************  SECTION  5 - ALTERNATE SETUP                                            *******/
    /*****************                                                                 ***************/
    /*************************************************************************************************/
    
      /******                Serial com speed    *********************************/
        /* This is the speed of the serial interfaces */
        #define SERIAL0_COM_SPEED 115200
        #define SERIAL1_COM_SPEED 115200
        #define SERIAL2_COM_SPEED 115200
        #define SERIAL3_COM_SPEED 115200
    
        /* interleaving delay in micro seconds between 2 readings WMP/NK in a WMP+NK config
           if the ACC calibration time is very long (20 or 30s), try to increase this delay up to 4000
           it is relevent only for a conf with NK */
        #define INTERLEAVING_DELAY 3000
    
        /* when there is an error on I2C bus, we neutralize the values during a short time. expressed in microseconds
           it is relevent only for a conf with at least a WMP */
        #define NEUTRALIZE_DELAY 100000
    
    
      /**************************************************************************************/
      /********                              Gyro filters                ********************/
      /**************************************************************************************/
    
        /*********************    Lowpass filter for some gyros    ****************************/
          /* ITG3200 & ITG3205 Low pass filter setting. In case you cannot eliminate all vibrations to the Gyro, you can try
             to decrease the LPF frequency, only one step per try. As soon as twitching gone, stick with that setting.
             It will not help on feedback wobbles, so change only when copter is randomly twiching and all dampening and
             balancing options ran out. Uncomment only one option!
             IMPORTANT! Change low pass filter setting changes PID behaviour, so retune your PID's after changing LPF.*/
          //#define ITG3200_LPF_256HZ     // This is the default setting, no need to uncomment, just for reference
          //#define ITG3200_LPF_188HZ
          //#define ITG3200_LPF_98HZ
          //#define ITG3200_LPF_42HZ
          //#define ITG3200_LPF_20HZ
          //#define ITG3200_LPF_10HZ      // Use this only in extreme cases, rather change motors and/or props
    
          /* MPU6050 Low pass filter setting. In case you cannot eliminate all vibrations to the Gyro, you can try
             to decrease the LPF frequency, only one step per try. As soon as twitching gone, stick with that setting.
             It will not help on feedback wobbles, so change only when copter is randomly twiching and all dampening and
             balancing options ran out. Uncomment only one option!
             IMPORTANT! Change low pass filter setting changes PID behaviour, so retune your PID's after changing LPF.*/
          //#define MPU6050_LPF_256HZ     // This is the default setting, no need to uncomment, just for reference
          //#define MPU6050_LPF_188HZ
          //#define MPU6050_LPF_98HZ
          #define MPU6050_LPF_42HZ
          //#define MPU6050_LPF_20HZ
          //#define MPU6050_LPF_10HZ
          //#define MPU6050_LPF_5HZ       // Use this only in extreme cases, rather change motors and/or props
    
        /******                Gyro smoothing    **********************************/
          /* GYRO_SMOOTHING. In case you cannot reduce vibrations _and_ _after_ you have tried the low pass filter options, you
             may try this gyro smoothing via averaging. Not suitable for multicopters!
             Good results for helicopter, airplanes and flying wings (foamies) with lots of vibrations.*/
          //#define GYRO_SMOOTHING {20, 20, 3}    // separate averaging ranges for roll, pitch, yaw
    
        /************************    Moving Average Gyros    **********************************/
          //#define MMGYRO 10                      // Active Moving Average Function for Gyros
          //#define MMGYROVECTORLENGTH 15          // Length of Moving Average Vector (maximum value for tunable MMGYRO
          /* Moving Average ServoGimbal Signal Output */
          //#define MMSERVOGIMBAL                  // Active Output Moving Average Function for Servos Gimbal
          //#define MMSERVOGIMBALVECTORLENGHT 32   // Lenght of Moving Average Vector
    
      /************************    Analog Reads              **********************************/
        /* if you want faster analog Reads, enable this. It may result in less accurate results, especially for more than one analog channel */
        //#define FASTER_ANALOG_READS
    
    /*************************************************************************************************/
    /*****************                                                                 ***************/
    /****************  SECTION  6 - OPTIONAL FEATURES                                          *******/
    /*****************                                                                 ***************/
    /*************************************************************************************************/
    
      /************************        Angele throttle correction         ********************/
      /* Automatically increase throttle based on the angle of the copter
         Original idea by Kraut Rob, first implementation HAdrian                            */
    
      //#define THROTTLE_ANGLE_CORRECTION 40
      
     /*************************        Advanced Headfree Mode             ********************/
     /* In Advanced Headfree mode when the copter is farther than ADV_HEADFREE_RANGE meters then 
        the  bearing between home and copter position will become the control direction 
        IF copter come closer than ADV_HEADFREE_RANGE meters, then the control direction freezed to the 
        bearing between home and copter at the point where it crosses the ADV_HEADFREE_RANGE meter distance
        first implementation by HAdrian, mods by EOSBandi
     */
    
       //#define ADVANCED_HEADFREE                                    //Advanced headfree mode is enabled when this is uncommented
       //#define ADV_HEADFREE_RANGE 15                                //Range where advanced headfree mode activated
    
    
      /************************        continuous gyro calibration        ********************/
      /* Gyrocalibration will be repeated if copter is moving during calibration. */
        //#define GYROCALIBRATIONFAILSAFE
    
      /************************        AP FlightMode        **********************************/
        /* Temporarily Disables GPS_HOLD_MODE to be able to make it possible to adjust the Hold-position when moving the sticks.*/
        #define AP_MODE 40  // Create a deadspan for GPS.
            
      /************************   Assisted AcroTrainer    ************************************/
        /* Train Acro with auto recovery. Value set the point where ANGLE_MODE takes over.
           Remember to activate ANGLE_MODE first!...
           A Value on 200 will give a very distinct transfer */
        //#define ACROTRAINER_MODE 200   // http://www.multiwii.com/forum/viewtopic.php?f=16&t=1944#p17437
    
    
      /********                          Failsafe settings                 ********************/
        /* Failsafe check pulses on four main control channels CH1-CH4. If the pulse is missing or bellow 985us (on any of these four channels) 
           the failsafe procedure is initiated. After FAILSAFE_DELAY time from failsafe detection, the level mode is on (if ACC or nunchuk is avaliable),
           PITCH, ROLL and YAW is centered and THROTTLE is set to FAILSAFE_THROTTLE value. You must set this value to descending about 1m/s or so
           for best results. This value is depended from your configuration, AUW and some other params.  Next, afrer FAILSAFE_OFF_DELAY the copter is disarmed, 
           and motors is stopped. If RC pulse coming back before reached FAILSAFE_OFF_DELAY time, after the small quard time the RC control is returned to normal. */
        #define FAILSAFE                                // uncomment  to activate the failsafe function
        #define FAILSAFE_DELAY     5 //10                     // Guard time for failsafe activation after signal lost. 1 step = 0.1sec - 1sec in example
        #define FAILSAFE_OFF_DELAY 1000 //200                    // Time for Landing before motors stop in 0.1sec. 1 step = 0.1sec - 20sec in example
        #define FAILSAFE_THROTTLE  (MINTHROTTLE + 200)    // Throttle level used for landing - may be relative to MINTHROTTLE - as in this case
    
    
      /*****************                DFRobot LED RING    *********************************/
        /* I2C DFRobot LED RING communication */
        //#define LED_RING
    
      /********************************    LED FLASHER    ***********************************/
        //#define LED_FLASHER
        //#define LED_FLASHER_DDR DDRB
        //#define LED_FLASHER_PORT PORTB
        //#define LED_FLASHER_BIT PORTB4
        //#define LED_FLASHER_INVERT
        //#define LED_FLASHER_SEQUENCE        0b00000000      // leds OFF
        //#define LED_FLASHER_SEQUENCE_ARMED  0b00000101      // create double flashes
        //#define LED_FLASHER_SEQUENCE_MAX    0b11111111      // full illumination
        //#define LED_FLASHER_SEQUENCE_LOW    0b00000000      // no illumination
    
    
      /*******************************    Landing lights    *********************************/
      /* Landing lights
         Use an output pin to control landing lights.
         They can be switched automatically when used in conjunction
         with altitude data from a sonar unit. */
        //#define LANDING_LIGHTS_DDR DDRC
        //#define LANDING_LIGHTS_PORT PORTC
        //#define LANDING_LIGHTS_BIT PORTC0
        //#define LANDING_LIGHTS_INVERT
    
        /* altitude above ground (in cm) as reported by sonar */
        //#define LANDING_LIGHTS_AUTO_ALTITUDE 50
    
        /* adopt the flasher pattern for landing light LEDs */
        //#define LANDING_LIGHTS_ADOPT_LED_FLASHER_PATTERN
    
      /*************************    INFLIGHT ACC Calibration    *****************************/
        /* This will activate the ACC-Inflight calibration if unchecked */
        //#define INFLIGHT_ACC_CALIBRATION
    
      /**************************    Disable WMP power pin     *******************************/
        /* disable use of the POWER PIN
           (allready done if the option RCAUXPIN12 is selected) */
        //#define DISABLE_POWER_PIN
    
      /*******************************    OSD Switch    *************************************/
        // This adds a box that can be interpreted by OSD in activation status (to switch on/off the overlay for instance)
      //#define OSD_SWITCH
    
      /**************************************************************************************/
      /***********************                  TX-related         **************************/
      /**************************************************************************************/
    
        /* introduce a deadband around the stick center
           Must be greater than zero, comment if you dont want a deadband on roll, pitch and yaw */
        //#define DEADBAND 6
    
        /* defines the neutral zone of throttle stick during altitude hold, default setting is
           +/-40 uncommend and change the value below if you want to change it. */
        //#define ALT_HOLD_THROTTLE_NEUTRAL_ZONE 40 
    
    
      /**************************************************************************************/
      /***********************                  GPS                **************************/
      /**************************************************************************************/
    
        /* GPS using a SERIAL port
           if enabled, define here the Arduino Serial port number and the UART speed
           note: only the RX PIN is used in case of NMEA mode, the GPS is not configured by multiwii
           in NMEA mode the GPS must be configured to output GGA and RMC NMEA sentences (which is generally the default conf for most GPS devices)
           at least 5Hz update rate. uncomment the first line to select the GPS serial port of the arduino */
        #define GPS_SERIAL 2 // should be 2 for flyduino v2. It's the serial port number on arduino MEGA
        //#define GPS_BAUD   57600
        #define GPS_BAUD   115200
    
    
       /* GPS protocol 
           NMEA  - Standard NMEA protocol GGA, GSA and RMC  sentences are needed
           UBLOX - U-Blox binary protocol, use the ublox config file (u-blox-config.ublox.txt) from the source tree 
           MTK_BINARY16 and MTK_BINARY19 - MTK3329 chipset based GPS with DIYDrones binary firmware (v1.6 or v1.9)
           With UBLOX and MTK_BINARY you don't have to use GPS_FILTERING in multiwii code !!! */
    
        
        //#define NMEA
        #define UBLOX
        //#define MTK_BINARY16
        //#define MTK_BINARY19
        //#define INIT_MTK_GPS        // initialize MTK GPS for using selected speed, 5Hz update rate and GGA & RMC sentence or binary settings
    
        //#define GPS_PROMINI_SERIAL    57600 // Will Autosense if GPS is connected when ardu boots
       
        /* I2C GPS device made with an independant arduino + GPS device
           including some navigation functions
           contribution from EOSBandi   http://code.google.com/p/i2c-gps-nav/ 
           You have to use at least I2CGpsNav code r33 */
        //#define I2C_GPS
    
        /* I2C GPS device made with an indeedent ATTiny[24]313 + GPS device and
           optional sonar device.    https://github.com/wertarbyte/tiny-gps/ */
        /* get GPS data from Tiny-GPS */
        //#define TINY_GPS
        /* get sonar data from Tiny-GPS */
        //#define TINY_GPS_SONAR
    
        /* GPS data readed from Misio-OSD - GPS module connected to OSD, and MultiWii read GPS data from OSD - tested and working OK ! */
        //#define GPS_FROM_OSD
    
        /* indicate a valid GPS fix with at least 5 satellites by flashing the LED  - Modified by MIS - Using stable LED (YELLOW on CRIUS AIO) led work as sat number indicator 
          - No GPS FIX -> LED blink at speed of incoming GPS frames
          - Fix and sat no. bellow 5 -> LED off
          - Fix and sat no. >= 5 -> LED blinks, one blink for 5 sat, two blinks for 6 sat, three for 7 ... */
        #define GPS_LED_INDICATOR
    
        //#define USE_MSP_WP                        //Enables the MSP_WP command, which is used by WinGUI to display and log Home and Poshold positions
    
        //#define DONT_RESET_HOME_AT_ARM             // HOME position is reset at every arm, uncomment it to prohibit it (you can set home position with GyroCalibration)
    
        /* GPS navigation can control the heading */
        
        #define NAV_CONTROLS_HEADING       true      // copter faces toward the navigation point, maghold must be enabled for it
        #define NAV_TAIL_FIRST             false     // true - copter comes in with tail first 
        #define NAV_SET_TAKEOFF_HEADING    true      // true - when copter arrives to home position it rotates it's head to takeoff direction
        
        
        /* Get your magnetic decliniation from here : http://magnetic-declination.com/
           Convert the degree+minutes into decimal degree by ==> degree+minutes*(1/60)
           Note the sign on declination it could be negative or positive (WEST or EAST) */
        //#define MAG_DECLINIATION  3.96f              //For Budapest Hungary.
        #define MAG_DECLINIATION  -2.11f //0.0f
    
        #define GPS_LEAD_FILTER                      // Adds a forward predictive filterig to compensate gps lag. Code based on Jason Short's lead filter implementation
        
        //#define GPS_FILTERING                        // add a 5 element moving average filter to GPS coordinates, helps eliminate gps noise but adds latency comment out to disable
        #define GPS_WP_RADIUS              200       // if we are within this distance to a waypoint then we consider it reached (distance is in cm)
        #define NAV_SLEW_RATE              30        // Adds a rate control to nav output, will smoothen out nav angle spikes
    
    
      /**************************************************************************************/
      /***********************        LCD/OLED - display settings       *********************/
      /**************************************************************************************/
    
        /* http://www.multiwii.com/wiki/index.php?title=Extra_features#LCD_.2F_OLED */
    
        /*****************************   The type of LCD     **********************************/
          /* choice of LCD attached for configuration and telemetry, see notes below */
          //#define LCD_DUMMY       // No Physical LCD attached.  With this & LCD_CONF defined, TX sticks still work to set gains, by watching LED blink.  
          //#define LCD_SERIAL3W    // Alex' initial variant with 3 wires, using rx-pin for transmission @9600 baud fixed
          //#define LCD_TEXTSTAR    // SERIAL LCD: Cat's Whisker LCD_TEXTSTAR Module CW-LCD-02 (Which has 4 input keys for selecting menus)
          //#define LCD_VT100       // SERIAL LCD: vt100 compatible terminal emulation (blueterm, putty, etc.)
          //#define LCD_TTY         // SERIAL LCD: useful to tweak parameters over cable with arduino IDE 'serial monitor'
          //#define LCD_ETPP        // I2C LCD: Eagle Tree Power Panel LCD, which is i2c (not serial)
          //#define LCD_LCD03       // I2C LCD: LCD03, which is i2c
          //#define OLED_I2C_128x64 // I2C LCD: OLED http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350
    
        /******************************   Display settings   ***********************************/
          #define LCD_SERIAL_PORT 0    // must be 0 on Pro Mini and single serial boards; Set to your choice on any Mega based board
    
          //#define SUPPRESS_OLED_I2C_128x64LOGO  // suppress display of OLED logo to save memory
    
        /* double font height for better readability. Reduces visible #lines by half.
         * The lower part of each page is accessible under the name of shifted keyboard letter :
         * 1 - ! , 2 - @ , 3 - # , 4 - $ , 5 - % , 6 - ^ , 7 - & , 8 - * , 9 - (
         * You must add both to your lcd.telemetry.* sequences
         */
          //#define DISPLAY_FONT_DSIZE //currently only aplicable for OLED_I2C_128x64
    
        /* style of display - AUTODETECTED via LCD_ setting - only activate to override defaults */
          //#define DISPLAY_2LINES
          //#define DISPLAY_MULTILINE
          //#define MULTILINE_PRE 2  // multiline configMenu # pref lines
          //#define MULTILINE_POST 6 // multiline configMenu # post lines
        /********************************    Navigation     ***********************************/
        /* keys to navigate the LCD menu */
          #define LCD_MENU_PREV 'p'
          #define LCD_MENU_NEXT 'n'
          #define LCD_VALUE_UP 'u'
          #define LCD_VALUE_DOWN 'd'
    
          #define LCD_MENU_SAVE_EXIT 's'
          #define LCD_MENU_ABORT 'x'
    
      /**************************************************************************************/
      /***********************      LCD configuration menu         **************************/
      /**************************************************************************************/
    
        /* uncomment this line if you plan to use a LCD or OLED for tweaking parameters
         * http://www.multiwii.com/wiki/index.php?title=Extra_features#Configuration_Menu */
          //#define LCD_CONF
    
        /* to include setting the aux switches for AUX1 -> AUX4 via LCD */
          //#define LCD_CONF_AUX
    
        /* optional exclude some functionality - uncomment to suppress some unwanted telemetry pages */
          //#define SUPPRESS_LCD_CONF_AUX34
    
      /**************************************************************************************/
      /***********************      LCD       telemetry            **************************/
      /**************************************************************************************/
    
        /* to monitor system values (battery level, loop time etc. with LCD 
         * http://www.multiwii.com/wiki/index.php?title=LCD_Telemetry */
    
        /********************************    Activation     ***********************************/
        //#define LCD_TELEMETRY
    
        /* to enable automatic hopping between a choice of telemetry pages uncomment this. */
        //#define LCD_TELEMETRY_AUTO "123452679" // pages 1 to 9 in ascending order
        //#define LCD_TELEMETRY_AUTO  "212232425262729" // strong emphasis on page 2
    
        /* manual stepping sequence; first page of the sequence gets loaded at startup to allow non-interactive display */
        //#define LCD_TELEMETRY_STEP "0123456789" // should contain a 0 to allow switching off.
    
        /* optional exclude some functionality - uncomment to suppress some unwanted telemetry pages */
        //#define SUPPRESS_TELEMETRY_PAGE_1
        //#define SUPPRESS_TELEMETRY_PAGE_2
        //#define SUPPRESS_TELEMETRY_PAGE_3
        //#define SUPPRESS_TELEMETRY_PAGE_4
        //#define SUPPRESS_TELEMETRY_PAGE_5
        //#define SUPPRESS_TELEMETRY_PAGE_6
        //#define SUPPRESS_TELEMETRY_PAGE_7
        //#define SUPPRESS_TELEMETRY_PAGE_8
        //#define SUPPRESS_TELEMETRY_PAGE_9
    
      /********************************************************************/
      /****                             RSSI                           ****/
      /********************************************************************/
        #define RX_RSSI
        #define RX_RSSI_PIN A3
    
      /********************************************************************/
      /****                             Buzzer                         ****/
      /********************************************************************/
        #define BUZZER
        //#define RCOPTIONSBEEP         // uncomment this if you want the buzzer to beep at any rcOptions change on channel Aux1 to Aux4
        //#define ARMEDTIMEWARNING 330  // Trigger an alarm after a certain time of being armed [s] to save you lipo (if your TX does not have a countdown)
        //#define PILOTLAMP             // Uncomment if you are using a X-Arcraft Pilot Lamp
    
      /********************************************************************/
      /****           battery voltage monitoring                       ****/
      /********************************************************************/
        /* for V BAT monitoring
           after the resistor divisor we should get [0V;5V]->[0;1023] on analog V_BATPIN
           with R1=33k and R2=51k
           vbat = [0;1023]*16/VBATSCALE
           must be associated with #define BUZZER ! */
        #define VBAT              // uncomment this line to activate the vbat code
        #define VBATSCALE       60 //131 // change this value if readed Battery voltage is different than real voltage
        #define VBATNOMINAL     168 //126 // 12,6V full battery nominal voltage - only used for lcd.telemetry
        #define VBATLEVEL_WARN1 148 //107 // 10,7V
        #define VBATLEVEL_WARN2 144 //99 // 9.9V
        #define VBATLEVEL_CRIT  138 //93 // 9.3V - critical condition: if vbat ever goes below this value, permanent alarm is triggered
        #define NO_VBAT          16 // Avoid beeping without any battery
    
    
      /********************************************************************/
      /****           powermeter (battery capacity monitoring)         ****/
      /********************************************************************/
    
        /* enable monitoring of the power consumption from battery (think of mAh)
           allows to set alarm value in GUI or via LCD
          Full description and howto here http://www.multiwii.com/wiki/index.php?title=Powermeter
           Two options:
           1 - hard: - (uses hardware sensor, after configuration gives very good results)
           2 - soft: - (good results +-5% for plush and mystery ESCs @ 2S and 3S, not good with SuperSimple ESC)    */
        //#define POWERMETER_SOFT
        //#define POWERMETER_HARD
        /* PLEVELSCALE is the step size you can use to set alarm */
        #define PLEVELSCALE 50 // if you change this value for other granularity, you must search for comments in code to change accordingly
        /* larger PLEVELDIV will get you smaller value for power (mAh equivalent) */
        #define PLEVELDIV 5000 // default for soft - if you lower PLEVELDIV, beware of overrun in uint32 pMeter
        //#define PLEVELDIV 36000 // fixed value for hard - do not tune
        #define PLEVELDIVSOFT PLEVELDIV // for soft always equal to PLEVELDIV
        //#define PLEVELDIVSOFT 5000 // for hard fixed to 5000
        #define PSENSORNULL 510 // set to analogRead() value for zero current; for I=0A my sensor gives 1/2 Vss; that is approx 2.49Volt;
        #define PINT2mA 132 // one integer step on arduino analog translates to mA (example 4.9 / 37 * 1000
    
      /********************************************************************/
      /****           altitude hold                                    ****/
      /********************************************************************/
    
        /* uncomment to disable the altitude hold feature.
         * This is useful if all of the following apply
         * + you have a baro
         * + want altitude readout
         * + do not use altitude hold feature
         * + want to save memory space
         */
        //#define SUPPRESS_BARO_ALTHOLD
    
      /* Natural alt change for rapid pilots. It's temporary switch OFF the althold when throttle stick is out of deadband defined with ALT_HOLD_THROTTLE_NEUTRAL_ZONE
       * but if it's commented: Smooth alt change routine is activated, for slow auto and aerophoto modes (in general solution from alexmos). It's slowly increase/decrease 
       * altitude proportional to stick movement (+/-100 throttle gives about +/-50 cm in 1 second with cycle time about 3-4ms)
       */
      #define ALTHOLD_FAST_THROTTLE_CHANGE
    
      /********************************************************************/
      /****           altitude variometer                              ****/
      /********************************************************************/
    
        /* enable to get audio feedback upon rising/falling copter/plane.
         * Requires a working baro.
         * For now, Output gets sent to an enabled vt100 terminal program over the serial line.
         * choice of two methods (enable either one or both)
         * method 1 : use short term movement from baro ( bigger code size)
         * method 2 : use long term observation of altitude from baro (smaller code size)
         */
        //#define VARIOMETER 12            // possible values: 12 = methods 1 & 2 ; 1 = method 1 ; 2 = method 2
        //#define SUPPRESS_VARIOMETER_UP   // if no signaling for up movement is desired
        //#define SUPPRESS_VARIOMETER_DOWN // if no signaling for down movement is desired
        //#define VARIOMETER_SINGLE_TONE   // use only one tone (BEL); neccessary for non-patched vt100 terminals
    
      /********************************************************************/
      /****           baord naming                                     ****/
      /********************************************************************/
    
        /*
         * this name is displayed together with the MultiWii version number
         * upon powerup on the LCD.
         * If you are without a DISPLAYD then You may enable LCD_TTY and
         * use arduino IDE's serial monitor to view the info.
         *
         * You must preserve the format of this string!
         * It must be 16 characters total,
         * The last 4 characters will be overwritten with the version number.
         */
        #define BOARD_NAME "MultiWii   V-.--"
        //                  123456789.123456
    
      /*************      Support multiple configuration profiles in EEPROM     ************/
        //#define MULTIPLE_CONFIGURATION_PROFILES
    
    /*************************************************************************************************/
    /*****************                                                                 ***************/
    /****************  SECTION  7 - TUNING & DEVELOPER                                  **************/
    /*****************                                                                 ***************/
    /*************************************************************************************************/
    
      /************ Experimental: force a stable, fixated (high) cycle time       **********/
        /* when activated, the displayed cycle time in GUI will not be correct.
         * Tunable via LCD config menu.
         * value of 0 turns the feature off.
         */
        //#define CYCLETIME_FIXATED 9000
    
      /**************************************************************************************/
      /********   special ESC with extended range [0-2000] microseconds  ********************/
      /**************************************************************************************/
        //#define EXT_MOTOR_RANGE
    
      /**************************************************************************************/
      /***********************     motor, servo and other presets     ***********************/
      /**************************************************************************************/
        /* motors will not spin when the throttle command is in low position
           this is an alternative method to stop immediately the motors */
        //#define MOTOR_STOP
    
        /* some radios have not a neutral point centered on 1500. can be changed here */
        #define MIDRC 1500
    
      /***********************         Servo Refreshrates            ***********************/
        /* Default 50Hz Servo refresh rate*/
        #define SERVO_RFR_50HZ
    
        /* up to 160Hz servo refreshrate .. works with the most analog servos*/
        //#define SERVO_RFR_160HZ
    
        /* up to 300Hz refreshrate it is as fast as possible (100-300Hz depending on the cound of used servos and the servos state).
           for use with digital servos
           dont use it with analog servos! thay may get damage. (some will work but be careful) */
        //#define SERVO_RFR_300HZ
        
      /***********************             HW PWM Servos             ***********************/ 
        /* HW PWM Servo outputs for Arduino Mega.. moves:
          Pitch   = pin 44
          Roll    = pin 45
          CamTrig = pin 46
          SERVO4  = pin 11 (aileron left for fixed wing)
          SERVO5  = pin 12 (aileron right for fixed wing)
          SERVO6  = pin 6   (rudder for fixed wing)
          SERVO7  = pin 7   (elevator for fixed wing)
          SERVO8  = pin 8   (motor for fixed wing)       */ 
    
        //#define MEGA_HW_PWM_SERVOS
        #define SERVO_RFR_RATE  50    // In Hz, you can set it from 20 to 400Hz, used only in HW PWM mode
     
      /********************************************************************/
      /****           Memory savings                                   ****/
      /********************************************************************/
    
        /* options to counter the general shortage of memory, like with leonardo m32u4 and others */
    
        /**** suppress handling of serial commands.***
         * This does _not_ affect handling of RXserial, Spektrum or GPS. Those will not be affected and still work the same.
         * Enable either one or both of the following options  */
    
          /* Remove handling of all commands of the New MultiWii Serial Protocol.
           * This will disable use of the GUI, winGUI, android apps and any other program that makes use of the MSP.
           * You must find another way (like LCD_CONF) to tune the parameters or live with the defaults.
           * If you run a LCD/OLED via i2c or serial/Bluetooth, this is safe to use */
          //#define SUPPRESS_ALL_SERIAL_MSP // saves approx 2700 bytes
    
          /* Remove handling of other serial commands.
           * This includes navigating via serial the lcd.configuration menu, lcd.telemetry and permanent.log .
           * Navigating via stick inputs on tx is not affected and will work the same.  */
          //#define SUPPRESS_OTHER_SERIAL_COMMANDS // saves  approx 0 to 100 bytes, depending on features enabled
    
        /**** suppress keeping the defaults for initial setup and reset in the code.
         * This requires a manual initial setup of the PIDs etc. or load and write from defaults.mwi;
         * reset in GUI will not work on PIDs
         */
        //#define SUPPRESS_DEFAULTS_FROM_GUI
    
      /********************************************************************/
      /****           diagnostics                                      ****/
      /********************************************************************/
    
        /* to log values like max loop time and others to come
           logging values are visible via LCD config
           set to 1, enable 'R' option to reset values, max current, max altitude
           set to 2, adds min/max cycleTimes
           set to 3, adds additional powerconsumption on a per motor basis (this uses the big array and is a memory hog, if POWERMETER <> PM_SOFT) */
        //#define LOG_VALUES 1
    
        /* Permanent logging to eeprom - survives (most) upgrades and parameter resets.
         * used to track number of flights etc. over lifetime of controller board.
         * Writes to end of eeprom - should not conflict with stored parameters yet.
         * Logged values: accumulated lifetime, #powercycle/reset/initialize events, #arm events, #disarm events, last armedTime,
         *                #failsafe@disarm, #i2c_errs@disarm
         * To activate set to size of eeprom for your mcu: promini 328p: 1023 ; 2560: 4095.
         * Enable one or more options to show the log
         */
        //#define LOG_PERMANENT 1023
        //#define LOG_PERMANENT_SHOW_AT_STARTUP // enable to display log at startup
        //#define LOG_PERMANENT_SHOW_AT_L // enable to display log when receiving 'L'
        //#define LOG_PERMANENT_SHOW_AFTER_CONFIG // enable to display log after exiting LCD config menu
        //#define LOG_PERMANENT_SERVICE_LIFETIME 36000 // in seconds; service alert at startup after 10 hours of armed time
    
        /* to add debugging code
           not needed and not recommended for normal operation
           will add extra code that may slow down the main loop or make copter non-flyable */
        //#define DEBUG
    
        /* Use this to trigger LCD configuration without a TX - only for debugging - do NOT fly with this activated */
        //#define LCD_CONF_DEBUG
    
        /* Use this to trigger telemetry without a TX - only for debugging - do NOT fly with this activated */
        //#define LCD_TELEMETRY_DEBUG    //This form rolls between all screens, LCD_TELEMETRY_AUTO must also be defined.
        //#define LCD_TELEMETRY_DEBUG 6  //This form stays on the screen specified.
    
        /* Enable string transmissions from copter to GUI */
        //#define DEBUGMSG
    
    
      /********************************************************************/
      /****           ESCs calibration                                 ****/
      /********************************************************************/
    
        /* to calibrate all ESCs connected to MWii at the same time (useful to avoid unplugging/re-plugging each ESC)
           Warning: this creates a special version of MultiWii Code
           You cannot fly with this special version. It is only to be used for calibrating ESCs
           Read How To at http://code.google.com/p/multiwii/wiki/ESCsCalibration */
        #define ESC_CALIB_LOW  MINCOMMAND
        #define ESC_CALIB_HIGH 2000
        //#define ESC_CALIB_CANNOT_FLY  // uncomment to activate
    
      /****           internal frequencies                             ****/
        /* frequenies for rare cyclic actions in the main loop, depend on cycle time
           time base is main loop cycle time - a value of 6 means to trigger the action every 6th run through the main loop
           example: with cycle time of approx 3ms, do action every 6*3ms=18ms
           value must be [1; 65535] */
        #define LCD_TELEMETRY_FREQ 23       // to send telemetry data over serial 23 <=> 60ms <=> 16Hz (only sending interlaced, so 8Hz update rate)
        #define LCD_TELEMETRY_AUTO_FREQ 967 // to step to next telemetry page 967 <=> 3s
        #define PSENSOR_SMOOTH 16           // len of averaging vector for smoothing the PSENSOR readings; should be power of 2; set to 1 to disable
        #define VBAT_SMOOTH 16              // len of averaging vector for smoothing the VBAT readings; should be power of 2; set to 1 to disable
        #define RSSI_SMOOTH 16              // len of averaging vector for smoothing the RSSI readings; should be power of 2; set to 1 to disable
    
    
      /********************************************************************/
      /****           Regression testing                               ****/
      /********************************************************************/
    
        /* for development only:
           to allow for easier and reproducable config sets for test compiling, different sets of config parameters are kept
           together. This is meant to help detecting compile time errors for various features in a coordinated way.
           It is not meant to produce your flying firmware
           To use:
           - do not set any options in config.h,
           - enable with #define COPTERTEST 1, then compile
           - if possible, check for the size
           - repeat with other values of 2, 3, 4 etc.
            */
        //#define COPTERTEST 1
    
    /*************************************************************************************************/
    /****           END OF CONFIGURABLE PARAMETERS                                                ****/
    /*************************************************************************************************/
    
    

    • KV Team OSD dev r345 - config.h:
    Insertar CODE, HTML o PHP:
    
    
     
     
     /*--------------------------------------------------       configurable parameters      ----------------------------------------------------*/
    
    
    
    /**********************       Serial speed      ************************/
    
    //#define SERIAL_SPEED 115200
    
    /**********    Here you can define time out for Mag calibration and EEProm write (mostly useful for mag calibration)    ***********/
    
    #define CALIBRATION_DELAY 10
    #define EEPROM_WRITE_DELAY 5
    
    /***************************************         Amperage        ********************************************/
    
    #define EST_PMSum 2.6                 /****  NOTE  **** If you use hardware CURRENT sensor on OSD use (#define EST_PMSum 1) BEFORE ANY ADJUSTMENT OR CALIBRATION
                                                            this value is empirical and is for fine tunning your consumption using the same instructions as for POWERMETER adjustment
                                                            on Mwc (first you have to MWC fine tune your voltage (VBat)).                                                       ****/
    
    #define AMPDIVISION 3600            // Hardware current sensor division ratio
    #define AMPERAGE_CAL 1.1            // Amperage calibration
    #define AMPRERAGE_OFFSET 512        // Amperage = AMPRERAGE_OFFSET - analogRead * AMPERAGE_CAL / 10.23
    
    /**********************************         Display Settings         ************************/
    
    #define DECIMAL '.'                 // Decimal point character, change to what suits you best (.) (,)
    // moved to eeprom #define RSSI_ALARM 60               // This is the (%) value that will make your alarm go on (RSSI blink on screen).
    //#define CALL_SIGN
    //#define CALL_SIGN_TEXT "CALL_SIGN_" // Call sign must be <= 10 characteres long.
    
    
    /**********************************   MSP Options and compatibility **********************/
    #define USE_BOXNAMES              // Comment this line to use BOXIDS
    #define BOX_OSD_SWITCH              // Comment to use LLIGHT switch instead. ( OSD switch will be default and only option after MW 2.2 release. It is used to hide your AH, side bars, and coordinates).
    
    /********************       For Sensors presence      *********************/
    
    #define ACCELEROMETER  1//0b00000001
    #define BAROMETER      2//0b00000010
    #define MAGNETOMETER   4//0b00000100
    #define GPSSENSOR      8//0b00001000
    //#define SONAR         16//0b00010000
    
    
    /*----------------------------------------------       End of configurable parameters      ----------------------------------------------------*/
    
    #define LINE      30
    #define LINE01    0
    #define LINE02    30
    #define LINE03    60
    #define LINE04    90
    #define LINE05    120
    #define LINE06    150
    #define LINE07    180
    #define LINE08    210
    #define LINE09    240
    #define LINE10    270
    #define LINE11    300
    #define LINE12    330
    #define LINE13    360
    #define LINE14    390
    #define LINE15    420
    #define LINE16    450
    
    // DEFINE CONFIGURATION MENU PAGES
    #define MINPAGE 1
    #define MAXPAGE 6
    
    #define PIDITEMS 10
    
    // RX CHANEL IN MwRcData table
    #define ROLLSTICK        0
    #define PITCHSTICK       1
    #define YAWSTICK         2
    #define THROTTLESTICK    3
    
    // STICK POSITION
    #define MAXSTICK         1900
    #define MINSTICK         1100
    #define MINTROTTLE       1000
    
    // FOR POSITION OF PID CONFIG VALUE
    #define ROLLT 93
    #define ROLLP 101
    #define ROLLI 107
    #define ROLLD 113
    #define PITCHT 93+(30*1)
    #define PITCHP 101+(30*1)
    #define PITCHI 107+(30*1)
    #define PITCHD 113+(30*1)
    #define YAWT 93+(30*2)
    #define YAWP 101+(30*2)
    #define YAWI 107+(30*2)
    #define YAWD 113+(30*2)
    #define ALTT 93+(30*3)
    #define ALTP 101+(30*3)
    #define ALTI 107+(30*3)
    #define ALTD 113+(30*3)
    #define VELT 93+(30*4)
    #define VELP 101+(30*4)
    #define VELI 107+(30*4)
    #define VELD 113+(30*4)
    #define LEVT 93+(30*5)
    #define LEVP 101+(30*5)
    #define LEVI 107+(30*5)
    #define LEVD 113+(30*5)
    #define MAGT 93+(30*6)
    #define MAGP 101+(30*6)
    #define MAGI 107+(30*6)
    #define MAGD 113+(30*6)
    
    #define SAVEP 93+(30*9)
    
    
    
    
    
    
    
     
  22. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Joer, que currele el poner las configs ... muchas gracias.

    Precisamente ahora mismo tengo impresas las configs 2.2 oficial, otra con gps y otra con sonar y estoy viendo las diferencias.

    Ahora comparare con la tuya a ver que mas cosas innovadores encuentro.

    Lo que comentas de poner el GPS en el puerto 2, me da la idea de desconectar todo y conectar solo el OSD hasta que lo encuentre, y si funciona, poner el GPS y el Bluetooth en lo que sobren.

    Con respecto al config.h del OSD, la verdad es que ni lo he mirado .... y me esta dando que lo mismo deberia echarle un vistazo y hay algo que "activar" ....

    Muchas gracias de nuevo por tu ayuda.

    Un saludete.

    Arfonzo.

    P.D. por cierto, en el OSD, tienes esto comentado ....
    //#define SERIAL_SPEED 115200 .... ¿No habria que descomentarlo para que se comunique?
     
    #22 arfonzo, 20 Ago 2013
    Última edición: 20 Ago 2013
  23. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Vas a encontrar diferencias porque uso el receptor Frsky con PPM SUM, así como otras diferencias relativas al diferencias entre la 2.2 y la r1391 que es más reciente.

    Te confirmo que tengo el TX/RX del OSD conectado al RX1/Tx1 de la controladora.

    En mi caso funciona sin problemas. Prueba a descomentarlo.

    ¿Has mirado que clon del MinimOSD tienes? Echa un ojo al foro oficial de Multiwii, en él kataventos explica que clones van bien y que clones no con su soft, y la gente da detalles de modificaciones que realizan para que funcionen. Lo malo es que te vas a tener que empapar todo el hilo para llegar a toda esa información.

    Viendo las specs de tu placa, configurar multiwii no parece que tenga ninguna historia extraña, tan solo el tema de que el tx1/rx1 esté dedicado al GPS. Haz lo que comentas de quitar todo y dejar sólo el MinimOSD a ver que tal.
     
  24. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Funcionandoooo

    Bien, pues eso, quien la sigue la consigue ....

    He descomentado la primera linea "#define SERIAL_SPEED 115200 y funciona ....

    Ahora me toca cambiar los caracteres .. porque como que salen un poco orientales ... ;-D

    Lo que me comentas de la emisora PPM SUM, me suena a Chino .... Capuchino.
    Tambien uso una Fresky .... pero esa que mencionas, no me suena de nada ...

    En un ratin, cargo los caracteres y te digo a ver que tal va esto .... pero de momento, pinta bien ...... tic tac tica tac ..... tic tac ... tic ..... tac ...

    Caracteres cargados ....... ¡¡¡¡ FUNCIONAAAAAAA !!!! .......

    Ahora me falta ajustar los valores para que se lea bien el voltaje y cambiar de gafotas ... las que tengo son baratuchas y tienen poca definicion ....

    Gracias Compi.

    Arfonzo
     
  25. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Ya verás cómo te gusta !!!!

    Seguramente preguntarás como configurar para ver correctamente el voltaje. O te compras un sensor o lo fabricas tú con dos resistencias. Luego le metes la señal a un pin analógico de la controladora multiwii (si hiciste las dos soldaduras en el OSD) cambias el vbatscale, y le dices al OSD a través del GUI que el voltaje te lo dá Multiwii, o bién le metes los 12 voltios por el OSD y dejas que lo monitorize el (mira en la wiki de kv team).

    Lo del PPM SUM es que algunos receptores, el FrSky D8R XP por ejemplo, se pueden configurar para que todas las señales de los canales salgan por un único pin. Y Multiwii va de lujo con ese.

    Además tiene posibilidad te sacar la señal rssi para saber la potencia de la señal de comunicación entre Tx y Rx, que también se puede monitorizar en el OSD. Y, como podrás imaginar, también tiene su intringulis ponerlo en funcionamiento, y también tienes la posibilidad de inyectarla via multiwii o directo al OSD, teniendo que fabricar un filtro rc en el primero de los dos casos o hacer ñapa en el OSD.

    Con todo lo que te estoy contando ya tienes por donde indagarr si te aburres :biggrin:
     
  26. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Joer, por lo que me cuentas, tengo ya de todo. A falta de afinar.

    Es decir ... el divisor de tension, hecho en el OSD, falta ajustar la escala .... porque indicar tension ya me la indica el OSD ..... chupao.

    Lo de la freski, la mia no da el CPPM, que pero puedo vivir con mas cables, no problemo. Y la señal de RSSI, ya la tengo por un cable, pero sin conectar ... poco a poco.

    Como con todas las cosas ... solo me falta tiempo.

    Muchas gracias compi.

    Saludos.

    Arfonzo.
     
  27. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Dicen que poco dura la alegria en la casa del pobre ....

    Pues eso, que mi gozo en un pozo, no se .....

    Pues si, ayer vi funcionar el OSD a las mil maravillas y despues no funcionaba.
    Ya nose que pensar, si es que hay una secuencia de encendico concreta y precisa para que arranque o si hay algo suelto y no doy con ello.

    El caso es que aveces enciende, sale la pantalla de inicio y funciona. Y otras de la pantalla inicial no sale .....

    Voy a ver si encuentro eso que comentas donde habla de las versiones del OSD.
    El mio, se que es de Hobichin, pero nada mas ......

    Saludos.

    Arfonzo.
     
  28. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Sólo puedo decirte que la versión del soft del kv team r345 está más que testada con multiwii w 2.2 y la r1391 sobre una crius aio pro v2 y el clon del MinimOSD comprado en goodluckbuy del link que puse al inicio del hilo en su día, y no unicamente por mí.

    Secuencias de inicio extrañas no debería haber. Tu problema parece apuntar a que no se entienden los dos dispositivos en las comunicaciones. El motivo...a saber...

    Prueba a bajar los baudios en el código fuente en ambos lados en los respectivos puertos.

    Postea en el foro oficial de multiwii en el hilo correspondiente a ver si alguien con tú mismo hardware ha experimentado el problema o escribe a kataventos dando todo lujo de detalles, incluida foto de tu OSD.
     
  29. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Buena idea lo de consultar en el foro ....

    Cambiare los cables y a ver si hay suerte ... si no, consultare a Kataventos.

    Gracias ...

    Un saludete.

    Arfonzo.
     
  30. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    Hola foreros, he intetnado hacer lospasos que pusisteis al principiode l hilo y no me va ninguno¡¡
    1- intento subri el archivo de caracteres con el Realterm y me da error¡
    2 intetnto compilar el archivo max 7456.ino y me da erro de compliacion
    3 le meto el archivo KV_Team_OSD.ino y lo sube bien pero me aparece una lina de flechas en lugar de la barra del horzonte artifical¡¡

    como cambio esa barra? desde KV_Team_OSD_GUI se pueden subri achivos de caracteres y modificarlos no ???
    tonces porque no se quita eso?
    a ver si alguien me lo sabe decir
     

    Adjuntos:

    • osd.jpg
      osd.jpg
      Tamaño de archivo:
      150,2 KB
      Visitas:
      735
  31. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Olvídate de los pasos que explicaba al principio. El soft ha cambiado un montón desde entonces y ya no es necesario, todo se hace desde el GUI sin necesidad de usar real term ni nada por el estilo, ahora es muchísimo más fácil.

    Descárgate la versión r370 (o la r345) prácticamente da igual y sigue los pasos de la wiki:

    http://code.google.com/p/rush-osd-development/wiki/MinimOSD_Basic_Setup

    Si no entiendes alguno de los pasos pregunta y te explicamos.
     
  32. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Por si acaso, previamente descárgate el EEPROM_Clear.zip que está en la misma página de descarga, sube el sketch al MinimOSD para limpiar le EEPROM. Eso evitará que se queden en memoria almacenado datos erróneos.
     
  33. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    Hoal rotega , si es eso lo que he hecho, subir el archivo con arduino y conectar con la KV_Team_OSD_GUI pero no me deja de salir esas flechas en lugar de la bara de horizonte , he porbado a cambiar el archivo de caracteres por otro pero sigue saliendo
     
  34. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Tienes que subir el archivo con las fuentes, se sube desde el GUI.

    Pulsas BROWSE, y localizas el archivo.

    Luego pulsas UPLOAD y te esperas a que el contador llegue al final.

    Si tras eso sigues viéndolo mal, prueba a limpiar la EEMPROM y empezar de nuevo todo el proceso.
     
  35. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    ya esta¡¡¡¡¡ es la mier... de el KV_Team_OSD_GUI nuevo¡¡¡ con la version antigua va bien¡¡¡

    gracias de todas formas ¡¡¡¡

    bueno a ver no es que sea culpa del KV_Team_OSD_GUI, mirando el editor de fuentes me di cuenta de que donde estan las barras para marcar el horizonte estan la fila 1 y en la antigua estan en la fila 8 asi que basicamente es cambiar uno por otro pero como no se hacerlo pues le pongo la version antigua y va que chuta¡¡¡
    me imagino que eso se cambiara desde arduino asi que si a alguno sabe hacerlo que me lo diga
     
    #35 makako24, 26 Ago 2013
    Última edición: 26 Ago 2013
  36. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Yo estoy usando la 345 y no tengo ese problema.
     
  37. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    esa es la version antigua la nueva es la 370 si no me equivoco ,con la 345 nome pasa de la primera pantalla, no se por que
     
    #37 makako24, 27 Ago 2013
    Última edición: 27 Ago 2013
  38. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Ojo, que para subir las fuentes el OSD debe estar alimentado por los dos lados.
    A +5 por el OSD y a +12 por la camara. Si no no carga las fuentes.

    Saludos.

    Arfonzo.
     
  39. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    No, si se sueldan los pad para alimentar unicamente a 5v no hay que alimentar a 12v.
     
  40. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    ... y el manual dice ....

    Font Tools:

    With the latest firmware version you can now upload new fonts (character maps) directly to the OSD board through the GUI. You can also edit/create your own character maps.

    Before your OSD will work properly you must update the font. If you have used the KV Team OSD Firmware before and are updating to a newer version you will still likely have to update the font.

    To update the font click the "UPLOAD" button. This will send the default font to the OSD board. To upload a custom font click the "BROWSE" button and select the .mcm file you want. Now click "UPLOAD".

    NOTE: every Minim OSD´s need to have the MAX7456 part of the board powered for a successful upload, some don´t have the solder jumper to be powered by the FTDI and need the 12v during this process.

    To edit a font click "Edit Font". A new window will open. Select a character to edit and it will appear much larger on the right. Click any of the squares to change their color (grey = transparent), click again to change the color again.

    After editing each character click the "SAVE" button. Your edited font will be saved in the same directory as your executable file on the data folder.

    Saludos.
     
  41. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Por eso mismo te matizaba antes.

    Quien tenga las soldaduras hechas (aquellos clones que lo permitan) NO tienen que alinentar a 12 voltios.

    El que no haya hecho las soldaduras (bién porque su clon no tenga los pads, o simplemente no los haya querido soldar) SI debe alimentar a 12.

    Creo que así queda más claro.
     
  42. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    si, si las soldaduras esan hechas y alimenando bien a los dos chips , se enciende los dos leds rojos cuando conecto el FTDI
    ahora el problema es que he instaldo la 345 para probarla y se me queda en la pantalla de inicio , supuestamente a los 4 segundos pasa a la pantalla del osd normal no? pues el mio no hace nada , ni dandole a los stick para meterse en el menu , nada
    se me queda en esta pantalla
    [​IMG]
     
  43. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Si claro, lucen los dos leds. Pero el pad se suelda SOLO cuando la camara se alimenta a 5V ... Si se alimenta a 12v hay que alimentarla por fuera.

    Asi que para no seguir confundiendo al personal ....

    Para cargar las fuentes el OSD debe tener los dos leds encendidos, sea por el medio que sea.

    Saludos.
     
  44. arfonzo Miembro

    arfonzo
    Registrado:
    6 Jun 2010
    Mensajes:
    264
    Me Gusta recibidos:
    0
    Te pasa lo mismo que a mi .... y ahi me quede ... no he podido trastear a ver que pasa .... a ver si tu tienes mas tiempo y fortuna y me sacas a mi del atasco ... ja ja ja.
     
  45. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Que la cámara se alimente o a 5v o a 12 voltios no tiene por qué obligarte a alimentar el chip de vídeo a 12v para subir las fuentes.

    Te voy a poner un ejemplo, imagina que usas una batería 4S para alimentarlo todo pero tú cámara necesita 12v, o 5v, me da igual. Y para colmo no puedes enchufarle los 16.8 voltios al OSD porque lo fundes... No voy a entrar en las posibles soluciones...

    No quiero ponerme pesado con ésto, pero lo de la cámara a 12v no es condición necesaria. Lo importante es saber que el chip de vídeo debe estar alimentado para que esté funcionando cuando se intente subir las fuentes. Y sólo hay dos formas (bueno, hay una tercera que ya explicaré), y usar la de 5v depende del clon y de sí has soldado los pads. El motivo por el cual los sueldes dependerá de otros factores: alimentar todo a 3S o 4S, alimentar el sistema de FPV con batería independiente...
     
  46. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    mi camara es de 12 v asi que el positivo va directo a la camara sin pasar por el OSD
    Pues instala la nueva version que yo es la que primero instale y me funcionaba bien , a falta de cambiar la barra del horizonte¡¡
    pruebalo y ya me cuentas a ver si a ti te sale bien, yo voy a intentar poner de nuevo la 370 a ver si trasteando consigo cambiar eso.
    un saludo
     
    #46 makako24, 27 Ago 2013
    Última edición: 27 Ago 2013
  47. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    ¿Podríais poner el link del clon que comprastéis? Es con idea del que venga por detrás vuestro sepa que se puede encontrar con el mismo problema que vosotros dependiendo del clon que compre y la versión del firm.
     
  48. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    el mio es de HK
    http://www.hobbyking.com/hobbyking/store/__36844__Minim_OSD_v1_1.html?strSearch=minim

    Acabo de probarlo y ya lo consegui¡¡¡
    he subido la version 370 con arduino, abro el KV_Team_OSD_GUI de la version nueva y me salen las flechas en vez de la barra horizontal , pero con la version antigua me salia bien, asi que he cogido el mapa de caracteres de la version antigua y la he subido con la version nueva y ya esta todo ok¡¡¡

    ahora bien, me sale la tension de la bateria 3,4v solo, he configurado la bateria en el KV_Team_OSD_GUI a 3 celdas y a 12,6 de voltage.
    hay que hacer la sodadura en el chip por narices ?

    [​IMG]
    o con la placa (tengo el clon de la crius aio de HK, en la cual he definido el Vbat) , es capaz de comunicarse con el osd para que muestre el voltage?

    un saludo
     
  49. rortega Gurú FPV

    rortega
    Registrado:
    20 Abr 2012
    Mensajes:
    5.567
    Me Gusta recibidos:
    5
    Cómo soldar ese pin del atmega era delicado para mí, yo lo que hice fué construir el divisor de tensión y se lo inyecté a una entrada analógica de Multiwii (en el código fuente de Multiwii se configuran varios parametros, VBAT, VBATSCALE, etc) y en el GUI del OSD ibdiqué que el voltaje lo suministra multiwii. Así puedo monitorizar el voltaje en multiwiiiconf y EZGUI (bluetooth), esa es la única ventaja.

    Pero sí, necesitas un divisor de tensión.

    Si optas por el de Multiwii, en el config.h te describen los valores de las resistencias que debes emplear.

    Yo tuve que usar otros valores de resistencias para 4S y tunear algo más el código fuente.

    Incluso ahora estoy aprobechando el divisor de tensión que compré para el receptor frsky con telemetría, por lo que llevo triple sistema de alarma de voltaje: en las gafas, en la emisora y el salva lipos.
     
  50. makako24 Miembro

    makako24
    Registrado:
    18 Nov 2010
    Mensajes:
    450
    Me Gusta recibidos:
    0
    hola rotega, yo tengo un sensor de corriente de un osd storm que se me quemo , puede servir ? es este
    http://www.foxtechfpv.com/cyclops-storm-osd-100a-current-sensor-module-p-963.html
    como tambien pone que se conecte el Viout del sendor de corriente al osd , pero eso ahi me pierdo un poco
    [​IMG]
     

Compartir esta página