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



  • @macuho Buenas, tengo este sensor de filamento (https://www.hta3d.com/es/sensor-de-presencia-de-filamento-1-75mm). Lo he conectado a los pines de la imagen de Arvidel y tengo activo el sensor de filamento en el marlin.

    Al encender la impresora el sensor funciona porque si tiene filamento se enciende una luz verde en el sensor y si le quito el filamento se apaga la luz pero las impresiones no paran con ni sin filamento, sabes qué puede ser?



  • mira en el apartado de configuración de la pantalla y mira que lo tienes activado, luego lo guardas en la eeprom, eso me pasaba a mi y es que está activada la función en Marlin, pero no estaba activada el cambio de filamento del sensor en la pantalla



  • @Macuho Que va.. está activado. He probado a imprimir desde la sd, octoprint y conectado al ordenador y no funciona con ninguno



  • Dejo el video para que lo veas:
    youtu.be/obkGuJ7ynL0



  • Pon una captura de donde lo tienes conectado a la placa

    Lo único que puede pasar es que no haga contacto el de señal, si tienes un final de carrera normal, conecta señal y GND a la placa y al sensor

    si tienes multímetro, comprueba que el sensor funcione en continuidad entre señal y GND



  • @macuho He probado a poner tu Marlin y me funciona bien, he comparado los ficheros "Configuration.h" y "Configuration_adv.h" y la parte del sensor de filamento son idénticas:

    • En Configuration_adv.h tengo descomentado 

    #define ADVANCED_PAUSE_FEATURE

    • Y en Configuration.h tengo descomentado

    #define FILAMENT_RUNOUT_SENSOR

    No se si hay que comprobar algo más, adjunto el código por si acaso

    Marlin 2.0-javierddn



  • @macuho no tengo multímetro, pero en el vídeo se ve como se enciende el led del sensor cuando tiene filamento y si funciona con marlin-mahuco es que no es problema del sensor o los conectores.

    Pongo foto de cómo lo tengo conectado a la placa



  • Ya he encontrado el problema.
    En los pines de la placa estaba cambiado el pin del sensor del filamento al 4, lo he corregido, compilado y voila!
    Igualmente y como siempre.. muchas gracias!!



  • Me alegro de que te funcione, estos días no he tenido tiempo a pasarme por aquí, estoy liado con las viseras



  • @macuho Hola. A ver si reparo mi máquina y puedo seguir imprimiendo, pero lop haré con el original de BQ porque con el marlin me resultó imposible y no me quiero arriesgar ahora a experimentar y dejar de hacer pantallas.

    Llegado el momento te dará la tabarra con el offset. (si no te importa, claro).

    Saludos y mucho ánimo con las viseras.

    -Editado por moderación: Tema fuera de las normas de la comunidad-



  • @zolocotroco dijo:

    @macuho Hola. A ver si reparo mi máquina y puedo seguir imprimiendo, pero lop haré con el original de BQ porque con el marlin me resultó imposible y no me quiero arriesgar ahora a experimentar y dejar de hacer pantallas.
    Llegado el momento te dará la tabarra con el offset. (si no te importa, claro).
    Saludos y mucho ánimo con las viseras.

    -Editado por moderación: Tema fuera de las normas de la comunidad-


  • Administrador

    Hola,

    Por favor, centraos en el tema de debate solo. El resto de cosas, podéis hablarlas por chat privado....

    Un saludo



  • @javierddn

    Hola. Estoy intentando instalar el Marlin 2.0-javierddn que has dejado en este hilo pero no lo consigo, me dan errores al compilarlo.

    Estoy utilizando el Arduino 1.8.5 y cargue la librería u8glib pues me daba un error de que no encontraba el fichero.

    Tambien me daba error en el fichero configuration_store.cpp con estas lineas que como no sabia, las comenté.

        ui.preheat_hotend_temp[1] = PREHEAT_2_TEMP_HOTEND;
        ui.preheat_bed_temp[1] = PREHEAT_2_TEMP_BED;
        ui.preheat_fan_speed[1] = PREHEAT_2_FAN_SPEED;

    Y ahora me da este error:

    fork/exec C:\Arduino\hardware\tools\avr/bin/avr-gcc.exe: The filename or extension is too long.

    Error compilando para la tarjeta Arduino/Genuino Mega or Mega 2560.

    Si me puedes ayudar te lo agradecería. Gracias.



  • @pejesa Tienes que usar arduino 1.8.9, si no da errores



  • @pejesa Buenas

    Olvídate de compilarlo con arduino, no serías el primero al que se le corrompe el bootloader.

    Si utilizas el Visual Studio con el plugin platformIO te va a funcionar seguro. Te dejo una guía por si te ayuda

    https://3dwork.io/configura-y-actualiza-tu-impresora-3d-utilizando-visual-studio-code-y-platform-io/


    Estoy preparando una guía con los pasos para configurar el Marlin de cero explicando todos los puntos que puedes tocar pero voy a tardar un tiempo porque casi todo el día estoy con las viseras/respiradores/salvaorejas.