Desactivar sensor inductivo para usar endstop



  • Hola foro,

    desde hace 2 días estoy con la impresora parada porque el sensor inductivo falló. Donde vivo el service oficial me recomendó comprar por internet la parte (que tiene su demora de 20-30 días), como mencione es mucho el tiempo de envío. Entonces, necesito utilizar un endstop que si tengo para poder seguir imprimiendo, o lo mejor poder usar otro sensor. Ya que no tengo respuesta de si es posible utilizar otro inductor (la placa tiene un conector para instalar un inductor de 12v que no se sabe en que condiciones, si hay que agregarle alguna resistencia o no, si tiene que ser PNP o NPN, no aparece nada al respecto de como modificar el firmware para hacerlo). Hay que mencionar que el que trae utiliza 5v.
    Tengo el código del que posiblemente puede solucionar, pero no estoy seguro.

    //============================= Bed Auto Leveling ===========================
    /
    //#define Z_PROBE_REPEATABILITY_TEST

    #define LEVEL_SENSOR 

      #ifdef AUTO_BED_LEVELING_GRID

        // set the rectangle in which to probe
        #define LEFT_PROBE_BED_POSITION 30
        #define RIGHT_PROBE_BED_POSITION 200
        #define BACK_PROBE_BED_POSITION 185
        #define FRONT_PROBE_BED_POSITION 30

        #define AUTO_BED_LEVELING_GRID_POINTS 2


      #else  // not AUTO_BED_LEVELING_GRID
        
        #define ABL_PROBE_PT_1_X X_MIN_POS + 40 + X_PROBE_OFFSET_FROM_EXTRUDER
          #define ABL_PROBE_PT_1_Y Y_MIN_POS + 40 + Y_PROBE_OFFSET_FROM_EXTRUDER
          #define ABL_PROBE_PT_2_X X_MAX_POS - 40 + X_PROBE_OFFSET_FROM_EXTRUDER 
          #define ABL_PROBE_PT_2_Y Y_MIN_POS + 40 + Y_PROBE_OFFSET_FROM_EXTRUDER
          #define ABL_PROBE_PT_3_X (X_MAX_POS+X_MIN_POS)/2 + X_PROBE_OFFSET_FROM_EXTRUDER
          #define ABL_PROBE_PT_3_Y Y_MAX_POS - 40 + Y_PROBE_OFFSET_FROM_EXTRUDER

          #define ABL_MANUAL_PT_1_X ABL_PROBE_PT_1_X
          #define ABL_MANUAL_PT_1_Y ABL_PROBE_PT_1_Y
          #define ABL_MANUAL_PT_2_X ABL_PROBE_PT_2_X 
          #define ABL_MANUAL_PT_2_Y ABL_PROBE_PT_2_Y
          #define ABL_MANUAL_PT_3_X ABL_PROBE_PT_3_X
          #define ABL_MANUAL_PT_3_Y ABL_PROBE_PT_3_Y

      #endif // AUTO_BED_LEVELING_GRID
    /

    Directamente comentar todas esas lineas supongo que es suficiente para usar un endstop. Ahora, si no es así y flasheo la placa y está mal el código no quiero imaginarme comprando una placa.
    Entonces acudo a ustedes. Que opinan ??

    Saludos


  • MVP

    Si miras la configuración de la hephestos, podrías copiar gran parte excepto los límites que en la hephestos2 son más grandes. El resto sería muy igual. Y ya tiene el menú para hacer el ajuste de cama por pantalla.
    Si te descargas el manual de montaje, podrás ver el conexionado del fin de carrera en la placa.



  • lucky dijo:
    Si miras la configuración de la hephestos, podrías copiar gran parte excepto los límites que en la hephestos2 son más grandes. El resto sería muy igual. Y ya tiene el menú para hacer el ajuste de cama por pantalla. Si te descargas el manual de montaje, podrás ver el conexionado del fin de carrera en la placa.

    Es buena esa, voy a revisar.

    Estuve buscando por todo internet, y creo que si solo comento esta linea ya estaría solucionando el problema #define LEVEL_SENSOR .
    Lo otro que vi es que si hago eso, tengo que mover de lugar el endstop  (con el inductor los pines Zmin, Zmax estan invertidos. Osea, Zmin se supone que sensa el punto 0 que seria la cama y Zmax, obviamente el punto máximo que puede levantar el eje Z. Ahora, con el inductor es diferente. Eso se puede ver en el archivo "pins_BQ_ZUM_MEGA_3D" en la carpeta pins del firmware).
    Aun no lo he probado, pero le tengo mucha fe que va a funcionar. Si es así, el próximo paso es diseñar un soporte para el sensor p.i.n.d.a. 2 (un sensor inductivo barato y que inclusive si funciona no tenes por que limitarte a comprar ese especifico, cumpliendo con las características podes comprar cualquiera) que es el que usa la prusa mk3. Que es casualmente es de 5v como el inductivo de esta placa.

  • MVP

    Por software puedes invertir la señal del sensor.

    / Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
    #define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Z_MIN_PROBE_ENDSTOP_INVERTING false //



  • les dejo todas las modificaciones del firm que le hice acá, porque no me deja escribir mucho

    Clip number :   0IJLJY
    Direct URL :   http://www.heypasteit.com/clip/0IJLJY

  • MVP

    Gracias, seguro que le es de ayuda a más de uno.



  • mbr386 dijo:
    les dejo todas las modificaciones del firm que le hice acá, porque no me deja escribir mucho

    Clip number :   0IJLJY
    Direct URL :   http://www.heypasteit.com/clip/0IJLJY
    Quiero aclarar que este firm funciona con el endStop, para el inductivo tienen que activar el autobedleveling... Error mio. Hay que tocar otras cosas. En breve subo a algún servidor de descargas el Firmware definitivo para el inductivo. Mal yo!  X_X


  • @AParra, como deberían estar estas lineas ?? 

    En Configuration_adv.h en el Firmware de Marlin
    #define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] <-- en el ejemplo indica máximo 16, por ser drivers de 32 pasos no debería ir en 32???
    #define DIGIPOT_MOTOR_CURRENT {150, 170, 180, 190, 180} <--- En el firmware original también está en 180 el último valor que es el extrusor, aunque indica que debería estar en 190, esto es correcto (180 o 190) ?


  • Moderador

    Hola @{mbr386},


    Lo mejor es que tomes de referencia los valores de nuestro Marlin.

    Los micropasos los configuramos en el configuration.h en "AXIS_STEPS_PER_UNIT".

    Saludos,