Documente Academic
Documente Profesional
Documente Cultură
La siguiente es una guía extraída de la página oficial de los desarrolladores del firmware Marlín,
traducida al español mediante Google traductor
Contenido
Configurando Marlin
o Directivas del compilador
o Fuentes de documentación
o Antes de que empieces
Configuration.h
o Versiones de configuración
o Información de firmware
o Información de hardware
o Información del extrusor
o Fuente de alimentación
o Configuraciones térmicas
o Cinemática
o Topes finales
o Movimiento
o Opciones de sonda Z
o Conductores paso a paso
o Homing and Bounds
o Sensor de salida de filamento
o Nivelación de cama
o Opciones de referencia
o Características Adicionales
o Idioma LCD
o Tipo de LCD
o Tarjeta SD
o Codificador
o Altavoz
o Controlador LCD
o Características adicionales
Configuration_adv.h
o Opciones de temperatura
o Ventiladores de refrigeración
o Luz de la caja
o Topes finales siempre activados
o Z Late Enable
o Controlador externo de circuito cerrado
o Steppers duales / topes dobles
o Doble carro X
o Solenoide
o Buscador de blancos
o BLTouch
o Alineación automática Z Steppers
o TODO Opciones
o Tarjeta SD Extras
Universidad Mayor de San Simón
Facultad de Ciencias y Tecnología
Ing. Electromecánica
Univ. Miguel Angel Mamani Costas
o Extras de pantalla gráfica
o Perro guardián
o Babystepping
o Avance lineal
o Límites Delta / Scara
o Límites de malla personalizados
o Código G mejorado
o Pasos mínimos por segmento
o Pulso paso a paso mínimo
o Calentadores Paralelos
o Buffer / Hosts
o Retracción de firmware
o Velocidad extra del ventilador
o Pausa avanzada
o Conductores paso a paso
o Bus experimental i2c
o Husillo / Láser
o Sensor de ancho de filamento
o Sistemas de coordenadas CNC
o Depuración de pines
o Informe automático de temperatura
o Informe de capacidades extendidas
o Modo volumétrico predeterminado
o Sin compensaciones de espacio de trabajo
o Proporción de fuente proporcional
o Analizador de código G más rápido
o Aún más opciones ...
o Configuración avanzada de Prusa MMU2 (desde Marlin 2.0)
17/10/2019 ¿Qué es marlin? El | Firmware Marlin
¿Qué es marlin?
Desde el principio, Marlin fue construido por y para entusiastas de RepRap (http://reprap.org/wiki/) para ser
un controlador de impresora sencillo, con able y adaptable que "simplemente funciona". Como testimonio
de su calidad, Marlin es utilizado por varias impresoras 3D comerciales respetadas. Ultimaker, Printrbot,
AlephObjects (Lulzbot) y Prusa Research son solo algunos de los proveedores que envían una variante de
Marlin. Marlin también es capaz de manejar CNC y grabadores láser.
Una clave para la popularidad de Marlin es que se ejecuta en el bajo costo de 8 bits de Atmel AVR
(http://www.atmel.com/products/microcontrollers/avr/) microcontroladores
(http://en.wikipedia.org/wiki/Microcontroller) - Marlin 2.x ha añadido soporte para las placas de 32 bits.
Estos chips están en el centro de la popular plataforma Arduino / Genuino de (http://arduino.cc)código
abierto (https://en.wikipedia.org/wiki/Open-source_hardware) . Las plataformas de referencia para Marlin es
un Arduino Mega2560 con RAMPS 1.4 y Re-Arm with Ramps 1.4. (http://arduino.cc)
Como producto comunitario, Marlin pretende ser adaptable a la mayor cantidad de tableros y
con guraciones posibles. Queremos que sea con gurable, personalizable, extensible y económico tanto
para a cionados como para vendedores. Una compilación de Marlin puede ser muy pequeña, para usar en
una impresora sin cabeza con solo hardware modesto. Las características se habilitan según sea necesario
para adaptar Marlin a los componentes agregados.
Principales características
Código G (/meta/gcode/) con todas las funciones con más de 150 comandos
Conjunto completo de movimientos de código G, que incluye líneas, arcos y curvas Bézier
http://marlinfw.org/docs/basics/introduction.html 1/4
17/10/2019 ¿Qué es marlin? El | Firmware Marlin
Marlin implementa un proceso de fabricación aditiva llamado Fused Deposition Modeling (FDM)
(https://en.wikipedia.org/wiki/Fused_deposition_modeling) , también conocido como Fused Filament
Fabrication (FFF) (https://en.wikipedia.org/wiki/Fused_ lament_fabrication) . En este proceso, un motor
empuja el lamento de plástico a través de una boquilla caliente que funde y extruye el material mientras la
boquilla se mueve bajo el control de la computadora. Después de varios minutos (o muchas horas) de
colocar capas delgadas de plástico, el resultado es un objeto físico.
A medida que Marlin recibe comandos de movimiento, los agrega a una cola de movimiento que se
ejecutará en el orden recibido. La "interrupción paso a paso" procesa la cola, convirtiendo movimientos
lineales en pulsos electrónicos sincronizados con precisión a los motores paso a paso. Incluso a velocidades
modestas, Marlin necesita generar miles de pulsos paso a paso por segundo. (p. ej., 80 pasos por mm * 50
mm / s = ¡4000 pasos por segundo!) Dado que la velocidad de la CPU limita la rapidez con que se puede
mover la máquina, ¡siempre estamos buscando nuevas formas de optimizar la interrupción gradual!
Los calentadores y sensores se administran en una segunda interrupción que se ejecuta a una velocidad
mucho más lenta, mientras que el bucle principal maneja el procesamiento de comandos, la actualización
de la pantalla y los eventos del controlador. Por razones de seguridad, Marlin se reiniciará si la CPU se
sobrecarga demasiado para leer los sensores.
Imprimir cosas
Modelado
http://marlinfw.org/docs/basics/introduction.html 2/4
17/10/2019 ¿Qué es marlin? El | Firmware Marlin
Si bien Marlin solo imprime el código G, la mayoría de las cortadoras solo cortan archivos STL.
Antes de que Marlin pueda soñar con imprimir, primero necesitará un modelo 3D
(http://www.thingiverse.com/thing:7900) . Puede descargar (http://www.thingiverse.com/thing:7900/zip)
modelos o crear los suyos propios con uno de los muchos programas CAD gratuitos, como FreeCAD
(http://www.freecadweb.org/) , OpenSCAD (http://www.openscad.org/) , Tinkercad
(https://www.tinkercad.com/) , Autodesk Fusion 360 (https://www.autodesk.com/products/fusion-
360/overview) , SketchUp (http://www.sketchup.com/) , etc.
Se necesita un alto grado de conocimiento para modelar objetos complejos como un cráneo T-Rex
(http://www.thingiverse.com/thing:308335) , pero otros objetos pueden ser bastante simples de modelar
(http://www.thingiverse.com/thing:172175) . Para obtener ideas y probar cosas, explore sitios como
Thingiverse (http://www.thingiverse.com/explore/popular) y YouMagine (http://www.youmagine.com/) e
imprima cosas por diversión.
Rebanar
Los rebanadores preparan un modelo 3D sólido dividiéndolo en rodajas nas (capas). En el proceso, genera
el código G (https://en.wikipedia.org/wiki/G-code) que le dice a la impresora en minucioso detalle cómo
reproducir el modelo. Hay muchas cortadoras para elegir, que incluyen:
Cura (https://ultimaker.com/en/products/cura-software) .
Slic3r (https://slic3r.org/) .
PrusaSlicer (https://www.prusa3d.com/prusaslicer/) ( anteriormente Slic3r Prusa Edition ) El nuevo Kid
en el bloque basado en Slic3r.
Simplify3D (https://www.simplify3d.com/) es una oferta comercial.
Impresión
Marlin puede controlarse completamente desde un host o en modo independiente desde una tarjeta SD.
Incluso sin un controlador LCD, se puede iniciar una impresión SD independiente desde un host, por lo que
su computadora puede liberarse de la impresora.
El software host está disponible para varias plataformas, incluidos sistemas de escritorio, Raspberry Pi y
tabletas Android. Cualquier dispositivo con un puerto USB y terminal serie puede actuar técnicamente como
un host, pero tendrá una mejor experiencia de impresión utilizando un software host diseñado
especí camente para impresoras 3D. Las selecciones actuales incluyen:
http://marlinfw.org/docs/basics/introduction.html 3/4
17/10/2019 ¿Qué es marlin? El | Firmware Marlin
Muchas impresoras 3D se envían con una versión personalizada de Repetier o Cura. Si bien esto ayuda a
asociar la marca de la impresora con un software complementario, estas versiones generalmente son
obsoletas y reciben pocas actualizaciones. En su lugar, le recomendamos que descargue la última versión
genérica de su software host preferido.
Volver arriba
http://marlinfw.org/docs/basics/introduction.html 4/4
16/10/2019 Configurando Marlin | Firmware Marlin
Configuration.h contiene las con guraciones principales para la selección de hardware, idioma y controlador, y
con guraciones para las características y componentes más comunes.
Configuration_adv.h ofrece opciones de personalización más detalladas, complementos, funciones experimentales y
otros servicios esotéricos.
Estos dos archivos contienen todas las opciones de con guración de tiempo de construcción de Marlin. Simplemente edite o
reemplace estos archivos antes de crear y cargar Marlin en el tablero. Se incluye una variedad de con guraciones
preconstruidas en la config/examples carpeta para comenzar.
Para usar con guraciones de una versión anterior de Marlin, intente colocarlas en el nuevo Marlin y en el edi cio. Como
parte del proceso de compilación, SanityCheck.h imprimirá mensajes de error útiles que explican qué se debe cambiar.
También una herramienta como Winmerge (http://winmerge.org/) es útil para comparar el archivo antiguo con el nuevo y
puede copiar la con guración.
La con guración se puede habilitar, deshabilitar y asignar valores utilizando la sintaxis del preprocesador C de esta manera:
Fuentes de documentación
La fuente más autorizada en los detalles de con guración siempre serán los propios archivos de con guración .
Proporcionan buenas descripciones de cada opción, y son ellos mismos la fuente de la mayor parte de la información
presentada aquí.
Si nunca antes con guró y calibró una impresora 3D, estos son algunos buenos recursos:
Calibración (http://reprap.org/wiki/Calibration)
Calibración de pasos por unidad (http://youtu.be/wAL9d7FgInk)
Calculadoras de Prusa (http://calculator.josefprusa.cz)
Guía de calibración del cazador tri d (http://reprap.org/wiki/Tri d_Hunter%27s_Calibration_Guide)
El conjunto de calibración esencial (http://www.thingiverse.com/thing:5573)
Calibración de su RepRap (https://sites.google.com/site/repraplogphase/calibration-of-your-reprap)
Caja de calibración XY 20 mm (http://www.thingiverse.com/thing:298812)
Referencia del código G (http://reprap.org/wiki/G-code)
Marlin3DprinterTool (https://github.com/cabbagecreek/Marlin3DprinterTool)
Para obtener la Configuration.h con guración correcta, necesitará saber lo siguiente acerca de su impresora:
Configuration.h
La con guración básica y predeterminada de Marlin se encuentra en el Configuration.h archivo. La mayoría de estas
con guraciones son jas. Una vez que compilas a Marlin, eso es todo. Para cambiarlos necesita volver a compilar. Sin
embargo, varios elementos Configuration.h solo proporcionan valores predeterminados -con guración de fábrica- que
pueden cambiarse a través de la interfaz de usuario, almacenarse en EEPROM y recargarse o restaurarse a los valores
iniciales.
Las con guraciones que se pueden cambiar y guardar en EEPROM están marcadas con . Opciones marcadas con
se puede cambiar desde el controlador LCD.
Recuerde que la con guración guardada en EEPROM aún puede estar activa después de actualizar el nuevo rmware.
Siempre envíe M502 , M500 o “Reset EEPROM” de la pantalla LCD después de parpadear.
Esta sección sigue el orden de las con guraciones a medida que aparecen. El orden no siempre es lógico, por lo que "Buscar
en la página" puede ser útil. Hemos tratado de mantener descripciones breves y al grano. Para obtener información más
detallada sobre diversos temas, lea los artículos principales y siga los enlaces proporcionados en las descripciones de las
opciones.
Marlin ahora busca una versión de con guración y no compilará sin esta con guración. Si desea actualizar desde una versión
anterior de Marlin, agregue esta línea a su antiguo archivo de con guración. Durante la compilación, Marlin arrojará errores
que explican lo que debe cambiarse.
Información de rmware
#define STRING_CONFIG_H_AUTHOR "(none, default config)"
#define SHOW_BOOTSCREEN
#define SHOW_CUSTOM_BOOTSCREEN
#define CUSTOM_STATUS_SCREEN_IMAGE
STRING_CONFIG_H_AUTHOR se muestra en el mensaje de inicio de Marlin y está destinado a identi car el autor (y la
variante opcional) del rmware. Use esta con guración como una forma de identi car de forma exclusiva todas sus
http://marlinfw.org/docs/configuration/configuration.html 2/79
16/10/2019 Configurando Marlin | Firmware Marlin
con guraciones personalizadas. El mensaje de inicio se imprime cuando se conecta al software host, cuando la placa se
reinicia y M115.
SHOW_BOOTSCREEN habilita la pantalla de arranque para controladores LCD.
SHOW_CUSTOM_BOOTSCREEN muestra el mapa de bits en Marlin / _Bootscreen.h al inicio.
CUSTOM_STATUS_SCREEN_IMAGE muestra el mapa de bits en Marlin / _Statusscreen.h en la pantalla de estado.
Información de hardware
Puerto serial
#define SERIAL_PORT 0
El índice del puerto serie integrado que se utilizará para la comunicación principal del host. Cambie esto si, por ejemplo,
necesita conectar un adaptador inalámbrico a pines de puerto no predeterminados.
El primer puerto serie (-1 o 0) siempre será utilizado por el gestor de arranque Arduino, independientemente de esta
con guración.
#define SERIAL_PORT_2 -1
Velocidad de transmisión
#define BAUDRATE 115200
La velocidad de comunicación en serie de la impresora debe ser lo más rápida posible sin generar errores. En la mayoría de
los casos, 115200 ofrece un buen equilibrio entre velocidad y estabilidad. Comience con 250000 y solo baje si comienzan a
aparecer los errores "número de línea" y "suma de veri cación". Tenga en cuenta que algunas placas (p. Ej., Un clon
temperamental de Sanguinololu basado en ATMEGA1284P) pueden no ser capaces de manejar una velocidad en baudios
superior a 57600. Valores permitidos: 2400, 9600, 19200, 38400, 57600, 115200, 250000.
Bluetooth
#define BLUETOOTH
tarjeta madre
#define MOTHERBOARD BOARD_RAMPS_14_EFB
http://marlinfw.org/docs/configuration/configuration.html 3/79
16/10/2019 Configurando Marlin | Firmware Marlin
La placa Sanguino requiere agregar soporte "Sanguino" a Arduino IDE. Abrir Preferences y ubicar el Additional
Boards Manager URLs campo. Copie y pegue esta URL de origen
(https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json) . A
continuación, utilice Tools > Boards > Boards Manager instalar “Sanguino” de la lista. Se requiere una conexión a
internet. (Gracias al blog RepRap de Dust (http://dustsreprap.blogspot.my/2015/06/better-way-to-install-sanguino-
in.html) por el consejo).
Este es el nombre de su impresora como se muestra en la pantalla LCD y por M115 (/docs/gcode/M115.html). Por ejemplo, si
con gura esto en "My Delta", la pantalla LCD mostrará "My Delta ready" cuando se inicie la impresora.
UUID de la máquina
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
Una identi cación única para su impresora 3D. Se puede generar una identi cación única adecuada al azar en
uuidgenerator.net (http://www.uuidgenerator.net/version4) . Algunos programas host y segmentadores pueden usar este
identi cador para diferenciar entre máquinas especí cas en su red.
Este valor debe establecerse en el número total de motores paso a paso E en la máquina, incluso si solo hay una boquilla.
Este es el diámetro de lamento "nominal" como está escrito en el carrete de lamento (1.75, 2.85, 3.0). Si normalmente usa
lamento de 1.75 mm, pero mide físicamente el diámetro como 1.70 mm, aún debe usar 1.75 si eso es lo que ha establecido
en su rebanadora.
Marlin utiliza este valor para compensar el ancho del lamento cuando imprime en modo volumétrico (Ver M200 ), y el
comando de nivelación de lecho uni cado G26 (/docs/gcode/G026.html)cuando imprime una cuadrícula de prueba.
Boquilla individual
#define SINGLENOZZLE
Habilítelo SINGLENOZZLE si tiene un E3D Cyclops o cualquier otro sistema "multi-extrusor" que comparta una sola boquilla.
En una con guración de boquilla única, solo se activa un impulsor de lamento a la vez, y cada uno necesita retraerse antes
de que se pueda cargar el siguiente lamento y comenzar a purgar y extrusionar.
//#define MK2_MULTIPLEXER
La habilitación MK2_MULTIPLEXER permite que un controlador paso a paso en un tablero de control conduzca de dos a ocho
motores paso a paso, uno a la vez.
Prusa MMU2
#define PRUSA_MMU2
Habilite la compatibilidad con la unidad Prusa Multi-material 2. Esto requiere un puerto serie libre en la placa de su
impresora. Para usar el MMU2 también tienes que
habilitar NOZZLE_PARK_FEATURE
establecer EXTRUDADORES = 5
Extrusora de conmutación
http://marlinfw.org/docs/configuration/configuration.html 5/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#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
Una extrusora de conmutación es una extrusora doble que utiliza un solo motor paso a paso para impulsar dos lamentos,
pero solo uno a la vez. El servo se usa para cambiar el lado del extrusor que impulsará el lamento. El motor E también
invierte la dirección del segundo lamento. Establezca la con guración secundaria del servo de acuerdo con las instrucciones
de con guración de su extrusora particular.
Boquilla de conmutación
//#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/raise
#endif
Una boquilla de conmutación es un carro con 2 boquillas. Se utiliza un servo para mover una de las boquillas hacia arriba y
hacia abajo. El servo baja la boquilla activa o eleva la boquilla inactiva. Establezca la con guración secundaria del servo de
acuerdo con las instrucciones de con guración de su extrusora particular.
Dos carros X separados con extrusoras que se conectan a una parte móvil a través de un mecanismo de acoplamiento de
solenoide. Requiere SOL1_PIN y SOL2_PIN.
Dos carros X separados con extrusoras que se conectan a una parte móvil a través de un mecanismo de acoplamiento
magnético utilizando movimientos y sin solenoide.
http://marlinfw.org/docs/configuration/configuration.html 6/79
16/10/2019 Configurando Marlin | Firmware Marlin
#if ENABLED(PARKING_EXTRUDER)
#elif ENABLED(MAGNETIC_PARKING_EXTRUDER)
#define MPE_FAST_SPEED 9000 // (mm/m) Speed for travel before last distance point
#define MPE_SLOW_SPEED 4500 // (mm/m) 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 coupl
#endif
#endif
Ajuste la con guración correspondiente a sus especi caciones para usar con PARKING_EXTRUDER o
MAGNETIC_PARKING_EXTRUDER .
Soporte para cabezales de herramientas intercambiables y acoplables, como el cambiador de herramientas E3D. Los
cabezales de herramientas están bloqueados con un servo.
Admite cabezales de herramientas intercambiables y acoplables con un mecanismo de acoplamiento magnético con
movimiento y sin servo.
Para la cinemática CoreXY / HBot, los cabezales de herramientas se estacionan en un borde y se sujetan con un electroimán.
Admite más de 2 cabezales de herramientas. Ver https://youtu.be/JolbsAKTKf4
http://marlinfw.org/docs/configuration/configuration.html 7/79
16/10/2019 Configurando Marlin | Firmware Marlin
Ajuste la con guración correspondiente a sus especi caciones para usar con SWITCHING_TOOLHEAD , PARKING_EXTRUDER o
MAGNETIC_PARKING_EXTRUDER .
Extrusora mezcladora
//#define MIXING_EXTRUDER
#if ENABLED(MIXING_EXTRUDER)
#define MIXING_STEPPERS 2 // Number of steppers in your mixing extruder
#define MIXING_VIRTUAL_TOOLS 16 // Use the Virtual Tool method with [`M163`](/docs/gcode/M163.html)
//#define DIRECT_MIXING_IN_G1 // Allow ABCDHI mix factors in [`G1`](/docs/gcode/G000-G001.html) mov
#endif
Una extrusora mezcladora usa dos o más motores paso a paso para conducir múltiples lamentos en una cámara de mezcla,
con los lamentos mezclados extruidos desde una sola boquilla. Esta opción agrega la capacidad de establecer una mezcla,
guardar mezclas y recuperar mezclas utilizando el T comando. La extrusora todavía usa un solo eje E, mientras que la mezcla
actual se usa para determinar la proporción de cada lamento a usar. Se G1 (/docs/gcode/G000-G001.html)incluye una
opción de mezcla directa "experimental" .
Compensación de Hotend
//#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle
//#define HOTEND_OFFSET_Y { 0.0, 5.00 } // (mm) relative Y-offset for each nozzle
//#define HOTEND_OFFSET_Z { 0.0, 0.00 } // (mm) relative Z-offset for each nozzle
Se necesitan compensaciones deotend si su extrusora tiene más de una boquilla. Estos valores especi can el desplazamiento
desde la primera boquilla a cada boquilla. Entonces, el primer elemento siempre se establece en 0.0. El siguiente elemento
corresponde a la siguiente boquilla, y así sucesivamente. Agregue más compensaciones si tiene 3 o más boquillas.
http://marlinfw.org/docs/configuration/configuration.html 8/79
16/10/2019 Configurando Marlin | Firmware Marlin
Fuente de alimentación
//#define PSU_CONTROL
//#define PSU_NAME "Power Supply"
#if ENABLED(PSU_CONTROL)
#define PSU_ACTIVE_HIGH false // Set 'false' for ATX (1), 'true' for X-Box (2)
//#define PS_DEFAULT_OFF // Keep power off until enabled directly with M80
Esta opción permite que la placa del controlador para cambiar la fuente de alimentación de 12V y fuera - M80
(/docs/gcode/M80.html), M80 (/docs/gcode/M80.html). Requiere PS_ON_PIN .
//#define PS_DEFAULT_OFF
Habilite esto si no desea que la fuente de alimentación se encienda cuando encienda la impresora. Esto es para impresoras
que tienen dos fuentes de alimentación. Por ejemplo, algunas con guraciones tienen una fuente de alimentación separada
para los calentadores. En esta situación, puede ahorrar energía dejando la fuente de alimentación apagada hasta que sea
necesario. Si no sabes qué es esto, déjalo.
Los sensores de temperatura son componentes vitales en una impresora 3D. Los sensores rápidos y precisos aseguran que
la temperatura estará bien controlada, para mantener el plástico uyendo suavemente y para evitar contratiempos. Utilice
estos ajustes para especi car los sensores de temperatura del hotel y de la cama. Cada impresora 3D tendrá un termistor
hotend, y la mayoría tendrá un termistor de cama.
La lista que se encuentra arriba de estas opciones Configuration.h contiene todos los termistores y termopares que Marlin
conoce y admite. Intente hacer coincidir su marca y modelo con uno de los sensores de la lista. Si no se encuentra ninguna
coincidencia, use un per l para un sensor similar de la misma marca, o pruebe con "1": el per l genérico. Cada per l está
http://marlinfw.org/docs/configuration/configuration.html 9/79
16/10/2019 Configurando Marlin | Firmware Marlin
calibrado para un sensor de temperatura particular, por lo que es importante ser lo más preciso posible.
Es crucial obtener mediciones precisas de temperatura. Como último recurso, utilizar 100k termistor para
TEMP_SENSOR y TEMP_SENSOR_BED aunque sea muy escépticos de la exactitud de la temperatura.
// Dummy thermistor constant temperature readings, for use with 998 and 999
#define DUMMY_THERMISTOR_998_VALUE 25
#define DUMMY_THERMISTOR_999_VALUE 100
Marlin proporciona dos sensores cticios para nes de prueba. Establezca sus lecturas de temperatura constante aquí.
//#define TEMP_SENSOR_1_AS_REDUNDANT
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
Active esta opción para usar el sensor 1 como sensor redundante para el sensor 0. Esta es una forma avanzada de protección
contra fallas del sensor de temperatura. Si la diferencia de temperatura entre los sensores excede a
MAX_REDUNDANT_TEMP_SENSOR_DIFF Marlin, abortará la impresión y desactivará el calentador.
Estabilidad de temperatura
#define TEMP_RESIDENCY_TIME 10 // (seconds)
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early
Los extrusores deben mantener una temperatura estable TEMP_RESIDENCY_TIME antes de M109
(/docs/gcode/M109.html)que regrese con éxito y comience la impresión. Sintonice lo que signi ca "estable" usando
TEMP_HYSTERESIS y TEMP_WINDOW .
La cama debe mantener una temperatura estable TEMP_BED_RESIDENCY_TIME antes de M109 (/docs/gcode/M109.html)que
regrese con éxito y comience la impresión. Sintonice lo que signi ca "estable" usando TEMP_BED_HYSTERESIS y
TEMP_BED_WINDOW .
#define TEMP_CHAMBER_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the targe
Establezca qué tan lejos del objetivo puede estar la cámara y aún se considera aceptable.
Rangos de temperatura
#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 BED_MINTEMP 5
http://marlinfw.org/docs/configuration/configuration.html 10/79
16/10/2019 Configurando Marlin | Firmware Marlin
Estos parámetros ayudan a evitar que la impresora se sobrecaliente y se incendie. Los sensores de temperatura informan
valores anormalmente bajos cuando fallan o se desconectan. Ajústelos al valor más bajo (en grados C) que la máquina pueda
experimentar. Las temperaturas interiores oscilan entre 10 ° C y 40 ° C, pero un valor de 0 podría ser apropiado para un
taller sin calefacción.
Si algún sensor desciende por debajo de la temperatura mínima establecida aquí, Marlin apagará la impresora con un error
"MINTEMP".
Err: MINTEMP : Este error signi ca que su termistor se ha desconectado o se ha convertido en un circuito abierto. (O
la máquina está muy fría).
Temperatura máxima para cada sensor de temperatura. Si Marlin lee una temperatura superior a estos valores, se cerrará
inmediatamente por razones de seguridad. Para el E3D V6 hotend, muchos usan 285 como valor máximo.
Err: MAXTEMP : Este error generalmente signi ca que los cables del sensor de temperatura están en corto entre sí.
También puede indicar un problema con el MOSFET del calentador o el relé que está causando que permanezca
encendido.
Recuerde que cuando el frío y el calor se encuentran con las formas de rocío, y el rocío en la electrónica le dará un
muy mal día. La Calculadora de punto de rocío (http://www.dpcalc.org/) es una buena herramienta para saber si es
probable que corras hacia el rocío.
PID
Marlin utiliza el control PID (Proporcional, Integral, Derivado) ( Wikipedia (https://en.wikipedia.org/wiki/PID_controller) ) para
estabilizar el sistema de calefacción dinámico para los hoteles y la cama. Cuando los valores PID se con guran
correctamente, los calentadores alcanzan sus temperaturas objetivo más rápido, mantienen mejor la temperatura y
experimentan menos desgaste con el tiempo.
Lo más importante es que la con guración correcta de PID evitará un exceso excesivo, lo cual es un peligro para la seguridad.
Durante la calibración PID, use la temperatura objetivo más alta que pretende usar (donde los sobreimpulsos son más
críticos).
Consulte el tema Ajuste de PID (http://reprap.org/wiki/PID_Tuning) en el wiki RepRap para obtener instrucciones detalladas
sobre M303 (/docs/gcode/M303.html)el ajuste automático. La con guración PID debe ajustarse cada vez que se cambia un
hotend, sensor de temperatura, elemento calefactor, placa, voltaje de la fuente de alimentación (12v / 24v) o cualquier otra
cosa relacionada con los circuitos de alto voltaje.
#define PIDTEMP
#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
#define K1 0.95
http://marlinfw.org/docs/configuration/configuration.html 11/79
16/10/2019 Configurando Marlin | Firmware Marlin
Desactivar PIDTEMP para ejecutar extrusoras en modo bang-bang. Bang-bang es un modo binario puro: el calentador está
completamente encendido o apagado por un período prolongado. El control PID utiliza PWM de mayor frecuencia y (en la
mayoría de los casos) es superior para mantener una temperatura estable.
#if ENABLED(PIDTEMP)
//#define PID_EDIT_MENU
//#define PID_AUTOTUNE_MENU
//#define PID_DEBUG
//#define PID_OPENLOOP 1
//#define SLOW_PWM_HEATERS
//#define PID_PARAMS_PER_HOTEND
#define PID_FUNCTIONAL_RANGE 10
Habilite PID_AUTOTUNE_MENU para agregar una opción en la pantalla LCD para ejecutar un ciclo de autoajuste y aplicar
automáticamente el resultado. Habilítelo PID_PARAMS_PER_HOTEND si tiene más de una extrusora y son modelos diferentes.
Valores PID
// Ultimaker
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
// MakerGear
//#define DEFAULT_Kp 7.0
//#define DEFAULT_Ki 0.1
//#define DEFAULT_Kd 12
Los valores PID de muestra se incluyen como referencia, pero no se aplicarán a la mayoría de las con guraciones. Los valores
PID que obtiene M303 (/docs/gcode/M303.html)pueden ser muy diferentes, pero serán mejores para su máquina especí ca.
M301 (/docs/gcode/M301.html)se puede usar para con gurar Hotend PID y también se puede acceder a través de la
pantalla LCD. M304 (/docs/gcode/M304.html)se puede usar para con gurar el PID de la cama. M303
(/docs/gcode/M303.html)debe usarse para ajustar los valores PID antes de usar cualquier nuevo componente hotend.
//#define PIDTEMPBED
Habilite el PIDTEMPBED uso de PID para el calentador de la cama (a la misma frecuencia PWM que las extrusoras). Con el
PID_dT predeterminado, la frecuencia PWM es de 7.689Hz, ideal para conducir una onda cuadrada en una carga resistiva sin
un impacto signi cativo en el calentamiento FET. Esto también funciona bien en un relé de estado sólido Fotek SSR-10DA en
un calentador de 250W. Si su con guración es signi cativamente diferente a esta y no comprende los problemas
involucrados, probablemente no debería usar el PID de la cama hasta que se veri que que su hardware funciona. Use M303
E-1 para ajustar el PID de la cama para esta opción.
//#define BED_LIMIT_SWITCHING
http://marlinfw.org/docs/configuration/configuration.html 12/79
16/10/2019 Configurando Marlin | Firmware Marlin
Habilitar BED_LIMIT_SWITCHING
La potencia máxima entregada a la cama. Todas las formas de control de la cama obedecen esto (PID, bang-bang, bang-bang
con histéresis). Establecer esto en cualquier cosa que no sea 255 habilita una forma de PWM. Al igual que con PIDTEMPBED ,
no habilite esto a menos que el hardware de su cama esté bien con PWM.
#if ENABLED(PIDTEMPBED)
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED
Los valores PID de la cama de muestra se incluyen como referencia, pero use el resultado de M303 E-1
(/docs/gcode/M303.html)su máquina especí ca.
La seguridad
Prevenir la extrusión en frío
#define PREVENT_COLD_EXTRUSION
#define EXTRUDE_MINTEMP 170
La llamada "extrusión en frío" puede dañar una máquina de varias maneras, pero generalmente solo produce lamentos
perforados y un extrusor atascado. Con esta opción, el motor del extrusor no se moverá si el hotend está por debajo de la
temperatura especi cada. Anule esta con guración M302 (/docs/gcode/M302.html)si es necesario.
#define PREVENT_LENGTHY_EXTRUDE
#define EXTRUDE_MAXLENGTH 200
Una extrusión prolongada puede no dañar su máquina, pero puede ser un desperdicio terrible de lamento. Esta
característica está diseñada para evitar que un error tipográ co o falla en un G1 (/docs/gcode/G000-G001.html)comando
extruya una enorme cantidad de lamento. Para con guraciones de Bowden, la longitud máxima debe establecerse mayor o
igual que la longitud de carga / expulsión.
http://marlinfw.org/docs/configuration/configuration.html 13/79
16/10/2019 Configurando Marlin | Firmware Marlin
Protección térmica
La protección térmica es una de las características de seguridad más vitales en Marlin, ya que permite que el rmware
detecte una mala situación y apague los calentadores antes de que vaya demasiado lejos. Considere lo que sucede cuando
un termistor se suelta durante la impresión. El rmware ve una lectura de baja temperatura, por lo que mantiene el calor
encendido. Mientras la lectura de temperatura sea baja, el hotend continuará calentándose inde nidamente, lo que
provocará humo, supuración, una impresión arruinada y posiblemente incluso un incendio.
1. Veri que que la temperatura esté realmente aumentando cuando un calentador está encendido. Si la temperatura no
sube lo su ciente dentro de un cierto período de tiempo (por defecto, 2 grados en 20 segundos), la máquina se apagará
con un Heating failed error " ". Esto detectará un termistor desconectado, suelto o mal con gurado, o un calentador
desconectado.
2. Monitorear la estabilidad térmica. Si la temperatura medida se aleja demasiado de la temperatura objetivo durante
demasiado tiempo, la máquina se apagará con un Thermal runaway error " ". Este error puede indicar un contacto
de ciente entre el termistor y el extremo caliente, un ajuste de PID de ciente o un ambiente frío.
Se encuentran más opciones de protección térmica en Configuration_adv.h . En la mayoría de las con guraciones, estos
pueden dejarse sin cambios, pero deben ajustarse según sea necesario para evitar falsos positivos.
Información
Para falsos fugas térmicas no causadas por un sensor de temperatura ojo, intente aumentar WATCH_TEMP_PERIOD o
disminuir WATCH_TEMP_INCREASE . El calentamiento puede reducirse en un ambiente frío, si un ventilador está soplando
sobre el bloque de calor, o si el calentador tiene alta resistencia.
Cinemática
Marlin admite cuatro sistemas de movimiento cinemático: cartesiano, núcleo
(H-Bot), Delta y SCARA. El cartesiano es el más simple, aplicando cada paso a
paso directamente a un eje. CoreXY utiliza una disposición de cinturón
especial para hacer movimiento XY, lo que requiere un poco de matemática
adicional. Los robots Delta convierten el movimiento de tres carros verticales
en movimiento XYZ en un "efector" unido a los carros por seis brazos. Los
robots SCARA mueven un brazo en el plano XY utilizando dos articulaciones
angulares.
CoreXY
//#define COREXY
//#define COREXZ
//#define COREYZ
//#define COREYX
//#define COREZX
//#define COREZY
http://marlinfw.org/docs/configuration/configuration.html 14/79
16/10/2019 Configurando Marlin | Firmware Marlin
Habilite la opción que se aplica a la con guración de Core especí ca. Se incluyen opciones tanto normales como invertidas
para completar.
Topes nales
En los sistemas de circuito abierto, los topes nales son una forma económica de establecer
la posición real del carro en todos los ejes. En el procedimiento conocido como "referencia",
cada eje se mueve hacia un extremo hasta que se activa el interruptor de n de carrera, en
cuyo punto la máquina sabe que el eje está en la posición de n de carrera (inicio). A partir
de este momento, la máquina "conoce" su posición al hacer un seguimiento de cuán lejos
se han movido los steppers. Si la máquina se sale del paso por algún motivo, puede ser
necesario volver a realizar el recorrido.
Tapones de tope
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG
Especi que todos los conectores de tope nal que están conectados a cualquier tope o sonda. La mayoría de las impresoras
usarán los tres enchufes min. En las máquinas delta, se deben usar todos los enchufes máximos. Las sondas pueden
compartir el enchufe Z min, o pueden usar uno o más de los conectores adicionales. No habilite los enchufes utilizados para
nes sin n y sin sonda aquí.
Pullups nales
#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
// Disable ENDSTOPPULLUPS to set pullups individually
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
Por defecto, todas las paradas nales tienen resistencias pullup habilitadas. Esto es lo mejor para los interruptores NC,
evitando que los valores " oten". Si solo algunos topes nales debieran tener resistencias pullup, puede deshabilitar
ENDSTOPPULLUPS y habilitar pullups individualmente.
Pulldowns nales
http://marlinfw.org/docs/configuration/configuration.html 15/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define ENDSTOPPULLDOWNS
#if DISABLED(ENDSTOPPULLDOWNS)
// Disable ENDSTOPPULLDOWNS to set pulldowns individually
//#define ENDSTOPPULLDOWN_XMAX
//#define ENDSTOPPULLDOWN_YMAX
//#define ENDSTOPPULLDOWN_ZMAX
//#define ENDSTOPPULLDOWN_XMIN
//#define ENDSTOPPULLDOWN_YMIN
//#define ENDSTOPPULLDOWN_ZMIN
//#define ENDSTOPPULLDOWN_ZMIN_PROBE
#endif
Por defecto, todas las paradas nales tienen resistencias pulldown deshabilitadas.
Use M119 (/docs/gcode/M119.html)para probar si estos están con gurados correctamente. Si un tope nal se muestra como
"ACTIVADO" cuando no se presiona, y "abierto" cuando se presiona, entonces debe invertirse aquí.
Esta con guración permite a Marlin ajustar la sincronización del controlador paso a paso y habilitar opciones avanzadas para
los controladores paso a paso que los admiten. También puede anular las opciones de tiempo en Con guration_adv.h.
Interrupciones de n de carrera
//#define ENDSTOP_INTERRUPTS_FEATURE
http://marlinfw.org/docs/configuration/configuration.html 16/79
16/10/2019 Configurando Marlin | Firmware Marlin
Habilite esta función si todos los pines de tope nal habilitados tienen capacidad de interrupción. Esto eliminará la necesidad
de sondear los pines de interrupción, ahorrando muchos ciclos de CPU.
Movimiento
Distintos factores E
//#define DISTINCT_E_FACTORS
Estas son las con guraciones más importantes para su impresora, ya que determinan con qué precisión los steppers
posicionarán los ejes. Aquí le estamos diciendo al rmware cuántos pasos individuales producen un solo milímetro (o grado
en SCARA) de movimiento. Estos dependen de varios factores, que incluyen el paso de la correa, el número de dientes en la
polea, el paso de la rosca en los tornillos de avance, la con guración de micropaso y el estilo del extrusor.
Calculadora de pasos
La calculadora Prusa (http://prusaprinters.org/calculator/) es una gran herramienta para ayudar a encontrar los valores
correctos para la con guración especí ca de su impresora.
En cualquier movimiento, las velocidades (en mm / seg) en las direcciones X, Y, Z y E se limitarán a las correspondientes
DEFAULT_MAX_FEEDRATE .
Si los con gura demasiado alto, el motor paso a paso correspondiente perderá pasos, especialmente en movimientos
http://marlinfw.org/docs/configuration/configuration.html 17/79
16/10/2019 Configurando Marlin | Firmware Marlin
de alta velocidad.
Aceleración
Aceleración máxima predeterminada
Cuando la velocidad de cualquier eje cambia, su aceleración (o desaceleración) en mm / s / s está limitada por la
con guración de aceleración máxima actual. Consulte también la con guración jerk a continuación, que especi ca el mayor
cambio instantáneo de velocidad que puede ocurrir entre segmentos.
Un valor de 3000 signi ca que un eje puede acelerar de 0 a 3000 mm / m (50 mm / s) dentro de un segundo movimiento.
Jerk prepara el piso para movimientos acelerados. Si el cambio en la velocidad máxima para un eje dado entre segmentos es
menor que el valor de sacudida para el eje, se puede permitir un cambio instantáneo en la velocidad. Los límites colocados
en otros ejes también se aplican. Básicamente, los valores de tirón más bajos dan como resultado movimientos más
acelerados, que pueden ser casi instantáneos en algunos casos, dependiendo de la aceleración nal determinada por el
plani cador.
Aceleración predeterminada
El plani cador utiliza las aceleraciones predeterminadas establecidas aquí (o por M204 ) como valores iniciales para la
aceleración de movimiento, y luego las restringe aún más, si es necesario. Hay valores de aceleración predeterminados
separados para movimientos de impresión, movimientos de retracción y movimientos de desplazamiento.
Los movimientos de impresión incluyen E más al menos uno de los ejes XYZ.
Los movimientos de retracción incluyen solo el eje E.
Los movimientos de desplazamiento incluyen solo los ejes XYZ.
No los establezcas demasiado alto. Los valores de aceleración más grandes pueden provocar vibraciones excesivas,
ruidosos pasos o incluso pasos omitidos. Una aceleración más baja produce un movimiento más suave, elimina la
vibración y ayuda a reducir el desgaste de las piezas mecánicas.
Desviación de unión
//#define JUNCTION_DEVIATION
#if ENABLED(JUNCTION_DEVIATION)
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
#endif
http://marlinfw.org/docs/configuration/configuration.html 18/79
16/10/2019 Configurando Marlin | Firmware Marlin
Utilice la desviación de la unión en lugar de la limitación jerk tradicional. La con guración del tirón se anula con la desviación
de la unión.
Imbécil
Jerk trabaja en conjunto con la aceleración (ver arriba). El tirón es el cambio máximo en la velocidad (en mm / seg) que puede
ocurrir instantáneamente. También se puede considerar como el cambio mínimo en la velocidad que se realizará como un
movimiento acelerado (no instantáneo).
Tanto la aceleración como el tirón afectan la calidad de impresión. Si el tirón es demasiado bajo, el extrusor permanecerá
demasiado tiempo en pequeños segmentos y esquinas, posiblemente dejando manchas. Si el tirón se ajusta demasiado alto,
los cambios de dirección aplicarán demasiado torque y es posible que vea artefactos "resonantes" o pasos caídos.
Aceleración de curva S
//#define S_CURVE_ACCELERATION
Esta opción elimina la vibración durante la impresión al ajustar una curva Bézier para mover la aceleración, produciendo
cambios de dirección mucho más suaves.
Opciones de sonda Z
Pines de sonda
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
Utilice esta opción en todos los casos cuando la sonda esté conectada al enchufe nal Z MIN. Esta opción se usa para
DELTA robots, que siempre albergan a MAX, y se puede usar en otras con guraciones.
Puede usar esta opción para con gurar una máquina sin topes nales Z. En ese caso, la sonda se usará para ubicar Z y
deberá habilitarla Z_SAFE_HOMING para asegurarse de que la sonda se coloca sobre la cama cuando se dirige al eje Z, hecho
después de X e Y.
//#define Z_MIN_PROBE_PIN 32
Use esta opción si ha conectado la sonda a un pin que no sea el pin nal de Z MIN. Con esta opción habilitada, Marlin
utilizará de manera predeterminada el Z_MIN_PROBE_PIN especi cado en el archivo de pines de su placa (generalmente el
pin de tope nal X o Z MAX, ya que es más probable que no se usen). Si necesita usar un pin diferente, de na su número de
pin personalizado para Z_MIN_PROBE_PIN in Configuration.h .
Tipo de sonda
http://marlinfw.org/docs/configuration/configuration.html 19/79
16/10/2019 Configurando Marlin | Firmware Marlin
Marlin admite cualquier tipo de sonda que pueda funcionar como un interruptor. Los tipos especí cos de sondas tienen
diferentes necesidades.
//#define PROBE_MANUALLY
//#define MANUAL_PROBE_START_Z 0.2
Incluso si no tiene una sonda de cama, puede utilizar cualquiera de las AUTO_BED_LEVELING_* opciones principales a
continuación seleccionando esta opción. Con PROBE_MANUALLY el G29 (/docs/gcode/G029-mbl.html)comando solo mueve la
boquilla al siguiente punto de la sonda donde se detiene. Ajusta la altura Z con un trozo de papel o calibre, luego envía G29
(/docs/gcode/G029-mbl.html)nuevamente para continuar al siguiente punto. También puede habilitar
LCD_BED_LEVELING para agregar un elemento de menú de "Cama nivelada" a la pantalla LCD para un proceso de nivelación
totalmente interactivo. MANUAL_PROBE_START_Z establece la altura z a la que se mueve inicialmente la impresora en cada
punto de malla durante el sondeo manual. Con esto desactivado, la impresora se moverá a Z0 para el primer punto de
sonda. Luego, cada punto de sonda consecutivo usa la posición Z del punto de sonda que le precede.
Sonda montada ja
//#define FIX_MOUNTED_PROBE
Sonda Z Servo
BLTouch
//#define BLTOUCH
TOQUE MI SONDA
http://marlinfw.org/docs/configuration/configuration.html 20/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define TOUCH_MI_PROBE
#if ENABLED(TOUCH_MI_PROBE)
#define TOUCH_MI_RETRACT_Z 0.5
//#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2
//#define TOUCH_MI_MANUAL_DEPLOY
#endif
Sonda solenoide
//#define SOLENOID_PROBE
Trineo de sonda Z
//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5
Sonda de cremallera
//#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
Una sonda desplegada moviendo el eje x, como la sonda de piñón y cremallera del Wilson II diseñada por Marty Rice.
Llave Allen
//#define Z_PROBE_ALLEN_KEY
http://marlinfw.org/docs/configuration/configuration.html 21/79
16/10/2019 Configurando Marlin | Firmware Marlin
Compensación de sonda
Estos desplazamientos especi can la distancia desde la punta de la boquilla hasta la sonda, o más precisamente, hasta el
punto en que se activa la sonda. Los desplazamientos X e Y se especi can como enteros. El desplazamiento Z debe
especi carse lo más exactamente posible utilizando un valor decimal. El desplazamiento Z se puede anular con M851 Z o con
el controlador LCD. El M851 (/docs/gcode/M851.html)desplazamiento se guarda en EEPROM con M500
(/docs/gcode/M500.html).
http://marlinfw.org/docs/configuration/configuration.html 22/79
16/10/2019 Configurando Marlin | Firmware Marlin
#define MIN_PROBE_EDGE 10
Velocidad de sondeo
// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 8000
El sondeo debe realizarse rápidamente, pero la velocidad Z debe ajustarse para una mejor repetibilidad. Dependiendo de la
sonda, puede ser necesaria una velocidad de sondeo Z más lenta para obtener resultados repetibles.
Sondas múltiples
//#define MULTIPLE_PROBING 2
//#define EXTRA_PROBING 1
El sondeo de múltiples tiempos produce mejores resultados. Ajuste a 2 para una sonda rápida / lenta: se utilizará el segundo
resultado de la sonda. Ajuste a 3 o más para sondas lentas: se utilizará el resultado promedio.
Las sondas Z requieren espacio libre cuando se despliegan, guardan y se mueven entre los puntos de la sonda para evitar
golpear la cama y otro hardware. Las sondas montadas en servo requieren espacio adicional para que el brazo gire. Las
sondas inductivas necesitan espacio para evitar la activación temprana.
Utilice estos ajustes para especi car la distancia (mm) para elevar la sonda (o bajar la cama). Los valores establecidos aquí se
aplican por encima de cualquier sonda (negativo) Z O set conjunto con Z_PROBE_OFFSET_FROM_EXTRUDER , M851
(/docs/gcode/M204.html)o la pantalla LCD. Solo los valores enteros> = 1 son válidos para esta con guración.
Ejemplo : M851 Z-5 con una HOLGURA de 4 => 9 mm desde la cama hasta la boquilla.
Pero : M851 Z+1 con una HOLGURA de 2 => 2 mm desde la cama hasta la boquilla.
Movimiento G29
http://marlinfw.org/docs/configuration/configuration.html 23/79
16/10/2019 Configurando Marlin | Firmware Marlin
¡Asegúrese de tener su ciente espacio libre para que la sonda se mueva entre puntos!
Los M851 menús For y LCD ofrecen un rango para ajustar el desplazamiento de la sonda Z.
Prueba de sonda
#define Z_MIN_PROBE_REPEATABILITY_TEST
Esto le permite probar la con abilidad de su sonda. Emita un M48 (/docs/gcode/M048.html)comando para comenzar a
probar. Le dará una desviación estándar para la sonda. Consejo: 0.02 mm es normalmente aceptable para nivelar la cama
para trabajar.
Calentar la cama y la extrusora para sondear producirá resultados que se corresponderán más exactamente con su cama si
normalmente imprime con la cama calentada. Habilítelo PROBING_HEATERS_OFF si experimenta ruido eléctrico. También se
puede agregar un retraso para permitir que el ruido y la vibración se calmen.
http://marlinfw.org/docs/configuration/configuration.html 24/79
16/10/2019 Configurando Marlin | Firmware Marlin
Estas opciones establecen los estados de los pines utilizados para la habilitación paso a paso. La con guración más común es
0 ( LOW ) para Active Low. Para Active High use 1 o HIGH .
Deshabilitar motor
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
Use estas opciones para deshabilitar steppers cuando no se le emita un movimiento. Esto se implementó como un truco
para ejecutar steppers a una corriente más alta de lo normal en un esfuerzo por producir más torque a costa del aumento de
calor para los conductores y steppers.
Deshabilitar los pasos entre movimientos le da a los motores y conductores la oportunidad de refrescarse. Suena bien en
teoría, pero en la práctica tiene inconvenientes. Los steppers discapacitados no pueden mantener el carro estable. Esto da
como resultado una precisión pobre y conlleva una fuerte probabilidad de deriva axial (es decir, pasos perdidos).
La mayoría de las impresoras 3D utilizan un sistema de control de "bucle abierto", lo que signi ca que el software no puede
determinar la posición real del carro en un momento dado. Simplemente envía comandos y asume que han sido obedecidos.
En la práctica, con una máquina bien calibrada, esto no es un problema y el uso de circuito abierto es un gran ahorro de
costos con excelente calidad.
No recomendamos este truco. Hay formas mucho mejores de abordar el problema del sobrecalentamiento paso a paso /
controlador. Algunos ejemplos: disipador térmico paso a paso / conductor, enfriamiento activo, motores duales en el eje,
reducen el micropaso, revisan la correa por sobre tensión, revisan los componentes para un movimiento suave, etc.
//#define DISABLE_REDUCED_ACCURACY_WARNING
Active esta opción para suprimir la advertencia dada en los casos en que es probable que se produzca una precisión
reducida.
La opción de deshabilitación E funciona como DISABLE_[XYZ] pero pertenece a uno o más extrusores. La con guración
predeterminada mantiene habilitado el extrusor activo, deshabilitando todos los extrusores inactivos. Esto es razonable para
situaciones en las que se utiliza una "torre de limpieza" u otro medio para garantizar que la boquilla esté cebada y no rezuma
entre usos.
http://marlinfw.org/docs/configuration/configuration.html 25/79
16/10/2019 Configurando Marlin | Firmware Marlin
Estos ajustes invierten la dirección del motor para cada eje. Tenga cuidado al con gurar estos por primera vez. Los ejes que
se mueven en la dirección incorrecta pueden causar daños. Obtenga estos derechos sin cinturones unidos primero, si es
posible. Antes de la prueba, mueva el carro y la cama a la mitad. Pruebe cada eje para el movimiento apropiado usando el
host o el menú LCD "Move Axis". Si un eje está invertido, voltee el enchufe o cambie su con guración de inversión.
Este valor eleva Z a la altura especi cada por encima de la cama antes de dirigir X o Y. Esto es útil para evitar que la cabeza se
estrelle contra los montajes de la cama, como tornillos, clips de bulldog, etc. Esto también funciona con la nivelación
automática de la cama habilitada y se activará solo cuando la altura del eje Z es menor que el valor de nido, de lo contrario
el eje Z no se moverá. NO_MOTION_BEFORE_HOMING y UNKNOWN_Z_NO_RAISE
Dirección de referencia
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
Dirección de referencia para cada eje: -1 = min, 1 = max. La mayoría de las máquinas cartesianas y centrales tienen paradas
nales de tres minutos. Los deltas tienen tres topes nales máximos. Para otras con guraciones, con gure estos valores
adecuadamente.
Límites de movimiento
#define X_BED_SIZE 200
#define Y_BED_SIZE 200
Con Marlin puede especi car directamente el tamaño de la cama. Esto le permite a Marlin hacer una lógica adicional
relacionada con el tamaño de la cama cuando di ere de los límites de movimiento a continuación. Si el carro XY puede
moverse fuera de la cama, puede especi car un rango más amplio a continuación.
#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 170
Estos valores especi can los límites físicos de la máquina. Por lo general, los [XYZ]_MIN_POS valores se establecen en 0,
porque los topes nales se colocan en los límites de la cama. [XYZ]_MAX_POS debe establecerse en el punto más alejado
alcanzable. Por defecto, también se utilizan como posiciones de referencia. Sin embargo, las
http://marlinfw.org/docs/configuration/configuration.html 26/79
16/10/2019 Configurando Marlin | Firmware Marlin
Compensación de inicio
Aunque las posiciones iniciales son jas, M206 se pueden usar para aplicar compensaciones a la posición inicial si es
necesario.
Software Endstops
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X
#define MIN_SOFTWARE_ENDSTOP_Y
#define MIN_SOFTWARE_ENDSTOP_Z
#endif
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
#define MAX_SOFTWARE_ENDSTOP_X
#define MAX_SOFTWARE_ENDSTOP_Y
#define MAX_SOFTWARE_ENDSTOP_Z
#endif
Active estas opciones para restringir el movimiento a los límites físicos de la máquina (según lo establecido por
[XYZ]_(MIN|MAX)_POS ). Por ejemplo, G1 Z-100 se puede limitar al mínimo a G1 Z0 . Se recomienda habilitar estas opciones
como una característica de seguridad. Si es necesario deshabilitar las paradas nales de software, úselas M211 S0
(/docs/gcode/M211.html).
http://marlinfw.org/docs/configuration/configuration.html 27/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#
#define FIL_RUNOUT_INVERTING false // Set to true to invert the logic of the sensor.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
//#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins.
#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
Con esta característica, se utiliza un interruptor mecánico u opto nal para veri car la presencia de lamento en el
alimentador (generalmente el interruptor está cerrado cuando hay lamento presente). Si se agota el lamento, Marlin
ejecutará el script GCode especi cado (de forma predeterminada M600 (/docs/gcode/M600.html)). Uso de placas basadas en
RAMPS SERVO3_PIN . Para otros tableros puede que necesite de nir FIL_RUNOUT_PIN .
Nivelación de cama
Hay muchos casos en los que es útil medir las variaciones en la altura de la cama.
Incluso si la cama en una impresora 3D es perfectamente plana y nivelada, aún
puede haber imperfecciones en la mecánica. Por ejemplo, una máquina puede
tener una cama muy plana, pero una esquina del pórtico XY tiene una altura de
medio mm. Los extremos del eje Z pueden no estar perfectamente nivelados. La
cama puede moverse ligeramente en el plano Z a medida que se mueve en el plano
X y / o Y. En un Delta puede haber una forma de cuenco persistente en su
trayectoria XY.
La compensación de la cama o "- nivelación de la cama" permite que la máquina, con una sonda de cama o asistencia al
usuario, tome medidas precisas de la "altura de la cama" en varios puntos del plano XY. Con estos datos, la máquina puede
ajustar el movimiento para alinearse mejor con la inclinación o las variaciones de "altura" en la cama. (Estoy citando "altura"
aquí porque las variaciones pueden provenir de otra cosa que no sea la cama).
Para obtener más detalles sobre estas características, consulte G29 MBL (/docs/gcode/G029-mbl.html) y G29 ABL
(/docs/gcode/G029-abl.html) .
Le recomendamos que intente obtener su impresora lo mejor posible antes de usar el nivel de cama, después de todo, el
nivel de cama solo compensa el hardware "malo", no lo corrige.
G28 desactiva la nivelación de la cama, pero deja intactos los datos de nivelación anteriores.
G29 sondea automática o manualmente la cama en varios puntos, mide la altura de la cama, calcula una cuadrícula o
matriz de corrección y activa la compensación de nivelación. El comportamiento especí co depende de la con guración y
el tipo de nivelación de la cama.
M500 (/docs/gcode/M500.html)guarda los datos de nivelación de la cama en EEPROM. Use M501
(/docs/gcode/M501.html)para cargarlo, M502 (/docs/gcode/M502.html)borrarlo y M503
(/docs/gcode/M503.html)reportarlo.
M420 S<bool> se puede usar para habilitar / deshabilitar la nivelación de la cama. Por ejemplo, M420 S1
(/docs/gcode/M420.html)debe usarse after M501 para habilitar la malla o matriz cargada, y para volver a habilitar la
nivelación after G28 , que deshabilita la compensación de nivelación.
Se puede agregar un elemento de menú "Cama nivelada" a la pantalla LCD con la LCD_BED_LEVELING opción.
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING
AUTO_BED_LEVELING_3POINT sondea tres puntos en un triángulo. El plano plano proporciona una matriz de
transformación adecuada para compensar un lecho plano pero inclinado.
AUTO_BED_LEVELING_LINEAR sondea la cama en una cuadrícula. Una matriz de transformación se produce mediante el
método de mínimos cuadrados para compensar un lecho plano pero inclinado.
AUTO_BED_LEVELING_BILINEAR sondea la cama en una cuadrícula, con subdivisión Catmull-Rom opcional. Los datos de
malla se utilizan para ajustar la altura Z a través del lecho mediante interpolación bilineal. Bueno para delta, camas
grandes o desiguales.
AUTO_BED_LEVELING_UBL (recomendado) combina las características de nivelación de 3 puntos, lineal, bilineal y de malla.
Al igual que con la nivelación bilineal, los datos de malla generados por UBL se utilizan para ajustar la altura Z a través del
lecho mediante interpolación bilineal. Actualmente se requiere un controlador LCD.
MESH_BED_LEVELING proporciona un G29 comando personalizado para medir la altura de la cama en varios puntos de la
cuadrícula utilizando un trozo de papel o un calibrador de espesores. Ver G29 MBL (/docs/gcode/G029-mbl.html) para el
procedimiento completo. Este tipo de nivelación solo es compatible con PROBE_MANUALLY .
Normalmente G28 (/docs/gcode/G028.html)deja la nivelación desactivada al nalizar. Habilite esta opción para G28
(/docs/gcode/G028.html)restaurar el estado de nivelación anterior.
Nivelación de depuración
//#define DEBUG_LEVELING_FEATURE
http://marlinfw.org/docs/configuration/configuration.html 29/79
16/10/2019 Configurando Marlin | Firmware Marlin
Use esta opción para habilitar la depuración adicional de referencia y nivelación. Luego puede usar M111 S32 antes de emitir
G28 y G29 V4 obtener un registro detallado del proceso para el diagnóstico. Esta opción es útil para descubrir la causa de
comportamientos inesperados o al informar problemas al proyecto.
Esta opción agrega el Z parámetro al M420 (/docs/gcode/M420.html)cual establece una distancia de desvanecimiento sobre
la cual la nivelación se reducirá gradualmente. Por encima de la altura Z dada, ya no se aplicará la compensación de
nivelación.
Esta característica existe para evitar que las irregularidades en la cama se propaguen por toda la altura del modelo. La
nivelación de desvanecimiento también reduce los requisitos computacionales y la resonancia del eje Z por encima de la
altura de desvanecimiento. Para una máquina bien alineada, esta característica puede mejorar los resultados de impresión.
Ejemplo: para que la nivelación se desvanezca durante los primeros 10 mm de uso de impresión de capa M420 Z10 . Si cada
capa tiene una altura de 0.2 mm, la compensación de nivelación se reducirá en 1/50 (2%) después de cada capa. Por encima
de 10 mm, la máquina se moverá sin compensación.
/**
* Enable the G26 Mesh Validation Pattern tool.
*/
#define G26_MESH_VALIDATION // Enable G26 mesh validation
#if ENABLED(G26_MESH_VALIDATION)
#define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle.
#define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool
#define MESH_TEST_HOTEND_TEMP 205 // (°C) Default nozzle temperature for the G26 Mesh Validation T
#define MESH_TEST_BED_TEMP 60 // (°C) Default bed temperature for the G26 Mesh Validation Too
#define G26_XY_FEEDRATE 20 // (mm/s) Feedrate for XY Moves for the G26 Mesh Validation Too
#endif
Al utilizar cualquiera de los sistemas de nivelación basados en malla (1.1.7), puede activarlo G26_MESH_VALIDATION para
imprimir patrones de prueba y ajustar la malla. Ver G26 Validación de malla (/docs/gcode/G026.html) para más detalles. El
G26 comando [ ] `] (/ docs / gcode / G026.html) acepta parámetros para el tamaño de la boquilla, la altura de la capa, etc. Las
subopciones anteriores especi can los valores predeterminados que se aplicarán para los parámetros omitidos.
Estas opciones especi can el número predeterminado de puntos para sondear en cada dimensión durante G29 .
http://marlinfw.org/docs/configuration/configuration.html 30/79
16/10/2019 Configurando Marlin | Firmware Marlin
Esta con guración especi ca los límites para sondear con G29 (/docs/gcode/G029-mbl.html). Lo más probable es que sea
una subsección de la cama porque las sondas generalmente no pueden llegar a todos los puntos que la boquilla puede.
Tenga en cuenta los desplazamientos XY de la sonda al establecer estos límites.
//#define PROBE_Y_FIRST
Habilite esta opción si el sondeo debe proceder primero en la dimensión Y en lugar de X primero.
Opciones Bilineales
//#define EXTRAPOLATE_BEYOND_GRID
Por lo general, la rejilla sondeada no se extiende hasta los bordes de la cama. Entonces, fuera de los límites de la cuadrícula
sondeada, el ajuste Z puede tomar uno de dos enfoques. O bien, la altura Z puede continuar subiendo / bajando según la
inclinación establecida del cuadro de cuadrícula más cercano (mejor cuando se sondeó la mayor parte de la cama), o puede
seguir el contorno del borde más cercano (el valor predeterminado). Habilite esta opción para la extrapolación.
//#define ABL_BILINEAR_SUBDIVISION
#if ENABLED(ABL_BILINEAR_SUBDIVISION)
// Number of subdivisions between probe points
#define BILINEAR_SUBDIVISIONS 3
#endif
Si tiene SRAM de sobra, esta opción multiplicará la resolución de la cuadrícula bilineal utilizando el método de subdivisión
Catmull-Rom. Esta opción solo se aplica a la nivelación bilineal. Si el valor predeterminado de 3 es demasiado costoso,
pruebe 2 o 1. (En Marlin 1.1.1, la cuadrícula predeterminada se almacenará en PROGMEM, como lo hace ahora UBL).
//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used
// as the Z-Height correction value.
Estas opciones especi can el recuadro, la cuadrícula y el triángulo de 3 puntos que se usarán para UBL. Tenga en cuenta que
los desplazamientos de la sonda XY y los límites de movimiento pueden restringir el área de la cama que se puede explorar.
http://marlinfw.org/docs/configuration/configuration.html 31/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
Estas opciones especi can el número de puntos que siempre se explorarán en cada dimensión durante G29 . El recuadro de
malla se usa para calcular automáticamente los límites de la sonda. Estos se pueden con gurar explícitamente en
Configuration_adv.h . MESH_G28_REST_ORIGIN mueve la boquilla para que descanse Z_MIN_POS cuando se realiza el
sondeo de malla. Si Z está desplazado (p. Ej., Por home_offset alguna otra causa), se pretende mover a Z a un buen punto de
partida, generalmente Z = 0.
Opciones de 3 puntos
#if EITHER(AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_UBL)
//#define PROBE_PT_1_X 15
//#define PROBE_PT_1_Y 180
//#define PROBE_PT_2_X 15
//#define PROBE_PT_2_Y 20
//#define PROBE_PT_3_X 170
//#define PROBE_PT_3_Y 20
#endif
Estas opciones especi can los tres puntos que se probarán durante G29 .
LCD_BED_LEVELING agrega un menú de "Cama nivelada" a la pantalla LCD que inicia un procedimiento de nivelación guiada
paso a paso que no requiere sonda. Para Malla niveladora ver G29 de MBL (/docs/gcode/G029-mbl.html) , y para
PROBE_MANUALLY ver G29 de ABL (http://marlinfw.org/docs/gcode/G029-abl.html) .
Disponible con MESH_BED_LEVELING y PROBE_MANUALLY (todas las formas de nivelación automática de la cama). Ver el
Configuration.h archivo para las subopciones.
Nivelación de esquina
//#define LEVEL_BED_CORNERS
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
#define LEVEL_CORNERS_HEIGHT 0.0 // (mm) Z height of nozzle at leveling points
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
Agregue un elemento de menú para moverse entre las esquinas de la cama para el ajuste manual de la cama.
http://marlinfw.org/docs/configuration/configuration.html 32/79
16/10/2019 Configurando Marlin | Firmware Marlin
Un script personalizado para hacer al nal de G29 . Si se necesitan varios comandos, divídalos con \n (el carácter de nueva
línea).
Opciones de referencia
Centro de cama a 0,0
//#define BED_CENTER_AT_0_0
Active esta opción si el centro de la cama está en X0 Y0. Esta con guración afecta la forma en que MANUAL_[XYZ]_POS se
calculan las posiciones iniciales automáticas (las que no están con guradas con ). Esto siempre debe estar habilitado con
DELTA .
Estas con guraciones se utilizan para anular la posición de inicio. Déjelos sin de nir para la con guración automática. Para
DELTA Z, el hogar debe estar en la posición más alta.
Z Safe Homing
#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // X point for Z homing when homing all axes (G28
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28
#endif
Z Safe Homing evita que Z se dirija cuando la sonda (o la boquilla) está fuera del área de la cama moviéndose a un punto XY
de nido (por defecto, el centro de la cama) antes de Z Homing cuando se dirige a todos los ejes G28 . Como efecto
secundario, se requiere el recorrido de referencia X e Y antes del recorrido de referencia Z. Si el tiempo de espera de los
conductores paso a paso, se requerirá de nuevo X e Y.
Habilite esta opción si se está utilizando una sonda (no un tope nal) para el recorrido de referencia Z. Z Safe Homing no es
necesario si se utiliza un tope Z nal para el inicio, pero también se puede habilitar para que XY siempre se mueva a alguna
posición personalizada después del inicio.
Velocidad de referencia
http://marlinfw.org/docs/configuration/configuration.html 33/79
16/10/2019 Configurando Marlin | Firmware Marlin
Velocidad de referencia para uso en el hogar automático y la nivelación automática de la cama. Estos valores pueden
establecerse en las velocidades más rápidas que puede alcanzar su máquina. Las velocidades de referencia y sondeo están
limitadas por la con guración de avance máximo y aceleración máxima actuales.
Establecer estos valores demasiado altos puede resultar en una precisión reducida y / o pasos omitidos. Reducir la
aceleración puede ayudar a alcanzar velocidades máximas más altas.
#define VALIDATE_HOMING_ENDSTOPS
#if ENABLED(SKEW_CORRECTION)
// Input all length measurements here:
#define XY_DIAG_AC 282.8427124746
#define XY_DIAG_BD 282.8427124746
#define XY_SIDE_AD 200
//#define SKEW_CORRECTION_FOR_Z
#if ENABLED(SKEW_CORRECTION_FOR_Z)
#define XZ_DIAG_AC 282.8427124746
#define XZ_DIAG_BD 282.8427124746
#define YZ_DIAG_AC 282.8427124746
#define YZ_DIAG_BD 282.8427124746
#define YZ_SIDE_AD 200
#define XZ_SKEW_FACTOR 0.0
#define YZ_SKEW_FACTOR 0.0
#endif
Corrija la desalineación en los ejes XYZ. Ver configuration.h para una explicación completa.
Características Adicionales
EEPROM
//#define EEPROM_SETTINGS
http://marlinfw.org/docs/configuration/configuration.html 34/79
16/10/2019 Configurando Marlin | Firmware Marlin
Los comandos como M92 (/docs/gcode/M092.html)solo cambian las con guraciones en la memoria volátil, y estas
con guraciones se pierden cuando la máquina se apaga. Con esta opción habilitada, Marlin usa la EEPROM incorporada para
preservar la con guración entre reinicios. Las con guraciones guardadas en EEPROM (con M500 ) se cargan
automáticamente cada vez que la máquina se reinicia (y en la mayoría de las con guraciones, cuando se conecta a un host),
anulando los valores predeterminados establecidos en los archivos de con guración. Esta opción es muy recomendable, ya
que hace que las con guraciones sean más fáciles de administrar.
Opciones de EEPROM
Estas opciones de EEPROM se deben dejar como están, pero para placas de 128K y más pequeñas se pueden usar para
recuperar parte de la memoria del programa. Se desaconseja encarecidamente a los vendedores que lo usen DISABLE_M503 .
Las con guraciones que se pueden cambiar y guardar en EEPROM están marcadas con . Opciones marcadas con
se puede cambiar desde el controlador LCD.
Cuando cambia las con guraciones guardables en los archivos de con guración y vuelve a ashear, los nuevos
valores no surten efecto de inmediato. Todavía se anulan por los valores guardados en EEPROM. Para obtener su
nueva con guración predeterminada en la EEPROM, use M502 seguido de M500 .
Host Keepalive
#define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating
Cuando Host Keepalive está habilitado, Marlin enviará un mensaje de estado ocupado al host cada dos segundos cuando no
pueda aceptar comandos. Deshabilite si a su host no le gustan los mensajes de keepalive. Utilícelo
DEFAULT_KEEPALIVE_INTERVAL durante el número predeterminado de segundos entre mensajes "ocupados". Anular con
M113 (/docs/gcode/M113.html). Marlin 1.1.5 y superior incluyen la BUSY_WHILE_HEATING opción para hosts que tratan el
keepalive del host como un protocolo estricto ocupado.
Elimine los comentarios para agregar M100 (/docs/gcode/M100.html)Free Memory Watcher con nes de depuración.
http://marlinfw.org/docs/configuration/configuration.html 35/79
16/10/2019 Configurando Marlin | Firmware Marlin
Unidades en pulgadas
//#define INCH_MODE_SUPPORT
Esta opción agrega soporte para los comandos G20 (/docs/gcode/G020.html)y G21 (/docs/gcode/G021.html), permitiendo
que el código G especi que unidades en pulgadas.
Unidades de temperatura
//#define TEMPERATURE_UNITS_SUPPORT
Esta opción agrega soporte para , y para con gurar las unidades de temperatura en Celsius, Kelvin o Fahrenheit. Sin esta
opción, todas las temperaturas deben especi carse en unidades Celsius. M149 (/docs/gcode/M149.html) C M149
(/docs/gcode/M149.html) K M149 (/docs/gcode/M149.html) F
Estos son los valores predeterminados para las opciones de menú Prepare > Preheat LCD. Estos valores pueden
modi carse mediante el M145 (/docs/gcode/M145.html)comando o la Control > Temperature > Preheat Material X
conf submenús.
Parque de boquillas
//#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z_raise }
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis)
#define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z axis feedrate (not used for delta printers)
#endif
Boquilla limpia
http://marlinfw.org/docs/configuration/configuration.html 36/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE)
// Default number of pattern repetitions
#define NOZZLE_CLEAN_STROKES 12
// Specify positions as { X, Y, Z }
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
#define NOZZLE_CLEAN_END_POINT { 100, 60, (Z_MIN_POS + 1) }
// Enable for a purge/clean station that's always at the gantry height (thus no Z move)
//#define NOZZLE_CLEAN_NO_Z
#endif
Iniciar y detener automáticamente el temporizador de trabajo de impresión cuando M104 (/docs/gcode/M104.html)/ M109
(/docs/gcode/M109.html)/ M190 (/docs/gcode/M190.html)se reciben comandos. También agrega los siguientes comandos
para controlar el temporizador:
Contador de impresión
//#define PRINTCOUNTER
Cuando esté habilitado, Marlin realizará un seguimiento de algunas estadísticas de impresión, como:
http://marlinfw.org/docs/configuration/configuration.html 37/79
16/10/2019 Configurando Marlin | Firmware Marlin
Idioma LCD
Idioma de interfaz de usuario
#define LCD_LANGUAGE en
Elija su idioma preferido para el controlador LCD aquí. Los idiomas admitidos incluyen:
Consulte language.h la última lista de idiomas admitidos y sus códigos de idiomas internacionales.
Esta opción solo se aplica a las pantallas basadas en caracteres. Las pantallas basadas en
caracteres (basadas en Hitachi HD44780) proporcionan un conjunto de caracteres ASCII más una de las siguientes
extensiones de idioma:
Consulte LCD Language System (/docs/development/lcd_language.html) para obtener información detallada sobre cómo
funciona actualmente el sistema de visualización Marlin.
http://marlinfw.org/docs/configuration/configuration.html 38/79
16/10/2019 Configurando Marlin | Firmware Marlin
Tipo de LCD
//#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display
El tipo de LCD base está basado en caracteres o es grá co. Marlin con gurará automáticamente la correcta para su pantalla
especí ca, que se especi ca a continuación. A menos que Marlin no admita su pantalla, puede dejar estas opciones
deshabilitadas.
Tarjeta SD
//#define SDSUPPORT // Enable SD Card Support in Hardware Console
Habilite el uso de la impresión SD, ya sea como parte de un controlador LCD o como una ranura para tarjeta SD
independiente.
La SDSUPPORT opción debe estar habilitada o la impresión SD no será compatible. Ya no está habilitado
automáticamente para controladores LCD con ranura SDCard incorporada.
Velocidad SPI
//#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED
Descomente UNA de estas opciones para usar una velocidad de transferencia SPI más lenta. Esto generalmente se requiere
si obtiene errores de inicio de volumen.
Habilitar CRC
//#define SD_CHECK_AND_RETRY
Codi cador
Resolución del codi cador
//#define ENCODER_PULSES_PER_STEP 1
Esta opción anula el número predeterminado de pulsos del codi cador necesarios para producir un paso. Debe aumentarse
para codi cadores de alta resolución.
http://marlinfw.org/docs/configuration/configuration.html 39/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define ENCODER_STEPS_PER_MENU_ITEM 5
Use esta opción para anular la cantidad de señales de paso necesarias para moverse entre los elementos del menú siguiente
/ anterior.
//#define REVERSE_ENCODER_DIRECTION
Esta opción invierte la dirección del codi cador en todas partes. Establezca si CLOCKWISE hace que los valores disminuyan.
//#define REVERSE_MENU_DIRECTION
Esta opción invierte la dirección del codi cador para navegar por los menús de la pantalla LCD. Si CWWWISE normalmente se
mueve hacia ABAJO, esto hace que suba. Si CWCWWISE normalmente se mueve hacia ARRIBA, esto hace que baje.
//#define INDIVIDUAL_AXIS_HOMING_MENU
Agregue elementos de referencia individuales del eje (Inicio X, Inicio Y y Inicio Z) al menú LCD.
Altavoz
//#define SPEAKER
Por defecto, Marlin supone que tiene un timbre con una frecuencia ja. Si tiene un altavoz que puede producir tonos, actívelo
aquí.
La duración y la frecuencia del sonido de retroalimentación de la IU. Ajústelos a 0 para deshabilitar la respuesta de audio en
los menús de la pantalla LCD. Pruebe la salida de audio con el código G M300 S<frequency Hz> P<duration ms>
Controlador LCD
Marlin incluye soporte para varios controladores. Los dos controladores más populares compatibles con Marlin son:
http://marlinfw.org/docs/configuration/configuration.html 40/79
16/10/2019 Configurando Marlin | Firmware Marlin
La mayoría de los otros controladores LCD son variantes de estos. Habilite solo una de las
siguientes opciones para su controlador especí co:
LCD de caracteres
Opción Descripción
ULTIMAKERCONTROLLER El controlador Ultimaker original.
ULTIPANEL ULTIPANEL (http://www.thingiverse.com/thing:15081) como se ve en Thingiverse.
PanelOne de T3P3 (http://reprap.org/wiki/PanelOne) (a través de RAMPS 1.4 AUX2 /
PANEL_ONE
AUX3). Una variante de ULTIMAKERCONTROLLER .
Controlador inteligente RepRapDiscount
REPRAP_DISCOUNT_SMART_CONTROLLER (http://reprap.org/wiki/RepRapDiscount_Smart_Controller) . Generalmente se vende
con un PCB blanco.
Gadgets3D G3D Controlador LCD / SD
G3D_PANEL (http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel) .
Generalmente se vende con un PCB azul.
RIGIDBOT_PANEL RigidBot Panel V1.0 (http://www.inventapart.com/) .
Teclado LCD Anet (http://www.anet3d.com/prod_view.aspx?TypeId=10&Id=178) para
ANET_KEYPAD_LCD
Anet A3
http://marlinfw.org/docs/configuration/configuration.html 41/79
16/10/2019 Configurando Marlin | Firmware Marlin
Teclados
Opción Descripción
RepRapWorld Keypad v1.1 Se (http://reprapworld.com/?
REPRAPWORLD_KEYPAD products_details&products_id=202&cPath=1591_1626) usa REPRAPWORLD_KEYPAD_MOVE_STEP para
establecer cuánto se debe mover el robot en cada pulsación de tecla (por ejemplo, 10 mm por clic).
Opción Descripción
RA_CONTROL_PANEL Panel de control de la placa Elefu RA
Pantalla LCD (http://henrysbench.capnfatz.com/henrys-bench/arduino-displays/ywrobot-
lcm1602-iic-v1-lcd-arduino-tutorial/) Sainsmart YWRobot LCM1602
LCD_I2C_SAINSMART_YWROBOT
(http://henrysbench.capnfatz.com/henrys-bench/arduino-displays/ywrobot-lcm1602-iic-v1-
lcd-arduino-tutorial/) .
LCM1602 Adaptador LCD LCM1602 genérico
PANELOLU2 LCD con LED de estado, codi cador independiente y entradas de clic. La
entrada de clic puede conectarse directamente a un pin (si BTN_ENC está de nido) o leerse a
LCD_I2C_PANELOLU2
través de I2C (con BTN_ENC inde nido). Requiere la biblioteca
(https://github.com/lincomatic/LiquidTWI2) LiquidTWI2 v1.2.3 o posterior.
Panucatt VIKI LCD con LED de estado, clic integrado y botones L / R / U / D, entradas de
LCD_I2C_VIKI
codi cador separadas.
Paneles de registro de desplazamiento. LCD de 2 hilos sin bloqueo SR (https://goo.gl/aJJ4sH)
SAV_3DLCD
. Ver con guración de LCD (http://reprap.org/wiki/SAV_3D_LCD) .
Opción Descripción
U8GLIB_SSD1306 Pantalla genérica de grá cos completos OLED SSD1306.
Compatibilidad con el módulo LCD SAV OLED utilizando módulos LCD basados en SSD1306 o
SAV_3DGLCD
SH1106.
OLED_PANEL_TINYBOY2 Panel de codi cador / OLED TinyBoy2 128x64
Fan PWM
//#define FAST_PWM_FAN
Aumente la frecuencia de FAN PWM. Elimina el ruido PWM pero aumenta el calentamiento en el FET / Arduino.
//#define FAN_SOFT_PWM
Use el software PWM para conducir el ventilador, como con los calentadores. Utiliza una frecuencia muy baja que no es tan
molesta como con el hardware PWM. Por otro lado, si esta frecuencia es demasiado baja, también debe aumentar
SOFT_PWM_SCALE .
http://marlinfw.org/docs/configuration/configuration.html 42/79
16/10/2019 Configurando Marlin | Firmware Marlin
#define SOFT_PWM_SCALE 0
Incrementar esto en 1 duplicará la frecuencia PWM del software, afectando los calentadores (y el ventilador si
FAN_SOFT_PWM está habilitado). Sin embargo, la resolución de control se reducirá a la mitad para cada incremento; a valor
cero, hay 128 posiciones de control efectivas.
//#define SOFT_PWM_DITHER
Si SOFT_PWM_SCALE se establece en un valor superior a 0, el difuminado se puede utilizar para mitigar la pérdida de
resolución asociada. Si está habilitado, algunos de los ciclos PWM se estiran para que, en promedio, se alcance el ciclo de
trabajo deseado.
LED de estado de temperatura que muestran el hotend y la temperatura de la cama. Si todo el punto de ajuste de
temperatura de cama y hotend es <54C, entonces el LED AZUL está encendido. De lo contrario, el LED ROJO está encendido.
Hay histéresis 1C.
Pin de foto
//#define PHOTOGRAPH_PIN 23
M240 (/docs/gcode/M240.html)dispara una cámara emulando una Canon RC-1 Remote Data como se describe en este sitio
(http://www.doc-diy.net/photo/rc-1_hacked/) .
Los archivos cortados con SkeinForge contienen códigos de arco de arco incorrectos cuando se utiliza "Arc Point" como
procedimiento de redondeo. Esta opción evita ese error, pero de lo contrario debe dejarse de lado.
Características adicionales
Ventilador PWM rápido
//#define FAST_PWM_FAN
//#define FAN_SOFT_PWM
#define SOFT_PWM_SCALE 0
//#define SOFT_PWM_DITHER
Use el software PWM para conducir el ventilador. Utiliza una frecuencia muy baja que no es tan molesta como con el
hardware PWM. Aumente SOFT_PWM_SCALE si la frecuencia es demasiado baja. Si experimenta una pérdida de resolución
cuando SOFT_PWM_SCALE se establece en un valor mayor que 0, SOFT_PWM_DITHER puede usarse para mitigarlo. Si está
habilitado
Corrija los códigos g de arco incorrectos enviados por SkeinForge al usar Arc Point como procedimiento de redondeo
Extrusora de pasta
// Support for the BariCUDA Paste Extruder.
//#define BARICUDA
Marlin incluye soporte para el Extrusor Baricuda para la impresión 3D de azúcar y chocolate
(http://www.thingiverse.com/thing:26343) también alojado en GitHub (http://www.github.com/jmil/BariCUDA) . La
característica añade los códigos M126 (/docs/gcode/M126.html), M127 (/docs/gcode/M127.html), M128
(/docs/gcode/M128.html), y M129 (/docs/gcode/M129.html)para controlar la bomba y la válvula de la Baricuda.
(http://www.instructables.com/id/3D-Printer-RGB-LED-Feedback/)
http://marlinfw.org/docs/configuration/configuration.html 44/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define RGB_LED
//#define RGBW_LED
#if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
#define RGB_LED_R_PIN 34
#define RGB_LED_G_PIN 43
#define RGB_LED_B_PIN 35
#define RGB_LED_W_PIN -1
#endif
Habilite la compatibilidad con un LED RGB (W) conectado a pines digitales de 5V, o una tira RGB (W) conectada a MOSFET
controlados por pines digitales. Se puede usar un LED RGB económico simplemente asignando pines digitales para cada
componente. Si los pines pueden hacer hardware PWM, entonces habrá disponible una amplia gama de colores. Con pines
digitales simples solo son posibles 7 colores.
Agrega el M150 (/docs/gcode/M150.html)comando para con gurar el color del LED (o tira de LED). Si los pines tienen
capacidad PWM (p. Ej., 4, 5, 6, 11), se puede establecer un rango de valores de luminancia de 0 a 255.
Las tiras de LED requieren un chip MOFSET entre las líneas PWM y los LED, ya que Arduino no puede manejar la
corriente que requerirán los LED. ¡El incumplimiento de esta precaución puede destruir su Arduino!
//#define NEOPIXEL_LED
#if ENABLED(NEOPIXEL_LED)
#define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Ad
#define NEOPIXEL_PIN 4 // LED driving pin
//#define NEOPIXEL2_TYPE NEOPIXEL_TYPE
//#define NEOPIXEL2_PIN 5
#define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip, larger of 2 strips if 2 neopixel str
#define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to
#define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255)
//#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
//#define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use
//#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W
#endif
NEOPIXELS (https://www.adafruit.com/category/168)
Esta opción hace que la impresora envíe comentarios sobre el estado del LED de color instalado, BLINKM o PCA9632:
Cambie gradualmente de azul a violeta a medida que la cama caliente alcanza la temperatura objetivo.
Cambie gradualmente de violeta a rojo a medida que el hotend alcance la temperatura.
Cambie a blanco para iluminar la super cie de trabajo.
Cambie a verde una vez que la impresión haya terminado.
Apague después de que la impresión haya terminado y el usuario haya presionado un botón.
http://marlinfw.org/docs/configuration/configuration.html 45/79
16/10/2019 Configurando Marlin | Firmware Marlin
Servos
Numero de Servos
El número total de servos para habilitar para su uso. Una aplicación común para un servo es una
sonda de lecho Z que consiste en un interruptor de nal de carrera montado en un brazo
giratorio. Para usar uno de los servo conectores para este tipo de sonda, con gure
Z_ENDSTOP_SERVO_NR las opciones de sonda anteriores.
Servo Desactivación
Retrasar (en microsegundos) antes de que comience el siguiente movimiento, para darle tiempo al servo para alcanzar su
ángulo objetivo. 300 ms es un buen valor, pero puede intentar menos demoras. Especi que un retraso lo su cientemente
grande para que el servo tenga tiempo su ciente para completar un movimiento completo antes de la desactivación.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
Con esta opción, los servos se alimentan solo durante el movimiento, luego se apagan para evitar la uctuación.
Recomendamos habilitar esta opción para evitar que el ruido eléctrico de los servos activos inter era con otros
componentes. El alto amperaje generado por el cableado del motor del extrusor durante el movimiento también puede
inducir movimiento en servos activos. Deje esta opción habilitada para evitar todos los problemas relacionados con el servo.
Configuration_adv.h
Opciones de temperatura
Parámetros personalizados del termistor 1000
http://marlinfw.org/docs/configuration/configuration.html 46/79
16/10/2019 Configurando Marlin | Firmware Marlin
//
// Hephestos 2 24V heated bed upgrade kit.
// https://store.bq.com/en/heated-bed-kit-hephestos2
//
//#define HEPHESTOS2_HEATED_BED_KIT
#if ENABLED(HEPHESTOS2_HEATED_BED_KIT)
#undef TEMP_SENSOR_BED
#define TEMP_SENSOR_BED 70
#define HEATER_BED_INVERTING true
#endif
http://marlinfw.org/docs/configuration/configuration.html 47/79
16/10/2019 Configurando Marlin | Firmware Marlin
Cámara climatizada
#if TEMP_SENSOR_CHAMBER
#define CHAMBER_MINTEMP 5
#define CHAMBER_MAXTEMP 60
#define TEMP_CHAMBER_HYSTERESIS 1 // (°C) Temperature proximity considered "close enough" to the
//#define CHAMBER_LIMIT_SWITCHING
//#define HEATER_CHAMBER_PIN 44 // Chamber heater on/off pin
//#define HEATER_CHAMBER_INVERTING false
#endif
Una cámara calentada puede mejorar enormemente la calidad de impresión. Compruebe el archivo de pines de su tablero
para TEMP_CHAMBER_PIN . El extrusor de repuesto y los pines de temperatura del hotend se pueden usar para
HEATER_CHAMBER_PIN y TEMP_CHAMBER_PIN .
Estas subopciones se pueden usar cuando la cama no usa calefacción PID. En su lugar, se utilizará un método de
calentamiento “bang-bang”, simplemente comprobando la temperatura actual a intervalos regulares.
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
Las dos primeras opciones se re eren a la protección térmica continua durante todo un trabajo de impresión.
El segundo conjunto de opciones se aplica a los cambios en la temperatura objetivo. Cada vez que M104 o M109 aumenta la
temperatura objetivo, el rmware esperará a WATCH_TEMP_PERIOD que caduque, y si la temperatura no ha aumentado en
WATCH_TEMP_INCREASE grados, la máquina se detiene, lo que requiere un restablecimiento completo. Esta prueba se reinicia
con cualquier M104 / M109 , pero solo si la temperatura actual está su cientemente por debajo del objetivo para una prueba
con able.
Si obtiene falsos positivos para "Falló el calentamiento", aumente WATCH_TEMP_PERIOD o disminuya WATCH_TEMP_INCREASE . (
WATCH_TEMP_INCREASE no debe establecerse por debajo de 2.)
http://marlinfw.org/docs/configuration/configuration.html 48/79
16/10/2019 Configurando Marlin | Firmware Marlin
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
Las dos primeras opciones se re eren a la protección térmica continua durante todo un trabajo de impresión.
El segundo conjunto de opciones se aplica a los cambios en la temperatura objetivo. Cada vez que M140
(/docs/gcode/M140.html)o M190 (/docs/gcode/M190.html)aumenta la temperatura objetivo, el rmware esperará a
WATCH_BED_TEMP_PERIOD que caduque, y si la temperatura no ha aumentado en WATCH_BED_TEMP_INCREASE grados, la
máquina se detiene, lo que requiere un restablecimiento completo. Esta prueba se reinicia con cualquier M140 / M190 , pero
solo si la temperatura actual está su cientemente por debajo del objetivo para una prueba con able.
#if ENABLED(THERMAL_PROTECTION_CHAMBER)
#define THERMAL_PROTECTION_CHAMBER_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_CHAMBER_HYSTERESIS 2 // Degrees Celsius
#define WATCH_CHAMBER_TEMP_PERIOD 60 // Seconds
#define WATCH_CHAMBER_TEMP_INCREASE 2 // Degrees Celsius
#endif
Similar a la descripción de la protección térmica de la cama anterior. Utilice M141 ] (/ docs / gcode / M141.html) para
establecer la temperatura de la cámara objetivo y M191 (/docs/gcode/M191.html)para establecer y esperar la temperatura
de la cámara objetivo.
Esta opción mejora aún más el control de la temperatura del hotend al tener en cuenta la energía térmica adicional
consumida por el lamento frío que ingresa a la cámara de fusión del hotend. Si el material ingresa al hotend más
rápidamente, entonces se necesitará agregar más calor para mantener el equilibrio energético. Esta opción agrega un factor
de escala que debe ajustarse para su con guración y material.
La escala de extrusión mantiene un amortiguador circular de movimientos E hacia adelante realizados en cada medición de
temperatura que actúa para retrasar el factor aplicado y permitir la disipación de calor. El tamaño de esta cola durante la
impresión está establecido por M301 L , limitado por LPQ_MAX_LEN .
http://marlinfw.org/docs/configuration/configuration.html 49/79
16/10/2019 Configurando Marlin | Firmware Marlin
Sus valores y se guardan en EEPROM cuando está habilitado. M301 (/docs/gcode/M301.html) C M301
(/docs/gcode/M301.html) L EEPROM_SETTINGS
Temperatura automática
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
Con Automatic Temperature, la temperatura objetivo del hotend se calcula con todas las líneas de gcode almacenadas en el
búfer. Los pasos / segundos máximos almacenados en el búfer del motor del extrusor se denominan " se ". Inicie el modo
de prueba automática con M109 F<factor> S<mintemp> B<maxtemp> , dando un rango de temperaturas. La temperatura
objetivo se establece en mintemp + factor * se[steps/sec] y está limitada por mintemp y maxtemp . Apague esto
ejecutando M109 (/docs/gcode/M109.html)sin F . Si la temperatura se establece en un valor inferior mintemp (p. Ej., Por
M104 (/docs/gcode/M104.html)), no se aplicará la prueba automática.
Ejemplo: Trate en su para establecer una temperatura mínima de 215 cuando está en reposo, lo que aumentará hasta 260
como extrusión aumentos en la velocidad. M109 (/docs/gcode/M109.html) S215 B260 F1 start.gcode
Habilite esta opción para tener M105 (/docs/gcode/M105.html)y los informes automáticos de temperatura incluyen valores
de ADC sin procesar de los sensores de temperatura.
Los termistores de alta temperatura pueden dar lecturas aberrantes. Si esto es un problema, use esta opción para establecer
el número máximo de errores consecutivos de baja temperatura que pueden ocurrir antes de que se active el Error de
temperatura mínima. Si necesita un valor superior a 10, esto podría indicar un problema.
//#define MILLISECONDS_PREHEAT_TIME 0
Los termistores de alta temperatura tienden a dar lecturas pobres a temperatura ambiente y temperaturas más bajas. Hasta
que alcancen una temperatura su ciente, estos sensores generalmente devuelven el valor bruto más bajo, y esto causará un
error de temperatura mínima.
Para resolver este problema, esta opción establece el número de milisegundos que un hotend precalentará antes de que
Marlin comience a veri car la temperatura. Establezca un retraso su ciente para alcanzar una temperatura que su sensor
pueda leer de manera con able. Los valores más bajos son mejores y más seguros. Si necesita un valor superior a 30000,
esto podría indicar un problema.
AD595 / AD8495
http://marlinfw.org/docs/configuration/configuration.html 50/79
16/10/2019 Configurando Marlin | Firmware Marlin
Esto de ne la ayuda para calibrar el sensor AD595 en caso de que obtenga mediciones de temperatura incorrectas. La
lectura nal se deriva de measuredTemp * TEMP_SENSOR_AD595_GAIN + TEMP_SENSOR_AD595_OFFSET .
Cuando la máquina está inactiva y la temperatura supera un valor determinado, Marlin puede extruir una corta longitud de
lamento cada dos segundos.
Ventiladores de refrigeración
Se necesitan ventiladores de enfriamiento en las impresoras 3D para mantener los componentes fríos y evitar fallas.
Un ventilador controlador es útil para enfriar los controladores paso a paso y los MOSFET. Cuando los conductores paso a
paso alcanzan una cierta temperatura, se apagan, tartamudeando o deteniéndose. Con esta opción habilitada, el ventilador
se encenderá automáticamente cada vez que se active cualquier steppers y se apagará después de un período establecido
cuando todos los steppers estén apagados.
Cuando los ventiladores PWM se con guran a baja velocidad, es posible que primero necesiten un arranque de mayor
energía para moverse. Una vez que alcanza la velocidad máxima, el ventilador puede volver a la velocidad establecida. Esta
opción especi ca la duración de kickstart en milisegundos. Esta opción no funciona con el software PWM fan en
Sanguinololu.
http://marlinfw.org/docs/configuration/configuration.html 51/79
16/10/2019 Configurando Marlin | Firmware Marlin
Esta opción se puede de nir para establecer las velocidades PWM mínimas y máximas (1-255) necesarias para mantener en
movimiento los ventiladores PWM. Las velocidades del ventilador establecidas por M106 (/docs/gcode/M106.html)se
ampliarán al rango reducido por encima de este mínimo.
#if ENABLED(FAST_PWM_FAN)
//#define FAST_PWM_FAN_FREQUENCY 31400
//#define USE_OCR2A_AS_TOP
#endif
La frecuencia predeterminada para FAST_PWM_FAN es F = F_CPU / (2 255 1). Ver configuration_adv.h para más información.
Los ventiladores automáticos del extrusor se encienden cada vez que las temperaturas de su extrusor superan
EXTRUDER_AUTO_FAN_TEMPERATURE . El archivo de pines de su placa ya especi ca los pines recomendados. Anule los que están
aquí o con gúrelos en -1 para deshabilitar completamente los ventiladores.
Se pueden asignar múltiples extrusoras al mismo pin, en cuyo caso el ventilador se encenderá cuando cualquier extrusora
seleccionada esté por encima del umbral.
Esta característica le permite multiplexar digitalmente la salida del ventilador. El multiplexor se cambia automáticamente al
cambiar la herramienta. Para habilitar, simplemente asigne uno o más FANMUX[012]_PIN valores para hasta 2, 4 u 8
ventiladores multiplexados.
Luz de la caja
http://marlinfw.org/docs/configuration/configuration.html 52/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define CASE_LIGHT_ENABLE
#if ENABLED(CASE_LIGHT_ENABLE)
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM p
in)
//#define CASE_LIGHT_MENU // Add Case Light options to the LCD menu
//#define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lightin
g.
//#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED.
#if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
#define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White }
#endif
#endif
Habilite esta opción para una luz de caja digital o PWM controlada por rmware. Use M355 (/docs/gcode/M355.html)para
encender / apagar y controlar el brillo.
Habilite esta opción para mantener los topes nales encendidos (de manera predeterminada) incluso cuando no estén
dirigidos. Anular en cualquier momento con M120 (/docs/gcode/M120.html), M121 (/docs/gcode/M121.html).
Z Late Enable
//#define Z_LATE_ENABLE
Con esta opción activa, los Z steppers solo se encenderán en el último momento antes de moverse. Esta opción puede ser
necesaria si su controlador Z tiende a sobrecalentarse. No es compatible con la cinemática Core.
Emplee un controlador externo de circuito cerrado que pueda ser activado o desactivado por el controlador principal.
Usando un solo cable para la señal de control y otro para la señal de retorno de "movimiento completo" para indicar si el
movimiento pudo o no realizarse con éxito.
Bene cios
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
#define INVERT_X2_VS_X_DIR true // Set 'true' if X motors should rotate in opposite directions
//#define X_DUAL_ENDSTOPS
#if ENABLED(X_DUAL_ENDSTOPS)
#define X2_USE_ENDSTOP _XMAX_
#define X_DUAL_ENDSTOPS_ADJUSTMENT 0
#endif
#endif
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
#define INVERT_Y2_VS_Y_DIR true // Set 'true' if Y motors should rotate in opposite directions
//#define Y_DUAL_ENDSTOPS
#if ENABLED(Y_DUAL_ENDSTOPS)
#define Y2_USE_ENDSTOP _YMAX_
#define Y_DUAL_ENDSTOPS_ADJUSTMENT 0
#endif
#endif
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#define Z_DUAL_ENDSTOPS_ADJUSTMENT 0
#endif
#endif
//#define Z_TRIPLE_STEPPER_DRIVERS
#if ENABLED(Z_TRIPLE_STEPPER_DRIVERS)
//#define Z_TRIPLE_ENDSTOPS
#if ENABLED(Z_TRIPLE_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#define Z3_USE_ENDSTOP _YMAX_
#define Z_TRIPLE_ENDSTOPS_ADJUSTMENT2 0
#define Z_TRIPLE_ENDSTOPS_ADJUSTMENT3 0
#endif
#endif
Estas opciones le permiten usar controladores E adicionales para conducir un segundo motor para los ejes X, Y y / o Z.
Con gurado X_DUAL_STEPPER_DRIVERS para usar un segundo motor X. Si los motores X deben girar en direcciones opuestas
jadas INVERT_X2_VS_X_DIR a true . Si el segundo motor tiene su propio juego de tope nal X_DUAL_ENDSTOPS . (Esto puede
ajustarse para "trasiego"). Utilícelo X2_USE_ENDSTOP para con gurar el enchufe del tope nal que debe usarse para el
segundo tope nal. Los topes nales adicionales aparecerán en la salida de 'M119' (/docs/gcode/M119.html) .
Si los dos ejes X no están perfectamente alineados, use X_DUAL_ENDSTOP_ADJUSTMENT para ajustar la diferencia. Este
desplazamiento se aplica al motor X2 después de la referencia G28 (/docs/gcode/G028.html). Las compensaciones de doble
nal de carrera se pueden establecer en tiempo de ejecución con M666 X[offset] Y[offset] Z[offset] .
Doble carro X
http://marlinfw.org/docs/configuration/configuration.html 54/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
#define X1_MIN_POS X_MIN_POS
#define X1_MAX_POS X_BED_SIZE
#define X2_MIN_POS 80
#define X2_MAX_POS 353
#define X2_HOME_DIR 1
#define X2_HOME_POS X2_MAX_POS
#define DEFAULT_DUAL_X_CARRIAGE_MODE DXC_AUTO_PARK_MODE
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif
Habilite esta opción si tiene Dual X-Carriages que se mueven de forma independiente. El diseño Dual X-Carriage permite
estacionar la extrusora inactiva, lo que evita que el moho contamine la impresión, reduce el peso de cada carro y permite
velocidades de impresión más rápidas. Con esta opción, simplemente conecte el paso a paso X2 al primer enchufe E no
utilizado.
En una con guración Dual X-Carriage, el primer carro x ( T0 ) se dirige al tope nal mínimo, mientras que el segundo carro x (
T1 ) se dirige al tope nal máximo.
Con Dual X-Carriage, la HOTEND_OFFSET_X con guración para T1 anulaciones X2_HOME_POS . Use M218 T1 X[homepos] para
establecer una posición de inicio X2 personalizada y para usar . Este desplazamiento se puede guardar en EEPROM con
. M218 (/docs/gcode/M218.html) T1 X0 X2_HOME_POS M500 (/docs/gcode/M500.html)
Dual X-Carriage tiene tres modos de movimiento diferentes, con gurados con : M605 (/docs/gcode/M605.html) S[mode]
Modo 0: modo de control total. ( ) Las rebanadoras que admiten completamente los carros x dobles pueden usar este
modo para obtener resultados de viaje óptimos. M605 (/docs/gcode/M605.html) S1
Modo 1: modo de estacionamiento automático. ( ) El rmware aparca / desarma automáticamente los carros en el
cambio de herramienta. No se requiere soporte de rebanador. ( ) M605 (/docs/gcode/M605.html) S1 M605
(/docs/gcode/M605.html) S1
Modo 2: modo de duplicación. ( [ M605 ](/docs/gcode/M605.html) S2 X[offs] R[temp] ) El rmware hará
transparentemente que el segundo carro x y el extrusor copien todas las acciones del primer carro x. Esto permite que la
impresora imprima 2 elementos arbitrarios a la vez. (Las compensaciones X y temp del segundo extrusor se con guran
con: [ M605 ](/docs/gcode/M605.html) S2 X[offs] R[offs] .)
Solenoide
//#define EXT_SOLENOID
Agrega control para cualquier solenoide conectado a una extrusora. Active el solenoide en la extrusora activa con M380
(/docs/gcode/M380.html). Deshabilitar todo con M381 (/docs/gcode/M381.html).
Buscador de blancos
http://marlinfw.org/docs/configuration/configuration.html 55/79
16/10/2019 Configurando Marlin | Firmware Marlin
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR { 2, 2, 4 }
//#define QUICK_HOME
//#define HOME_Y_BEFORE_X
#define AXIS_RELATIVE_MODES {false, false, false, false}
//#define DUAL_NOZZLE_DUPLICATION_MODE
Después de que se activa un tope nal durante el recorrido de referencia, el cabezal de la impresora retrocede por la
HOME_BUMP_MM distancia establecida y luego vuelve a su hogar a una velocidad más lenta. La velocidad de referencia más
lenta para cada eje está establecida por HOMING_BUMP_DIVISOR .
BLTouch
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 500
//#define BLTOUCH_FORCE_SW_MODE
//#define BLTOUCH_SET_5V_MODE
//#define BLTOUCH_FORCE_MODE_SET
//#define BLTOUCH_HS_MODE
//#define BLTOUCH_LCD_VOLTAGE_MENU
#endif
La con guración predeterminada de BLTouch se puede anular con estas opciones. Ver configuration_adv.h para más
información.
Agregue el G34 (/docs/gcode/G34.html)comando para alinear múltiples pasos Z utilizando una sonda de cama.
TODO Opciones
http://marlinfw.org/docs/configuration/configuration.html 56/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define HOME_AFTER_DEACTIVATE
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
//#define XY_FREQUENCY_LIMIT 15
//#define DIGIPOT_I2C
#if ENABLED(DIGIPOT_I2C) && !defined(DIGIPOT_I2C_ADDRESS_A)
#define DIGIPOT_I2C_ADDRESS_A 0x2C
#define DIGIPOT_I2C_ADDRESS_B 0x2D
#endif
//#define DIGIPOT_MCP4018
#define DIGIPOT_I2C_NUM_CHANNELS 8
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 }
#define ENCODER_RATE_MULTIPLIER
#define ENCODER_10X_STEPS_PER_SEC 75
#define ENCODER_100X_STEPS_PER_SEC 160
//#define CHDK 4
#define CHDK_DELAY 50
//#define LCD_INFO_MENU
//#define STATUS_MESSAGE_SCROLLING
//#define LCD_DECIMAL_SMALL_XY
http://marlinfw.org/docs/configuration/configuration.html 57/79
16/10/2019 Configurando Marlin | Firmware Marlin
Tarjeta SD Extras
Las opciones enumeradas a continuación ayudan a corregir, mejorar y optimizar el rendimiento de la tarjeta SD.
Detección SD invertida
#define SD_DETECT_INVERTED
Algunas RAMPAS y otras placas no detectan cuando se inserta una tarjeta SD. Puede solucionar este problema conectando
un botón pulsador o un interruptor de tiro simple al pin de nido como SD_DETECT_PIN en las de niciones de pines de su
tablero. Esta con guración debe deshabilitarse a menos que esté usando un botón pulsador, tirando el pasador al suelo.
Nota: Esta opción se desactiva forzosamente para la mayoría de los controladores LCD (todos ULTIPANEL excepto
ELB_FULL_GRAPHIC_CONTROLLER ).
#define SDCARD_RATHERRECENTFIRST
Invierta la clasi cación SD para mostrar primero los archivos "más recientes", de acuerdo con la FAT de la tarjeta. Dado que el
FAT se sale de servicio con el uso, SDCARD_SORT_ALPHA se recomienda.
Orden alfa
http://marlinfw.org/docs/configuration/configuration.html 58/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define SDCARD_SORT_ALPHA
Con esta opción habilitada, los elementos en las tarjetas SD se ordenarán por nombre para facilitar la navegación.
Por defecto…
La ordenación SD utiliza una asignación estática (según lo establecido por SDSORT_LIMIT ), lo que permite al compilador
calcular el uso en el peor de los casos y generar un error si se excede el límite de SRAM.
SDSORT_USES_RAM proporciona una clasi cación más rápida a través de un búfer de directorio estático.
SDSORT_USES_STACK hace lo mismo, pero usa un búfer local basado en pila.
SDSORT_CACHE_NAMES retendrá la lista de archivos ordenados en RAM. (¡Costoso!)
SDSORT_DYNAMIC_RAM solo usa RAM cuando el menú SD está visible. (¡Usar con precaución!)
Muestra una barra de progreso en las pantallas LCD HD44780 para la impresión SD. Las subopciones determinan cuánto
tiempo mostrar la barra de progreso y el mensaje de estado, cuánto tiempo conservar el mensaje de estado y si se debe
incluir una prueba de barra de progreso en el menú Depurar.
http://marlinfw.org/docs/configuration/configuration.html 59/79
16/10/2019 Configurando Marlin | Firmware Marlin
Permita que los hosts soliciten nombres largos para archivos y carpetas con . M33 (/docs/gcode/M033.html) [path]
Habilite esta opción para desplazarse por nombres de archivo largos en el menú de la tarjeta SD.
Agregue una opción para que el rmware anule la impresión SD si se activa algún tope nal. Enciéndalo con (o desde el menú
LCD) y asegúrese de que los topes nales estén habilitados ( ) durante la impresión SD. M540 (/docs/gcode/M540.html)
S1 M120
Esta opción facilita la impresión del mismo archivo de tarjeta SD nuevamente. Cada vez que se completa una impresión SD, el
menú LCD se abrirá con el mismo archivo seleccionado. Desde allí, puede hacer clic para comenzar una nueva impresión, o
puede navegar a otra parte.
Utilice las optimizaciones aquí para mejorar el rendimiento de impresión, que puede verse afectado negativamente por el
dibujo de la pantalla grá ca, especialmente cuando se realizan varios movimientos cortos y al imprimir en máquinas DELTA y
SCARA.
Algunas de estas opciones pueden provocar que la pantalla se quede atrás de los eventos del controlador, ya que existe una
compensación entre el rendimiento de impresión con able y las actualizaciones rápidas de la pantalla.
http://marlinfw.org/docs/configuration/configuration.html 60/79
16/10/2019 Configurando Marlin | Firmware Marlin
Perro guardián
#define USE_WATCHDOG
El perro guardián del hardware debe reiniciar el microcontrolador, deshabilitando todas las salidas, en caso de que el
rmware se atasque y no realice la regulación de la temperatura.
Si tiene un reinicio de watchdog en un ATmega2560, el dispositivo puede bloquearse para siempre, ya que un reinicio de
watchdog lo dejará activado. La WATCHDOG_RESET_MANUAL opción funciona alrededor de esto evitando el reinicio de hardware.
Sin embargo, esta característica no es segura porque solo funciona si las interrupciones están deshabilitadas, y el código
podría bloquearse en una rutina de interrupción con las interrupciones deshabilitadas.
Babystepping
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
#define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
//#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
//#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
// Note: Extra time may be added to mitigate controller latency
//#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
//#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
#endif
Babystepping permite que los M290 elementos del menú LCD muevan los ejes en pequeños incrementos sin cambiar los
valores de posición actuales. Esta característica se usa principalmente para ajustar el eje Z en la primera capa de una
impresión en tiempo real. Advertencia: ¡No respeta los topes nales!
Avance lineal
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D /
// Example: 0.4 * 0.2 / ((1.75 / 2) ^ 2 * PI) = 0.033260135
#endif
http://marlinfw.org/docs/configuration/configuration.html 61/79
16/10/2019 Configurando Marlin | Firmware Marlin
Esta característica le permite a Marlin utilizar el control de presión lineal para la extrusión de impresión, eliminar el moco,
mejorar las esquinas, etc. Consulte Configuration_adv.h la página de Avance lineal (/docs/features/lin_advance.html) para
obtener una documentación más completa.
Código G mejorado
Soporte de arco G2 / G3
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
#if ENABLED(ARC_SUPPORT)
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
#endif
Curva Bezier G5
//#define BEZIER_CURVE_SUPPORT
http://marlinfw.org/docs/configuration/configuration.html 62/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define G38_PROBE_TARGET
#if ENABLED(G38_PROBE_TARGET)
#define G38_MINIMUM_MOVE 0.0275 // (mm) Minimum distance that will produce a move
#endif
Los movimientos (o segmentos) con menos pasos que este se unirán con el siguiente movimiento.
El ancho de pulso mínimo (en µs) para dar un paso a paso. Establezca esto si encuentra que los pasos no son con ables, o si
usa una CPU muy rápida.
Calentadores Paralelos
//#define HEATERS_PARALLEL
Buffer / Hosts
Tampón de bloque
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
El número de movimientos lineales que pueden estar en el plan en cualquier momento dado. El BLOCK_BUFFER_SIZE debe
ser una potencia de 2, (8, 16, 32, etc.) debido a los cambios y ORS se utilizan para hacer el anillo-bu ering.
http://marlinfw.org/docs/configuration/configuration.html 63/79
16/10/2019 Configurando Marlin | Firmware Marlin
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
El búfer ASCII para entrada en serie. La longitud de la línea de comando individual se establece MAX_CMD_SIZE y debe ser lo
su cientemente larga como para contener una línea completa de código G. Establezca el número de líneas con BUFSIZE .
Tamaño del búfer de transmisión al host. Para guardar 386 bytes de PROGMEM (y TX_BUFFER_SIZE +3 bytes de SRAM)
establecido en 0. Para almacenar un "ok" simple, necesita 4 bytes. Un ADVANCED_OK ( M105 ) necesita 32 bytes. Para debug-
echo: 128 bytes para la velocidad óptima. Otra salida no necesita ser tan rápida.
Tamaño del búfer de recepción del host. Sin control de ujo XON / XOFF (ver más SERIAL_XON_XOFF abajo) 32 bytes deberían
ser su cientes. Para usar el control de ujo, establezca este tamaño de búfer en al menos 1024 bytes.
Estadísticas de transferencia SD
#if ENABLED(SDSUPPORT)
//#define SERIAL_STATS_MAX_RX_QUEUED
//#define SERIAL_STATS_DROPPED_RX
#endif
Analizador de emergencia
//#define EMERGENCY_PARSER
Habilite un analizador de comandos de emergencia para interceptar ciertos comandos a medida que ingresan al búfer de
recepción en serie, de modo que no se puedan bloquear. Actualmente maneja M108 (/docs/gcode/M108.html), M112
(/docs/gcode/M112.html)y M410 (/docs/gcode/M410.html). ¡No funciona en placas que utilizan procesadores AT90USB
(USBCON)!
http://marlinfw.org/docs/configuration/configuration.html 64/79
16/10/2019 Configurando Marlin | Firmware Marlin
Las conexiones seriales malas pueden perder un comando recibido al enviar un "ok", y algunos hosts abortarán después de
30 segundos. Algunos hosts comienzan a enviar comandos mientras reciben una 'espera'. Esta "espera" solo se envía cuando
el búfer está vacío. 1 segundo es un buen valor aquí. La HOST_KEEPALIVE función proporciona otra forma de mantener vivo
al host.
OK avanzado
//#define ADVANCED_OK
Incluya información adicional sobre el búfer en los mensajes "ok". Algunos hosts tendrán esta característica pronto. Esto
podría hacer lo NO_TIMEOUTS innecesario.
Retracción de rmware
//#define FWRETRACT // ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_AUTORETRACT 0.1 // When auto-retract is on, convert E moves of this length and
#define MAX_AUTORETRACT 10.0 // Upper limit for auto-retract conversion
#define RETRACT_LENGTH 3 // Default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 // Default swap retract length (positive mm), for extruder ch
#define RETRACT_FEEDRATE 45 // Default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 // Default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 // Default additional recover length (mm, added to retract le
#define RETRACT_RECOVER_LENGTH_SWAP 0 // Default additional swap recover length (mm, added to retrac
#define RETRACT_RECOVER_FEEDRATE 8 // Default feedrate for recovering from retraction (mm/s)
#define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s
#endif
Esta opción agrega G10 (/docs/gcode/G010.html)/ G11 (/docs/gcode/G011.html)comandos para retracción / recuperación
automática basada en rmware. Use M207 (/docs/gcode/M207.html)y M208 (/docs/gcode/G038.html)para establecer los
parámetros, y M209 para habilitar / deshabilitar. Con la retracción automática habilitada, todos los G1 E movimientos dentro
del rango establecido se convertirán en movimientos de retracción / recuperación basados en rmware.
¡Asegúrese de desactivar la retracción automática durante el cambio de lamento! Todos los ajustes M207
(/docs/gcode/M207.html)/ M208 (/docs/gcode/M208.html)/ M209 (/docs/gcode/M209.html)se guardan en EEPROM.
Agregue una velocidad de ventilador secundario para cada ventilador de enfriamiento de impresión. M106
(/docs/gcode/M106.html)
Pausa avanzada
http://marlinfw.org/docs/configuration/configuration.html 65/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
#define PAUSE_PARK_X_POS 3
#define PAUSE_PARK_Y_POS 3
#define PAUSE_PARK_Z_ADD 10
#define PAUSE_PARK_XY_FEEDRATE 100
#define PAUSE_PARK_Z_FEEDRATE 5
#define PAUSE_PARK_RETRACT_FEEDRATE 60
#define PAUSE_PARK_RETRACT_LENGTH 2
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100
#define FILAMENT_CHANGE_LOAD_FEEDRATE 6
#define FILAMENT_CHANGE_LOAD_LENGTH 0
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during fil
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_T
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to prin
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for f
#endif
Característica experimental para soporte de cambio de lamento y estacionamiento de la boquilla cuando está en pausa.
Agrega el M600 comando para realizar un cambio de lamento. Con PARK_HEAD_ON_PAUSE habilitado también agrega el M115
(/docs/gcode/M115.html)comando para pausar la impresión y estacionar la boquilla. Requiere una pantalla LCD. Tenga en
cuenta que M600 se requiere para el valor predeterminado FILAMENT_RUNOUT_SCRIPT .
Habilite esta sección si tiene controladores de motor TMC26X. Deberá importar la biblioteca TMC26XStepper
(https://github.com/trinamic/TMC26XStepper.git) al IDE de Arduino. Vea el Configuration_adv.h archivo para el conjunto
completo de subopciones.
Trinamic TMC2130
//#define HAVE_TMC2130
Habilite esta opción para los controladores paso a paso con gurables por SilentStepStick Trinamic TMC2130 SPI. También
necesitará la biblioteca TMC2130Stepper (https://github.com/teemuatlut/TMC2130Stepper) Arduino. Vea el
Configuration_adv.h archivo para el conjunto completo de subopciones.
Para usar los controladores paso a paso TMC2130 en modo SPI, conecte sus pines SPI2130 a la interfaz SPI de hardware en
su placa y de na los pines CS requeridos en su pins_MYBOARD.h archivo. (por ejemplo, rampas 1,4 utiliza pasadores AUX3
X_CS_PIN 53 , Y_CS_PIN 49 , etc.).
Controladores L6470
http://marlinfw.org/docs/configuration/configuration.html 66/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define HAVE_L6470DRIVER
Habilite esta sección si tiene controladores de motor L6470. Para ello, debe importar la biblioteca L6470
(https://github.com/ameyer/Arduino-L6470) en el IDE de Arduino. Vea el Configuration_adv.h archivo para el conjunto
completo de subopciones.
Esta función se puede usar para hablar con dispositivos esclavos en el bus i2c y devolver datos al host. Con trabajo adicional,
la TWIBus clase se puede usar para construir un protocolo completo y agregar funciones de control remoto a Marlin,
distribuyendo la carga en dos o más tableros.
; Example #1
; This macro send the string "Marlin" to the slave device with address 0x63 (99)
; It uses multiple [`M260`](/docs/gcode/M260.html) commands with one B[base 10] arg
[`M260`](/docs/gcode/M260.html) A99 ; Target slave address
M260 B77 ; M
M260 B97 ; a
M260 B114 ; r
M260 B108 ; l
M260 B105 ; i
M260 B110 ; n
M260 S1 ; Send the current buffer
; Example #2
; Request 6 bytes from slave device with address 0x63 (99)
[`M261`](/docs/gcode/M261.html) A99 B5
; Example #3
; Example serial output of a M261 request
echo:i2c-reply: from:99 bytes:5 data:hello
Husillo / Láser
http://marlinfw.org/docs/configuration/configuration.html 67/79
16/10/2019 Configurando Marlin | Firmware Marlin
//#define SPINDLE_LASER_ENABLE
#if ENABLED(SPINDLE_LASER_ENABLE)
SuperPid es un controlador de velocidad de enrutador / husillo utilizado en la comunidad de fresado CNC. Marlin se puede
usar para encender y apagar el husillo. También se puede usar para establecer la velocidad del husillo de 5,000 a 30,000
RPM.
Deberá seleccionar un pin para la función ON / OFF y, opcionalmente, elegir un pin PWM de hardware de 0-5 V para el control
de velocidad y un pin para la dirección de rotación.
Consulte la página Láser y husillo (/docs/con guration/laser_spindle.html) para obtener más detalles.
Habilite esta opción para agregar compatibilidad con un sensor de ancho de lamento
como el Prototipo de sensor de ancho de lamento versión 3
(http://www.thingiverse.com/thing:454584) . Con un sensor de lamento instalado,
Marlin puede ajustar el caudal de acuerdo con el ancho de lamento medido. Ajuste
las subopciones a continuación según su con guración.
#define FILAMENT_SENSOR_EXTRUDER_NUM 0
Solo un extrusor puede tener un sensor de lamento. Especi que aquí qué extrusora lo tiene.
#define MEASUREMENT_DELAY_CM 14
http://marlinfw.org/docs/configuration/configuration.html 68/79
16/10/2019 Configurando Marlin | Firmware Marlin
#define MEASURED_UPPER_LIMIT 3.30 // (mm) Upper limit used to validate sensor reading
#define MEASURED_LOWER_LIMIT 1.90 // (mm) Lower limit used to validate sensor reading
El rango de ancho de lamento. Ajústelos según sus preferencias de lamentos. Los valores de la muestra aquí se aplican a 3
mm. Para 1.75 mm usará un rango más como 1.60 a 1.90.
#define MAX_MEASUREMENT_DELAY 20
Esto de ne el tamaño del búfer para asignar para su uso MEASUREMENT_DELAY_CM . El valor debe ser mayor o igual que
MEASUREMENT_DELAY_CM . Mantenga esta con guración baja para reducir el uso de RAM.
#define FILAMENT_LCD_DISPLAY
Muestra periódicamente un mensaje en la pantalla LCD que muestra el diámetro medido del lamento.
Habilita G53 (/docs/gcode/G053.html)y G54 - G59.3 (/docs/gcode/G054-G059.html) comandos para seleccionar sistemas de
coordenadas, además G92.1 (/docs/gcode/G010.html)de restablecer el espacio de trabajo actual al espacio de la máquina
nativa. Los espacios de trabajo con gurados con esta función también se guardan en EEPROM.
Depuración de pines
//#define PINS_DEBUGGING
Habilite esta opción para agregar el M43 (/docs/gcode/M043.html)código G de Debug Pins. Este comando se puede usar para
enumerar los pines, mostrar su estado, observar los pines en busca de cambios, observar paradas nales, alternar LED,
probar la sonda del servo Z, alternar pines, etc.
Se recomienda habilitar esta función (junto con EXTENDED_CAPABILITIES_REPORT ) para instalar el M155
(/docs/gcode/M115.html)comando Auto-Report Temperature. M115 (/docs/gcode/M115.html)le dice a Marlin que envíe la
temperatura actual al host a intervalos regulares, en lugar de requerir que el software del host envíe M105 repetidamente.
Esto ahorra un espacio en el búfer de comandos y reduce la sobrecarga.
http://marlinfw.org/docs/configuration/configuration.html 69/79
16/10/2019 Configurando Marlin | Firmware Marlin
#define EXTENDED_CAPABILITIES_REPORT
Esta opción agrega una lista de capacidades a la salida de M115 (/docs/gcode/M115.html), permitiendo que el software host
inteligente aproveche los complementos como AUTO_REPORT_TEMPERATURES .
Active esta opción para que la extrusión volumétrica sea el método predeterminado. Los últimos valores cargados o
establecidos por M404 W (/docs/gcode/M400.html)y M200 D (/docs/gcode/M200.html)se utilizarán como los diámetros de
lamento nominal y real. Con esta opción, M200 D0 (/docs/gcode/M200.html)debe usarse para deshabilitar el modo
volumétrico cuando se ejecuta código G basado en la longitud.
Habilite esta opción para una compilación más ágil de Marlin que elimine todas las compensaciones del espacio de trabajo.
Esto simpli ca todas las transformaciones de coordenadas, nivelación, etc., y puede permitir una impresión ligeramente más
rápida. Con esta opción, M206 (/docs/gcode/M206.html)ya M428 (/docs/gcode/M428.html)están deshabilitados, y G92
(/docs/gcode/G92.html)vuelve a su comportamiento anterior, como está en Marlin 1.0.
Algunos hosts usan una fuente proporcional en su consola de salida. Esto di culta la lectura de la salida de Marlin que se
basa en el ancho jo para la alineación. Esta opción le dice a Marlin cuántos espacios se requieren para llenar un espacio de
caracteres típico en la fuente del host. Para los clientes que usan una fuente de ancho jo (como OctoPrint), deje este
conjunto en 1.0. De lo contrario, ajuste de acuerdo a su an trión.
Esta opción utiliza un búfer SRAM de 28 bytes y un método alternativo para obtener valores de parámetros para que el
analizador de código G pueda ejecutarse un poco más rápido. Si es posible, deje siempre esta opción habilitada.
http://marlinfw.org/docs/configuration/configuration.html 70/79
16/10/2019 Configurando Marlin | Firmware Marlin
/**
* User-defined menu items that execute custom GCode
*/
//#define CUSTOM_USER_MENUS
#if ENABLED(CUSTOM_USER_MENUS)
#define USER_SCRIPT_DONE "M117 User Script Done"
#define USER_SCRIPT_AUDIBLE_FEEDBACK
//#define USER_SCRIPT_RETURN // Return to status screen after a script
//#define I2C_POSITION_ENCODERS
#if ENABLED(I2C_POSITION_ENCODERS)
http://marlinfw.org/docs/configuration/configuration.html 71/79
16/10/2019 Configurando Marlin | Firmware Marlin
#endif
//#define MAX7219_DEBUG
#if ENABLED(MAX7219_DEBUG)
#define MAX7219_CLK_PIN 64 // 77 on Re-ARM
// Configuration of the 3 pins to control the display
#define MAX7219_DIN_PIN 57 // 78 on Re-ARM
#define MAX7219_LOAD_PIN 44 // 79 on Re-ARM
#define MAX7219_DEBUG_PRINTER_ALIVE // Blink corner LED of 8x8 matrix to show that the firmware is
#define MAX7219_DEBUG_STEPPER_HEAD 3 // Show the stepper queue head position on this and the next L
#define MAX7219_DEBUG_STEPPER_TAIL 5 // Show the stepper queue tail position on this and the next L
#define MAX7219_DEBUG_STEPPER_QUEUE 0 // Show the current stepper queue depth on this and the next L
#endif
#define INTERNAL_SERIAL_PORT 2
Esto activa una conexión serial adicional en Marlin llamada internalSerial. Entonces, la segunda de nición en la con guración
de ejemplo puede permanecer tal como está.
Tableros de 32 bits
Cuando utilice una placa de 32 bits, solo tiene que de nir el nombre del puerto serie que se utilizará para la comunicación
con el MMU2.
http://marlinfw.org/docs/configuration/configuration.html 72/79
16/10/2019 Configurando Marlin | Firmware Marlin
Restablecimiento MMU2
El MMU2 ofrece dos opciones de cómo la placa de la impresora puede activar un reinicio: reinicio de software y hardware.
Por defecto, el reinicio del software está habilitado. El reinicio de hardware requiere un pin de salida digital conectado al pin
de reinicio en el MMU2. Para activar el reinicio de hardware, de na el pin que se usará en la placa de la impresora
#define MMU2_RST_PIN 23
Modo 12V
Si su MMU2 recibe alimentación de 12 V, puede activar un modo especial en el MMU2.
// Enable if the MMU2 has 12V stepper motors (MMU2 Firmware 1.0.2 and up)
#define MMU2_MODE_12V
Esto debería reducir el ruido del MMU2 pero no tiene ningún efecto en el funcionamiento general.
Menú LCD
// Add MMU2 controls to the LCD menu
#define MMU2_MENUS
Active esta opción para activar un menú adicional para operar el MMU2 desde la pantalla LCD.
http://marlinfw.org/docs/configuration/configuration.html 73/79
16/10/2019 Configurando Marlin | Firmware Marlin
Los valores son distancias relativas de E y velocidades de avance en mm / m. Los valores predeterminados se basan en la
distancia de la boquilla al engranaje de la extrusora de una extrusora Prusa MK3, por lo que si es necesario, debe
modi carlos en la con guración de su extrusora / hotend en consecuencia.
Descargar lamento
Para descargar el lamento usando el menú LCD, se ejecutará una secuencia de embestida genérica antes de que el MMU2
retraiga el lamento. Los pasos para hacerlo se de nen usando
#define MMU2_RAMMING_SEQUENCE \
{ 1.0, 1000 }, \
{ 1.0, 1500 }, \
{ 2.0, 2000 }, \
{ 1.5, 3000 }, \
{ 2.5, 4000 }, \
{ -15.0, 5000 }, \
{ -14.0, 1200 }, \
{ -6.0, 600 }, \
{ 10.0, 700 }, \
{ -10.0, 400 }, \
{ -50.0, 2000 }
Los valores son distancias relativas de E y velocidades de avance en mm / m. Los valores predeterminados se basan en un
E3D V6 hotend y la distancia entre la boquilla y el extrusor de una extrusora Prusa MK3, por lo que si es necesario, debe
modi carlos en la con guración de su extrusora / hotend en consecuencia.
Expulsar lamento
Expulsar lamento hará una simple retracción del lamento fuera del hotend sin embestir. El avance para hacerlo se de ne
usando
Depurar
#define MMU2_DEBUG // Write debug info to serial output
Active esta opción para obtener resultados de depuración relacionados con la impresora para la comunicación MMU2. Esto
consumirá algo de PROGMEM.
http://marlinfw.org/docs/configuration/configuration.html 74/79
16/10/2019 Configurando Marlin | Firmware Marlin
Volver arriba
http://marlinfw.org/docs/configuration/configuration.html 75/79
16/10/2019 Configurando Marlin | Firmware Marlin
http://marlinfw.org/docs/configuration/configuration.html 76/79
16/10/2019 Configurando Marlin | Firmware Marlin
http://marlinfw.org/docs/configuration/configuration.html 77/79
16/10/2019 Configurando Marlin | Firmware Marlin
http://marlinfw.org/docs/configuration/configuration.html 78/79
16/10/2019 Configurando Marlin | Firmware Marlin
http://marlinfw.org/docs/configuration/configuration.html 79/79