Sensor de Filamento



  • Hola buenas, ¿que tal?

    tengo la hephestos 2 desde 2017 y he visto que se ha añadido en el marlin original de bq un apartado para la incorporación de un sensor para la falta de filamento. 

    Esto es un añadido bastante interesante ya que en piezas grandes siempre tienes que calcular cuanto te queda en la bobina. 

    He estado mirando el codigo fuente pero no encuentro en que puerto lo tienen habilitado. ¿Se podría colocar un sensor para la presencia de filamento en nuestra impresora? y si se puede: ¿cómo lo conectamos a la controladora?

    Un saludo y mil gracias.



  • Esto es lo que hice en su momento pero no conseguí que funcionara 

    He descomentado la línea en Configuration.h

    #define FILAMENT_RUNOUT_SENSOR

    y he cambiado los pines en el archivo pins_BQ_ZUM_MEGA_3D.h

    #ifdef LEVEL_SENSOR

    #define Z_MIN_PIN 19

    #define Z_MAX_PIN 18

    #else

    #define Z_MIN_PIN 18

    #define Z_MAX_PIN 19

    #endif

    #ifdef FILAMENT_RUNOUT_SENSOR

    #define FILRUNOUT_PIN 57

    #endif // FILAMENT_RUNOUT_SENSOR

    quedando de esta manera

    #ifdef LEVEL_SENSOR

    #define Z_MIN_PIN 19

    #define Z_MAX_PIN 57

    #else

    #define Z_MIN_PIN 57

    #define Z_MAX_PIN 19

    #endif

    #ifdef FILAMENT_RUNOUT_SENSOR

    #define FILRUNOUT_PIN 18

    #endif // FILAMENT_RUNOUT_SENSOR



  • Si tienes Marlin Original, claro que se puede. Es tan sencillo como conectar el sensor a un pin libre de la placa, definirlo en Marlin (decirle que ese pin es para eso) e indicarle también si la detección es a nivel positivo o nivel negativo (esto depende del sensor que vayas a utilizar). Al sensor tienes que hacerle llegar mínimo dos cables el de señal y GND, y en función del sensor elegido puedes necesitar un tercero que es +5V.

    @macuho, la primera parte de lo que haces está bien:

    He descomentado la línea en Configuration.h
    #define FILAMENT_RUNOUT_SENSOR

    Pero los cambios en el archivo pins_BQ_ZUM_MEGA_3D.h son un poco "liosos". Ademas en Marlin te indican que por lo que sea, Bq decidió que si utilizas Z_min con Z_Probe, cambian los pines y uno de ellos no funciona... pero no dicen si por software o por hardware. Para quitarse de líos, basta con buscar lo fácil.

    Tenemos este bloque:

    //
    // M3/M4/M5 - Spindle/Laser Control
    //
    #define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
    #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
    #define SPINDLE_DIR_PIN 42

    En el cual se definen 3 pines que no se usan en la vida (si se mantiene original la máquina claro, xD)

    Pues por ejemplo, el pin 44 (que es el que se usa para BL-Touch) sirve como sensor de filamento (si no le montas también el BL-Touch claro). 

    La modificación a hacer sería:

    1.- Sucia

    // M3/M4/M5 - Spindle/Laser Control
    //
    #define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
    #define FILRUNOUT_PIN 44 // Sensor de Filamento
    #define SPINDLE_DIR_PIN 42

    2.- Limpia
    //
    // M3/M4/M5 - Spindle/Laser Control
    //
    #define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
    #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
    #define SPINDLE_DIR_PIN 42

    #define FILRUNOUT_PIN 44 //Sensor de filamento

    En esta imagen, se indica que pin es el sensor de filamento (cable color naranja), así como el de +5V(cable color rojo) y GND (cable color marrón), que se necesita llevar hasta el sensor.

    https://drive.google.com/file/...

    Después, es necesario configurar/habilitar en Marlin NOZZLE_PARK_FEATURE (en config.h) Y ADVANCED_PAUSE_FEATURE (en config_adv.h). 

    Saludos



  • Yo acabo de instalarlo gracias a lo que he visto en la página de Thingiverse (https://www.thingiverse.com/th...) que alguien lo ha conectado asi:


    y la modificación es únicamente descomentar la linea de "//#define FILAMENT_RUNOUT_SENSOR" (solo eliminar las 2 barras)

    En mi caso he tenido que cambiar también la linea "const bool FIL_RUNOUT_INVERTING =true" (por defecto estaba en false) para que se pare la impresora cuando dejamos de pisar el pulsador.

    Espero que te sea de ayuda,

    Gracias,



  • Yo lo he hecho con Marlin original y ha funcionado, tengo que probar en una impresión