This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Configuración Marlin para 2 extrusores
#1
Hola, me estoy haciendo una impresora con dos extrusores para poder combinar dos boquillas diferentes. Tengo un atmega2560 y una ramps 1.4. quería saber un poco como configurar Marlin ya que quiero unasr E0 y E1.tambien quiero montar ventilador de capa. Ya he comprado el módulo para montarlo en el servo que haga falta para poder controlarlo. También quiero meter el nivelador bl-touch. Alguien me puede orientar un poco.
Muchas gracias
  Responder
#2
Hola, para poder darte una respuesta más precisa, tendrás que indicar qué módulo es ese que has comprado.
La RAMPS solo lleva incorporados tres mosfets por lo que, si quieres tener cama caliente y/o un ventilador de capa independiente para cada hotend, necesitarás uno o dos adicionales externos (pueden ser también relés SSR), que deberás conectar a pines libres de la RAMPS con capacidad PWM (los de los servos, por ejemplo, aunque hay otros).
Para la configuración de Marlin, aparte de definir el número de extrusores a 2, el tipo de driver que controlará el E1 o el número de servos activos, lo más importante está en la asignación de los pines a su función concreta, para cada uno de los mosfets que se utilicen, por lo que hay que decidir donde se conectará cada cosa.
Los incluidos en la RAMPS tienen asignados los pines 8, 9 y 10, que por defecto Marlin los asigna en función de las letras finales del nombre de la placa (EFB, EEB, etc.), aunque esto puede cambiarse según nuestras necesidades.
El conector con los cuatro servos, utiliza los pines 11, 6, 5 y 4 (servo 0 a 3, por ese orden): una cosa a tener en cuenta, a la hora de utilizar este conector, es que los pines de alimentación (los centrales) no tienen corriente a no ser que se ponga un puente entre VCC y 5V.
Para conectar el BL-Touch, necesitarás utilizar el  conector del servo 0 (pin 11), el conector del final de carrera Z- y descomentar, en el archivo Configuration.h, la línea #define BLTOUCH.
En todo caso, el mayor problema de utilizar dos hotends independientes no es su conexión o configuración, sino conseguir que las dos boquillas estén a la misma altura, cosa algo complicada si no se tiene algún sistema que permita su regulación.
  Responder
#3
Gracias por tu respuesta simemart. El acople del extrusor lo he diseñado yo he impreso en otras impresoras que tengo. Los hotend son los mismos pero uno izquierdo y otro derecho.
He comprado estos relés para el ventilador de capa y por si le pongo algo más que tenga que regular pwm ( Botón Mosfet superior de 5 piezas, módulo de controlador MOS IRF520 para Arduino MCU ARM Raspberry pi, 0-24V
https://a.aliexpress.com/_EJCkZaR ).
Ya coloque el puente en la placa para darle alimentación a los servos. Pensaba colocar el bltouch en el primero de la izquierda D11 y el ventilador en el primero de la derecha D4 dejando libres los centrales. Me descargue una imagen para ver qué número de servo era pero me faltará configurar. La altura creo que es exactamente la misma en ambos extrusores.
[Imagen: Screenshot-2023-02-06-09-34-27-752-com-a...chrome.jpg]
Ya configure el bltouch en una anet a8 pero esto se me queda grande y me vendría bien una ayuda ?


[Imagen: 5d862256a00b966b0f77e9e78d99be7e3b1ce74b.png]
  Responder
#4
Ya supongo que los dos hotends serán iguales, pero no es fácil que en su montaje queden en la misma posición las boquillas: ten en cuenta que una décima de milímetro puede hacer que tengas problemas con la adherencia de la primera capa en uno de ellos, pues la regulación del punto 0 del eje Z no coincidirá bien para ambos.
Esos mosfet te servirán para utilizarlos con dispositivos que consuman poca corriente, como ventiladores y similares, pues no soportan mucha: como indica el vendedor, hasta 1A tal y como vienen (sin disipadores).
Cuidado con esa foto que has puesto, porque el puente para la alimentación de los servos está mal colocado: debe unir los pines Vcc y 5V, no el de 5V y el PS-ON.
Al BL-Touch hay que asignarle el servo 0 (pin 11), pues es el que Marlin utiliza por defecto; para el ventilador del segundo extrusor puedes usar el que quieras de los disponibles.
Como supongo que tendrás cama caliente, dado que hablas de conectar un solo ventilador con uno de esos mosfet, entiendo que vas a utilizarlo conjuntamente con los dos hotends, lo que puede que no sea buena idea: lo lógico es que cada hotend tenga su propio ventilador de capa y en ese caso, tendrás que conectar dos mosfet para controlarlos, utilizando dos conectores de servo.
En todo caso, si tienes cama caliente, lo más lógico es definir la placa como EEB, conectando la cama a la salida D8, el calentador del E0 a la D10 y el calentador del E1 a la D9, asignando el/los ventilador/es a el/los conector/es de servo correspondiente/s.
Si conectas el BL-Touch en el servo 0 (pin 11) y los cables de señal de activación (blanco y negro) en el Z-, para su configuración en Marlin solo es necesario descomentar la línea #define BLTOUCH, teniendo cuidado de configurar la lógica de Z_MIN y de Z_MIN_PROBE a false.
  Responder
#5
La idea de mi diseño es poner un ventilador enfocado a ambas boquillas ya que la distancia entre ellas es mínima si veo problemas pondría uno para cada una, si tengo que modificar la altura de algún extrusor no me preocupa lo iré modificando para que quede perfecto, es un proyecto a largo plazo. Mi duda es como ir poniendo los servos a cada cosa, el puente te adjunto foto de donde lo he puesto a ver si está bien.
[Imagen: IMG-20230312-104821.jpg]
Lo tenía mal conectado como tú bien dices, creo que tengo que moverlo entonces.
  Responder
#6
Sí, el puente debe unir los pines VCC y 5V.
¿Tienes cama caliente? Porque en esa foto no veo que tengas nada conectado en la salida D8 y en ese caso, no necesitarías ese mosfet externo para el ventilador de capa.
Si tienes cama caliente y un solo ventilador de capa, la conexión y configuración de Marlin sería la siguiente:
- Configurar la placa como RAMPS_14_EEB, con lo que hay que conectar la cama en la salida D8 de la RAMPS, el hotend0 en la D10 y el hotend1 en la D9;
- El mosfet externo debe conectarse al servo3 así: el pin SIG al D4, el VCC al + y el GND al -; los bornes VIN y GND del mosfet externo van a la la fuente de alimentación de 12V; el ventilador va conectado a los bornes V+ (cable rojo) y V- (cable negro).
- El BL-Touch se conectaría en el servo0, tal como se indica en esta página (es la copia del BL-Touch, pero es igual la conexión).
  Responder
#7
Nono cama caliente si que tengo que estoy terminando aún de ajustar todo y no la he montado. Tengo puestos 3 MOSFET para quitarle consumo a la placa uno para cada extrusor y otro para la cama caliente. Ahora me bajare el Marlin para ir empezando a configurar. La impresora base era una bq prusa i3 helepuestos. Pero le estoy añadiendo las cosas y la estructura también la he cambiado para que el eje X tenga más recorrido y pueda llegar a todos los puntos de la cama. La base se la he hecho de 220x220.
  Responder
#8
@Simemart que me recomiendas que parte de la base de la bq prusa i3 o que coja un Marlin limpio y lo configure entero? Voy un poco perdido porque son muchas las modificaciones respecto a la original. ?
  Responder
#9
Siendo sincero huiría del Marlin de Bq
  Responder
#10
En si estoy aprovechando la electrónica pero lo que es estructura y los extrusores no son de bq. Que tiene de malo el Marlin configurado de bq?? A mi lo que me resulta un poco más complicado es configurar la cama caliente y los dos extrusores dado que cuando lo he configurado en mis otras dos impresoras ya tenían cama caliente y lo único que tuve que cambiar fue el bltouch y el cambio de filamento m600.
  Responder
#11
Está demasiado modificado y anticuado, a parte de que es ruidoso en los movimientos

La Hephestos 2 que poseo fue cambiar el Marlin y la mejora fue como ponerle drivers silenciosos,
  Responder
#12
Sí, lo mejor es partir de un Marlin limpio y realizar la configuración adecuada a tu máquina, que ya no es exactamente una Hephestos.
Para la configuración, no hay mucho más que lo que ya te he indicado: poner bien las medidas y ajustar los offsets para centrar el área de impresión (si no ha quedado con la colocación de los finales de carrera).
Cualquier duda, vamos resolviéndola sobre la marcha.
  Responder
#13
(14-03-2023, 09:40 PM)Simemart escribió: Sí, lo mejor es partir de un Marlin limpio y realizar la configuración adecuada a tu máquina, que ya no es exactamente una Hephestos.
Para la configuración, no hay mucho más que lo que ya te he indicado: poner bien las medidas y ajustar los offsets para centrar el área de impresión (si no ha quedado con la colocación de los finales de carrera).
Cualquier duda, vamos resolviéndola sobre la marcha.

Vale iré publicando los cambios que hago, lo que no se es como definir que la salida D8 y D9 sean los extrusores y y el D10 la cama caliente por ejemplo y lo mismo con el bl touch y el ventilador de capa ?
  Responder
#14
Me parece que no debo de expresarme con claridad, pues todas esas dudas que tienes las he contestado en las respuestas #2 y #6, así que me extenderé un poco más en la explicación.
La RAMPS lleva 3 mosfet conectados a las salidas D8, D9 y D10 y la asignación por defecto que trae Marlin se basa en un código de 3 letras (E de extrusor, F de ventilador y B de cama) añadido al final del nombre de la placa, siendo la primera la correspondiente a la salida D10, la segunda a la D9 y la tercera a la D8 (por ejemplo, EFB sería la configuración típica de extrusor, ventilador y cama caliente, que se conectarían en ese orden en las salidas D10, D9 y D8).
En tu caso, al tener dos extrusores y cama cliente, lo más lógico es definir la placa como EEB (#define MOTHERBOARD BOARD_RAMPS_14_EEB), lo que implica conectar el primer extrusor (E0) en D10, el segundo (E1) en D9 y la cama caliente en D8: no hay que hacer nada más.
Respecto al BL-Touch, por defecto Marlin lo considera conectado al servo0 (la parte servo del mismo), que en la RAMPS está asignado al pin D11 y la parte de detección al conector Z- de finales de carrera: si lo conectas ahí, solo tendrás que definir que tienes BL-Touch (#define BLTOUCH) y asegurarte de que la lógica de Z_MIN y de Z_MIN_PROBE esté a false (#define Z_MIN_ENDSTOP_INVERTING false y #define Z_MIN_PROBE_ENDSTOP_INVERTING false), no siendo necesario que hagas nada más.
Para el ventilador de capa, si se define la RAMPS como EEB, Marlin tiene asignado por defecto el pin D4, que corresponde al conector del servo3: si conectas el mosfet externo a ese conector como te indiqué en #6, no tendrás que hacer nada más.

P.S.: Si se utiliza un mosfet externo para sacar de la placa la alimentación de la cama, no tiene demasiada importancia en que salida se conecte esta, pero si se alimenta directamente desde la placa, debe usarse imprerativamente la salida D8 para ella, pues la RAMPS tiene conectado a esa salida un circuito de alimentación específico para el mayor consumo de la cama (alimentación separada y fusible de mayor valor).
  Responder
#15
(15-03-2023, 10:14 PM)Simemart escribió: Me parece que no debo de expresarme con claridad, pues todas esas dudas que tienes las he contestado en las respuestas #2 y #6, así que me extenderé un poco más en la explicación.
La RAMPS lleva 3 mosfet conectados a las salidas D8, D9 y D10 y la asignación por defecto que trae Marlin se basa en un código de 3 letras (E de extrusor, F de ventilador y B de cama) añadido al final del nombre de la placa, siendo la primera la correspondiente a la salida D10, la segunda a la D9 y la tercera a la D8 (por ejemplo, EFB sería la configuración típica de extrusor, ventilador y cama caliente, que se conectarían en ese orden en las salidas D10, D9 y D8).
En tu caso, al tener dos extrusores y cama cliente, lo más lógico es definir la placa como EEB (#define MOTHERBOARD BOARD_RAMPS_14_EEB), lo que implica conectar el primer extrusor (E0) en D10, el segundo (E1) en D9 y la cama caliente en D8: no hay que hacer nada más.
Respecto al BL-Touch, por defecto Marlin lo considera conectado al servo0 (la parte servo del mismo), que en la RAMPS está asignado al pin D11 y la parte de detección al conector Z- de finales de carrera: si lo conectas ahí, solo tendrás que definir que tienes BL-Touch (#define BLTOUCH) y asegurarte de que la lógica de Z_MIN y de Z_MIN_PROBE esté a false (#define Z_MIN_ENDSTOP_INVERTING false y #define Z_MIN_PROBE_ENDSTOP_INVERTING false), no siendo necesario que hagas nada más.
Para el ventilador de capa, si se define la RAMPS como EEB, Marlin tiene asignado por defecto el pin D4, que corresponde al conector del servo3: si conectas el mosfet externo a ese conector como te indiqué en #6, no tendrás que hacer nada más.

P.S.: Si se utiliza un mosfet externo para sacar de la placa la alimentación de la cama, no tiene demasiada importancia en que salida se conecte esta, pero si se alimenta directamente desde la placa, debe usarse imprerativamente la salida D8 para ella, pues la RAMPS tiene conectado a esa salida un circuito de alimentación específico para el mayor consumo de la cama (alimentación separada y fusible de mayor valor).

Vale vale ahora sí que te he entendido. No sabía que venía ya preconfigurado y no tenía ni idea de lo de las letras que se ponen donde montherboard. Muchas gracias compi si puedo intentaré ir configurando.
  Responder
#16
Vale creo que tengo todo mas o menos configurado.
He añadido a las líneas de los pasos y aceleraciones los parámetros del segundo extrusor. descomentado lo del driver del segundo extrusor, (define X_MIN_ENDSTOP_INVERTING) y (define Y_MIN_ENDSTOP_INVERTING) los he puesto true. he puesto lo del cambio de filamento m600 con 100mm de purga, lo del bltouch creo que también esta entero con lo de bilinear y un margen de 30mm de las esquinas. lo que me falta por configurar que aun no lo se es #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } que creo que es el offset del bltouch, y lo que no he encontrado son los offset del segundo extrusor. los del primero creo que eran estos #define X_MIN_POS 0, #define Y_MIN_POS 0 pero el del segundo extrusor ni idea de donde se encuentra. Voy a subir el marlin que he configurado y si pudieras echarle un vistazo por si me he dejado algo os lo agradecería en el alma.
https://we.tl/t-a6H1oky1xU
  Responder
#17
La configuración de Marlin reside en dos archivos, Configuration.h y Configuration_adv.h, que si los comprimes juntos en un archivo ZIP, los puedes adjuntar a tu mensaje desde la página que sale al pinchar en el botón Vista previa del mensaje; esos servicios de compartición de archivos como el que has utilizado, te obligan a aceptar sus condiciones de uso para descargar lo que estás compartiendo y yo no estoy dispuesto a hacerlo.
Sobre la configuración de los parámetros del segundo extrusor, si son iguales a los del primero no es necesario hacerlo pues, cuando defines más de uno, Marlin le aplica por defecto lo configurado para el primero a todos los demás.
Para configurar los valores del parámetro NOZZLE_TO_PROBE_OFFSET, tienes que medir la distancia a la que se encuentra la punta del BL-Touch del centro de la boquilla, tanto en el eje X como en el Y y ponerlos con signo negativo si el BL-Touch se encuentra más cerca del interruptor de final de carrera del eje que la boquilla.
La distancia entre las dos boquillas solo le importa al programa de corte que utilices para procesar las piezas a imprimir, en Marlin no hay nada que configurar en ese aspecto: cuando definas la máquina en el programa de corte y le indiques que tiene dos extrusores, te pedirá su posición.
  Responder
#18
vale comprendo voy a ver si me deja adjuntar los archivos como bien dices. Los offset aun no los he puesto porque no se la distancia exacta aun ire probando para dejarlo lo mejor posible. Te adjunto como me has dicho.


Archivos adjuntos
.rar   configuracion.rar (Tamaño: 87.58 KB / Descargas: 3)
  Responder
#19
Te indico las cosas que veo en esa configuración (espero no olvidar nada, porque son muchas):

Archivo Configuration.h

- No le has indicado a Marlin que tiene 2 extrusores a controlar, por lo que lo único que está haciendo es deshabilitar la definición que haces del tipo de driver del eje E1. Debes poner #define EXTRUDERS  2.
- No tienes separados para cada hotend los parámetros del PID, por lo que se aplican los mismos a los dos: si son del mismo tipo suele ser suficiente así, aunque lo más correcto sería definirlo para cada uno por separado, descomentando la línea #define PID_PARAMS_PER_HOTEND, haciendo un PID Autotune separado para cada uno de ellos y trasladando los valores que arroje a los parámetros Kp_LIST, Ki_LIST y Kd_LIST.
- Es conveniente que actives el PID para la cama caliente, descomentando la línea #define PIDTEMPBED y que traslades los valores del PID Autotune que realices para ella, a los parámetros DEFAULT_bedKp, DEFAULT_bedKi y DEFAULT_bedKd. Para realizar los Autotunes, tanto de los hotends como de la cama, tienes indicaciones en los comentarios de Marlin de estas secciones.
- Al no tener definido el parámetro DISTINCT_E_FACTORS, no se tendrán en cuenta los valores que indiques para el segundo extrusor en el apartado Movement Settings, por lo que puedes obviarlos.
- Las aceleraciones que tienes definidas, son demasiado elevadas para esa extructura y mecánica, te recomiendo que las cambies así:
  #define DEFAULT_ACCELERATION          650
  #define DEFAULT_RETRACT_ACCELERATION  1000
  #define DEFAULT_TRAVEL_ACCELERATION  1000

- Si haces el cambio anterior, debes configurar el parámetro JUNCTION_DEVIATION_MM a 0.062 (#define JUNCTION_DEVIATION_MM 0.062).
- Te recomiendo habilitar la funcionalidad S Curve (#define S_CURVE_ACCELERATION).
- No te olvides de configurar los offsets para X e Y del BL-Touch.
- Modifica la siguiente línea, para evitar ese movimiento tan rápido al ir al centro de la cama para el Z Safe Home: #define XY_PROBE_FEEDRATE (50*60).
- Descomenta la siguiente línea para habilitar la doble prueba del BL-Touch: #define MULTIPLE_PROBING 2.
- Supongo que los dos hotends compartirán posición en el eje Y, por lo que como tienes definido el límite del eje X en el valor del tamaño de la cama, el segundo extrusor se saldrá de ella en esa posición, así que tendrás que restar de ese valor la distancia entre las dos boquillas: #define X_MAX_POS  X_BED_SIZE-d, siendo d dicha distancia.
- Si las piezas impresas no te quedan centradas en la cama, tendrás que cambiar los valores de los parámetros X_MIN_POS e Y_MIN_POS, a los valores necesarios para que lo hagan.
- Te recomiendo que habilites la funcionalidad Bed Tramming, que te facilitará enormemente la nivelación de la cama (#define LCD_BED_TRAMMING).
- Debes activar el Z Safe Homing, para que el home del eje Z se realice en el centro de la cama (#define Z_SAFE_HOMING).
- Te recomiendo que actives el uso de la EEPROM (#define EEPROM_SETTINGS).
- Baja la velocidad de aparcado del hotend en XY (#define NOZZLE_PARK_XY_FEEDRATE  50).
- No has definido ningun tipo de pantalla: si tienes la original de la Hephestos, debes descomentar la siguiente línea, #define BQ_LCD_SMART_CONTROLLER.

Archivo Configuration_adv.h

- Te recomiendo que descomentes la línea #define ADAPTIVE_STEP_SMOOTHING.
- Comenta la línea //#define ARC_SUPPORT, pues lo único que hace es consumir memoria flash de la MCU, ya que los programas de corte habituales no contemplan el uso de comandos de arco.
- Debes definir el aparcado del hotend en la pausa avanzada, descomentando la línea #define PARK_HEAD_ON_PAUSE.

Una vez tengas la impresora funcionando, tendrás que ajustar el Z Probe Offset (cómo hacerlo en esta respuesta) y hacer una calibración completa de la extrusión (puedes hacerlo como indico en este post), naturalmente esto último para los dos hotends (es el problema de tener más de uno, que hay que hacerlo todo por duplicado).
  Responder
#20
Madre mía si me faltaban cosas jajaja
Tengo varias dudas
- esto que me dices para que es y como lo configuro? (haciendo un PID Autotune separado para cada uno de ellos y trasladando los valores que arroje a los parámetros Kp_LIST, Ki_LIST y Kd_LIST)
- lo mismo me pasa con: (los valores del PID Autotune que realices para ella, a los parámetros DEFAULT_bedKp, DEFAULT_bedKi y DEFAULT_bedKd)
los hotend usan una resistencia de 100ohm el numero 5 de la lista y la cama tiene otra de 100ohm la del nº 1 de la lista que sale de resistencias no se si es algo de eso.
-(#define X_MAX_POS X_BED_SIZE-d), esto no lo he entendido muy bien. si la cama tiene 220 y la distancia de la boquilla principal que esta a la derecha de la secundaria colocada a la izquierda fuera 10mm que tendria que poner #define X_MAX_POS X_BED_SIZE 210?
- (DISTINCT_E_FACTORS) esto creo que en mi caso da lo mismo ya que son dos extrusores completamente iguales así que los valores serian los mismos para ambos.
- (#define ARC_SUPPORT) esto es para que pueda leer los comandos G2 y G3 para poder hacer los circulos. si es así y queda memoria prefiero dejarlo por si en un futuro los programas de corte contemplan esas opciones.

no me olvido de poner los offset del cabezal y del bltouch pero aun no los se exactamente.
lo de la calibración ya calibre las otras dos impresoras gracias a un post tuyo que lo explicas perfectamente y van muy bien. el tema de la estructura la he hecho mas rígida y va a estar totalmente sujeta a una base grande para evitar que se mueva o vibre. no obstante he corregido las aceleraciones que me marcabas ya que no creo que influya tanto en tiempos de impresión y prefiero que vaya mas suave.

muchísimas gracias por tu ayuda simemart, parece que fueras el creador de marlin sabes un montón puff
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Ayuda configuracion del Marlin para compilar en el arduino NOQUI 1 0 13-02-2024, 06:06 PM
Último mensaje: Simemart
  Marlin para Ender 3 Pro Ivan_Serroels 17 36 26-11-2023, 10:18 AM
Último mensaje: Simemart
  Linear Advance Configuracion e impresion 21Curiosos 4 0 11-08-2023, 03:09 PM
Último mensaje: Simemart
  Configuracion de ventiladores Marlin 21Curiosos 16 1,024 19-06-2023, 08:22 PM
Último mensaje: wolf
  Power Loss Recovery Configuracion bbouett 1 0 07-06-2023, 08:07 PM
Último mensaje: Simemart