Campus de Navidad BQ

Disfruta de una oferta especial por ser miembro de la comunidad en nuestros Campus BQ, más información aquí

Novato desesperado ¡¡¡ Final de carrera eje Y activo pero no para el motor¡



  • Hola a todos, 

    Iré al grano, he comprado a un tipo una prusa i3 hephestos mejorada , con lcd alta resolución , sensor capacitativo, y caja aislante, y en teoría era enchufarla e imprimir, pero cuando tenia que empezar a imprimir fallaba el sensor del eje z.

    Listo yo, decido modificar el firmware , reseteando todo inclusive el lcd que dejó de funcionar....encima jamás había tocado una impresora y el tipo no tiene el firmware modificado por él.

    La cuestión que ya tengo casi todo calibrado de nuevo,el eje X se mueve como toca y hace home. El eje Y se mueve como toca pero al decirle home, el final de carrera se activa cuando llega al final pero el motor no se para.

    Los endsstops con m119 los tengo abiertos o cerrados correctamente comprobados.


    Y llegado a este punto ya no se por donde tirar , ¿algún alma caritativa que me muestre el camino a la gloria?


    Este es el código principal:


    // Uncomment the following line to enable CoreXY kinematics
    // #define COREXY

    // coarse Endstop Settings
    #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

    #ifndef ENDSTOPPULLUPS
      // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
       //#define ENDSTOPPULLUP_XMAX
       //#define ENDSTOPPULLUP_YMAX
       //#define ENDSTOPPULLUP_ZMAX
       //#define ENDSTOPPULLUP_XMIN
       //#define ENDSTOPPULLUP_YMIN
      // #define ENDSTOPPULLUP_ZMIN
    #endif

    #ifdef ENDSTOPPULLUPS
      #define ENDSTOPPULLUP_XMAX
      #define ENDSTOPPULLUP_YMAX
      #define ENDSTOPPULLUP_ZMAX
      #define ENDSTOPPULLUP_XMIN
      #define ENDSTOPPULLUP_YMIN
      //#define ENDSTOPPULLUP_ZMIN
    #endif

    // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
    const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
    const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
    const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
    const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
    const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
    const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
    //#define DISABLE_MAX_ENDSTOPS
    //#define DISABLE_MIN_ENDSTOPS

    // Disable max endstops for compatibility with endstop checking routine
    #if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
      #define DISABLE_MAX_ENDSTOPS
    #endif

    // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define E_ENABLE_ON 0 // For all extruders

    // Disables axis when it's not being used.
    #define DISABLE_X true
    #define DISABLE_Y true
    #define DISABLE_Z true
    #define DISABLE_E false // For all extruders
    #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled

    #define INVERT_X_DIR false   // for Mendel set to false, for Orca set to true
    #define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
    #define INVERT_Z_DIR false    // for Mendel set to false, for Orca set to true
    #define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
    #define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
    #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false

    // ENDSTOP SETTINGS:
    // Sets direction of endstops when homing; 1=MAX, -1=MIN
    #define X_HOME_DIR -1
    #define Y_HOME_DIR 1
    #define Z_HOME_DIR -1

    ~X( ~X( ~X(


  • Alguien me puede dar una pista? por favor¡ [-O<



  • Buenas, no estoy muy puesto en codigo, pero yo creo que el problema lo tienes en:

    / ENDSTOP SETTINGS:
    // Sets direction of endstops when homing; 1=MAX, -1=MIN
    #define X_HOME_DIR -1
    #define Y_HOME_DIR 1
    #define Z_HOME_DIR -1

    Creo que los tres lo debes de tener en min, que es donde están los endstops. Por lo menos, yo lo tengo así.



  • mmm lo probaré, Muchas gracias por responder¡



  • Ya lo he probado, y ocurre que cuando le digo Home al eje Y se me va al MAX en lugar del MIN donde tengo el endstop, con lo que no me soluciona el problema.


    Como lo tengo configurado me va al Home correctamente pero el endstop se activa y no se detiene el motor como debería hacer.



  • Buenas, tengo compartido un archivo comprimido:

    cuando lo descomprimas verás que hay dos carpetas. Una es el marlin 1.4.2 original y otra es el marlin 1.4.2 ya con los ajustes de autolevel.
    Ahí puedes chequear tu configuración con otra y puedes ver lo que tienes mal. Yo he visto que hay varias cosas cambiadas pero quizás en tu configuración sea así.



  • Gracias ¡ le echaré un vistazo¡



  • Os cuento , he conseguido que el eje Y haga correcatamente Home con el endstops ¡¡¡ he invertido el sentido del eje Y, y los home todos a -1 ¡¡ hago correctamente Home con X e Y , pero le digo a z que haga Home y me dice echo:Home X/Y before Z cuando lo acabo de hacer¡¡ asi que ahora me toca averiguar que pasa en el eje z para que no haga Home , donde tengo configurado un sensor inductivo¡¡ si a alguno se os ocurre el porque?



  • Bueno tras poder hacer unas pruebas os cuento:

    Intenté imprimir con Cura por pura curiosidad a pesar de que no he podido hacer Home con el Z , que tiene un sensor inductivo.Pues cual fue mi sorpresa? que imprime¡¡¡ pero mal claro jejeje puse a imprimir el cubo de Bq de 20mm y me ha salido algo parecido pero de 10 mm y a mitad de impresión se me obstruyo el extrusor que tuve que limpiar después.


    Así que todo apunta a que solo es un tema de firmware que me falta ajustar algunas cosas, la pregunta es ¿alguno de vosotros tiene un Marlin configurado para una hephestos con sensor inductivo que me pueda dejar? es que ya no se que más buscar y probar¡confused smiley

    PD: probé los Marlin que me dejasteis aquí pero me dan error de compilación¡


  • MVP

    Qué error de compilación?



  • Arduino:1.6.7 (Windows 7), Placa:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    sketch\libraries\U8glib\utility\u8g_rot.c:48:1: warning: initialization from incompatible pointer type [enabled by default]

     u8g_dev_t u8g_dev_rot = { u8g_dev_rot_dummy_fn, NULL, NULL };

     ^

    sketch\libraries\U8glib\utility\u8g_rot.c:48:1: warning: (near initialization for 'u8g_dev_rot.dev_fn') [enabled by default]

    sketch\Marlin_main.cpp:640:26: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]

         sprintf_P(time, PSTR("%i "MSG_END_HOUR" %i "MSG_END_MINUTE),hours, minutes);

                              ^

    sketch\Marlin_main.cpp:640:43: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]

         sprintf_P(time, PSTR("%i "MSG_END_HOUR" %i "MSG_END_MINUTE),hours, minutes);

                                               ^

    sketch\Marlin_main.cpp:1867:33: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]

          LCD_MESSAGEPGM(MACHINE_NAME" "MSG_OFF".");

                                     ^

    sketch\Marlin_main.cpp: In function 'void set_bed_level_equation_lsq(double*)':

    sketch\Marlin_main.cpp:808:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

      planeNormal.debug("planeNormal");

                                     ^

    In file included from sketch\Marlin.h:15:0,

                     from sketch\Marlin_main.cpp:30:

    c:\program files (x86)\arduino\hardware\tools\avr\avr\include\util\delay.h: In function 'void process_commands()':

    c:\program files (x86)\arduino\hardware\tools\avr\avr\include\util\delay.h:163:40: error: __builtin_avr_delay_cycles expects a compile time integer constant

      __builtin_avr_delay_cycles(__ticks_dc);

                                            ^

    exit status 1
    Error de compilación

      Este informe podría tener más información con
      "Mostrar salida detallada durante la compilación"
      activala desde Archivo > Preferencias



  • He probado a copiar fragmentos de otros firmware tb pero no consigo avanzar en lo de Home de Z , es complicadillo lo del autolevel con el sensor inductivo.