scieee AI-readable full text Open interactive document viewer

Optimización de una impresora 3D tipo Core XY

Muñoz Cadenas, Oriol

Abstract

Las tecnologías de impresión 3D son un método de fabricación que día a día crecen con mayor velocidad y mejores garantías. Bajo la necesidad de fabricar piezas de compleja geometría, tecnologías como el torno o la fresa han quedado obsoletas en muchos campos de la ingeniería. Dicha necesidad da pie a ingenieros de todo el mundo a buscar nuevas soluciones y nuevos métodos de fabricación. Entre ellos se encuentra la impresión 3D. Este proyecto se centrará en la optimización del diseño de una impresora 3D categoría cartesiana de tipo CORE XY. Dado que actualmente este sistema estructural supera con creces las prestaciones de calidad de sus análogas adversarias, he decidido dar un paso más allá y realizar una reducción del índice de volumen máquina/volumen de impresión.

Full text

TRABAJO FINAL DE GRADO Grado en Ingeniería Mecánica OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Memoria y anejos Autor: Oriol Muñoz Cadenas Director: Jose Antonio Travieso Rodríguez Departamento: Ingeniería Mecánica (DEM) Convocatoria: Abril 2023 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY I ÍNDICE 1 INTRODUCCIÓN ............................................................................................................................ 1 1.1 OBJECTIVOS DEL PROYECTO ........................................................................................................... 1 1.2 ALCANCE DEL TRABAJO .................................................................................................................. 1 2 ESTADO DEL ARTE ......................................................................................................................... 2 2.1 HISTORIA DE LA IMPRESIÓN 3D ...................................................................................................... 2 2.2 EVOLUCIÓN DE LA IMPRESIÓN 3D .................................................................................................. 3 2.3 IMPRESIÓN POR EXTRUSIÓN DE MATERIAL (MEX) ......................................................................... 4 2.3.1 IMPRESORA CARTESIANA ..................................................................................................... 5 2.3.2 IMPRESORA CORE XY ............................................................................................................ 6 2.3.3 IMPRESORA DELTA ............................................................................................................... 8 2.3.4 IMPRESORA POLAR ............................................................................................................... 9 2.3.5 IMPRESORA DE BRAZO ROBÓTICO ..................................................................................... 10 2.3.6 MATERIALES PARA IMPRESIÓN MEX .................................................................................. 11 2.3.6.1 PLA .......................................................................................................................................... 11 2.3.6.2 ASA .......................................................................................................................................... 12 2.3.6.3 PETG ........................................................................................................................................ 13 2.4 ESPECIFICACIONES DE LA IMPRESORA CREADA ........................................................................... 14 2.4.1 ESTRUCTURA ....................................................................................................................... 14 2.4.1.1 COMPARATIVA CON UNA IMPRESORA CARTESIANA TRADICIONAL ....................................... 14 2.4.1.2 COMPARATIVA CON UNA IMPRESORA DELTA ........................................................................ 16 2.4.1.3 COMPARATIVA CON UNA IMPRESORA DE BRAZO ROBÓTICO ................................................ 16 2.4.2 EXTRUSIÓN ......................................................................................................................... 17 2.4.3 CINEMÁTICA ....................................................................................................................... 17 2.4.4 ELECTRÓNICA ...................................................................................................................... 18 3 APARTADO MECÁNICO ............................................................................................................... 19 3.1 ESTRUCTURA ................................................................................................................................ 19 3.2 EXTRUSIÓN ................................................................................................................................... 23 3.2.1 BOBINA DE IMPRESIÓN....................................................................................................... 25 3.2.2 MOTOR EXTRUSOR ............................................................................................................. 26 3.2.3 CABEZAL DE IMPRESIÓN ..................................................................................................... 29 3.2.4 NOZZLE ............................................................................................................................... 32 3.2.5 VENTILADORES ................................................................................................................... 33 3.2.5.1 VENTILADOR DE REFRIGERACIÓN ........................................................................................... 33 3.2.5.2 VENTILADOR DE CAPA ............................................................................................................. 34 3.3 CINEMÁTICA ................................................................................................................................. 36 3.3.1 MOVIMIENTO EN EL EJE Z ................................................................................................... 36 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY II 3.3.1.1 PRIMER MODELO .................................................................................................................... 36 3.3.1.2 SEGUNDO MODELO................................................................................................................. 38 3.3.1.3 TERCER MODELO ..................................................................................................................... 41 3.3.1.3.1 ELEMENTOS DESLIZANTES ................................................................................................. 44 3.3.1.3.2 HUSILLO TRAPEZOIDAL ...................................................................................................... 45 3.3.1.3.3 POSICIÓN BASE DE IMPRESIÓN .......................................................................................... 46 3.3.1.4 CUARTO MODELO ................................................................................................................... 47 3.3.1.4.1 CÁLCULO DE FUERZA MOTORES EJE Z ............................................................................... 47 3.3.2 MOVIMIENTO EN LOS EJES X - Y ......................................................................................... 50 3.3.2.1 PRIMER MODELO .................................................................................................................... 50 3.3.2.2 SEGUNDO MODELO................................................................................................................. 52 3.3.2.2.1 MOVIMIENTO DEL CABEZAL DE IMPRESIÓN ...................................................................... 53 3.3.2.2.2 MOTORES CENTRADOS ...................................................................................................... 55 3.3.2.2.3 POLEAS SOBRE PATÍN DESLIZANTE .................................................................................... 56 3.3.2.2.4 TENSOR DE CORREA ........................................................................................................... 57 4 ESQUEMA ELECTRÓNICO ............................................................................................................ 59 5 PROGRAMACIÓN ........................................................................................................................ 61 6 ESTUDIO ECONÓMICO ................................................................................................................ 62 6.1 PRESUPUESTO DE DISEÑO ............................................................................................................ 62 6.2 PRESUPUESTO DE FABRICACIÓN Y MONTAJE ............................................................................... 62 6.2.1 PRESUPUESTO DE FABRICACIÓN ........................................................................................ 63 6.2.2 PRESUPUESTO DE MONTAJE .............................................................................................. 65 6.3 PRESUPUESTO TOTAL ................................................................................................................... 66 7 ANÁLISIS DEL IMPACTO AMBIENTAL ........................................................................................... 67 7.1 HUELLA DE CARBONO................................................................................................................... 68 8 CONCLUSIONES ........................................................................................................................... 69 9 FUTURAS MEJORAS .................................................................................................................... 70 9.1 USO DE PIEZAS METALICAS........................................................................................................... 70 9.2 USO DE 3 MOTORES PARA EJE Z ................................................................................................... 70 9.3 USO DE RODAMIENTOS LINEALES LM8LUU .................................................................................. 71 9.4 USO DE CORREAS DENTADAS PARA EJE Z ..................................................................................... 72 9.5 USO DE COMPONENTES DE ALTA CALIDAD .................................................................................. 72 9.6 USO DE PROGRAMACIÓN KLIPPER ............................................................................................... 72 10 BIBLIOGRAFÍA ............................................................................................................................. 73 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY III ÍNDICE DE ILUSTRACIONES Ilustración 1 - Patente Charles Hull ............................................................................... 2 Ilustración 2 - Sistema de coordenadas cartesiano tradicional ...................................... 5 Ilustración 3 - Sistema movimiento CORE XY............................................................... 6 Ilustración 4 - Vista isométrica CORE XY ..................................................................... 6 Ilustración 5 - Comparativa de movilidad entre Cartesiana y Delta ............................... 8 Ilustración 6 - Sistema de movimiento de una impresora polar ..................................... 9 Ilustración 7 - Precisión impresora polar ....................................................................... 9 Ilustración 8 - Impresora 3D brazo robótico ................................................................ 10 Ilustración 9 - Comparativa entre warping y cracking .................................................. 12 Ilustración 10 - Comparativa de superficie de trabajo entre cartesiana y CORE XY .... 14 Ilustración 11 - Base de impresora tipo MEX vs. impresora tipo Delta ........................ 16 Ilustración 12 - Estructura impresora diseñada ........................................................... 19 Ilustración 13 - Perfil 2020 V-Slot ................................................................................ 20 Ilustración 14 - Unión de los 3 ejes de perfiles ............................................................ 21 Ilustración 15 - Fijación patas ..................................................................................... 21 Ilustración 16 - Fuerzas aplicadas sobre perfiles ........................................................ 21 Ilustración 17 - Punto débil de la estructura ................................................................ 22 Ilustración 18 - Escuadra para la unión de perfiles ...................................................... 22 Ilustración 19 - Comparativa entre Direct Extrusion y Bowden Extrusion .................... 23 Ilustración 20 - Vista de alzado y vista lateral en referencia a bobina ......................... 25 Ilustración 21 - Soporte para bobina ........................................................................... 25 Ilustración 22 - Sistema Dual Drive ............................................................................. 26 Ilustración 23 - Subensamblaje extrusor ..................................................................... 26 Ilustración 24 - Vista explosionada subensamblaje extrusor ....................................... 26 Ilustración 25 - Vista alzada sistema engranajes Dual Drive ....................................... 27 Ilustración 26 - Vista isométrica sistema engranajes Dual Drive ................................. 27 Ilustración 27 - Vista explosionada hotend E3D V6 ..................................................... 29 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY IV Ilustración 28 - Vistas isométricas hotend E3D V6 ...................................................... 30 Ilustración 29 - Diferencias entre hotend all metal i hotend PTFE ............................... 31 Ilustración 30 - Comparativa nozzle 0,2 mm vs. nozzle 0,6 mm .................................. 32 Ilustración 31 - Nozzle E3D V6 ................................................................................... 32 Ilustración 32 - Transferencia de calor del hotend ....................................................... 33 Ilustración 33 - Ensamblaje cabezal de impresión ...................................................... 34 Ilustración 34 - Sección ensamblaje cabezal de impresión ......................................... 34 Ilustración 35 - Vista lateral. Distancia entre motores XY y conducto de ventilación ... 35 Ilustración 36 - Primer modelo para el movimiento del eje Z ....................................... 36 Ilustración 37 - Oscilación sobre la base de impresión ................................................ 37 Ilustración 38 - Segundo modelo para el movimiento del eje Z ................................... 38 Ilustración 39 - Comando sensorless para archivo "Configuration.h" .......................... 39 Ilustración 40 - Comando sensorless para archivo "Configuration_adv.h" ................... 39 Ilustración 41 - Deducción del espacio disponible entre hotend y perfil estructural ..... 40 Ilustración 42 - Dimensionado guías lineales tipo MGN .............................................. 40 Ilustración 43 - Tercer modelo movimiento eje Z ......................................................... 41 Ilustración 44 - Cinemática eje Z ................................................................................. 42 Ilustración 45 - Comparativa entre husillo mal calibrado y husillo correcto .................. 42 Ilustración 46 - Defecto Z-Wobble ............................................................................... 43 Ilustración 47 - Bloqueo de posible pandeo de husillo................................................. 43 Ilustración 48 - Rodamiento lineal LM8UU .................................................................. 44 Ilustración 49 - Guía lineal MGN 9C ............................................................................ 44 Ilustración 50 - Desplazamiento base de impresión .................................................... 46 Ilustración 51 - Distribución de fuerzas para tornillo de potencia ................................. 47 Ilustración 52 - Pandeo en los anclajes de la base de impresión ................................ 48 Ilustración 53 - Cuarto modelo movimiento eje Z ........................................................ 49 Ilustración 54 - Elementos cuarto modelo movimiento eje Z ....................................... 49 Ilustración 55 - Distribución de motores XY 1r modelo ................................................ 50 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY V Ilustración 56 - Recorrido correa motor XY ................................................................. 50 Ilustración 57 - Distribución poleas XY sobre patín MGN ............................................ 51 Ilustración 58 - Recorrido correa poleas XY sobre patín MGN .................................... 51 Ilustración 59 - Pérdida de superficie de impresión ..................................................... 51 Ilustración 60 - Sistema de movimiento ejes XY ......................................................... 52 Ilustración 61 - Movimientos sobre el eje X ................................................................. 53 Ilustración 62 - Movimientos sobre el eje Y ................................................................. 53 Ilustración 63 - Movimiento diagonal sobre 1.er y 3.er cuadrante cartesiano .............. 54 Ilustración 64 - Movimiento diagonal sobre 2º y 4º cuadrante cartesiano .................... 54 Ilustración 65 - Motores XY centrados ........................................................................ 55 Ilustración 66 - Distribución de poleas motores XY ..................................................... 55 Ilustración 67 - Recorrido correas motores XY ............................................................ 55 Ilustración 68 - Detalle desplazamiento polea ............................................................. 56 Ilustración 69 - Sección soporte poleas sobre MGN9C ............................................... 56 Ilustración 70 - Recorrido correas sobre poleas XY sobre patín MGN ........................ 56 Ilustración 71 - Tensor de correa ................................................................................ 57 Ilustración 72 - Diagrama de pines placa SKR mini E3 V3 .......................................... 60 Ilustración 73 - Raspberry Pi 3 .................................................................................... 61 Ilustración 74 - Inclinación base de impresión con rodamientos LM8UU ..................... 71 Ilustración 75 - Inclinación base de impresión con rodamientos LM8LUU ................... 71 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY VI INDICE DE TABLAS Tabla 1 - Cálculo de mm de desplazamiento por vuelta de motor ................................. 7 Tabla 2 - propiedades mecánicas Sakata PLA 850 ..................................................... 11 Tabla 3 - Características ABS/ASA ............................................................................. 13 Tabla 4 - Características PETG .................................................................................. 13 Tabla 5 - Especificaciones técnicas impresora creada ................................................ 18 Tabla 6 - Elementos estructurales............................................................................... 20 Tabla 7 - Comparativa entre Extrusión Directa y Extrusión Bowden ........................... 24 Tabla 8 - Elementos importantes Hotend E3D V6 ....................................................... 30 Tabla 9 - Comparativa de precios entre varillas y guías lineales ................................. 44 Tabla 10 - Comparativa de precisión entre husillo de paso 2 mm y 8 mm ................... 45 Tabla 11 - Especificaciones técnicas motores eje Z .................................................... 48 Tabla 12 - Presupuesto de diseño .............................................................................. 62 Tabla 13 - Presupuesto de fabricación ........................................................................ 64 Tabla 14 - Presupuesto de montaje ............................................................................ 65 Tabla 15 - Presupuesto final ....................................................................................... 66 Tabla 16 - Elementos contemplados en norma RoHS ................................................. 67 Tabla 17 - Huella de carbono ...................................................................................... 68 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY VII RESUMEN Las tecnologías de impresión 3D son un método de fabricación que día a día crecen con mayor velocidad y mejores garantías. Bajo la necesidad de fabricar piezas de compleja geometría, tecnologías como el torno o la fresa han quedado obsoletas en muchos campos de la ingeniería. Dicha necesidad da pie a ingenieros de todo el mundo a buscar nuevas soluciones y nuevos métodos de fabricación. Entre ellos se encuentra la impresión 3D. Este proyecto se centrará en la optimización del diseño de una impresora 3D categoría cartesiana de tipo CORE XY. Dado que actualmente este sistema estructural supera con creces las prestaciones de calidad de sus análogas adversarias, he decidido dar un paso más allá y realizar una reducción del índice de volumen máquina/volumen de impresión. Palabras clave: impresión 3D, fabricación, cartesiana, CORE XY RESUM Les tecnologies d’impressió 3D són un mètode de fabricació que dia a dia creixen amb gran velocitat i millors garanties. Amb la necessitat de fabricar peces de complexa geometria, tecnologies com el torn o la fresadora han restat obsoletes en molts àmbits de l’enginyeria. Aquesta necessitat dona peu a enginyers de tot el món a buscar noves solucions i nous processos de fabricació. Entre aquests es troba la impressió 3D. Aquest projecte es focalitzarà en l’optimització del disseny d’una impressora 3D categoria cartesiana de tipus CORE XY. Donat que actualment aquest sistema estructural supera notablement les prestacions de qualitat de les seves anàlogues adversàries, he decidit fer una pas més enllà realitzant una reducció d’índex entre volum màquina/volum d’impressió. Paraules clau: impressió 3D, fabricació, cartesiana, CORE XY OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 4 2.3 IMPRESIÓN POR EXTRUSIÓN DE MATERIAL (MEX) La impresión 3D por extrusión de material es seguramente el proceso más común en el mercado profesional i particular. También conocido como FDM (Fused Deposition Modeling), está basado en el impulso de un material termoplástico hacia una boquilla calentada, fundiéndolo y depositándolo según los parámetros de un código Gcode. Este, al instante de ser depositado, se enfría y vuelve a su estado sólido. En el año 2004, de la mano de Adrian Bowyer, nace el proyecto RepRap (Greguric, 2020). Una iniciativa con propósito de crear una máquina de prototipado rápido que sea capaz de replicarse a sí misma. Este proyecto marca el origen de la impresión 3D mediante extrusión de filamento plástico. Nace bajo licencia GNU GLP, y como dice su nombre, se trata de Licencia Pública General. Todo usuario que desee utilizar, mejorar o distribuir su código posee los derechos en su totalidad. Es gracias a esto y, sobre todo, a la comunidad de makers, que la impresión MEX crece hasta tal punto de convertirse en la referencia mundial para usuarios y profesionales de prototipado rápido. A día de hoy, existen miles de compañías con patentes en distintas versiones de impresoras por extrusión, donde todas se basan en el mismo principio. Y seguirán saliendo nuevas variantes y nuevas tecnologías, porque su desarrollo se basa en la comunidad de makers, en usuarios que en su casa identifican necesidades y deciden mejorar sus impresoras. A raíz de estos miles de variantes que nacen, en la tecnología MEX se crean subgrupos diferenciados por la cinemática que emplean. A continuación, se nombran las más destacables. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 5 2.3.1 IMPRESORA CARTESIANA Sin duda, es la estructura de impresora más común en el mercado. Su nombre es debido al sistema de coordenadas dimensionales que utiliza, sistema cartesiano de ejes ortogonales X, Y, Z. Ilustración 2 - Sistema de coordenadas cartesiano tradicional Fuente: bitfab.io Según el modelo de impresora, la movilidad de dichos ejes puede variar. Normalmente el del hotend (bloque fusor de filamento) adquiere los ejes X/Z, dejando el eje Y en la base calefactora o cama de impresión (Ilustración 2). Esta impresora, debido a su cinemática, es conocida como cartesiana tradicional. Sin embargo, existen otros subtipos de impresoras dentro de la familia cartesiana, como los diseños CORE XY, CORE XZ, CROSS XY, etc. Todos estos subtipos son variaciones que dependen de la cinemática utilizada. Tanto si el hotend abarca los ejes X e Y, como si se utiliza correa dentada o husillo trapezoidal. El modelo de impresora que se presenta en este proyecto tiene un sistema de coordenadas denominado CORE XY. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 6 2.3.2 IMPRESORA CORE XY Su funcionamiento está basado en el movimiento de los ejes X e Y mediante el uso simultáneo de 2 motores Nema17 (Motores paso a paso), y otro para el eje Z. Mediante un sistema de correas dentadas y poleas (Ilustración 3 y 4), se permite al hotend recorrer distancias a gran velocidad y precisión, utilizando menos energía que el sistema cartesiano tradicional. En comparación con las impresoras cartesianas tradicionales, éstas tienen un sistema de movimiento óptimo. Su demostración es bien sencilla. Trabajando en el plano XY, supongamos que deseamos ir de un punto A (0, 0) hacia un punto B (150, 200) coordenadas en milímetros: Mediante la cinemática de una impresora cartesiana tradicional, el motor del eje X trabajaría para desplazar el nozzle 150 mm, y el motor del eje Y trabajaría para desplazar la base de impresión 200 mm. Sin embargo, una impresora CORE XY, para un movimiento en diagonal (entendiendo éste como un desplazamiento cuya trayectoria genera un ángulo diferente a 0º o 90º respecto el eje X e Y) haría rotar uno de los dos motores a mayor velocidad. Cuanto más cercana es a una trayectoria de 45º, mayor es la diferencia de velocidad, definiendo así para 45º una velocidad angular de 0 rad/s en uno de ellos. Por lo tanto, para un desplazamiento diagonal, los motores X e Y consumirán menos energía, por lo que un desplazamiento de 45º será el óptimo. Ilustración 3 - Sistema movimiento CORE XY Fuente: corexy.com Ilustración 4 - Vista isométrica CORE XY Fuente: pinterest.com OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 7 Resolución de la hipótesis En la Tabla 1, se presentan los valores de la ficha técnica de los motores utilizados. Estos valores son estándar para la mayoría de los motores en las impresoras RepRap. Tabla 1 - Cálculo de mm de desplazamiento por vuelta de motor Cálculo pasos/mm Pasos por revolución del motor (A) (*) 200 Micropasos del Driver (B) 16 Paso de correa dentada (C) 2 Nº de dientes de polea (D) 20 Pasos por milímetro (E) = (A·B)/(C·D) 80 mm de desplazamiento por paso (F) = 1/E 0,0125 mm de desplazamiento por revolución = F·A 3 (*): Los motores rotan 1,8º por cada paso que dan. Si un giro completo es 360º, efectúa un total de 200 pasos por giro. Por lo tanto, se deduce la siguiente conclusión: − Cartesiana tradicional: 1 vuelta produce 3 mm de desplazamiento sobre el eje X 𝑑𝑒𝑠𝑝𝑙𝑎𝑧𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑡𝑜𝑡𝑎𝑙 = 3 𝑚𝑚 − CORE XY: 1 vuelta produce 3 mm de desplazamiento sobre eje X y 3 mm de desplazamiento sobre eje Y. 𝑑𝑒𝑠𝑝𝑙𝑎𝑧𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑡𝑜𝑡𝑎𝑙 = √32+ 32= 4,24 𝑚𝑚 En la Tabla 1 se puede apreciar la precisión a la que puede trabajar una impresora con una configuración estándar (poleas de 20 dientes y paso de correa de 2 mm): 0,0125 milímetros o 12,5 µm. En este proyecto se utilizan poleas de 16 dientes. Por lo tanto, la precisión será de 0,01 mm o 10 µm. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 8 2.3.3 IMPRESORA DELTA El motivo por el que esta máquina recibe dicho nombre es porque su movimiento y estructura están basados en los robots Delta. La cinemática de estos consiste en la sincronización de 3 brazos independientes dotados de movimiento con 1 grado de libertad sobre el eje Z. Ilustración 5 - Comparativa de movilidad entre Cartesiana y Delta Fuente: bitfab.io Como todas las que hemos observado previamente, está equipada con 3 motores NEMA 17 para realizar movimientos en los 3 ejes X, Y y Z. Sin embargo, todos ellos se encargan de realizar el mismo desplazamiento a la vez. Como se observa en la Ilustración 5, 3 brazos mecánicos forman una estructura triangular que se deslizan por guías lineales y acaban convergiendo sobre la estructura que soporta al hotend. Esta unión permite al carro de deposición de filamento moverse sobre el plano XY con gran velocidad y precisión. La base de impresión es estática y circular, dado que el alcance volumétrico de impresión siempre será cilíndrico. Sin embargo, este diseño de máquina no es muy común en el mercado. Después de una década en funcionamiento, no ha conseguido alcanzar el nivel de popularidad de las cartesianas tradicionales. Los motivos son muchos, pero uno de las principales razones de su poco éxito es la forma de la base de impresión. Al ser circular, los prototipos a imprimir no encajan del todo bien y acaban teniendo superficie desaprovechada. Es mucho más útil un volumen de impresión en forma de prisma. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 9 2.3.4 IMPRESORA POLAR Muchas personas llegan a confundir las impresoras polares con las Delta, dado que en ambas la base es circular. Esto es un error, ya que sus cinemáticas son totalmente dispares. Ilustración 6 - Sistema de movimiento de una impresora polar Fuente: 3dp-dei.vlabs.ac.in Parecido a un sistema cartesiano tradicional, utiliza 3 motores independientes para cada eje. Sin embargo, para uno de ellos, no utiliza coordenadas cartesianas sino polares (Ilustración 6). Con una base de impresión circular rotatoria, el que conocíamos como eje X queda relegado a una referencia polar. Este cambio resulta muy útil para realizar piezas circulares porque, a priori, las puede realizar con mayor precisión. Resulta que la precisión es el mayor de sus problemas. Dependiendo de la distancia al centro de rotación a la que esté el hotend, tendremos más o menos precisión. En la Ilustración 7 queda demostrado. Para una base de impresión de 100 mm Ø y un ángulo de rotación de 20º, las longitudes de arco de un punto P1 (25º) a P2 (25,2º) y P3 (50º) a P4 (50,2º) doblan su magnitud. Es decir, el valor de precisión es directamente proporcional a la distancia del hotend con el eje de rotación. Ilustración 7 - Precisión impresora polar OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 10 2.3.5 IMPRESORA DE BRAZO ROBÓTICO Este último modelo es el menos común dentro del mercado y se encuentra todavía en vías de desarrollo por las principales compañías (Ilustración 8). Ilustración 8 - Impresora 3D brazo robótico Fuente: dezeen.com Su ámbito de trabajo queda relegado al mundo de la construcción, tanto en obra civil como edificación. Su punto fuerte es la posibilidad de trabajar sin la necesidad de crear soportes. Las impresoras MEX son máquinas cuya metodología consiste en trabajar capa a capa, por lo tanto, existen zonas de voladizo en nuestras piezas que precisan de soportes extras para no imprimir en aéreo. Emplear un brazo robótico, el cual adquiere todos los movimientos tridimensionales, permite depositar filamento con la inclinación y altura que precise. Podríamos pensar que trabajar en campos como la medicina, donde se diseñan objetos con estructura de morfología orgánica, sería de gran utilidad por no necesitar estos soportes. Pero, por desgracia, no es así. La mayor desventaja de esta tecnología es la poca precisión y calidad resultante. Cuanto más extendido está el brazo, mayor momento de inercia acumulará, provocando así mayores vibraciones y oscilaciones difíciles de controlar. Por eso, su ámbito de trabajo queda relegado al negocio de la construcción, donde la precisión no es un detalle a tener en cuenta. Recordemos que una cartesiana tradicional puede trabajar con una precisión de 10 µm. Todas estas variantes tienen la ventaja de poder trabajar con el mismo material de impresión. Y es que hoy en día existen centenares de ellos con distintas propiedades que permiten darles salida hacia un ámbito profesional o uno más recreativo. Estos son los más comunes y más versátiles para trabajar. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 11 2.3.6 MATERIALES PARA IMPRESIÓN MEX 2.3.6.1 PLA Denominado ácido poliláctico, es sin duda el polímero más frecuentado en la impresión 3D. Esto es debido a su baja dificultad de impresión, y por ello es comúnmente utilizado por usuarios particulares. Si observamos su ficha técnica, resalta lo elevados que son sus valores de resistencia a la tracción. Esto puede conducirnos a pensar que su resistencia mecánica soportaría grandes esfuerzos, pero eso sería un error. Es un material con una rigidez muy alta, que provoca fracturas con gran facilidad durante esfuerzos de flexión. Además, destaca también por su poca resistencia a la termofluencia. Alrededor de 80ºC inicia el proceso de fundición y la respectiva deformación por la fuerza aplicada. En la Tabla 2 se muestras las principales características de este polímero. Tabla 2 - propiedades mecánicas Sakata PLA 850 Fuente: sakata3d.com A lo largo de estos últimos años, el PLA ha sufrido combinaciones y variaciones para lograr mejores propiedades mecánicas. De a mano Sakata3D, una empresa española bien asentada en el mercado, existen variaciones como PLA 850, PLA 870, PLA-M, PLA 700. Todos ellos son variaciones de mayor o menor calidad, pero con la misma base. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 12 2.3.6.2 ASA El acrilonitrilo estireno acrilato es un polímero que presenta grandes capacidades mecánicas, muy utilizado para la impresión de piezas consideradas definitivas. Con una similitud alta, por no decir igual, al ABS (acrilonitrilo butadieno estireno). Uno de sus inconvenientes más notables es la dificultad de impresión. Aun siendo más sencilla su impresión que la del ABS, sigue considerándose como filamento para usuarios más experimentados. El ABS y el ASA son filamentos que sufren defectos de impresión llamados warping y cracking (Ilustración 9). Defectos basados en el mismo principio, pero de consecuencias distintas: − Warping: defecto provocado sobre la primera capa de impresión que viene dado por su elevada contracción térmica. Cuando extruimos filamento a través de una boquilla, provocamos un cambio térmico de 250 ºC a temperatura ambiente (25 ºC). Si no utilizáramos base calefactable, la velocidad de cambio térmico sería demasiado rápida provocando así una contracción excesiva del material. Dicha contracción provocaría un desacople de nuestra pieza respecto la base, destruyendo así nuestro trabajo. Por este motivo, es obligatorio el uso de base calefactable a aproximadamente 100 ºC para reducir dicha velocidad. − Cracking: mismo concepto y mismo principio que el anterior, pero el lugar de separase la primera capa, sufrimos un desacople entre capas. A diferencia del warping, esto no nos impide seguir imprimiendo, pero las propiedades mecánicas pasan a ser nulas. Ilustración 9 - Comparativa entre warping y cracking Fuente: bitfab.io OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 13 Otro inconveniente es la toxicidad de gases que se inhalan durante su uso. Es recomendable disponer de ventilación controlada. En la Tabla 3 se muestras las principales características de este polímero. Tabla 3 - Características ABS/ASA Temperatura del nozzle (ºC) 260 ± 10 Temperatura base calefactable (ºC) 105 - 115 Límite resistencia a la tracción (MPa) 40 ± 1 Resistencia al impacto charpy sin marca (kJ/m2) 38 ± 11 Dureza (Escala D) 81 2.3.6.3 PETG PETG (Copolímero de Tereftalato de Polietileno y Glicol): filamento proveniente del PET (Tereftalato de Polietileno) mezclado con glicol para reducir la dificultad de impresión. Claro sustituto para filamento ASA. Sus propiedades mecánicas son aceptables para el sector profesional y la exigencia de conocimiento para su impresión es similar al PLA. Su temperatura de termofluencia se considera elevada, de 68 ºC con 0,45 MPa. En comparación y mismas condiciones, el PLA son 55 ºC y el ASA 93 ºC. En la Tabla 4 se muestran las principales características de este polímero. Tabla 4 - Características PETG Temperatura del nozzle (ºC) 250 ± 10 Temperatura base calefactable (ºC) 70 - 90 Límite resistencia a la tracción (MPa) 46 ± 1 Resistencia al impacto Charpy sin marca (kJ/m2) No rompe Dureza (Escala D) 74 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 20 Tabla 6 - Elementos estructurales Nº Elemento 1 Perfil V-Slot 2020 Aluminio de 350 mm (x9) 2 Soporte del tensor de poleas (x2) 3 Pata (x4) 4 Soporte polea doble (x2) 5 Perfil V-Slot 2020 Aluminio de 400 mm (x4) La distribución de los perfiles permite que todos trabajen, siendo fundamentales para evitar el colapso de toda la estructura (Ilustración 12). Los perfiles utilizados son de sección V-Slot 2020 (Ilustración 13) de material Aluminio. El motivo principal de la elección del material es su alta resistencia mecánica a la vez que ligereza. Por descontado que la accesibilidad en el mercado a este tipo de perfiles también ha sido fundamental. Comúnmente, las impresoras 3D de uso doméstico están construidas con este tipo de perfiles, aunque con otras dimensiones. Su forma V-Slot facilita el montaje de todos los componentes. La impresora presentada la conforman 13 perfiles 2020 cuya terminología se refiere a su dimensionado de sección (20x20 mm). Otras impresoras utilizan perfiles 2040 que ofrecen mayor estabilidad, pero estos habrían suprimido un espacio vital para el diseño presentado. Con una buena distribución de perfiles se logra una estabilidad válida para trabajar. La longitud de los 4 verticales es de 400 mm y los 9 horizontales de 350 mm. Es importante este cambio de dimensión para realizar las uniones de estos en los vértices mediante encaste (Ilustración 14 y 15). Ilustración 13 - Perfil 2020 V-Slot Fuente: naylampmechatronics.com OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 21 El hecho de tener una diferencia de longitudes de 50 mm genera un tetraedro en lugar de un cubo. Si cada perfil tiene una anchura de 20 mm, contando el perfil de inicio y final de unión, suman 40 mm y producen una diferencia de 10 mm. Esto no es un problema dado que se aprovecha esa diferencia para colocar la placa base y la fuente de alimentación. La distribución de cargas debido a la fuerza que ejercen las poleas se representa en la siguiente ilustración: Ilustración 16 - Fuerzas aplicadas sobre perfiles Observando la Ilustración 16 se deduce que la fuerza generada por la tensión de la correa (cercana a 0) y el movimiento del carro del bloque fusor queda soportada por los perfiles paralelos al eje Y. La unión de correas generando un giro hacia eje X se realiza sobre una guía lineal. Es decir, no cuenta como elemento estructural dada su movilidad. En el apartado 3.3, queda justificada la elección del tipo de correa que, al ser dentada, influye en la fuerza soportada por la estructura. 𝐹𝑐𝑜𝑟𝑟𝑒𝑎 1 𝐹𝑠𝑜𝑝𝑜𝑟𝑡𝑒𝑠 𝐹𝑐𝑜𝑟𝑟𝑒𝑎 2 Ilustración 14 - Unión de los 3 ejes de perfiles Ilustración 15 - Fijación patas OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 22 Resolución de problemas Durante el montaje de la máquina se observa un juego leve es los perfiles verticales delanteros (Ilustración 17). Dado que no están unidos por un perfil horizontal y el material PETG presume de cierta elasticidad, estos oscilan levemente. Para solventarlo, se ha diseñado un conector en escuadra (Ilustración 18) para unir los perfiles que forman encaste en la parte inferior. Ilustración 17 - Punto débil de la estructura Ilustración 18 - Escuadra para la unión de perfiles OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 23 3.2 EXTRUSIÓN A continuación, se procede a dar una explicación del sistema de extrusión que conforma el modelo presentado, desde la bobina de filamento hasta la deposición de este sobre la base de impresión. Previo a ello, es importante dar una justificación de por qué se utiliza el sistema Bowden para este proyecto. La Ilustración 19 hacen referencia a los dos tipos de distribución de motor para la extrusión de filamento: extrusión directa (izquierda) y extrusión Bowden (derecha). Su distinción es muy sencilla. La extrusión directa se basa en ubicar el motor extrusor a la menor distancia posible del hotend, es decir, uno seguido del otro. La extrusión de tipo Bowden consiste en ubicar el motor extrusor alejado del hotend conectándolos por un tubo de PTFE (comúnmente conocido como teflón), por donde se transporta el filamento de un punto a otro. El material del tubo no es aleatorio, se utiliza PTFE por su bajo coeficiente de fricción. Así a la hora de retraer y extruir material sufre menos resistencia. En la Tabla 7 se muestran sus ventajas/desventajas y por qué se ha escogido un sistema de extrusión tipo Bowden. Ilustración 19 - Comparativa entre Direct Extrusion y Bowden Extrusion OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 24 Tabla 7 - Comparativa entre Extrusión Directa y Extrusión Bowden EXTRUSIÓN DIRECTA Ventajas Desventajas − Mejor extrusión − Retracción más rápida − Posibilidad de utilizar un motor con menos potencia − Mayor versatilidad de materiales − Peso excesivo sobre el cabezal − Velocidad de impresión reducida − Aumento de vibraciones − Mantenimiento más complejo EXTRUSIÓN BOWDEN Ventajas Desventajas − Mayor precisión del cabezal − Altas velocidades de impresión − Reducción de peso del cabezal − Dificultad para imprimir materiales flexibles − Mayor distancia de retracción Después de valorar todas las oportunidades que ofrecen ambos sistemas frente a las necesidades del proyecto, se decidió utilizar el sistema Bowden. Esta decisión viene justificada por la necesidad de reducir peso sobre el cabezal de impresión. Al utilizar la propia guía lineal como estructura se debe tener en cuenta el momento que genera el hotend junto al motor. No menos importante, también se ha valorado la capacidad de colocar el motor extrusor en la posición que más facilite el diseño de otros elementos. El hecho de posicionar el motor en la parte trasera de la impresora permite crear un soporte de bobina óptimo e integrado dentro del volumen de máquina. En definitiva, se sacrifica una versatilidad de materiales que se ve recompensada con la optimización de espacio de trabajo y una mayor calidad. A continuación, se da explicación detallada de todos los elementos que conforman el grupo de extrusión. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 25 3.2.1 BOBINA DE IMPRESIÓN Uno de los elementos que más volumen ocupa es la bobina de filamento que se utiliza para trabajar. Y es que muchas marcas no consideran el volumen de esta incluido en el de máquina descrito es sus especificaciones técnicas. Al poder ser ubicado donde el usuario desee, podría haberse desestimado en este diseño. Sin embargo, se ha considerado como un elemento integrado en el diseño dado que es un elemento vital al contener el material de trabajo. Ilustración 20 - Vista de alzado y vista lateral en referencia a bobina Ubicada en la parte trasera de la impresora, introduce el filamento en el motor extrusor de la manera más vertical posible, reduciendo así patinadas indeseadas. En la Ilustración 20 se puede observar que la bobina no colisiona con otros elementos, a la vez que se sustenta de manera estable. Se ha diseñado un soporte específico para este modelo (Ilustración 21). Ilustración 21 - Soporte para bobina OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 26 3.2.2 MOTOR EXTRUSOR Los sistemas de extrusión con mejores prestaciones son los de tipo Dual Drive (Ilustración 22). A partir de 1 solo motor derivan 2 engranajes que empujan el filamento en sincronía sin provocar deslizamientos. En este proyecto se ha recreado el extrusor BMG de la marca Bondtech. Pioneros en el mercado, han logrado crear un sistema de extrusión ligero, compacto y de alto rendimiento. Sin embargo, su precio se escapa a nuestras posibilidades. Para reducir costes, se ha diseñado un sistema de extrusión propio (Ilustración 23 y 24). Se han obtenido engranajes y rodamientos a través de páginas externas, dado que no podemos mecanizarlos. El resto, que vendría a ser todo el cuerpo y el amarre a los perfiles estructurales, ha sido diseñado para esta impresora. Las 3 piezas que conforman el bloque extrusor han sido diseñadas mediante ingeniería inversa. Estas 3 piezas esconden el sistema de 4 engranajes (Ilustración 25 y 26) que empuja el filamento hacia el carro de impresión. Ilustración 23 - Subensamblaje extrusor Ilustración 24 - Vista explosionada subensamblaje extrusor Ilustración 22 - Sistema Dual Drive OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 27 (1) (2) (3) (4) (5) (6) (7) (8) Al haber comprado previamente todos los engranajes, se midió y utilizó el diámetro exterior (de) y el número de dientes (z) para calcular el diámetro primitivo (d) y por consiguiente el módulo (m). Todos los valores se han obtenido utilizando un pie de rey. Valores métricos en milímetros. El subíndice de las incógnitas a resolver hace referencia al número de engranaje indicado en la Ilustración 25. 𝑑𝑒1= 𝑑1+ 2 ∗ 𝑚 𝑑𝑒1= 𝑚 ∗ (𝑧1+ 2) m = 𝑑𝑒1 𝑧1+ 2 =9,5 17 + 2 = 0,5 𝑑1=𝑑𝑒1− 2 ∗ 𝑚 = 9,5 − 2 ∗ 1 = 8,5 𝑚𝑚 𝑑2=𝑑𝑒2− 2 ∗ 𝑚 = 26 − 2 ∗ 1 = 25 𝑚𝑚 𝑑3= 𝑑1= 𝑑4 Es importante recalcar que todos los engranajes de un sistema tienen el mismo módulo. Una vez obtenidos estos resultados, se procede a calcular la distancia entre ejes (dc) de todos los engranajes: 𝑑𝑐𝑖−𝑗 =𝑑𝑖+ 𝑑𝑗 2 𝑑𝑐1−2 =8,5 + 25 2=16,75 𝑚𝑚 Los engranajes 2 y 3 van unidos por un eje. Ilustración 25 - Vista alzada sistema engranajes Dual Drive Ilustración 26 - Vista isométrica sistema engranajes Dual Drive OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 28 (9) 𝑑𝑐3−4 =8,5 + 8,5 2= 8,5 𝑚𝑚 Para el diseño del bloque extrusor únicamente se necesita la distancia entre ejes y los diámetros externos. Si este proyecto incluyera el diseño de engranajes para una fabricación propia, se incluiría el cálculo de diseño de diente con ángulo de presión de 20º. También comentar que gracias a las herramientas que proporciona SolidWorks se podría haber evitado el cálculo de distancia entre ejes. Simplemente calculando el diámetro primitivo se podría haber añadido una relación de croquis llamada «tangencia». Si repasamos la teoría sobre engranajes observamos que sus diámetros primitivos son tangentes. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 29 3.2.3 CABEZAL DE IMPRESIÓN Seguramente el elemento más importante que conforma todo el grupo extrusor, precisa de un diseño compacto a la vez que estable. Un cabezal de impresión está formado por un hotend, que es el elemento encargado de fundir y depositar filamento, y por un ventilador de capa, que se encarga de solidificar rápidamente el material extruido. A continuación, se muestra una vista explosionada de un hotend común, modelo E3D V6. Ilustración 27 - Vista explosionada hotend E3D V6 Fuente: e3d-online.com OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 36 3.3 CINEMÁTICA El bloque de cinemática ha sido el conjunto que más modificaciones ha sufrido y más tiempo se le ha dedicado. Partiendo de la idea básica de utilizar un mecanismo CORE XY, se han probado múltiples distribuciones de motores para obtener las prestaciones deseadas. Este apartado se divide en eje Z y ejes X/Y para facilitar la explicación de estos. 3.3.1 MOVIMIENTO EN EL EJE Z La cinemática de este eje varía según el número de motores utilizados para ascender o descender la base de impresión. Modelos de impresora como Ender-3 utilizan 1 solo motor para levantar cabezal de impresión. Esto obliga a realizar un mantenimiento de apriete de las tuercas excéntricas con períodos más cortos. 3.3.1.1 PRIMER MODELO Tomando como inspiración el modelo BQ Witbox 2, se ha basado el diseño en el uso de 1 solo motor para ascender o descender la base de impresión (Ilustración 36). Ilustración 36 - Primer modelo para el movimiento del eje Z Este modelo tan solo ha sido un primer planteamiento sin llegar a desarrollo. Puede parecer una opción muy atractiva por su sencillez y ahorro económico, pero las prestaciones que ofrece dejan mucho que desear. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 37 Para impresoras como la Voron 0.1, donde se utiliza una base de impresión pequeña de 120 x 120 mm, se utiliza este sistema cinemático. Sin embargo, la superficie de trabajo de este modelo es de 300 x 300 mm y el peso de la base sumado al de la propia pieza, podría generar oscilaciones en el extremo opuesto capaces de menguar la calidad de nuestras impresiones (Ilustración 37). Ilustración 37 - Oscilación sobre la base de impresión Una solución planteada para remediar esta oscilación ha sido utilizar escuadras apoyadas sobre la misma guía lineal para generar contrapeso. Para evitar un nivel de vibraciones significativo, la elevada distancia entre patines MGN sobre la misma guía lineal impediría alcanzar un recorrido sobre el eje Z de 300 mm o similar. PESO PIEZA + BASE OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 38 3.3.1.2 SEGUNDO MODELO Frente al problema presentado en el primer modelo, diseñar un sistema donde la estabilidad fuese la mayor de las cualidades se convirtió en una prioridad. Para este modelo se ha decidido usar un sistema de movimiento donde se utilizan 3 motores independientes entre ellos (Ilustración 38). Ilustración 38 - Segundo modelo para el movimiento del eje Z Para generar un plano en el espacio con 0 grados de libertad, se necesita un segmento y 1 punto. Dado que un segmento es una porción de recta delimitada por 2 puntos (puntos extremos), necesitamos un sistema con 3 puntos formando un plano paralelo a suelo de la impresora. Cuando ordenamos a nuestra impresora realizar un movimiento de Z, los 3 motores funcionan de manera sincronizada descendiendo al base de impresión siempre con la misma orientación. Como hemos comentado previamente, para asegurarnos que la base de impresión se sitúa es posición perfectamente horizontal utilizaríamos el comando de nivelación sensorless propio de las placas base. A este proceso se le denomina como Auto Homing y es obligatorio realizarlo al inicio de cada impresión para establecer el punto Z0,0. Sensorless homing con drivers TMC 2209 Realizando el diseño del cabezal de impresión, decidimos prescindir del sensor de final de carrera para el eje Z, porque las dimensiones que ocupan estos no son compatibles con nuestro modelo. El funcionamiento del sistema sensorless homing es bien sencillo de entender, pero no de aplicar. Cuando un motor que está en funcionamiento detecta una resistencia a su OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 39 avance, produce una subida de amperaje para otorgar más potencia. La placa base, que tiene la capacidad de detectar este pico de intensidad, interpreta este punto como un final de carrera. Es así entonces que cuando la base de impresión colisiona con el tope establecido, se detiene el avance. El problema de este sistema es su reciente y poco desarrollada implantación. Para lograr un perfecto funcionamiento hay que seguir un riguroso mantenimiento de las guías lineales para que no produzcan falsos finales de carrera. Por no hablar también de la dificultad de su configuración. Accediendo al firmware de la impresora, existe un apartado específico para el funcionamiento del sensorless homing (Ilustración 39). Para ello, hay que realizar una serie de ensayos de prueba y error configurando la sensibilidad de los drivers para detectar estos picos de intensidad (Ilustración 40). Ilustración 39 - Comando sensorless para archivo "Configuration.h" Ilustración 40 - Comando sensorless para archivo "Configuration_adv.h" A pesar de estos dos inconvenientes que se han mencionado, se decide seguir adelante con el uso de estos finales de carrera. La incompatibilidad espacial para colocar un sensor físico es más contraproducente que estos. Sin embargo, no corre la misma suerte el sistema cinemático de 3 puntos de apoyo. Partiendo de una muy buena idea, la implantación de esta en nuestra impresora cada vez resultaba más dificultosa y utópica. El principal problema que observamos fue la interferencia que producían las guías lineales laterales con el cabezal de impresión. Al no disponer de herramientas propias de mecanizado, nos vimos limitados a diseñar acorde los elementos comprados en páginas para makers. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 40 Ilustración 41 - Deducción del espacio disponible entre hotend y perfil estructural Como se muestra en la (Ilustración 41), el espacio disponible entre el perfil lateral y el bloque de impresión es de tan solo 10 mm. Si observamos el datasheet del dimensionado de guías lineales MGN 12C (Ilustración 42) deducimos la inviabilidad de este sistema. Ilustración 42 - Dimensionado guías lineales tipo MGN Fuente: HTA3D.com Si nos fijamos en el valor «H», tan solo el modelo MGN 7 sería viable para su instalación. Pero hay que tener en cuenta las piezas a atornillar en las guías lineales. Con 3 mm restantes, no podríamos diseñar ningún amarre capaz de realizar correctamente su función. Solo por este motivo ya queda descartado el modelo de 3 motores. Además, las placas base con 3 drivers independientes para motores Z se venden por un valor más elevado de lo que podríamos permitirnos actualmente. Para ahorrar costes, reutilizamos la placa de otra impresora que disponía en casa, que solo dispone de 2 drivers independientes para el eje Z. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 41 3.3.1.3 TERCER MODELO Finalmente decidimos utilizar un modelo de 2 motores independientes entre sí para dotar de movimiento el eje Z (Ilustración 43). Como hemos comentado en el apartado anterior, el alcance operativo de la placa base utilizada es de tan solo 2 drivers. Para ello diseñamos un sistema que otorgaba estabilidad respetando el espacio disponible para trabajar. Ilustración 43 - Tercer modelo movimiento eje Z El funcionamiento de sus elementos es sencillo. Mediante un husillo trapezoidal acoplado a un motor de pasos transmitimos el movimiento circular de este a uno rectilíneo. Para recibir dicho movimiento, se acopla a la base de impresión una tuerca especial con la misma geometría que el husillo, produciendo así un movimiento de ascenso o descenso. Para evitar que el husillo realice 2 trabajos, el de transmisión y el estructural, se utilizan elementos guía proporcionando estabilidad. Comúnmente, estos elementos deslizantes o guía son varillas lisas con rodamientos lineales de tipo LMXUU o guías lineales de tipo MGN. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 42 En la Ilustración 44 se muestran las funciones de cada elemento. Ilustración 44 - Cinemática eje Z Gracias a este sistema conseguimos eliminar un conocido defecto de impresión conocido como Z Wobble (Ilustración 45). Este fenómeno se muestra como una alineación irregular de las paredes de la pieza impresa y su ocurrencia viene dada por el pandeo que se ocasiona en husillos mal calibrados. Cuando utilizamos componentes de mala calidad, es posible que no ofrezcan un rendimiento mínimo aceptable. Y en el mundo de la impresión 3D, estos déficits de rendimiento se pagan caro. En caso de comprar husillos trapezoidales de dudosa calidad producen fallos estéticos (Ilustración 46) y, en caso de ajustar tolerancias, fallos de precisión. Ilustración 45 - Comparativa entre husillo mal calibrado y husillo correcto ASCENSO Y DESCENSO ROTACIÓN EQUILIBRIO OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 43 Como se muestra en la Ilustración 45, un husillo mal calibrado produce un eje de rotación oblicuo en relación al longitudinal propio. Este, encargado de transmitir el movimiento de ascenso y descenso, al producir esta rotación imperfecta produce micro desplazamientos de la base de impresión a izquierda y derecha. Cuando realizamos una rotación de 360º del motor de pasos, hemos completado un ciclo de estos defectos de impresión. Y aquí es donde podemos identificar este error en nuestras piezas. Si observamos un patrón de irregularidad como el que se muestra a continuación, sabemos que estamos sufriendo Z Wobble. Ilustración 46 - Defecto Z-Wobble Fuente: electronicsweekly.com Una vez explicado este defecto de impresión, queda explicar cómo lo solventamos. Su solución es tan sencilla como fijar el husillo en ambos extremos y evitar el pandeo en puntos intermedios. La sujeción inferior la realizamos con el mismo acoplador del motor, y la superior con un rodamiento de tipo 688zz insertado en la pieza “«soporte de varillas y husillo». Así logramos establecer un eje de rotación colineal con el longitudinal del husillo. Para evitar el pandeo intermedio, nos servimos de las mismas varillas guía que proporcionan equilibrio a la cama. Al conectar el husillo con las varillas laterales, evitamos desplazamientos horizontales de la cama de impresión (Ilustración 47). Ilustración 47 - Bloqueo de posible pandeo de husillo OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 44 3.3.1.3.1 ELEMENTOS DESLIZANTES Después de varios ensayos y simulaciones, decidimos que utilizar guías lineales de tipo MGN no sería una opción viable. Como se indica en la Ilustración 42, la altura de guía + patín MGN 9 es de 10 mm, y si bien es cierto que es un valor muy atractivo para nuestro sistema, el precio de este no lo es. Decidimos utilizar varillas lisas de 8mm de diámetro, con rodamientos lineales de tipo LM8UU (Ilustración 48). El diámetro exterior de este es de 15 mm, que en comparativa con los 10 mm de grosor de una guía lineal MGN 9 (Ilustración 49) esto es desfavorable. Sin embargo, el precio ha vuelto a ser un factor decisivo. En la Tabla 9 se muestra un simple cálculo del coste de estos elementos, mero comparativo. Tabla 9 - Comparativa de precios entre varillas y guías lineales GUÍA LINEAL MGN 9C Precio guía lineal 350 mm + patín MGN 9C = 14,41 € Nº elementos = 4 Precio total = 57,64 € (Elementos comprados en Aliexpress) VARILLA LISA RODAMIENTO LM8UU Precio varilla lisa 350 mm + LM8UU = 2,35 € Nº elementos = 4 Precio total = 9,4 € (Elementos comprados en HTA3D) Como podemos observar, la diferencia de precios es de 47,24 €. Un valor más que significativo para decantarnos por la opción de varillas lisas tan solo por una diferencia dimensional de 5 mm. Ilustración 48 - Rodamiento lineal LM8UU Ilustración 49 - Guía lineal MGN 9C OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 45 3.3.1.3.2 HUSILLO TRAPEZOIDAL Una vez decididos los elementos de movimiento lineal, tocaba decidirse por el paso de rosca del husillo trapezoidal. Comúnmente, para impresoras 3D se utilizan solamente pasos de rosca de 8 mm i 2 mm. Su única diferenciación es la precisión que pueden otorgar al eje Z. Tabla 10 - Comparativa de precisión entre husillo de paso 2 mm y 8 mm Cálculo precisión eje Z husillo 2 mm Pasos por revolución del motor (A) 200 Paso de rosca (B) 2 Pasos por milímetro (C) = A / B 100 mm de desplazamiento por paso (D) = 1 / C 0,01 mm Cálculo precisión eje Z husillo 8 mm Pasos por revolución del motor (A) 200 Paso de rosca (B) 8 Pasos por milímetro (C) = A / B 25 mm de desplazamiento por paso (D) = 1 / C 0,04 mm Como indica la Tabla 10, obtenemos una mayor precisión con un husillo trapezoidal de paso 2 mm. Pero la elección de uso de una u otra no tiene una importancia tan alta como la de otros elementos. Dado que la velocidad de movimiento en Z no tiene relevancia, decidimos utilizar el husillo que más precisión no proporciona. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 52 3.3.2.2 SEGUNDO MODELO Finalmente diseñamos un modelo donde estabilidad y dimensionado alcanzan un punto medio (Ilustración 60). Ilustración 60 - Sistema de movimiento ejes XY A diferencia del modelo anterior, los dos motores que conforman los ejes XY quedan redistribuidos al centro de la viga trasera. Esto proporciona una mayor calidad para nuestras piezas reduciendo la transmisión de vibraciones ocasionadas por estos. En este segundo modelo también han sido rediseñados los soportes de poleas colocados sobre los patines deslizantes a lo largo del eje Y. Para poder instalar las poleas en el interior de estos, han quedado divididos en 2 piezas que se atornillan sobre los mismos agujeros de los patines MGN. Los propios tornillos sirven de eje de rotación para estas. Por último, se han instalado tensores de correa en los pilares delanteros. Toda impresora CORE XY precisa de estos tensores porque realizar trabajos con holguras en la correa dentada puede generar imperfectos indeseados. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 53 3.3.2.2.1 MOVIMIENTO DEL CABEZAL DE IMPRESIÓN Antes de dar una explicación de cada elemento que lo conforma, es importante describir como actuarán los motores para abarcar movimiento en todas las direcciones. Ilustración 61 - Movimientos sobre el eje X Ilustración 62 - Movimientos sobre el eje Y Cuando realizamos un movimiento ortogonal o paralelo a uno de los 2 ejes de trabajo, estamos utilizando ambos motores para ello. Dependiendo del sentido de rotación que ejerzan, lograremos realizar movimientos sobre el eje X o el Y. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 54 Para realizar movimientos en diagonal bastará con utilizar solo 1 motor. Dependiendo de la diferencia de velocidad de rotación entre ambos, el movimiento diagonal será más o menos próximo a los 45º. Ilustración 63 - Movimiento diagonal sobre 1.er y 3.er cuadrante cartesiano Ilustración 64 - Movimiento diagonal sobre 2º y 4º cuadrante cartesiano Una vez explicados todos movimientos disponibles dependiendo del sentido de rotación y la simultaneidad de los motores, procedemos a dar una explicación de estos. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 55 3.3.2.2.2 MOTORES CENTRADOS Cambiar la distribución a una más centralizada (Ilustración 65) beneficiaba aliviando vibraciones en zonas estructurales críticas. El funcionamiento del propio motor genera vibraciones, que en caso de estar en contacto con el soporte de poleas que a su vez es un pilar estructural, podrían llegar a propagarse hasta otros elementos como la base o el cabezal. El diseño del posicionamiento de poleas (Ilustración 66 y 67) se restringió al espacio que ocupaban los propios motores. Al utilizar un espacio tan reducido se tomó la decisión de utilizar poleas de 16 dientes en lugar de las de 20 dientes. No es la configuración más óptima, porque perdemos velocidad de impresión al tener poleas de diámetro nominal inferior. Sin embargo, permite trabajar en espacios más reducidos. Esta pérdida de velocidad puede ser realmente un factor despreciable dado que, si reducimos la velocidad máxima, por ejemplo, de 1000 mm/s a 800 mm/s la impresora seguirá siendo incapaz de alcanzar ese ritmo de trabajo. Otros elementos, como la electrónica, limitan la velocidad a valores inferiores. Ilustración 66 - Distribución de poleas motores XY Ilustración 67 - Recorrido correas motores XY Ilustración 65 - Motores XY centrados OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 56 En un primer diseño se trató de utilizar los orificios de sujeción de los motores para anclar las poleas y así simplificar su diseño. Sin embargo, observando el recorrido de las correas nos dimos cuenta que éstas colisionaban con el tornillo que hacía de eje de rotación. Se tomó la decisión de aproximarlas el máximo posible a la polea motriz (Ilustración 68). 3.3.2.2.3 POLEAS SOBRE PATÍN DESLIZANTE Siguiendo la trayectoria de las correas, llegamos a los soportes de poleas que se desplazan a lo largo del eje Y. Éstos se encargan de cambiar de dirección la correa que recorre el perímetro exterior de la impresora, hacia el cabezal de impresión (Ilustración 70). El movimiento otorgado a éste es el del eje X, y todo el conjunto se desplaza sobre el eje Y. Ilustración 70 - Recorrido correas sobre poleas XY sobre patín MGN A diferencia del modelo anterior, se redujo su dimensión siendo esta similar al del patín MGN. Así se puede aprovechar al máximo posible el espacio de trabajo. Al reducir el tamaño, prescindimos de una de las poleas que anteriormente alineaban ambas correas hacia el carro de impresión. Simplemente haciendo retroceder la superior se logró dicha alineación. Desplazamiento hacia polea Ilustración 68 - Detalle desplazamiento polea Ilustración 69 - Sección soporte poleas sobre MGN9C OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 57 Un detalle importante para la estabilidad del conjunto es que, al ser 2 piezas unidas por tornillería, la pieza superior debía quedar fijada al patín (Ilustración 69). Así logramos tener 3 puntos de sujeción: 2 laterales fijando la pieza inferior y 1 fijando la superior y presionando la inferior. 3.3.2.2.4 TENSOR DE CORREA En toda transmisión por cadena, correa dentada o correa lisa es importante evitar holguras que puedan producir imprecisiones o reducciones de rendimiento en los sistemas donde trabajan. En impresión 3D las transmisiones de movimiento suelen realizarse mediante correa dentada, y en todas ellas existe un elemento cuya función es tensarlas. Sin embargo, es importante no confundirse a la hora de aplicar una tensión u otra. En caso de estar utilizando correas lisas sería obligatorio aplicar una pretensión para evitar posibles deslizamientos o patinadas. En nuestro caso, al utilizar correas dentadas no es necesaria ninguna pretensión para evitar este mal funcionamiento. La propia morfología de esta permite trabajar con un par determinado. El único motivo por el que es necesario aplicar una tensión previa es para evitar el fenómeno conocido como backlash, que consiste en una pérdida de movilidad por holguras entre elementos del mecanismo. Cuando queremos desplazar nuestro cabezal de impresión y la correa tiene una mínima holgura, durante las primeras milésimas de segundo se pierde movilidad hasta que esta queda en tensión (destensando el otro extremo). Cuanto más grande es esta holgura, mayor pérdida de precisión. Por ello, se ha diseñado un elemento que pudiera cumplir con la función de realizar el correcto recorrido de la correa, a la vez que tensarla (Ilustración 71). Ilustración 71 - Tensor de correa OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 58 El funcionamiento de este es bien sencillo. Un tornillo pasador es utilizado como eje de rotación de la polea, atravesando la pieza que proporciona movimiento hacia de avance o retroceso para producir más o menos tensión. La pieza central donde quedan sujetas hace de elemento estructural uniendo los perfiles 2020, y realizando 2 trabajos. El de soporte para los tensores puede darse por inservible porque, como hemos explicado previamente, dicha fuerza de tensión es prácticamente 0. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 59 4 ESQUEMA ELECTRÓNICO La electrónica dentro del mundo de la impresión 3D es un campo que cada vez se va haciendo más grande y aparecen destacables innovaciones que se van asentando en esta joven industria. La placa base es el cerebro de que emite órdenes transformadas en vectores a nuestra máquina. Todo archivo que deseamos imprimir pasa por un programa de vectorizado que posteriormente es leído por el procesador de esta y transformado en un objeto sólido. Como el propio nombre del proceso de fabricación CNC indica, son máquinas de fabricación mediante control numérico por ordenador. Y en eso consiste, en un conjunto de órdenes dadas por un procesador previamente programando para fabricar un modelo 3D. Dentro del campo electrónico entran todos los elementos que dan vida a nuestra máquina, ya sean motores, sensores, ventiladores o elementos de iluminación. Todos estos ya han sido mencionados previamente en el apartado 2.5.4. Conectar todos los elementos a nuestra placa base puede parecer un trabajo tedioso, pero el propio fabricante proporciona un datasheet y un diagrama de pines muy detallado. A continuación, mostramos dicho diagrama. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 60 Ilustración 72 - Diagrama de pines placa SKR mini E3 V3 Las conexiones indicadas en el diagrama anterior son las utilizadas en nuestra impresora. El resto de pines no utilizados hacen referencia a sensores finales de carrera, luces led, elementos de nivelación automática o la posible adición de una placa Raspberry Pi para utilizar firmware Klipper. El uso de este sistema operativo alternativo es una de las mejoras contempladas si dispusiéramos de mayor presupuesto y más conocimientos sobre programación y electrónica. En el siguiente apartado daremos una explicación más detallada de los sistemas operativos que hemos contemplado. Motor Y Motor X Motores Z Motor extrusor Pantalla TFT Lector microSD Calentador Cama Fuente alimentación Calentador hotend Ventilador refrigerador Ventilador de capa Termistor cama Termistor hotend OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 61 5 PROGRAMACIÓN La gran mayoría de impresoras 3D de hoy en día utilizan un sistema operativo de código abierto llamado Marlin. Nosotros no íbamos a ser diferentes en este aspecto. Es un sistema «sencillo» de utilizar gracias a la comunidad de usuarios que han ido desarrollándolo a base de ensayo y error. Al utilizar una impresora única, aunque comparta muchos aspectos básicos con distintas impresoras de tipo CORE, necesitábamos un sistema operativo con ayudas a la configuración. Marlin da una pequeña explicación en todos sus apartados facilitando así el aprendizaje. El problema de utilizar Marlin es que este se instala directamente sobre la placa base de nuestra impresora y, actualmente, los procesadores de estas son de tan solo 32 u 8 bits. Aun disponiendo de componentes electrónicos de alto rendimiento, refiriéndonos a motores y equivalentes, no podremos alcanzar el máximo ritmo de trabajo. Por ello, muchos usuarios makers más avanzados en materia utilizan un procesador externo con mayores capacidades computacionales. Nos referimos un ordenador reducido en una placa base, llamado Raspberry Pi. El sistema operativo que utiliza es llamado Klipper. La velocidad de procesamiento de información es altamente superior, permitiendo emitir órdenes a motores y unidades calefactoras con mayor precisión y celeridad. Además, las capacidades de personalización, interface y uso por el usuario están a años de trabajo de Marlin. Es obvio que, donde hay dinero para la investigación, hay grandes avances para el usuario. Sin embargo, a pesar de todas estas ventajas expuestas sobre Klipper, decidimos utilizar una placa base convencional con Marlin incorporado. A la pregunta de: ¿por qué íbamos a utilizar un sistema operativo notablemente inferior? La respuesta es: Por el presupuesto. Una vez más nos vemos limitados por nuestras capacidades económicas. Aunque Klipper sea gratuito, una placa base Raspberry Pi se escapa de nuestro alcance. Una posible mejora sería instalar este sistema y poder exprimir al máximo nuestra impresora 3D. Fuente: pccomponentes.com Ilustración 73 - Raspberry Pi 3 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 68 7.1 HUELLA DE CARBONO Durante los últimos años el término «huella de carbono» ha ido cogiendo fuerza en la sociedad y especialmente en las empresas de ingeniería. Dado el futuro al que se enfrenta la población, es muy importante concienciar a las nuevas generaciones de ingenieros de la importancia que tiene adaptar los proyectos actuales a un futuro más ecológico. En la Tabla 17 se muestran los valores obtenidos del consumo eléctrico precisado para elaborar el proyecto en su totalidad, abarcando tanto la fase de diseño como la de fabricación y montaje. También se ha tenido en cuenta la cantidad de material gastado para el montaje de este. Para realizar el cálculo del consumo energético que precisa la fabricación de PETG se ha utilizado el valor de 23 kWh/kg de material (Vest, 2003). Por último, se ha calculado la cantidad de 𝐶𝑂2 generado por kWh consumido. Para ello, gracias a los valores proporcionados por www.canviclimatic.gencat.cat, se ha tomado como referencia el valor medio de 259 g 𝐶𝑂2/𝑘𝑊ℎ del año 2022. Tabla 17 - Huella de carbono Nº U.A. Descripción Potencia (W) Medición Consumo (kWh) kg CO2 1 h Ordenador 60 160 9,60 2,49 2 h Impresión de piezas 100 242,86 24,29 6,29 3 g Gramos de material utilizado 23000 2127,62 48,94 12,67 TOTAL 82,82 21,45 Finalmente obtenemos un resultado de 21,45 kg de 𝐶𝑂2 para un consumo de 82,82 kWh. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 69 8 CONCLUSIONES Después de meses de diseño y modificaciones se puede considerar como exitoso el objetivo principal de optimizar al máximo posible una impresora de dimensiones de trabajo de 300 x 300 x 300 mm. El resultado final ha sido de 300 x 300 x 296,5 donde el uso de elementos de baja calidad adquiridos por medios externos ha impedido alcanzar la cifra inicialmente planteada. Aun así, el ratio volumen de máquina y de trabajo sigue siendo el más bajo que existe en el mercado de impresoras creadas por usuarios. A partir de este primer modelo presentado, nuevas versiones o modificaciones pueden agregarse para lograr mayores prestaciones. Este proyecto podría alargarse infinitamente porque siempre habrá algún componente nuevo a añadir, o una nueva distribución a adoptar. A medida que se continúe invirtiendo dinero en este proyecto, un mejor rendimiento se irá obteniendo. El éxito del trabajo invertido en esta impresora no queda satisfecho logrando introducir elementos de impresión 3D en un volumen deseado formando una máquina inoperativa. La Sentinel MK1 está diseñada para ser funcional y ofrecer las prestaciones que se espera de modelos similares de alto nivel. Durante la fase de montaje y posterior, se añadirán modificaciones que no quedarán expuestas en esta memoria. Pues todo proyecto debe tener un fin, y unas posibles mejoras que investigar y adoptar. Algunas de estas posibles mejoras quedan recogidas en el apartado “10. Futuras mejoras”. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 70 9 FUTURAS MEJORAS Como todo proyecto de ingeniería, esté proyecto puede ser modificado y mejorado cuanto desee el usuario. Al inicio de esta memoria se ha recalcado que la ventaja de estas impresoras es la posibilidad de evolución fabricándose a sí mismas piezas mejoradas y recambios para otras extraviadas. Durante la fase de montaje se han ido anotando varias opciones que ayudarían a ganar calidad y velocidad de trabajo: 9.1 USO DE PIEZAS METALICAS Dado que este proyecto se ha elaborado sin la capacidad de utilizar torno CNC o fresadora CNC y el presupuesto disponible era bajo, las piezas estructurales que han sido diseñadas a propósito para esta impresora han sido todas fabricadas con otra impresora 3D utilizando material PETG. Este polímero tiene grandes prestaciones a la hora de soportar esfuerzos, pero su elevado módulo elástico produce una baja rigidez estructural y pequeños juegos entre perfiles estructurales. Sin duda utilizar piezas de aluminio ayudaría a mejorar la calidad del trabajo de la impresora presentada. 9.2 USO DE 3 MOTORES PARA EJE Z Tal y como se ha explicado en el apartado “3.3.1.2 Segundo modelo” el uso de tres motores tendría una difícil adaptación a nuestro sistema por falta de espacio e interferencias con otros elementos. Pero, esto no quiere decir que a nivel de prestaciones sea peor que el sistema de 2 motores utilizado. Tras un período de replanteo o una modificación del proyecto más profunda tal vez se podría llegar a implantar este sistema. Con este cambio lograríamos una nivelación de la base de impresión perfecta, sin necesidad de ajuste por parte del usuario. Por no hablar de la estabilidad de esta. Para ello sería necesario una recolocación de la bobina de impresión, e invertir más dinero en nuevos elementos cinemáticos como guías lineales, husillos trapezoidales motores. Por no hablar de una nueva placa base con 3 Drivers para eje Z. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 71 9.3 USO DE RODAMIENTOS LINEALES LM8LUU Durante la fase de montaje se ha percibido dificultad de movimiento para la subestructura que conforma el eje Z. En un inicio se detectaron fallos de diseño en las piezas que conectaban husillos, varillas y base de impresión. Estos fallos eran verídicos, sin embargo, el sistema continuaba sin funcionar. Aún a falta de confirmación, se está estudiando que el fallo provenga de la calidad de los elementos utilizados adquiridos en páginas externas. Tanto rodamientos lineales LM8UU como husillos trapezoidales están en período de revisión. Seguramente estos rodamientos serán sustituidos por otros de tipo LM8LUU, que se diferencian por tener una longitud de 45 mm en lugar de 24 mm. Este cambio proporcionará mayor estabilidad a la base de impresión. Ilustración 74 - Inclinación base de impresión con rodamientos LM8UU Ilustración 75 - Inclinación base de impresión con rodamientos LM8LUU Para rodamientos LM8UU el desvío es de 1,05 mm y para LM8LUU 0,56 mm. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 72 9.4 USO DE CORREAS DENTADAS PARA EJE Z El uso de husillos trapezoidales y tuercas de baja calidad dificulta realizar trabajos a altas velocidades con la calidad de impresión deseada. Aparte de eliminar el fenómeno Z-Wobble, se reduce el esfuerzo que han de realizar los motores para contrarrestar la fricción. También, las holguras que tienen estos 2 elementos producen un balanceo indeseado sobre la base de impresión. Utilizar correas suprime este posible desequilibrio. 9.5 USO DE COMPONENTES DE ALTA CALIDAD Por falta de presupuesto se utilizan componentes de “baja calidad” adquiridos de páginas como Aliexpress o HTA3D. Estos tienen tolerancias superiores a otros de mayor calidad. En futuras modificaciones, y con un mayor presupuesto, se cambiarán todos los elementos de movimiento por deslizamiento. 9.6 USO DE PROGRAMACIÓN KLIPPER La mayoría de makers que fabrican sus propias impresoras utilizan hoy en día un sistema operativo Klipper. Este logra llevar a todos los componentes que conforman la impresora al límite de sus prestaciones. Con un mayor presupuesto se logrará trabajar a mayores velocidades sin perder calidad. Por no hablar de la accesibilidad hacia el usuario con la posibilidad de utilizar pantallas táctiles con una interface mejorada. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 73 10 BIBLIOGRAFÍA ¿Cuánto cuesta el kilovatio hora de luz (kWh) en España? (03 de Marzo de 2023). Obtenido de https://tarifaluzhora.es/info/precio-kwh All3DP. (16 de Febrero de 2022). Tipos de impresoras 3D: las 7 technologías de impresión 3D. Obtenido de https://all3dp.com/es/1/tipos-de-impresoras-3dtecnologia-de-impresion-3d/ Antosz, 3. P. (08 de Mayo de 2020). Marlin - BTT TMC2209 V1.2 - Sensorless Homing. Obtenido de https://www.youtube.com/watch?v=MdupKgmjGWg E3D, W. (03 de Noviembre de 2021). Revo Six Datasheet. Obtenido de https://e3donline.zendesk.com/hc/en-us/articles/5926520938013-Revo-Six-Datasheet Extrusión Direct Drive VS Bowden. (s.f.). Obtenido de https://www.3djake.es/info/consejos/extrusion-direct-drive-vs-bowden Factor de emisión de la energía eléctrica: el mix eléctrico. (25 de Abril de 2022). Obtenido de https://canviclimatic.gencat.cat/es/actua/factors_demissio_associats_a_lenergia / G, P. (22 de Agosto de 2022). 3D Printer Firmware - Klipper Vs. Marlin Firmware. Obtenido de https://www.obico.io/blog/klipper-versus-marlin-firmware/ Generalidades del tereftalato de polietileno (PET). (s.f.). Obtenido de http://tesis.uson.mx/digital/tesis/docs/22896/Capitulo4.pdf GNU General Public License. (23 de Febrero de 2023). Obtenido de https://es.wikipedia.org/wiki/GNU_General_Public_License Greguric, L. (25 de Febrero de 2020). Historia de la impresión 3D: fechas clave. Obtenido de https://all3dp.com/es/2/impresion-3d-historia-fechas-clave/ Impresión 4D: ¿la Cuarta Revolución Industrial? (s.f.). Obtenido de https://www.iberdrola.com/innovacion/que-es-la-impresion-4d JJR. (21 de Diciembre de 2021). BTT SKR MINI E3 V3: Análisis y guía completa de esta nueva revisión. Obtenido de https://3dwork.io/btt-skr-mini-e3-v3-2/ La historia de la impresora 3D: los orígenes de las primeras máquinas. (s.f.). Obtenido de https://abax3dtech.com/2020/07/24/historia-de-la-impresora-3d/ OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY Página | 74 López, J. M. (28 de Abril de 2019). La primera impresora 3D: convirtiendo píxeles en materia. Obtenido de https://hipertextual.com/2019/04/primera-impresora-3d Moyer, I. E. (2012). Core XY. Obtenido de https://corexy.com/theory.html Pasos para calcular la relación de transmisión de engranajes. (s.f.). Obtenido de https://clr.es/blog/es/pasos-para-calcular-la-relacion-de-transmision-deengranajes/ Peter. (02 de Enero de 2020). Guía completa: Configurar Marlin 2.0.x desde cero y no morir en el intento. Obtenido de https://3dwork.io/configurar-marlin-2-0-x-desdecero/ Prusa Mini+ Power Usage. (15 de Octubre de 2021). Obtenido de https://forum.prusa3d.com/forum/general-discussion-announcements-andreleases/prusa-mini-power-usage/ Qué es el RoHS y por qué es importante. (s.f.). Obtenido de http://www.asiap.org/AsIAP/index.php/raee/300-articulos/3004-que-es-el-rohsy-por-que-es-importante RepRap. (17 de Febrero de 2020). Obtenido de https://reprap.org/wiki/RepRap/es Russo, P. (s.f.). Polylactic Acid (PLA) Biocomposite: Processing, Additive Manufacturing and Advanced Applications. Obtenido de https://www.mdpi.com/20734360/13/8/1326 Tech, T. (10 de Marzo de 2023). Is it time for 3D printers to abandon bed springs? Obtenido de https://www.youtube.com/watch?v=8r-E74ENigk Tips para el cálculo de engranajes rectos. (s.f.). Obtenido de https://clr.es/blog/es/tipspara-el-calculo-de-engranajes-rectos/ (2010). Tornillos de potencia. Mérida: Universidad de los Andes. Velázquez, G. L. (Marzo de 2022). RESISTENCIA A COMPRESIÓN DE PROBETAS FABRICADAS EN PLA CON DISTINTO RELLENO. Obtenido de https://riull.ull.es/xmlui/bitstream/handle/915/26853/Resistencia%20a%20compr esion%20de%20probetas%20fabricadas%20en%20PLA%20con%20distinto%2 0relleno.pdf?sequence=1 TRABAJO FINAL DE GRADO Grado en Ingeniería Mecánica OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY ANEJO A: Planos Autor: Oriol Muñoz Cadenas Director: Jose Antonio Travieso Rodríguez Departamento: Ingeniería Mecánica (DEM) Convocatoria: Abril 2023 SENTINELMK1 A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:10 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ SENTINELMK1 JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. A B C DETALLEA ESCALA1:2 Patas Esquina2 DETALLEB ESCALA1:2 Tensor DETALLEC ESCALA1:2 SoportePoleasEstandard ESTRUCTURA A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:10 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ Subassembly_Estructura JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 18,00 6,00 2X 3,40PORTODO 6,50 4,40 10,00 8,45 9,45 2,50 R4,00 1,00 R2,00 27,50 10,00 6,00 28,90 12,45 8,00 2,00 7,50 R7,00 R2,00 A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:2:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ CarroXYMGN9CsuperiorderechoV3 JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 28,90 18,00 8,00 12,45 2,00 R7,00 R4,88 R7,00 10,00 8,45 2,50 9,45 3,50 7,50 R2,00 6,00 21,50 11,00 6,00 SECCIÓNPARCIAL A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº5 N.ºDEDIBUJO ESCALA:2:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ CarroXYMGN9CsuperiorizquierdoV3 JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 2x 4,50 15,00 8,00 12,40 11,00 45,00 10,00 7x 3,20PORTODO 6,00 R12,00 6,00 21,00 43,00 86,00 5,00 32,00 74,00 64,00 10,00 42,00 6,005,007,00 20,00 36,00 29,00 42,00 35,00 15,00 AA R2,00 2,59 2,00 12,00 15,00 11,40 R2,00 SECCIÓNA-A A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ UniónMotores JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 13,00 R6,50 20,00 11,50 40,00 30,00 6,50 0,1 M 21,00 3,00 19,50 3,40 25,00 6,50 3,40 40,00 20,00 8,00 A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:2:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ GuiaTensor JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 5,00 20,00 1,40X48° A A 5,00 R15,00  20,93 17,00 20,50 3,04 SECCIÓNA-A A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:2:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ Rosca_Guia_Tensor JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. A B C D DETALLEA ESCALA1:2 Soportevarillasyhusillo DETALLEB ESCALA1:2 AnclajeCamaV4PT1 DETALLEC ESCALA1:2 AnclajeCamaV4PT2 DETALLED ESCALA1:2 Soportevarillasyhusilloinf CINEMÁTICAZ A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:5 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ Z_Axis_Subassembly JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 16,00 10,00 5,00 45° 0,1 M 4x 4,50 4,50 PORTODO 8,00 2,60 4,00 25,00 10,00 61,488,00 12,00 20,00 5,00 R2,00 20,005,00 38,00 38,00 8,00 8,00 67,00 64,50 45° 35,00 17,00 A 0,1 M 0,1 M R4,00 60° R10,00 R7,55 10,00 2,50 13,86 DETALLEA ESCALA2:1 A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ AnclajeCamaV4PT1 JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 5,00 45° 45° 5,50 3,00 25,00 5,00 55,00 R3,00 41,00 30,00 10,00 2x 4,50 4,50 PORTODO 8,00 2,60 20,00 R11,00 10,50 16,00 3,50 R11,50 R3,00 12,00 5,50 25,00 A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:2:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ AnclajeCamaV4PT2 JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 5,00 8,00 4X 3,50 10,60 R11,00 5,00 4,50 R7,50 80,00 58,00 133,6° R10,00 R10,00 R10,00 16,00 A A B B 7,00 1,00 R2,00 13,50 6°  9,25  15,25 13,21 19,25 4,00 SECCIÓNA-A ESCALA1:1 8,00 3,60 1,40 5,00 26,47° SECCIÓNB-B ESCALA1:1 PIEZAFINALMENTENOUTILIZADA. UNICAMENTEINFORMATIVA. A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:2 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ AnclajeCamaCaliente2Simetria JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 20,00 80,00 2x 4,50PORTODO 8,00 4,40 10,00 2,00X45° A A 8,10 R7,00 9,00 16,10 R10,00 13,00 13,00 44,3°44,3° 160,00 R9,00 R11,50 7,00 180,00 6,50 5,00 1,80 5,00 3,00 SECCIÓNA-A A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ Soportevarillasyhusillo JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 21,00 2x 3,40PORTODO 6,50 2,00 25,00 B B 46,00 35,00 R13,50 R8,00 R6,00 25,00 16,00 R11,00 11,00 6,00 2,50 A SECCIÓNB-B 4,55 4,00 6,45 3,75 5,60 5,65 3,00 DETALLEA ESCALA4:1 A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº6 N.ºDEDIBUJO ESCALA:2:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ CierreHotend JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. 20,20 20,00 8,00 7,00 2,00X45° 22,80 7,007,00 0,1 M R2,00 7,70 30° 100,00 14,00 21,50 25,00 70,00 10,0015,00 2,00 15,00 19,64 M A A B B C C D D E E F F 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 DIBUJ. VERIF. APROB. FABR. CALID. SINOSEINDICALOCONTRARIO: LASCOTASSEEXPRESANENMM TOLERANCIAS:+-0,1mm  ACABADO: REBARBARY ROMPERARISTAS VIVAS NOMBRE FECHA MATERIAL: NOCAMBIELAESCALA Nº3 N.ºDEDIBUJO ESCALA:1:1 HOJA1DE1 A3 PETG PESO: ORIOLMUÑOZCADENAS JOSEANTONIOTRAVIESORODRIGUEZ SoporteBobina JOSEANTONIOTRAVIESORODRIGUEZ ORIOLMUÑOZCADENAS ORIOLMUÑOZCADENAS 01/02/23 10/02/23 10/02/23 20/02/23 10/04/23 ProductoSOLIDWORKSEducational.Soloparausoenlaenseñanza. TRABAJO FINAL DE GRADO Grado en Ingeniería Mecánica OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY ANEJO B: Programación Autor: Oriol Muñoz Cadenas Director: Jose Antonio Travieso Rodríguez Departamento: Ingeniería Mecánica (DEM) Convocatoria: Abril 2023 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY CONFIGURATION /** * Marlin 3D Printer Firmware * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * * Based on Sprinter and grbl. * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. * */ #pragma once /** * Configuration.h * * Basic settings such as: * * - Type of electronics * - Type of temperature sensor * - Printer geometry * - Endstop configuration * - LCD controller * - Extra features * * Advanced settings can be found in Configuration_adv.h */ #define CONFIGURATION_H_VERSION 02010200 //======================================================================= ==== //============================= Getting Started ============================= //======================================================================= ==== /** * Here are some useful links to help get your machine configured and calibrated: * * Example Configs: https://github.com/MarlinFirmware/Configurations/branches/all * * Průša Calculator: https://blog.prusaprinters.org/calculator_3416/ OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * * Calibration Guides: https://reprap.org/wiki/Calibration * https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap * https://youtu.be/wAL9d7FgInk * * Calibration Objects: https://www.thingiverse.com/thing:5573 * https://www.thingiverse.com/thing:1278865 */ // @section info // Author info of this build printed to the host during boot and M115 #define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) /** * *** VENDORS PLEASE READ *** * * Marlin allows you to add a custom boot image for Graphical LCDs. * With this option Marlin will first show your custom screen followed * by the standard Marlin logo with version number and web URL. * * We encourage you to take advantage of this new feature and we also * respectfully request that you retain the unmodified Marlin boot screen. */ // Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION ** #define SHOW_BOOTSCREEN // Show the bitmap in Marlin/_Bootscreen.h on startup. //#define SHOW_CUSTOM_BOOTSCREEN // Show the bitmap in Marlin/_Statusscreen.h on the status screen. //#define CUSTOM_STATUS_SCREEN_IMAGE // @section machine // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V3_0 #endif /** * Select the serial port on the board to use for communication with the host. * This allows the connection of wireless adapters (for instance) to nondefault port pins. * Serial port -1 is the USB emulated serial port, if available. * Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader. * * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY */ #define SERIAL_PORT 2 /** * Serial Port Baud Rate * This is the default communication speed for all serial ports. * Set the baud rate defaults for additional serial ports below. * * 250000 works in most cases, but you might try a lower speed if * you commonly experience drop-outs during host printing. * You may try up to 1000000 to speed up SD file transfer. * * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] */ #define BAUDRATE 250000 //#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate /** * Select a secondary serial port on the board to use for communication with the host. * Currently Ethernet (-2) is only supported on Teensy 4.1 boards. * :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7] */ #define SERIAL_PORT_2 -1 //#define BAUDRATE_2 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE /** * Select a third serial port on the board to use for communication with the host. * Currently only supported for AVR, DUE, LPC1768/9 and STM32/STM32F1 * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ //#define SERIAL_PORT_3 1 //#define BAUDRATE_3 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE // Enable the Bluetooth serial interface on AT90USB devices //#define BLUETOOTH // Name displayed in the LCD "Ready" message and Info menu #define CUSTOM_MACHINE_NAME "Sentinel MK1" // Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like https://www.uuidgenerator.net/version4 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000" // @section stepper drivers /** * Stepper Drivers * * These settings allow Marlin to tune stepper driver timing and enable advanced options for OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * stepper drivers that support them. You may also override timing options in Configuration_adv.h. * * Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers. * * Options: A4988, A5984, DRV8825, LV8729, TB6560, TB6600, TMC2100, * TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE, * TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE, * TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE, * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ #define X_DRIVER_TYPE TMC2209 #define Y_DRIVER_TYPE TMC2209 #define Z_DRIVER_TYPE TMC2209 //#define X2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988 //#define Z2_DRIVER_TYPE A4988 //#define Z3_DRIVER_TYPE A4988 //#define Z4_DRIVER_TYPE A4988 //#define I_DRIVER_TYPE A4988 //#define J_DRIVER_TYPE A4988 //#define K_DRIVER_TYPE A4988 //#define U_DRIVER_TYPE A4988 //#define V_DRIVER_TYPE A4988 //#define W_DRIVER_TYPE A4988 #define E0_DRIVER_TYPE TMC2209 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 //#define E4_DRIVER_TYPE A4988 //#define E5_DRIVER_TYPE A4988 //#define E6_DRIVER_TYPE A4988 //#define E7_DRIVER_TYPE A4988 /** * Additional Axis Settings * * Define AXISn_ROTATES for all axes that rotate or pivot. * Rotational axis coordinates are expressed in degrees. * * AXISn_NAME defines the letter used to refer to the axis in (most) Gcode commands. * By convention the names and roles are typically: * 'A' : Rotational axis parallel to X * 'B' : Rotational axis parallel to Y * 'C' : Rotational axis parallel to Z * 'U' : Secondary linear axis parallel to X * 'V' : Secondary linear axis parallel to Y * 'W' : Secondary linear axis parallel to Z * OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * Regardless of these settings the axes are internally named I, J, K, U, V, W. */ #ifdef I_DRIVER_TYPE #define AXIS4_NAME 'A' // :['A', 'B', 'C', 'U', 'V', 'W'] #define AXIS4_ROTATES #endif #ifdef J_DRIVER_TYPE #define AXIS5_NAME 'B' // :['B', 'C', 'U', 'V', 'W'] #define AXIS5_ROTATES #endif #ifdef K_DRIVER_TYPE #define AXIS6_NAME 'C' // :['C', 'U', 'V', 'W'] #define AXIS6_ROTATES #endif #ifdef U_DRIVER_TYPE #define AXIS7_NAME 'U' // :['U', 'V', 'W'] //#define AXIS7_ROTATES #endif #ifdef V_DRIVER_TYPE #define AXIS8_NAME 'V' // :['V', 'W'] //#define AXIS8_ROTATES #endif #ifdef W_DRIVER_TYPE #define AXIS9_NAME 'W' // :['W'] //#define AXIS9_ROTATES #endif // @section extruder // This defines the number of extruders // :[0, 1, 2, 3, 4, 5, 6, 7, 8] #define EXTRUDERS 1 // Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE // Save and restore temperature and fan speed on tool-change. // Set standby for the unselected tool with M104/106/109 T... #if ENABLED(SINGLENOZZLE) //#define SINGLENOZZLE_STANDBY_TEMP //#define SINGLENOZZLE_STANDBY_FAN #endif // @section multi-material /** * Multi-Material Unit * Set to one of these predefined models: * * PRUSA_MMU1 : Průša MMU1 (The "multiplexer" version) * PRUSA_MMU2 : Průša MMU2 * PRUSA_MMU2S : Průša MMU2S (Requires MK3S extruder with motion sensor, EXTRUDERS = 5) OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * EXTENDABLE_EMU_MMU2 : MMU with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware) * EXTENDABLE_EMU_MMU2S : MMUS with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware) * * Requires NOZZLE_PARK_FEATURE to park print head in case MMU unit fails. * See additional options in Configuration_adv.h. * :["PRUSA_MMU1", "PRUSA_MMU2", "PRUSA_MMU2S", "EXTENDABLE_EMU_MMU2", "EXTENDABLE_EMU_MMU2S"] */ //#define MMU_MODEL PRUSA_MMU2 // A dual extruder that uses a single stepper motor //#define SWITCHING_EXTRUDER #if ENABLED(SWITCHING_EXTRUDER) #define SWITCHING_EXTRUDER_SERVO_NR 0 #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1[, E2, E3] #if EXTRUDERS > 3 #define SWITCHING_EXTRUDER_E23_SERVO_NR 1 #endif #endif // A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles //#define SWITCHING_NOZZLE #if ENABLED(SWITCHING_NOZZLE) #define SWITCHING_NOZZLE_SERVO_NR 0 //#define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo) #define SWITCHING_NOZZLE_SERVO_DWELL 2500 // Dwell time to wait for servo to make physical move #endif /** * Two separate X-carriages with extruders that connect to a moving part * via a solenoid docking mechanism. Requires SOL1_PIN and SOL2_PIN. */ //#define PARKING_EXTRUDER /** * Two separate X-carriages with extruders that connect to a moving part * via a magnetic docking mechanism using movements and no solenoid * * project : https://www.thingiverse.com/thing:3080893 * movements : https://youtu.be/0xCEiG9VS3k * https://youtu.be/Bqbcs0CU2FE */ //#define MAGNETIC_PARKING_EXTRUDER #if EITHER(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER) #define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder #if ENABLED(PARKING_EXTRUDER) #define PARKING_EXTRUDER_SOLENOIDS_INVERT // If enabled, the solenoid is NOT magnetized with applied voltage #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // (ms) Delay for magnetic field. No delay if 0 or not defined. //#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381 #elif ENABLED(MAGNETIC_PARKING_EXTRUDER) #define MPE_FAST_SPEED 9000 // (mm/min) Speed for travel before last distance point #define MPE_SLOW_SPEED 4500 // (mm/min) Speed for last distance travel to park and couple #define MPE_TRAVEL_DISTANCE 10 // (mm) Last distance point #define MPE_COMPENSATION 0 // Offset Compensation -1 , 0 , 1 (multiplier) only for coupling #endif #endif /** * Switching Toolhead * * Support for swappable and dockable toolheads, such as * the E3D Tool Changer. Toolheads are locked with a servo. */ //#define SWITCHING_TOOLHEAD /** * Magnetic Switching Toolhead * * Support swappable and dockable toolheads with a magnetic * docking mechanism using movement and no servo. */ //#define MAGNETIC_SWITCHING_TOOLHEAD /** * Electromagnetic Switching Toolhead * * Parking for CoreXY / HBot kinematics. * Toolheads are parked at one edge and held with an electromagnet. * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4 */ //#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD #if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY */ #if TEMP_SENSOR_REDUNDANT #define TEMP_SENSOR_REDUNDANT_SOURCE E1 // The sensor that will provide the redundant reading. #define TEMP_SENSOR_REDUNDANT_TARGET E0 // The sensor that we are providing a redundant reading for. #define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10 // (°C) Temperature difference that will trigger a print abort. #endif // Below this temperature the heater will be switched off // because it probably indicates a broken thermistor wire. #define HEATER_0_MINTEMP 5 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define HEATER_3_MINTEMP 5 #define HEATER_4_MINTEMP 5 #define HEATER_5_MINTEMP 5 #define HEATER_6_MINTEMP 5 #define HEATER_7_MINTEMP 5 #define BED_MINTEMP 5 #define CHAMBER_MINTEMP 5 // Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) #define HEATER_0_MAXTEMP 275 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 #define HEATER_4_MAXTEMP 275 #define HEATER_5_MAXTEMP 275 #define HEATER_6_MAXTEMP 275 #define HEATER_7_MAXTEMP 275 #define BED_MAXTEMP 150 #define CHAMBER_MAXTEMP 60 /** * Thermal Overshoot * During heatup (and printing) the temperature can often "overshoot" the target by many degrees * (especially before PID tuning). Setting the target temperature too close to MAXTEMP guarantees * a MAXTEMP shutdown! Use these values to forbid temperatures being set too close to MAXTEMP. */ #define HOTEND_OVERSHOOT 15 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT #define BED_OVERSHOOT 10 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT #define COOLER_OVERSHOOT 2 // (°C) Forbid temperatures closer than OVERSHOOT //======================================================================= ==== //============================= PID Settings ================================ OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //======================================================================= ==== // @section hotend temp // Enable PIDTEMP for PID control or MPCTEMP for Predictive Model. // temperature control. Disable both for bang-bang heating. #define PIDTEMP // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning //#define MPCTEMP // ** EXPERIMENTAL ** #define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current #define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current #define PID_K1 0.95 // Smoothing factor within any PID loop #if ENABLED(PIDTEMP) //#define PID_DEBUG // Print PID debug data to the serial port. Use 'M303 D' to toggle activation. //#define PID_PARAMS_PER_HOTEND // Use separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with G-code: M301 E[extruder number, 0-2] #if ENABLED(PID_PARAMS_PER_HOTEND) // Specify up to one value per hotend here, according to your setup. // If there are fewer values, the last one applies to the remaining hotends. #define DEFAULT_Kp_LIST { 22.20, 22.20 } #define DEFAULT_Ki_LIST { 1.08, 1.08 } #define DEFAULT_Kd_LIST { 114.00, 114.00 } #else #define DEFAULT_Kp 14.38 #define DEFAULT_Ki 0.86 #define DEFAULT_Kd 60.41 #endif #endif /** * Model Predictive Control for hotend * * Use a physical model of the hotend to control temperature. When configured correctly * this gives better responsiveness and stability than PID and it also removes the need * for PID_EXTRUSION_SCALING and PID_FAN_SCALING. Use M306 T to autotune the model. * @section mpctemp */ #if ENABLED(MPCTEMP) //#define MPC_EDIT_MENU // Add MPC editing to the "Advanced Settings" menu. (~1300 bytes of flash) //#define MPC_AUTOTUNE_MENU // Add MPC autotuning to the "Advanced Settings" menu. (~350 bytes of flash) #define MPC_MAX BANG_MAX // (0..255) Current to nozzle while MPC is active. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #define MPC_HEATER_POWER { 40.0f } // (W) Heat cartridge powers. #define MPC_INCLUDE_FAN // Model the fan speed? // Measured physical constants from M306 #define MPC_BLOCK_HEAT_CAPACITY { 16.7f } // (J/K) Heat block heat capacities. #define MPC_SENSOR_RESPONSIVENESS { 0.22f } // (K/s per ∆K) Rate of change of sensor temperature from heat block. #define MPC_AMBIENT_XFER_COEFF { 0.068f } // (W/K) Heat transfer coefficients from heat block to room air with fan off. #if ENABLED(MPC_INCLUDE_FAN) #define MPC_AMBIENT_XFER_COEFF_FAN255 { 0.097f } // (W/K) Heat transfer coefficients from heat block to room air with fan on full. #endif // For one fan and multiple hotends MPC needs to know how to apply the fan cooling effect. #if ENABLED(MPC_INCLUDE_FAN) //#define MPC_FAN_0_ALL_HOTENDS //#define MPC_FAN_0_ACTIVE_HOTEND #endif #define FILAMENT_HEAT_CAPACITY_PERMM { 5.6e-3f } // 0.0056 J/K/mm for 1.75mm PLA (0.0149 J/K/mm for 2.85mm PLA). //#define FILAMENT_HEAT_CAPACITY_PERMM { 3.6e-3f } // 0.0036 J/K/mm for 1.75mm PETG (0.0094 J/K/mm for 2.85mm PETG). // Advanced options #define MPC_SMOOTHING_FACTOR 0.5f // (0.0...1.0) Noisy temperature sensors may need a lower value for stabilization. #define MPC_MIN_AMBIENT_CHANGE 1.0f // (K/s) Modeled ambient temperature rate of change, when correcting model inaccuracies. #define MPC_STEADYSTATE 0.5f // (K/s) Temperature change rate for steady state logic to be enforced. #define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f } // (mm) M306 Autotuning position, ideally bed center at first layer height. #define MPC_TUNING_END_Z 10.0f // (mm) M306 Autotuning final Z position. #endif //======================================================================= ==== //====================== PID > Bed Temperature Control ====================== //======================================================================= ==== /** * PID Bed Heating * * If this option is enabled set PID constants below. * If this option is disabled, bang-bang will be used and BED_LIMIT_SWITCHING will enable hysteresis. * OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * The PID frequency will be the same as the extruder PWM. * If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz, * which is fine for driving a square wave into a resistive load and does not significantly * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W * heater. If your configuration is significantly different than this and you don't understand * the issues involved, don't use bed PID until someone else verifies that your hardware works. * @section bed temp */ #define PIDTEMPBED //#define BED_LIMIT_SWITCHING /** * Max Bed Power * Applies to all forms of bed control (PID, bang-bang, and bang-bang with hysteresis). * When set to any value below 255, enables a form of PWM to the bed that acts like a divider * so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED) */ #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current #if ENABLED(PIDTEMPBED) //#define MIN_BED_POWER 0 //#define PID_BED_DEBUG // Print Bed PID debug data to the serial port. // 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) // from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) #define DEFAULT_bedKp 32.72 #define DEFAULT_bedKi 1.87 #define DEFAULT_bedKd 382.15 // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. #endif // PIDTEMPBED //======================================================================= ==== //==================== PID > Chamber Temperature Control ==================== //======================================================================= ==== /** * PID Chamber Heating * * If this option is enabled set PID constants below. * If this option is disabled, bang-bang will be used and CHAMBER_LIMIT_SWITCHING will enable * hysteresis. * OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * The PID frequency will be the same as the extruder PWM. * If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz, * which is fine for driving a square wave into a resistive load and does not significantly * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 200W * heater. If your configuration is significantly different than this and you don't understand * the issues involved, don't use chamber PID until someone else verifies that your hardware works. * @section chamber temp */ //#define PIDTEMPCHAMBER //#define CHAMBER_LIMIT_SWITCHING /** * Max Chamber Power * Applies to all forms of chamber control (PID, bang-bang, and bang-bang with hysteresis). * When set to any value below 255, enables a form of PWM to the chamber heater that acts like a divider * so don't use it unless you are OK with PWM on your heater. (See the comment on enabling PIDTEMPCHAMBER) */ #define MAX_CHAMBER_POWER 255 // limits duty cycle to chamber heater; 255=full current #if ENABLED(PIDTEMPCHAMBER) #define MIN_CHAMBER_POWER 0 //#define PID_CHAMBER_DEBUG // Print Chamber PID debug data to the serial port. // Lasko "MyHeat Personal Heater" (200w) modified with a Fotek SSR-10DA to control only the heating element // and placed inside the small Creality printer enclosure tent. // #define DEFAULT_chamberKp 37.04 #define DEFAULT_chamberKi 1.40 #define DEFAULT_chamberKd 655.17 // M309 P37.04 I1.04 D655.17 // FIND YOUR OWN: "M303 E-2 C8 S50" to run autotune on the chamber at 50 degreesC for 8 cycles. #endif // PIDTEMPCHAMBER #if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER) //#define PID_OPENLOOP // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) //#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) #endif // @section safety /** * Prevent extrusion if the temperature is below EXTRUDE_MINTEMP. * Add M302 to set the minimum extrusion temperature and/or turn * cold extrusion prevention on and off. * * *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! *** */ #define PREVENT_COLD_EXTRUSION #define EXTRUDE_MINTEMP 170 /** * Prevent a single extrusion longer than EXTRUDE_MAXLENGTH. * Note: For Bowden Extruders make this large enough to allow load/unload. */ #define PREVENT_LENGTHY_EXTRUDE #define EXTRUDE_MAXLENGTH 600 //======================================================================= ==== //======================== Thermal Runaway Protection ======================= //======================================================================= ==== /** * Thermal Protection provides additional protection to your printer from damage * and fire. Marlin always includes safe min and max temperature ranges which * protect against a broken or disconnected thermistor wire. * * The issue: If a thermistor falls out, it will report the much lower * temperature of the air in the room, and the the firmware will keep * the heater on. * * If you get "Thermal Runaway" or "Heating failed" errors the * details can be tuned in Configuration_adv.h */ #define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders #define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed #define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber #define THERMAL_PROTECTION_COOLER // Enable thermal protection for the laser cooling OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //======================================================================= ==== //============================= Mechanical Settings ========================= //======================================================================= ==== // @section machine // Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics, // either in the usual order or reversed #define COREXY //#define COREXZ //#define COREYZ //#define COREYX //#define COREZX //#define COREZY //#define MARKFORGED_XY // MarkForged. See https://reprap.org/forum/read.php?152,504042 //#define MARKFORGED_YX // Enable for a belt style printer with endless "Z" motion //#define BELTPRINTER // Enable for Polargraph Kinematics //#define POLARGRAPH #if ENABLED(POLARGRAPH) #define POLARGRAPH_MAX_BELT_LEN 1035.0 #define DEFAULT_SEGMENTS_PER_SECOND 5 #endif // @section delta // Enable for DELTA kinematics and configure below //#define DELTA #if ENABLED(DELTA) // Make delta curves from many straight lines (linear interpolation). // This is a trade-off between visible corners (not enough segments) // and processor overload (too many expensive sqrt calls). #define DEFAULT_SEGMENTS_PER_SECOND 200 // After homing move down to a height where XY movement is unconstrained //#define DELTA_HOME_TO_SAFE_ZONE // Delta calibration menu // Add three-point calibration to the MarlinUI menu. // See http://minow.blogspot.com/index.html#4918805519571907051 //#define DELTA_CALIBRATION_MENU // G33 Delta Auto-Calibration. Enable EEPROM_SETTINGS to store results. //#define DELTA_AUTO_CALIBRATION #if ENABLED(DELTA_AUTO_CALIBRATION) // Default number of probe points : n*n (1 -> 7) #define DELTA_CALIBRATION_DEFAULT_POINTS 4 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #endif #if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU) // Step size for paper-test probing #define PROBE_MANUALLY_STEP 0.05 // (mm) #endif // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 140.0 // (mm) // Maximum reachable area #define DELTA_MAX_RADIUS 140.0 // (mm) // Center-to-center distance of the holes in the diagonal push rods. #define DELTA_DIAGONAL_ROD 250.0 // (mm) // Distance between bed and nozzle Z home position #define DELTA_HEIGHT 250.00 // (mm) Get this value from G33 auto calibrate #define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate // Horizontal distance bridged by diagonal push rods when effector is centered. #define DELTA_RADIUS 124.0 // (mm) Get this value from G33 auto calibrate // Trim adjustments for individual towers // tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0 // measured in degrees anticlockwise looking from above the printer #define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate // Delta radius and diagonal rod adjustments (mm) //#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 } //#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 } #endif // @section scara /** * MORGAN_SCARA was developed by QHARLEY in South Africa in 2012-2013. * Implemented and slightly reworked by JCERNY in June, 2014. * * Mostly Printed SCARA is an open source design by Tyler Williams. See: * https://www.thingiverse.com/thing:2487048 * https://www.thingiverse.com/thing:1241491 */ //#define MORGAN_SCARA //#define MP_SCARA #if EITHER(MORGAN_SCARA, MP_SCARA) // If movement is choppy try lowering this value #define DEFAULT_SEGMENTS_PER_SECOND 200 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY // Length of inner and outer support arms. Measure arm lengths precisely. #define SCARA_LINKAGE_1 150 // (mm) #define SCARA_LINKAGE_2 150 // (mm) // SCARA tower offset (position of Tower relative to bed zero position) // This needs to be reasonably accurate as it defines the printbed position in the SCARA space. #define SCARA_OFFSET_X 100 // (mm) #define SCARA_OFFSET_Y -56 // (mm) #if ENABLED(MORGAN_SCARA) //#define DEBUG_SCARA_KINEMATICS #define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly // Radius around the center where the arm cannot reach #define MIDDLE_DEAD_ZONE_R 0 // (mm) #define THETA_HOMING_OFFSET 0 // Calculated from Calibration Guide and M360 / M114. See http://reprap.harleystudio.co.za/?page_id=1073 #define PSI_HOMING_OFFSET 0 // Calculated from Calibration Guide and M364 / M114. See http://reprap.harleystudio.co.za/?page_id=1073 #elif ENABLED(MP_SCARA) #define SCARA_OFFSET_THETA1 12 // degrees #define SCARA_OFFSET_THETA2 131 // degrees #endif #endif // @section tpara // Enable for TPARA kinematics and configure below //#define AXEL_TPARA #if ENABLED(AXEL_TPARA) #define DEBUG_TPARA_KINEMATICS #define DEFAULT_SEGMENTS_PER_SECOND 200 // Length of inner and outer support arms. Measure arm lengths precisely. #define TPARA_LINKAGE_1 120 // (mm) #define TPARA_LINKAGE_2 120 // (mm) // SCARA tower offset (position of Tower relative to bed zero position) // This needs to be reasonably accurate as it defines the printbed position in the SCARA space. #define TPARA_OFFSET_X 0 // (mm) #define TPARA_OFFSET_Y 0 // (mm) #define TPARA_OFFSET_Z 0 // (mm) #define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly // Radius around the center where the arm cannot reach OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #define MIDDLE_DEAD_ZONE_R 0 // (mm) // Calculated from Calibration Guide and M360 / M114. See http://reprap.harleystudio.co.za/?page_id=1073 #define THETA_HOMING_OFFSET 0 #define PSI_HOMING_OFFSET 0 #endif // @section machine // Articulated robot (arm). Joints are directly mapped to axes with no kinematics. //#define ARTICULATED_ROBOT_ARM // For a hot wire cutter with parallel horizontal axes (X, I) where the heights of the two wire // ends are controlled by parallel axes (Y, J). Joints are directly mapped to axes (no kinematics). //#define FOAMCUTTER_XYUV //======================================================================= ==== //============================== Endstop Settings =========================== //======================================================================= ==== // @section endstops // Specify here all the endstop connectors that are connected to any endstop or probe. // Almost all printers will be using one per axis. Probes will use one or more of the // extra connectors. Leave undefined any used for non-endstop and nonprobe purposes. #define USE_XMIN_PLUG #define USE_YMIN_PLUG #define USE_ZMIN_PLUG //#define USE_IMIN_PLUG //#define USE_JMIN_PLUG //#define USE_KMIN_PLUG //#define USE_UMIN_PLUG //#define USE_VMIN_PLUG //#define USE_WMIN_PLUG //#define USE_XMAX_PLUG //#define USE_YMAX_PLUG //#define USE_ZMAX_PLUG //#define USE_IMAX_PLUG //#define USE_JMAX_PLUG //#define USE_KMAX_PLUG //#define USE_UMAX_PLUG //#define USE_VMAX_PLUG //#define USE_WMAX_PLUG // Enable pullup for all endstops to prevent a floating state #define ENDSTOPPULLUPS #if DISABLED(ENDSTOPPULLUPS) // Disable ENDSTOPPULLUPS to set pullups individually OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * Touch-MI Probe by hotends.fr * * This probe is deployed and activated by moving the X-axis to a magnet at the edge of the bed. * By default, the magnet is assumed to be on the left and activated by a home. If the magnet is * on the right, enable and set TOUCH_MI_DEPLOY_XPOS to the deploy position. * * Also requires: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING, * and a minimum Z_HOMING_HEIGHT of 10. */ //#define TOUCH_MI_PROBE #if ENABLED(TOUCH_MI_PROBE) #define TOUCH_MI_RETRACT_Z 0.5 // Height at which the probe retracts //#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2) // For a magnet on the right side of the bed //#define TOUCH_MI_MANUAL_DEPLOY // For manual deploy (LCD menu) #endif // A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) //#define SOLENOID_PROBE // A sled-mounted probe like those designed by Charles Bell. //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // A probe deployed by moving the x-axis, such as the Wilson II's rackand-pinion probe designed by Marty Rice. //#define RACK_AND_PINION_PROBE #if ENABLED(RACK_AND_PINION_PROBE) #define Z_PROBE_DEPLOY_X X_MIN_POS #define Z_PROBE_RETRACT_X X_MAX_POS #endif /** * Magnetically Mounted Probe * For probes such as Euclid, Klicky, Klackender, etc. */ //#define MAG_MOUNTED_PROBE #if ENABLED(MAG_MOUNTED_PROBE) #define PROBE_DEPLOY_FEEDRATE (133*60) // (mm/min) Probe deploy speed #define PROBE_STOW_FEEDRATE (133*60) // (mm/min) Probe stow speed #define MAG_MOUNTED_DEPLOY_1 { PROBE_DEPLOY_FEEDRATE, { 245, 114, 30 } } // Move to side Dock & Attach probe #define MAG_MOUNTED_DEPLOY_2 { PROBE_DEPLOY_FEEDRATE, { 210, 114, 30 } } // Move probe off dock #define MAG_MOUNTED_DEPLOY_3 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // Extra move if needed #define MAG_MOUNTED_DEPLOY_4 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // Extra move if needed #define MAG_MOUNTED_DEPLOY_5 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // Extra move if needed OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #define MAG_MOUNTED_STOW_1 { PROBE_STOW_FEEDRATE, { 245, 114, 20 } } // Move to dock #define MAG_MOUNTED_STOW_2 { PROBE_STOW_FEEDRATE, { 245, 114, 0 } } // Place probe beside remover #define MAG_MOUNTED_STOW_3 { PROBE_STOW_FEEDRATE, { 230, 114, 0 } } // Side move to remove probe #define MAG_MOUNTED_STOW_4 { PROBE_STOW_FEEDRATE, { 210, 114, 20 } } // Side move to remove probe #define MAG_MOUNTED_STOW_5 { PROBE_STOW_FEEDRATE, { 0, 0, 0 } } // Extra move if needed #endif // Duet Smart Effector (for delta printers) - https://bit.ly/2ul5U7J // When the pin is defined you can use M672 to set/reset the probe sensitivity. //#define DUET_SMART_EFFECTOR #if ENABLED(DUET_SMART_EFFECTOR) #define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin #endif /** * Use StallGuard2 to probe the bed with the nozzle. * Requires stallGuard-capable Trinamic stepper drivers. * CAUTION: This can damage machines with Z lead screws. * Take extreme care when setting up this feature. */ #define SENSORLESS_PROBING /** * Allen key retractable z-probe as seen on many Kossel delta printers - https://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe * Deploys by touching z-axis belt. Retracts by pushing the probe down. */ //#define Z_PROBE_ALLEN_KEY #if ENABLED(Z_PROBE_ALLEN_KEY) // 2 or 3 sets of coordinates for deploying and retracting the spring loaded touch probe on G29, // if servo actuated touch probe is not defined. Uncomment as appropriate for your printer/probe. #define Z_PROBE_ALLEN_KEY_DEPLOY_1 { 30.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_FEEDRATE #define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_FEEDRATE)/10 #define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (DELTA_PRINTABLE_RADIUS) * 0.75, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_FEEDRATE #define Z_PROBE_ALLEN_KEY_STOW_1 { -64.0, 56.0, 23.0 } // Move the probe into position #define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE XY_PROBE_FEEDRATE #define Z_PROBE_ALLEN_KEY_STOW_2 { -64.0, 56.0, 3.0 } // Push it down OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (XY_PROBE_FEEDRATE)/10 #define Z_PROBE_ALLEN_KEY_STOW_3 { -64.0, 56.0, 50.0 } // Move it up to clear #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE XY_PROBE_FEEDRATE #define Z_PROBE_ALLEN_KEY_STOW_4 { 0.0, 0.0, 50.0 } #define Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE XY_PROBE_FEEDRATE #endif // Z_PROBE_ALLEN_KEY /** * Nozzle-to-Probe offsets { X, Y, Z } * * X and Y offset * Use a caliper or ruler to measure the distance from the tip of * the Nozzle to the center-point of the Probe in the X and Y axes. * * Z offset * - For the Z offset use your best known value and adjust at runtime. * - Common probes trigger below the nozzle and have negative values for Z offset. * - Probes triggering above the nozzle height are uncommon but do exist. When using * probes such as this, carefully set Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES * to avoid collisions during probing. * * Tune and Adjust * - Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc. * - PROBE_OFFSET_WIZARD (configuration_adv.h) can be used for setting the Z offset. * * Assuming the typical work area orientation: * - Probe to RIGHT of the Nozzle has a Positive X offset * - Probe to LEFT of the Nozzle has a Negative X offset * - Probe in BACK of the Nozzle has a Positive Y offset * - Probe in FRONT of the Nozzle has a Negative Y offset * * Some examples: * #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1" * #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2" * #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3" * #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4" * * +-- BACK ---+ * | [+] | * L | 1 | R <-- Example "1" (right+, back+) * E | 2 | I <-- Example "2" ( left-, back+) * F |[-] N [+]| G <-- Nozzle * T | 3 | H <-- Example "3" (right+, front-) * | 4 | T <-- Example "4" ( left-, front-) * | [-] | * O-- FRONT --+ */ #define NOZZLE_TO_PROBE_OFFSET { 0, 0, 0 } OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY // Most probes should stay away from the edges of the bed, but // with NOZZLE_AS_PROBE this can be negative for a wider probing area. #define PROBING_MARGIN 10 // X and Y axis travel speed (mm/min) between probes #define XY_PROBE_FEEDRATE (133*60) // Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) #define Z_PROBE_FEEDRATE_FAST (4*60) // Feedrate (mm/min) for the "accurate" probe of each point #define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 2) /** * Probe Activation Switch * A switch indicating proper deployment, or an optical * switch triggered when the carriage is near the bed. */ //#define PROBE_ACTIVATION_SWITCH #if ENABLED(PROBE_ACTIVATION_SWITCH) #define PROBE_ACTIVATION_SWITCH_STATE LOW // State indicating probe is active //#define PROBE_ACTIVATION_SWITCH_PIN PC6 // Override default pin #endif /** * Tare Probe (determine zero-point) prior to each probe. * Useful for a strain gauge or piezo sensor that needs to factor out * elements such as cables pulling on the carriage. */ //#define PROBE_TARE #if ENABLED(PROBE_TARE) #define PROBE_TARE_TIME 200 // (ms) Time to hold tare pin #define PROBE_TARE_DELAY 200 // (ms) Delay after tare before #define PROBE_TARE_STATE HIGH // State to write pin for tare //#define PROBE_TARE_PIN PA5 // Override default pin #if ENABLED(PROBE_ACTIVATION_SWITCH) //#define PROBE_TARE_ONLY_WHILE_INACTIVE // Fail to tare/probe if PROBE_ACTIVATION_SWITCH is active #endif #endif /** * Probe Enable / Disable * The probe only provides a triggered signal when enabled. */ //#define PROBE_ENABLE_DISABLE #if ENABLED(PROBE_ENABLE_DISABLE) //#define PROBE_ENABLE_PIN -1 // Override the default pin here #endif /** * Multiple Probing * * You may get improved results by probing 2 or more times. * With EXTRA_PROBING the more atypical reading(s) will be disregarded. * OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * A total of 2 does fast/slow probes with a weighted average. * A total of 3 or more adds more slow probes, taking the average. */ //#define MULTIPLE_PROBING 2 //#define EXTRA_PROBING 1 /** * Z probes require clearance when deploying, stowing, and moving between * probe points to avoid hitting the bed and other hardware. * Servo-mounted probes require extra space for the arm to rotate. * Inductive probes need space to keep from triggering early. * * Use these settings to specify the distance (mm) to raise the probe (or * lower the bed). The values set here apply over and above any (negative) * probe Z Offset set with NOZZLE_TO_PROBE_OFFSET, M851, or the LCD. * Only integer values >= 1 are valid here. * * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle. * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle. */ #define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes //#define Z_AFTER_PROBING 5 // Z position after probing is done #define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping // For M851 give a range for adjusting the Z probe offset #define Z_PROBE_OFFSET_RANGE_MIN -20 #define Z_PROBE_OFFSET_RANGE_MAX 20 // Enable the M48 repeatability test to test probe accuracy //#define Z_MIN_PROBE_REPEATABILITY_TEST // Before deploy/stow pause for user confirmation //#define PAUSE_BEFORE_DEPLOY_STOW #if ENABLED(PAUSE_BEFORE_DEPLOY_STOW) //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe #endif /** * Enable one or more of the following if probing seems unreliable. * Heaters and/or fans can be disabled during probing to minimize electrical * noise. A delay can also be added to allow noise and vibration to settle. * These options are most useful for the BLTouch probe, but may also improve * readings with inductive probes and piezo sensors. */ //#define PROBING_HEATERS_OFF // Turn heaters off when probing #if ENABLED(PROBING_HEATERS_OFF) //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //#define WAIT_FOR_HOTEND // Wait for hotend to heat back up between probes (to improve accuracy & prevent cold extrude) #endif //#define PROBING_FANS_OFF // Turn fans off when probing //#define PROBING_ESTEPPERS_OFF // Turn all extruder steppers off when probing //#define PROBING_STEPPERS_OFF // Turn all steppers off (unless needed to hold position) when probing (including extruders) //#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors // Require minimum nozzle and/or bed temperature for probing //#define PREHEAT_BEFORE_PROBING #if ENABLED(PREHEAT_BEFORE_PROBING) #define PROBING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time #define PROBING_BED_TEMP 60 #endif // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 // :{ 0:'Low', 1:'High' } #define X_ENABLE_ON 0 #define Y_ENABLE_ON 0 #define Z_ENABLE_ON 0 #define E_ENABLE_ON 0 // For all extruders //#define I_ENABLE_ON 0 //#define J_ENABLE_ON 0 //#define K_ENABLE_ON 0 //#define U_ENABLE_ON 0 //#define V_ENABLE_ON 0 //#define W_ENABLE_ON 0 // Disable axis steppers immediately when they're not being stepped. // WARNING: When motors turn off there is a chance of losing position accuracy! #define DISABLE_X false #define DISABLE_Y false #define DISABLE_Z false //#define DISABLE_I false //#define DISABLE_J false //#define DISABLE_K false //#define DISABLE_U false //#define DISABLE_V false //#define DISABLE_W false // Turn off the display blinking that warns about possible accuracy reduction //#define DISABLE_REDUCED_ACCURACY_WARNING // @section extruder #define DISABLE_E false // Disable the extruder when not stepping #define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled // @section motion OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. #define INVERT_X_DIR true #define INVERT_Y_DIR true #define INVERT_Z_DIR true //#define INVERT_I_DIR false //#define INVERT_J_DIR false //#define INVERT_K_DIR false //#define INVERT_U_DIR false //#define INVERT_V_DIR false //#define INVERT_W_DIR false // @section extruder // For direct drive extruder v9 set to true, for geared extruder set to false. #define INVERT_E0_DIR true #define INVERT_E1_DIR false #define INVERT_E2_DIR false #define INVERT_E3_DIR false #define INVERT_E4_DIR false #define INVERT_E5_DIR false #define INVERT_E6_DIR false #define INVERT_E7_DIR false // @section homing //#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed. Also enable HOME_AFTER_DEACTIVATE for extra safety. //#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated. Also enable NO_MOTION_BEFORE_HOMING for extra safety. /** * Set Z_IDLE_HEIGHT if the Z-Axis moves on its own when steppers are disabled. * - Use a low value (i.e., Z_MIN_POS) if the nozzle falls down to the bed. * - Use a large value (i.e., Z_MAX_POS) if the bed falls down, away from the nozzle. */ //#define Z_IDLE_HEIGHT Z_HOME_POS //#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure to have this much clearance over your Z_MAX_POS to prevent grinding. //#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z // Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1 //#define I_HOME_DIR -1 //#define J_HOME_DIR -1 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //#define K_HOME_DIR -1 //#define U_HOME_DIR -1 //#define V_HOME_DIR -1 //#define W_HOME_DIR -1 // @section geometry // The size of the printable area #define X_BED_SIZE 300 #define Y_BED_SIZE 300 // Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions. #define X_MIN_POS 0 #define Y_MIN_POS 0 #define Z_MIN_POS 0 #define X_MAX_POS X_BED_SIZE #define Y_MAX_POS Y_BED_SIZE #define Z_MAX_POS 300 //#define I_MIN_POS 0 //#define I_MAX_POS 50 //#define J_MIN_POS 0 //#define J_MAX_POS 50 //#define K_MIN_POS 0 //#define K_MAX_POS 50 //#define U_MIN_POS 0 //#define U_MAX_POS 50 //#define V_MIN_POS 0 //#define V_MAX_POS 50 //#define W_MIN_POS 0 //#define W_MAX_POS 50 /** * Software Endstops * * - Prevent moves outside the set machine bounds. * - Individual axes can be disabled, if desired. * - X and Y only apply to Cartesian robots. * - Use 'M211' to set software endstops on/off or report current state */ // Min software endstops constrain movement within minimum coordinate bounds #define MIN_SOFTWARE_ENDSTOPS #if ENABLED(MIN_SOFTWARE_ENDSTOPS) #define MIN_SOFTWARE_ENDSTOP_X #define MIN_SOFTWARE_ENDSTOP_Y #define MIN_SOFTWARE_ENDSTOP_Z #define MIN_SOFTWARE_ENDSTOP_I #define MIN_SOFTWARE_ENDSTOP_J #define MIN_SOFTWARE_ENDSTOP_K #define MIN_SOFTWARE_ENDSTOP_U #define MIN_SOFTWARE_ENDSTOP_V #define MIN_SOFTWARE_ENDSTOP_W #endif // Max software endstops constrain movement within maximum coordinate bounds OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #define MAX_SOFTWARE_ENDSTOPS #if ENABLED(MAX_SOFTWARE_ENDSTOPS) #define MAX_SOFTWARE_ENDSTOP_X #define MAX_SOFTWARE_ENDSTOP_Y #define MAX_SOFTWARE_ENDSTOP_Z #define MAX_SOFTWARE_ENDSTOP_I #define MAX_SOFTWARE_ENDSTOP_J #define MAX_SOFTWARE_ENDSTOP_K #define MAX_SOFTWARE_ENDSTOP_U #define MAX_SOFTWARE_ENDSTOP_V #define MAX_SOFTWARE_ENDSTOP_W #endif #if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) //#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD #endif /** * Filament Runout Sensors * Mechanical or opto endstops are used to check for the presence of filament. * * IMPORTANT: Runout will only trigger if Marlin is aware that a print job is running. * Marlin knows a print job is running when: * 1. Running a print job from media started with M24. * 2. The Print Job Timer has been started with M75. * 3. The heaters were turned on and PRINTJOB_TIMER_AUTOSTART is enabled. * * RAMPS-based boards use SERVO3_PIN for the first runout sensor. * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. */ //#define FILAMENT_RUNOUT_SENSOR #if ENABLED(FILAMENT_RUNOUT_SENSOR) #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500. #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. //#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder. // This is automatically enabled for MIXING_EXTRUDERs. // Override individually if the runout sensors vary //#define FIL_RUNOUT1_STATE LOW //#define FIL_RUNOUT1_PULLUP //#define FIL_RUNOUT1_PULLDOWN OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //#define FIL_RUNOUT2_STATE LOW //#define FIL_RUNOUT2_PULLUP //#define FIL_RUNOUT2_PULLDOWN //#define FIL_RUNOUT3_STATE LOW //#define FIL_RUNOUT3_PULLUP //#define FIL_RUNOUT3_PULLDOWN //#define FIL_RUNOUT4_STATE LOW //#define FIL_RUNOUT4_PULLUP //#define FIL_RUNOUT4_PULLDOWN //#define FIL_RUNOUT5_STATE LOW //#define FIL_RUNOUT5_PULLUP //#define FIL_RUNOUT5_PULLDOWN //#define FIL_RUNOUT6_STATE LOW //#define FIL_RUNOUT6_PULLUP //#define FIL_RUNOUT6_PULLDOWN //#define FIL_RUNOUT7_STATE LOW //#define FIL_RUNOUT7_PULLUP //#define FIL_RUNOUT7_PULLDOWN //#define FIL_RUNOUT8_STATE LOW //#define FIL_RUNOUT8_PULLUP //#define FIL_RUNOUT8_PULLDOWN // Commands to execute on filament runout. // With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c") // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply. #define FILAMENT_RUNOUT_SCRIPT "M600" // After a runout is detected, continue printing this length of filament // before executing the runout script. Useful for a sensor at the end of // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. //#define FILAMENT_RUNOUT_DISTANCE_MM 25 #ifdef FILAMENT_RUNOUT_DISTANCE_MM // Enable this option to use an encoder disc that toggles the runout pin // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM // large enough to avoid false positives.) //#define FILAMENT_MOTION_SENSOR #endif #endif //======================================================================= ==== //=============================== Bed Leveling ============================== //======================================================================= ==== OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #if ENABLED(SPINDLE_LASER_USE_PWM) #define SPEED_POWER_INTERCEPT 0 // (%) 0-100 i.e., Minimum power percentage #define SPEED_POWER_MIN 0 // (%) 0-100 #define SPEED_POWER_MAX 100 // (%) 0-100 #define SPEED_POWER_STARTUP 80 // (%) M3/M4 speed/power default (with no arguments) #endif // Define the minimum and maximum test pulse time values for a laser test fire function #define LASER_TEST_PULSE_MIN 1 // (ms) Used with Laser Control Menu #define LASER_TEST_PULSE_MAX 999 // (ms) Caution: Menu may not show more than 3 characters #define SPINDLE_LASER_POWERUP_DELAY 50 // (ms) Delay to allow the spindle/laser to come up to speed/power #define SPINDLE_LASER_POWERDOWN_DELAY 50 // (ms) Delay to allow the spindle to stop /** * Laser Safety Timeout * * The laser should be turned off when there is no movement for a period of time. * Consider material flammability, cut rate, and G-code order when setting this * value. Too low and it could turn off during a very slow move; too high and * the material could ignite. */ #define LASER_SAFETY_TIMEOUT_MS 1000 // (ms) /** * Any M3 or G1/2/3/5 command with the 'I' parameter enables continuous inline power mode. * * e.g., 'M3 I' enables continuous inline power which is processed by the planner. * Power is stored in move blocks and applied when blocks are processed by the Stepper ISR. * * 'M4 I' sets dynamic mode which uses the current feedrate to calculate a laser power OCR value. * * Any move in dynamic mode will use the current feedrate to calculate the laser power. * Feed rates are set by the F parameter of a move command e.g. G1 X0 Y10 F6000 * Laser power would be calculated by bit shifting off 8 LSB's. In binary this is div 256. * The calculation gives us ocr values from 0 to 255, values over F65535 will be set as 255 . * More refined power control such as compesation for accell/decell will be addressed in future releases. * OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * M5 I clears inline mode and set power to 0, M5 sets the power output to 0 but leaves inline mode on. */ /** * Enable M3 commands for laser mode inline power planner syncing. * This feature enables any M3 S-value to be injected into the block buffers while in * CUTTER_MODE_CONTINUOUS. The option allows M3 laser power to be commited without waiting * for a planner syncronization */ //#define LASER_POWER_SYNC /** * Scale the laser's power in proportion to the movement rate. * * - Sets the entry power proportional to the entry speed over the nominal speed. * - Ramps the power up every N steps to approximate the speed trapezoid. * - Due to the limited power resolution this is only approximate. */ //#define LASER_POWER_TRAP // // Laser I2C Ammeter (High precision INA226 low/high side module) // //#define I2C_AMMETER #if ENABLED(I2C_AMMETER) #define I2C_AMMETER_IMAX 0.1 // (Amps) Calibration value for the expected current range #define I2C_AMMETER_SHUNT_RESISTOR 0.1 // (Ohms) Calibration shunt resistor value #endif // // Laser Coolant Flow Meter // //#define LASER_COOLANT_FLOW_METER #if ENABLED(LASER_COOLANT_FLOW_METER) #define FLOWMETER_PIN 20 // Requires an external interrupt-enabled pin (e.g., RAMPS 2,3,18,19,20,21) #define FLOWMETER_PPL 5880 // (pulses/liter) Flow meter pulses-per-liter on the input pin #define FLOWMETER_INTERVAL 1000 // (ms) Flow rate calculation interval in milliseconds #define FLOWMETER_SAFETY // Prevent running the laser without the minimum flow rate set below #if ENABLED(FLOWMETER_SAFETY) #define FLOWMETER_MIN_LITERS_PER_MINUTE 1.5 // (liters/min) Minimum flow required when enabled #endif #endif #endif #endif // SPINDLE_FEATURE || LASER_FEATURE OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY /** * Synchronous Laser Control with M106/M107 * * Marlin normally applies M106/M107 fan speeds at a time "soon after" processing * a planner block. This is too inaccurate for a PWM/TTL laser attached to the fan * header (as with some add-on laser kits). Enable this option to set fan/laser * speeds with much more exact timing for improved print fidelity. * * NOTE: This option sacrifices some cooling fan speed options. */ //#define LASER_SYNCHRONOUS_M106_M107 /** * Coolant Control * * Add the M7, M8, and M9 commands to turn mist or flood coolant on and off. * * Note: COOLANT_MIST_PIN and/or COOLANT_FLOOD_PIN must also be defined. */ //#define COOLANT_CONTROL #if ENABLED(COOLANT_CONTROL) #define COOLANT_MIST // Enable if mist coolant is present #define COOLANT_FLOOD // Enable if flood coolant is present #define COOLANT_MIST_INVERT false // Set "true" if the on/off function is reversed #define COOLANT_FLOOD_INVERT false // Set "true" if the on/off function is reversed #endif // @section filament width /** * Filament Width Sensor * * Measures the filament width in real-time and adjusts * flow rate to compensate for any irregularities. * * Also allows the measured filament diameter to set the * extrusion rate, so the slicer only has to specify the * volume. * * Only a single extruder is supported at this time. * * 34 RAMPS_14 : Analog input 5 on the AUX2 connector * 81 PRINTRBOARD : Analog input 2 on the Exp1 connector (version B,C,D,E) * 301 RAMBO : Analog input 3 * * Note: May require analog pins to be defined for other boards. */ //#define FILAMENT_WIDTH_SENSOR OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY #if ENABLED(FILAMENT_WIDTH_SENSOR) #define FILAMENT_SENSOR_EXTRUDER_NUM 0 // Index of the extruder that has the filament sensor. :[0,1,2,3,4] #define MEASUREMENT_DELAY_CM 14 // (cm) The distance from the filament sensor to the melting chamber #define FILWIDTH_ERROR_MARGIN 1.0 // (mm) If a measurement differs too much from nominal width ignore it #define MAX_MEASUREMENT_DELAY 20 // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM. #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA // Set measured to nominal initially // Display filament width on the LCD status line. Status messages will expire after 5 seconds. //#define FILAMENT_LCD_DISPLAY #endif // @section power /** * Power Monitor * Monitor voltage (V) and/or current (A), and -when possiblepower (W) * * Read and configure with M430 * * The current sensor feeds DC voltage (relative to the measured current) to an analog pin * The voltage sensor feeds DC voltage (relative to the measured voltage) to an analog pin */ //#define POWER_MONITOR_CURRENT // Monitor the system current //#define POWER_MONITOR_VOLTAGE // Monitor the system voltage #if ENABLED(POWER_MONITOR_CURRENT) #define POWER_MONITOR_VOLTS_PER_AMP 0.05000 // Input voltage to the MCU analog pin per amp - DO NOT apply more than ADC_VREF! #define POWER_MONITOR_CURRENT_OFFSET 0 // Offset (in amps) applied to the calculated current #define POWER_MONITOR_FIXED_VOLTAGE 13.6 // Voltage for a current sensor with no voltage sensor (for power display) #endif #if ENABLED(POWER_MONITOR_VOLTAGE) #define POWER_MONITOR_VOLTS_PER_VOLT 0.077933 // Input voltage to the MCU analog pin per volt - DO NOT apply more than ADC_VREF! #define POWER_MONITOR_VOLTAGE_OFFSET 0 // Offset (in volts) applied to the calculated voltage #endif // @section safety /** * Stepper Driver Anti-SNAFU Protection * * If the SAFE_POWER_PIN is defined for your board, Marlin will check OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * that stepper drivers are properly plugged in before applying power. * Disable protection if your stepper drivers don't support the feature. */ //#define DISABLE_DRIVER_SAFE_POWER_PROTECT // @section cnc /** * CNC Coordinate Systems * * Enables G53 and G54-G59.3 commands to select coordinate systems * and G92.1 to reset the workspace to native machine space. */ //#define CNC_COORDINATE_SYSTEMS // @section reporting /** * Auto-report fan speed with M123 S<seconds> * Requires fans with tachometer pins */ //#define AUTO_REPORT_FANS /** * Auto-report temperatures with M155 S<seconds> */ #define AUTO_REPORT_TEMPERATURES #if ENABLED(AUTO_REPORT_TEMPERATURES) && TEMP_SENSOR_REDUNDANT //#define AUTO_REPORT_REDUNDANT // Include the "R" sensor in the autoreport #endif /** * Auto-report position with M154 S<seconds> */ //#define AUTO_REPORT_POSITION /** * Include capabilities in M115 output */ #define EXTENDED_CAPABILITIES_REPORT #if ENABLED(EXTENDED_CAPABILITIES_REPORT) //#define M115_GEOMETRY_REPORT #endif // @section security /** * Expected Printer Check * Add the M16 G-code to compare a string to the MACHINE_NAME. * M16 with a non-matching string causes the printer to halt. */ //#define EXPECTED_PRINTER_CHECK // @section volumetrics /** * Disable all Volumetric extrusion options OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY */ //#define NO_VOLUMETRICS #if DISABLED(NO_VOLUMETRICS) /** * Volumetric extrusion default state * Activate to make volumetric extrusion the default method, * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * * M200 D0 to disable, M200 Dn to set a new diameter (and enable volumetric). * M200 S0/S1 to disable/enable volumetric extrusion. */ //#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_EXTRUDER_LIMIT #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT) /** * Default volumetric extrusion limit in cubic mm per second (mm^3/sec). * This factory setting applies to all extruders. * Use 'M200 [T<extruder>] L<limit>' to override and 'M502' to reset. * A non-zero value activates Volume-based Extrusion Limiting. */ #define DEFAULT_VOLUMETRIC_EXTRUDER_LIMIT 0.00 // (mm^3/sec) #endif #endif // @section reporting // Extra options for the M114 "Current Position" report //#define M114_DETAIL // Use 'M114` for details to check planner calculations //#define M114_REALTIME // Real current position based on forward kinematics //#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed. //#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others) // @section gcode /** * Spend 28 bytes of SRAM to optimize the G-code parser */ #define FASTER_GCODE_PARSER #if ENABLED(FASTER_GCODE_PARSER) //#define GCODE_QUOTED_STRINGS // Support for quoted string parameters #endif // Support for MeatPack G-code compression (https://github.com/scottmudge/OctoPrint-MeatPack) //#define MEATPACK_ON_SERIAL_PORT_1 //#define MEATPACK_ON_SERIAL_PORT_2 OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //#define GCODE_CASE_INSENSITIVE // Accept G-code sent to the firmware in lowercase //#define REPETIER_GCODE_M360 // Add commands originally from Repetier FW /** * Enable this option for a leaner build of Marlin that removes all * workspace offsets, simplifying coordinate transformations, leveling, etc. * * - M206 and M428 are disabled. * - G92 will revert to its behavior from Marlin 1.0. */ //#define NO_WORKSPACE_OFFSETS /** * CNC G-code options * Support CNC-style G-code dialects used by laser cutters, drawing machine cams, etc. * Note that G0 feedrates should be used with care for 3D printing (if used at all). * High feedrates may cause ringing and harm print quality. */ //#define PAREN_COMMENTS // Support for parentheses-delimited comments //#define GCODE_MOTION_MODES // Remember the motion mode (G0 G1 G2 G3 G5 G38.X) and apply for X Y Z E F, etc. // Enable and set a (default) feedrate for all G0 moves //#define G0_FEEDRATE 3000 // (mm/min) #ifdef G0_FEEDRATE //#define VARIABLE_G0_FEEDRATE // The G0 feedrate is set by F in G0 motion mode #endif // @section gcode /** * Startup commands * * Execute certain G-code commands immediately after power-on. */ //#define STARTUP_COMMANDS "M17 Z" /** * G-code Macros * * Add G-codes M810-M819 to define and run G-code macros. * Macros are not saved to EEPROM. */ //#define GCODE_MACROS #if ENABLED(GCODE_MACROS) #define GCODE_MACROS_SLOTS 5 // Up to 10 may be used #define GCODE_MACROS_SLOT_SIZE 50 // Maximum length of a single macro #endif /** OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY * User-defined menu items to run custom G-code. * Up to 25 may be defined, but the actual number is LCD-dependent. */ // @section custom main menu // Custom Menu: Main Menu //#define CUSTOM_MENU_MAIN #if ENABLED(CUSTOM_MENU_MAIN) //#define CUSTOM_MENU_MAIN_TITLE "Custom Commands" #define CUSTOM_MENU_MAIN_SCRIPT_DONE "M117 User Script Done" #define CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK //#define CUSTOM_MENU_MAIN_SCRIPT_RETURN // Return to status screen after a script #define CUSTOM_MENU_MAIN_ONLY_IDLE // Only show custom menu when the machine is idle #define MAIN_MENU_ITEM_1_DESC "Home & UBL Info" #define MAIN_MENU_ITEM_1_GCODE "G28\nG29 W" //#define MAIN_MENU_ITEM_1_CONFIRM // Show a confirmation dialog before this action #define MAIN_MENU_ITEM_2_DESC "Preheat for " PREHEAT_1_LABEL #define MAIN_MENU_ITEM_2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) //#define MAIN_MENU_ITEM_2_CONFIRM //#define MAIN_MENU_ITEM_3_DESC "Preheat for " PREHEAT_2_LABEL //#define MAIN_MENU_ITEM_3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) //#define MAIN_MENU_ITEM_3_CONFIRM //#define MAIN_MENU_ITEM_4_DESC "Heat Bed/Home/Level" //#define MAIN_MENU_ITEM_4_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29" //#define MAIN_MENU_ITEM_4_CONFIRM //#define MAIN_MENU_ITEM_5_DESC "Home & Info" //#define MAIN_MENU_ITEM_5_GCODE "G28\nM503" //#define MAIN_MENU_ITEM_5_CONFIRM #endif // @section custom config menu // Custom Menu: Configuration Menu //#define CUSTOM_MENU_CONFIG #if ENABLED(CUSTOM_MENU_CONFIG) //#define CUSTOM_MENU_CONFIG_TITLE "Custom Commands" #define CUSTOM_MENU_CONFIG_SCRIPT_DONE "M117 Wireless Script Done" #define CUSTOM_MENU_CONFIG_SCRIPT_AUDIBLE_FEEDBACK //#define CUSTOM_MENU_CONFIG_SCRIPT_RETURN // Return to status screen after a script #define CUSTOM_MENU_CONFIG_ONLY_IDLE // Only show custom menu when the machine is idle #define CONFIG_MENU_ITEM_1_DESC "Wifi ON" #define CONFIG_MENU_ITEM_1_GCODE "M118 [ESP110] WIFI-STA pwd=12345678" OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY //#define CONFIG_MENU_ITEM_1_CONFIRM // Show a confirmation dialog before this action #define CONFIG_MENU_ITEM_2_DESC "Bluetooth ON" #define CONFIG_MENU_ITEM_2_GCODE "M118 [ESP110] BT pwd=12345678" //#define CONFIG_MENU_ITEM_2_CONFIRM //#define CONFIG_MENU_ITEM_3_DESC "Radio OFF" //#define CONFIG_MENU_ITEM_3_GCODE "M118 [ESP110] OFF pwd=12345678" //#define CONFIG_MENU_ITEM_3_CONFIRM //#define CONFIG_MENU_ITEM_4_DESC "Wifi ????" //#define CONFIG_MENU_ITEM_4_GCODE "M118 ????" //#define CONFIG_MENU_ITEM_4_CONFIRM //#define CONFIG_MENU_ITEM_5_DESC "Wifi ????" //#define CONFIG_MENU_ITEM_5_GCODE "M118 ????" //#define CONFIG_MENU_ITEM_5_CONFIRM #endif // @section custom buttons /** * User-defined buttons to run custom G-code. * Up to 25 may be defined. */ //#define CUSTOM_USER_BUTTONS #if ENABLED(CUSTOM_USER_BUTTONS) //#define BUTTON1_PIN -1 #if PIN_EXISTS(BUTTON1) #define BUTTON1_HIT_STATE LOW // State of the triggered button. NC=LOW. NO=HIGH. #define BUTTON1_WHEN_PRINTING false // Button allowed to trigger during printing? #define BUTTON1_GCODE "G28" #define BUTTON1_DESC "Homing" // Optional string to set the LCD status #endif //#define BUTTON2_PIN -1 #if PIN_EXISTS(BUTTON2) #define BUTTON2_HIT_STATE LOW #define BUTTON2_WHEN_PRINTING false #define BUTTON2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) #define BUTTON2_DESC "Preheat for " PREHEAT_1_LABEL #endif //#define BUTTON3_PIN -1 #if PIN_EXISTS(BUTTON3) #define BUTTON3_HIT_STATE LOW #define BUTTON3_WHEN_PRINTING false #define BUTTON3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) #define BUTTON3_DESC "Preheat for " PREHEAT_2_LABEL #endif #endif OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY // @section host /** * Host Action Commands * * Define host streamer action commands in compliance with the standard. * * See https://reprap.org/wiki/G-code#Action_commands * Common commands ........ poweroff, pause, paused, resume, resumed, cancel * G29_RETRY_AND_RECOVER .. probe_rewipe, probe_failed * * Some features add reason codes to extend these commands. * * Host Prompt Support enables Marlin to use the host for user prompts so * filament runout and other processes can be managed from the host side. */ //#define HOST_ACTION_COMMANDS #if ENABLED(HOST_ACTION_COMMANDS) //#define HOST_PAUSE_M76 // Tell the host to pause in response to M76 //#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback #if ENABLED(HOST_PROMPT_SUPPORT) //#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications #endif //#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start //#define HOST_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down #endif // @section extras /** * Cancel Objects * * Implement M486 to allow Marlin to skip objects */ //#define CANCEL_OBJECTS #if ENABLED(CANCEL_OBJECTS) #define CANCEL_OBJECTS_REPORTING // Emit the current object as a status message #endif /** * I2C position encoders for closed loop control. * Developed by Chris Barr at Aus3D. * * Wiki: https://wiki.aus3d.com.au/Magnetic_Encoder * Github: https://github.com/Aus3D/MagneticEncoder * * Supplier: https://aus3d.com.au/magnetic-encoder-module * Alternative Supplier: https://reliabuild3d.com/ * * Reliabuild encoders have been modified to improve reliability. * @section i2c encoders OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY { 0.1, MMU2_CAN_LOAD_FEEDRATE }, \ { 60.0, MMU2_CAN_LOAD_FEEDRATE }, \ { -52.0, MMU2_CAN_LOAD_FEEDRATE } #define MMU2_CAN_LOAD_RETRACT 6.0 // (mm) Keep under the distance between Load Sequence values #define MMU2_CAN_LOAD_DEVIATION 0.8 // (mm) Acceptable deviation #define MMU2_CAN_LOAD_INCREMENT 0.2 // (mm) To reuse within MMU2 module #define MMU2_CAN_LOAD_INCREMENT_SEQUENCE \ { -MMU2_CAN_LOAD_INCREMENT, MMU2_CAN_LOAD_FEEDRATE } #else /** * MMU1 Extruder Sensor * * Support for a Průša (or other) IR Sensor to detect filament near the extruder * and make loading more reliable. Suitable for an extruder equipped with a filament * sensor less than 38mm from the gears. * * During loading the extruder will stop when the sensor is triggered, then do a last * move up to the gears. If no filament is detected, the MMU2 can make some more attempts. * If all attempts fail, a filament runout will be triggered. */ //#define MMU_EXTRUDER_SENSOR #if ENABLED(MMU_EXTRUDER_SENSOR) #define MMU_LOADING_ATTEMPTS_NR 5 // max. number of attempts to load filament if first load fail #endif #endif //#define MMU2_DEBUG // Write debug info to serial output #endif // HAS_PRUSA_MMU2 /** * Advanced Print Counter settings * @section stats */ #if ENABLED(PRINTCOUNTER) #define SERVICE_WARNING_BUZZES 3 // Activate up to 3 service interval watchdogs //#define SERVICE_NAME_1 "Service S" //#define SERVICE_INTERVAL_1 100 // print hours //#define SERVICE_NAME_2 "Service L" //#define SERVICE_INTERVAL_2 200 // print hours //#define SERVICE_NAME_3 "Service 3" //#define SERVICE_INTERVAL_3 1 // print hours #endif // @section develop OPTIMIZACIÓN DE UNA IMPRESORA 3D TIPO CORE XY // // M100 Free Memory Watcher to debug memory usage // //#define M100_FREE_MEMORY_WATCHER // // M42 - Set pin states // //#define DIRECT_PIN_CONTROL // // M43 - display pin status, toggle pins, watch pins, watch endstops & toggle LED, test servo probe // //#define PINS_DEBUGGING // Enable Tests that will run at startup and produce a report //#define MARLIN_TEST_BUILD // Enable Marlin dev mode which adds some special commands //#define MARLIN_DEV_MODE #if ENABLED(MARLIN_DEV_MODE) /** * D576 - Buffer Monitoring * To help diagnose print quality issues stemming from empty command buffers. */ //#define BUFFER_MONITORING #endif /** * Postmortem Debugging captures misbehavior and outputs the CPU status and backtrace to serial. * When running in the debugger it will break for debugging. This is useful to help understand * a crash from a remote location. Requires ~400 bytes of SRAM and 5Kb of flash. */ //#define POSTMORTEM_DEBUGGING /** * Software Reset options */ //#define SOFT_RESET_VIA_SERIAL // 'KILL' and '^X' commands will soft-reset the controller //#define SOFT_RESET_ON_KILL // Use a digital button to softreset the controller after KILL // Report uncleaned reset reason from register r2 instead of MCUSR. Supported by Optiboot on AVR. //#define OPTIBOOT_RESET_REASON