Sunteți pe pagina 1din 86

Universidad Mayor de San Simón

Facultad de Ciencias y Tecnología


Ing. Electromecánica
Univ. Miguel Angel Mamani Costas

Guía de configuración Firmware Marlín


En español
2019

Versión web oficial y original:


Universidad Mayor de San Simón
Facultad de Ciencias y Tecnología
Ing. Electromecánica
Univ. Miguel Angel Mamani Costas

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?

Marlin es un rmware de (https://en.wikipedia.org/wiki/Firmware) código abierto para la familia RepRap


(https://en.wikipedia.org/wiki/RepRap_project) de prototipos rápidos de replicación, conocidos
popularmente como "impresoras 3D". Se derivó de Sprinter
(http://reprap.org/wiki/List_of_Firmware#Sprinter) y grbl (http://reprap.org/wiki/Grbl#Grbl) , y se convirtió
en un proyecto de código abierto (https://en.wikipedia.org/wiki/Open-source_software) independiente el 12
de agosto de 2011 con su lanzamiento de Github
(https://github.com/MarlinFirmware/Marlin/commit/f850af5c1ca343ed65b94c4b9da5dd1ab4c4a53c) .
Marlin tiene licencia bajo la GPLv3 y es gratuita para todas las aplicaciones.

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

Sistema de movimiento inteligente con anticipación, movimiento basado en interrupciones, aceleración


lineal
Soporte para cinemática cartesiana, Delta, SCARA y Core / H-Bot
Control de calentador PID de circuito cerrado con autoajuste, protección térmica, corte de seguridad
Soporte para hasta 5 extrusoras más una cama de impresión calentada
Controlador LCD UI con más de 30 traducciones de idiomas (/docs/development/lcd_language.html)
Impresión basada en host y tarjeta SD con inicio automático
Compensación de nivelación de lecho: con o sin sonda de lecho
Avance lineal (/docs/features/lin_advance.html) para extrusión basada en presión
Soporte para extrusión volumétrica
Soporte para mezcla y extrusoras múltiples (Cyclops, Chimera, Diamond)
Soporte para sensores de ancho de lamento / ancho
Temporizador de trabajos de impresión y contador de impresión

¿Cómo funciona Marlin?


Marlin Firmware se ejecuta en la placa principal de la impresora 3D, gestionando todas las actividades en
tiempo real de la máquina. Coordina los calentadores, los pasos, los sensores, las luces, la pantalla LCD, los
botones y todo lo demás involucrado en el proceso de impresión 3D.

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.

El lenguaje de control para Marlin es un derivado del G-código (https://en.wikipedia.org/wiki/G-code) . Los


comandos del código G le dicen a una máquina que haga cosas simples como "con gurar el calentador 1 a
180 °" o "moverse a XY a la velocidad F." Para imprimir un modelo con Marlin, debe convertirse al código G
usando un programa llamado un "rebanador". Dado que cada impresora es diferente, no encontrará
archivos de código G para descargar; tendrás que cortarlos tú mismo.

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.

Independientemente de lo que use para su cadena de herramientas CAD


(https://en.wikipedia.org/wiki/Computer-aided_design) , siempre que pueda exportar un modelo sólido, una
máquina de cortar puede "cortarlo" en código G, y el rmware de Marlin hará todo lo posible para imprimir
el resultado nal.

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:

Pronterface (https://www.pronterface.com/) es un host de código abierto de Kliment.


Repetier Host (https://www.repetier.com/) es un host de código cerrado de Repetier Software.
OctoPrint (https://octoprint.org/) es un host de código abierto para Raspberry Pi de Gina Häußge
(https://www.patreon.com/foosel) .
Cura (https://ultimaker.com/en/products/cura-software) es un host de código abierto de Ultimaker.
(ADVERTENCIA: ya no puede seleccionar manualmente el puerto y la velocidad com, su impresora debe
ser detectada automáticamente por Cura)
Simplify3D (https://www.simplify3d.com/) incluye un host y un segmentador de datos.

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.

Traído a usted con  falta de  y muchos .


El contenido de este sitio web es © 2019 bajo los términos de la Licencia GPLv3
(http://www.gnu.org/licenses/gpl-3.0.txt) .

Volver arriba 

http://marlinfw.org/docs/basics/introduction.html 4/4
16/10/2019 Configurando Marlin | Firmware Marlin

Con gurando Marlin


Marlin es un gran programa C ++ compuesto por muchos archivos, pero aquí solo hablaremos de los dos archivos que
contienen todas las opciones de con guración en tiempo de compilación de 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.

Directivas del compilador


Marlin se con gura utilizando las directivas del compilador de C ++. Esto le permite a Marlin aprovechar el preprocesador de
C ++ e incluir solo el código y los datos necesarios para las opciones habilitadas. Esto da como resultado el binario más
pequeño posible. Una construcción de Marlin puede variar de 50K a más de 230K de tamaño.

La con guración se puede habilitar, deshabilitar y asignar valores utilizando la sintaxis del preprocesador C de esta manera:

#define THIS_IS_ENABLED // this switch is enabled


//#define THIS_IS_DISABLED // this switch is disabled
#define OPTION_VALUE 22 // this setting is "22"

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)

Antes de que empieces


http://marlinfw.org/docs/configuration/configuration.html 1/79
16/10/2019 Configurando Marlin | Firmware Marlin

Para obtener la Configuration.h con guración correcta, necesitará saber lo siguiente acerca de su impresora:

Estilo de impresora, como cartesiano, Delta, CoreXY o SCARA


Tablero de controladores, como RAMPS, RUMBA, Teensy, etc.
Número de extrusoras
Pasos por mm para ejes XYZ y extrusoras (se puede ajustar más adelante)
Posiciones nales
Termistores y / o termopares
Sondas y con guraciones de sondeo
Marca y modelo de controlador LCD
Complementos y componentes personalizados

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.

Versiones de con guración


#define CONFIGURATION_H_VERSION 020000

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

Habilite esto si su placa tiene un puerto serie secundario.

El puerto serie -1 es el puerto serie emulado por USB, si está disponible.

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

Habilite la interfaz serial Bluetooth. Para tableros basados en el AT90USB.

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 con guración más importante es Marlin es la placa base. El rmware


necesita saber en qué placa se ejecutará para poder asignar las funciones
correctas a todos los pines y aprovechar todas las capacidades de la placa.
Establecer esto incorrectamente conducirá a resultados impredecibles.

Utilizando boards.h (/docs/hardware/boards.html)como referencia,


reemplace BOARD_RAMPS_14_EFB con la identi cación de su placa. El
boards.h (/docs/hardware/boards.html)archivo tiene la lista más
actualizada de placas compatibles, así que verifíquelo primero si no ve la
suya allí.

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).

Nombre de máquina personalizado


//#define CUSTOM_MACHINE_NAME "3D Printer"

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.

Información del extrusor


Extrusoras
#define EXTRUDERS 1

Este valor, de 0 a 6, de ne cuántos extrusores (o E steppers) tiene la impresora. Por


defecto, Marlin asumirá boquillas separadas que se mueven juntas en un solo carro.
Si tiene una sola boquilla, una extrusora de conmutación, una extrusora mezcladora o
dos carros X, especifíquelo a continuación.

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.

Diámetro del lamento


http://marlinfw.org/docs/configuration/configuration.html 4/79
16/10/2019 Configurando Marlin | Firmware Marlin

#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00

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.

Puede anular este valor con M404 W (/docs/gcode/M404.html).

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.

### Průša MK2 Multiplexor multimateria de boquilla simple

//#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.

//#define E_MUX0_PIN 40 // Always Required


//#define E_MUX1_PIN 42 // Needed for 3 to 8 inputs
//#define E_MUX2_PIN 44 // Needed for 5 to 8 inputs

Anule los pines selectores DIO predeterminados.

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

Todos los detalles se con guran en [Con guration_adv.h]

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.

Extrusora de estacionamiento (con solenoide)


//#define PARKING_EXTRUDER

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.

Extrusora de estacionamiento (con imanes)


//#define MAGNETIC_PARKING_EXTRUDER

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 EITHER(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER)

#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders


#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S

#if ENABLED(PARKING_EXTRUDER)

#define PARKING_EXTRUDER_SOLENOIDS_INVERT // If enabled, the solenoid is NOT magnetized w


#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // (ms) Delay for magnetic field. No delay if 0
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380

#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 .

Cambio de cabezal de herramienta


//#define SWITCHING_TOOLHEAD

Soporte para cabezales de herramientas intercambiables y acoplables, como el cambiador de herramientas E3D. Los
cabezales de herramientas están bloqueados con un servo.

Cabezal de herramientas de conmutación magnética


//#define MAGNETIC_SWITCHING_TOOLHEAD

Admite cabezales de herramientas intercambiables y acoplables con un mecanismo de acoplamiento magnético con
movimiento y sin servo.

Cabezal de herramientas de conmutación electromagnética


//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD

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

#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)


#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstruc
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_Y_RELEASE 5 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_X_SECURITY { 90, 150 } // (mm) Security distance X axis (T0,T1)
//#define PRIME_BEFORE_REMOVE // Prime the nozzle before release from the dock
#if ENABLED(PRIME_BEFORE_REMOVE)
#define SWITCHING_TOOLHEAD_PRIME_MM 20 // (mm) Extruder prime length
#define SWITCHING_TOOLHEAD_RETRACT_MM 10 // (mm) Retract after priming length
#define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/m) Extruder prime feedrate
#define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/m) Extruder retract feedrate
#endif
#elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_Z_HOP 2 // (mm) Z raise for switching
#endif
#endif

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" .

MIXING_EXTRUDER activa M163 (/docs/gcode/M163.html)- establece el factor de mezcla, M164 (/docs/gcode/M164.html)-


guarda la mezcla y M165 (/docs/gcode/M165.html)- establece la mezcla.

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

//#define AUTO_POWER_CONTROL // Enable automatic control of the PS_ON pin


#if ENABLED(AUTO_POWER_CONTROL)
#define AUTO_POWER_FANS // Turn on PSU if fans need power
#define AUTO_POWER_E_FANS
#define AUTO_POWER_CONTROLLERFAN
#define AUTO_POWER_CHAMBER_FAN
//#define AUTO_POWER_E_TEMP 50 // (°C) Turn on PSU over this temperatu
//#define AUTO_POWER_CHAMBER_TEMP 30 // (°C) Turn on PSU over this temperatu
#define POWER_TIMEOUT 30
#endif
#endif

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.

Con guraciones térmicas


Sensores de temperatura
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_5 0
#define TEMP_SENSOR_BED 0
#define TEMP_SENSOR_CHAMBER 0

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 .

#define TEMP_BED_RESIDENCY_TIME 10 // (seconds)


#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target
#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC e

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).

#define HEATER_0_MAXTEMP 285


#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275
#define HEATER_4_MAXTEMP 275
#define BED_MAXTEMP 130

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.

Opciones PID de Hotend

#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

// Mendel Parts V9 on 12V


//#define DEFAULT_Kp 63.0
//#define DEFAULT_Ki 2.25
//#define DEFAULT_Kd 440

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.

Opciones de PID de cama

//#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

#define MAX_BED_POWER 255

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.

Valores PID de la cama  

#if ENABLED(PIDTEMPBED)

//#define PID_BED_DEBUG // Sends debug data to the serial port.

//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)


//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4

//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)


//from pidautotune
//#define DEFAULT_bedKp 97.1
//#define DEFAULT_bedKi 1.41
//#define DEFAULT_bedKd 1675.16

// 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.

Prevenir extrusión larga

#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

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders


#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed
#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber

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.

Marlin ofrece dos niveles de protección térmica:

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í.

SENSORLESS_HOMING aún necesitará conectores de tope nal delimitados.

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.

Inversión de tope nal


// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

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í.

Conductores paso a paso


//#define X_DRIVER_TYPE A4988
//#define Y_DRIVER_TYPE A4988
//#define Z_DRIVER_TYPE A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988

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.

Umbral de ruido de n de carrera


//#define ENDSTOP_INTERRUPTS_FEATURE

Habilítelo si su sonda o topes nales se disparan falsamente debido al ruido.

Movimiento
Distintos factores E
//#define DISTINCT_E_FACTORS

Habilítelo DISTINCT_E_FACTORS si sus extrusoras no son todas mecánicamente idénticas. Con


esta con guración, puede especi car opcionalmente diferentes pasos por mm, velocidad de avance máxima y aceleración
máxima para cada extrusora.

Pasos predeterminados por mm  


#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 }

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.

Anular con M92 (/docs/gcode/M092.html).


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.

Velocidad de alimentación máxima predeterminada  

#define DEFAULT_MAX_FEEDRATE { 500, 500, 2.25, 45 }

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 .

Anular con M203 (/docs/gcode/M203.html).

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  

#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 }

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.

Anular con M201 (/docs/gcode/M201.html).

Aceleración predeterminada  

#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves


#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves

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.

En movimientos de impresión / desplazamiento, DEFAULT_ACCELERATION y DEFAULT_TRAVEL_ACCELERATION aplicar a los ejes


XYZ. En los movimientos de retracción, se DEFAULT_RETRACT_ACCELERATION aplica solo al eje E. Durante la plani cación del
movimiento, Marlin restringe las aceleraciones predeterminadas a la aceleración máxima de todos los ejes involucrados en el
movimiento.

Anular con M204 (/docs/gcode/M204.html).

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  

#define DEFAULT_XJERK 20.0


#define DEFAULT_YJERK 20.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0

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.

Anular con M205 (/docs/gcode/M205.html).

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.

Sonda manual (sin sonda)

//#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

Esta opción es para cualquier sonda que esté ja en su


lugar, sin necesidad de desplegarse o guardarse.
Especi que este tipo para una sonda inductiva o cuando
use la boquilla como sonda.

Sonda Z Servo

//#define Z_PROBE_SERVO_NR 0 // Defaults


//#define Z_SERVO_ANGLES { 70, 0 } // Z Servo D

Para indicar una sonda Servo Z (p. Ej., Un interruptor de


nal de carrera montado en un brazo giratorio) solo
especi que el índice del servo. Use el M280
(/docs/gcode/M280.html)comando para encontrar los
mejores Z_SERVO_ANGLES valores.

BLTouch

//#define BLTOUCH

La sonda ANTCLABS BLTouch (https://plus.google.com/113792662927481823969) utiliza un circuito personalizado y un imán


para subir y bajar un pasador de metal que actúa como una sonda táctil. El BLTouch utiliza el servo conector y se controla
mediante servo ángulos especí cos. Con esta opción habilitada, las otras con guraciones requeridas se con guran
automáticamente (por lo que no es necesario ingresar los ángulos del servo, por ejemplo).

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

La sonda Touch-MI de hotends.fr se implementa y activa


moviendo el eje X a un imán en el borde de la cama. Por
defecto, se supone que el imán se encuentra a la
izquierda y se activa por un hogar. Si el imán está a la
derecha, habilite y establezca TOUCH_MI_DEPLOY_XPOS
en la posición de despliegue. También opción requiere:
BABYSTEPPING , BABYSTEP_ZPROBE_OFFSET ,
Z_SAFE_HOMING , y un mínimo Z_HOMING_HEIGHT de 10.

Sonda solenoide

//#define SOLENOID_PROBE

Una sonda que se despliega y guarda con un pin de


solenoide (De nido como SOL1_PIN ).

Trineo de sonda Z

//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5

Este tipo de sonda está montada en un "trineo"


desmontable que se encuentra en el extremo más
alejado del eje X. Antes de sondear, el carro X se mueve
hasta el nal y recoge el trineo. Cuando se completa el
sondeo, suelta el trineo. El
SLED_DOCKING_OFFSET especi ca la distancia adicional
del eje X debe viajar para recoger el trineo. 0 debería
estar bien, pero se puede impulsar aún más si es
necesario.

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

Una sonda z retráctil para deltas que utiliza una llave


Allen como sonda. Consulte " Sonda de nivelación
automática de lecho Kossel

(http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe) " en el wiki RepRap. Se despliega apalancando contra la correa


del eje z y se retrae empujando la sonda hacia abajo.

Se incluirá más información en una próxima página de con guración de Delta.

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).

Distancia desde el borde

http://marlinfw.org/docs/configuration/configuration.html 22/79
16/10/2019 Configurando Marlin | Firmware Marlin

#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]


#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]

#define MIN_PROBE_EDGE 10

Ciertos tipos de sonda necesitan mantenerse alejados del borde

Velocidad de sondeo
// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 8000

// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)


#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z

// Feedrate (mm/m) for the "accurate" probe of each point


#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)

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.

Espacio libre de la sonda


#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING 5 // Z position after probing is done

#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping

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!

#define Z_PROBE_OFFSET_RANGE_MIN -20


#define Z_PROBE_OFFSET_RANGE_MAX 20

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.

// Before deploy/stow pause for user confirmation


//#define PAUSE_BEFORE_DEPLOY_STOW
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
#endif

Antes de desplegar / guardar pausa para con rmación del usuario

Sonda con calentadores apagados


//#define PROBING_HEATERS_OFF // Turn heaters off when probing
#if ENABLED(PROBING_HEATERS_OFF)
//#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy
#endif
//#define PROBING_FANS_OFF // Turn fans off when probing
//#define PROBING_STEPPERS_OFF // Turn steppers off (unless needed to hold position) when probing
//#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors

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.

Conductores paso a paso


Motor habilitado
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

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.

#define DISABLE_E false // For all extruders


#define DISABLE_INACTIVE_EXTRUDER false // Keep only the active extruder enabled

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.

Dirección del motor


#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false

#define INVERT_E0_DIR false


#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false

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.

Homing and Bounds


Altura de referencia Z
//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been
//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unk
//For beds th
//#define Z_HOMING_HEIGHT 4

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

MANUAL_[XYZ]_HOME_POS opciones se pueden usar para anularlas, si es necesario.


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).

#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)


//#define SOFT_ENDSTOPS_MENU_ITEM
#endif

Habilitar / deshabilitar paradas nales de software desde la pantalla LCD

Sensor de salida de lamento

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.

// Set one or more commands to execute on filament runout.


// (After 'M412 H' Marlin will ask the host to handle the process.)
#define FILAMENT_RUNOUT_SCRIPT "M600"

// After a runout is detected, continue printing this length of filament


// before executing the runout script. Useful for a sensor at the end of
// a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
//#define FILAMENT_RUNOUT_DISTANCE_MM 25

#ifdef FILAMENT_RUNOUT_DISTANCE_MM
// Enable this option to use an encoder disc that toggles the runout pin
// as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
// large enough to avoid false positives.)
//#define FILAMENT_MOTION_SENSOR
#endif
#endif

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.

Estilo de nivelación de cama


La nivelación de la cama es una característica estándar en muchas impresoras 3D. Elimina las conjeturas de obtener una
buena primera capa y una buena adhesión a la cama. Todas las formas de nivelación de lecho agregan G29 sondeo de lecho ,
M420 habilitan / deshabilitan y pueden guardar sus resultados en EEPROM con M500 . ¡Bravo!

Con nivelación de cama habilitada:


http://marlinfw.org/docs/configuration/configuration.html 28/79
16/10/2019 Configurando Marlin | Firmware Marlin

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

Habilite solo un tipo de nivelación de cama.

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 .

Solo AUTO_BED_LEVELING_BILINEAR y AUTO_BED_LEVELING_UBL apoyo DELTA .


Solo AUTO_BED_LEVELING_BILINEAR actualmente soporta SCARA .
MESH_BED_LEVELING es incompatible con Delta y SCARA.

Restaurar después de G28


//#define RESTORE_LEVELING_AFTER_G28

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.

Nivelación de altura de fundido


#define ENABLE_LEVELING_FADE_HEIGHT

Disponible con MESH_BED_LEVELING , AUTO_BED_LEVELING_BILINEAR y AUTO_BED_LEVELING_UBL .

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.

Patrón de validación de malla G26

/**
* 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.

Opciones lineales / bilineales


#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

Estas opciones especi can el número predeterminado de puntos para sondear en cada dimensión durante G29 .

//#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE


//#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - (MIN_PROBE_EDGE))
//#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
//#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - (MIN_PROBE_EDGE))

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).

Opciones de nivelación de lecho uni cado


Puntos de sonda

#define UBL_MESH_INSET 1 // Mesh inset margin on print area


#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle


#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500

//#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.

Opciones de nivelación de la cama de malla

http://marlinfw.org/docs/configuration/configuration.html 31/79
16/10/2019 Configurando Marlin | Firmware Marlin

#define MESH_INSET 10 // Mesh inset margin on print area


#define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

//#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 .

Nivelación de cama LCD


//#define LCD_BED_LEVELING
#if ENABLED(LCD_BED_LEVELING)
#define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis.
#define LCD_PROBE_Z_RANGE 4 // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment
//#define MESH_EDIT_MENU // Add a menu to edit mesh points
#endif

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

Script de nalización de sonda Z


//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"

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 .

Posición inicial manual


//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0 // Distance from nozzle to printbed after homing

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

// Homing speeds (mm/m)


#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60)

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

Valide que los topes nales se activen en los movimientos de referencia.

Compensación de inclinación de la cama


//#define SKEW_CORRECTION

#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

// Or, set the default skew factors directly here


// to override the above measurements:
#define XY_SKEW_FACTOR 0.0

//#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

// Enable this option for M852 to set skew at runtime


//#define SKEW_CORRECTION_GCODE
#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.

Los comandos relacionados con EEPROM son:

M500 (/docs/gcode/M500.html): Guarda todas las con guraciones actuales en EEPROM.


M501 (/docs/gcode/M501.html): Cargue todas las con guraciones guardadas por última vez en EEPROM.
M502 (/docs/gcode/M502.html): Restablece todas las con guraciones a sus valores predeterminados (según lo
establecido por Configuration.h )
M503 (/docs/gcode/M503.html): Imprime la con guración actual (en RAM, no EEPROM)

Opciones de EEPROM

//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!


#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.

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.

Vigilante de memoria libre


//#define M100_FREE_MEMORY_WATCHER

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

Presets de material LCD  


#define PREHEAT_1_TEMP_HOTEND 180
#define PREHEAT_1_TEMP_BED 70
#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255

#define PREHEAT_2_TEMP_HOTEND 240


#define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255

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

Estacione la boquilla en la posición XYZ dada en ralentí o G27 (/docs/gcode/G027.html).

El parámetro "P" controla la acción aplicada al eje Z:

P0 - (Predeterminado) Si Z está debajo del parque Z, levante la boquilla.


P1 - Eleve la boquilla siempre a la altura de Z-park.
P2 - Eleve la boquilla por la cantidad de Z-park, limitada a Z_MAX_POS .

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

// Default number of triangles


#define NOZZLE_CLEAN_TRIANGLES 3

// 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) }

// Circular pattern radius


#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
// Circular pattern circle fragments number
#define NOZZLE_CLEAN_CIRCLE_FN 10
// Middle point of circle
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT

// Move the nozzle to the initial position after cleaning


#define NOZZLE_CLEAN_GOBACK

// Enable for a purge/clean station that's always at the gantry height (thus no Z move)
//#define NOZZLE_CLEAN_NO_Z
#endif

Agrega el G12 (/docs/gcode/G012.html)comando para realizar un proceso de limpieza de boquillas. Ver


Configuration.h para opciones de con guración adicionales.

Temporizador de trabajos de impresión


#define PRINTJOB_TIMER_AUTOSTART

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:

M75 (/docs/gcode/M075.html) - Inicie el temporizador del trabajo de impresión.


M76 (/docs/gcode/M076.html) - Pausa el temporizador del trabajo de impresión.
M77 (/docs/gcode/M077.html) - Detenga el temporizador del trabajo de impresión.

Contador de impresión
//#define PRINTCOUNTER

Cuando esté habilitado, Marlin realizará un seguimiento de algunas estadísticas de impresión, como:

Total de trabajos de impresión


Total de trabajos de impresión exitosos
Total de trabajos de impresión fallidos
Tiempo total de impresión

Esta información puede ser vista por el M78 comando.

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:

Código Idioma   Código Idioma   Código Idioma


en Inglés (predeterminado)   un aragonés   bg búlgaro
California catalán   cn chino   cz checo
abogado de
danés   Delaware alemán   el griego
distrito
el-gr Griego (grecia)   es Español   UE Euskera vasco
nlandés   fr francés   gl gallego
hora croata   eso italiano   kana japonés
Coreano (Corea del
kana_utf8 Japonés (UTF8)   ko_KR   nl holandés
Sur)
Portugués
pl polaco   pt portugués   pt-br
(brasileño)
Portugués (brasileño
pt-   pt_utf8 Portugués (UTF8)   ru ruso
UTF8)
Reino
sk_utf8 Eslovaco (UTF8)   tr turco   ucranio
Unido
vi vietnamita   zh_CN Chino simpli cado)   zh_TW Chino tradicional)
               

Consulte language.h la última lista de idiomas admitidos y sus códigos de idiomas internacionales.

Conjunto de caracteres HD44780


#define DISPLAY_CHARSET_HD44780 JAPANESE

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:

JAPANESE … los más comunes


WESTERN ... con caracteres más acentuados
CYRILLIC ... para el idioma ruso

Para determinar la extensión de idioma instalada en su controlador:

Compila y sube con LCD_LANGUAGE set to 'test'


Haga clic en el controlador para ver el menú LCD
La pantalla LCD mostrará texto en japonés, occidental o cirílico.

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

Utilice los controles y reintentos de CRC en la comunicación SD.

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.

Dirección del codi cador


Pruebe primero el comportamiento de su codi cador con las dos opciones siguientes deshabilitadas.

¿Editar valor invertido y navegar por el menú? Habilitar REVERSE_ENCODER_DIRECTION .


¿Menú de navegación invertido solamente? Habilitar REVERSE_MENU_DIRECTION .
¿Edición de valor invertido solamente? Habilita AMBAS opciones.

//#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í.

//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100


//#define LCD_FEEDBACK_FREQUENCY_HZ 1000

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:

REPRAP_DISCOUNT_SMART_CONTROLLER Un controlador LCD de 20 x 4 caracteres con rueda de clic.


REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER Un controlador LCD monocromo de 128 x 64 píxeles con rueda de
clic. Capaz de mostrar grá cos de mapa de bits simples y hasta 5 líneas de texto.

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

LCDs grá cas


Opción Descripción
Cartesio UI (http://mauk.cc/webshop/cartesio-shop/electronics/user-
CARTESIO_UI
interface) .
MaKr3d Makr-Panel (http://reprap.org/wiki/MaKr3d_MaKrPanel) con
MAKRPANEL
controlador grá co y soporte SD.
ReprapWorld LCD grá co (https://reprapworld.com/?
REPRAPWORLD_GRAPHICAL_LCD
products_details&products_id/1218) .

VIKI2 Panucatt Devices (http://panucatt.com) Viki 2.0 (http://panucatt.com) .


miniVIKI mini Viki con LCD grá co (http://panucatt.com) .
Controlador grá co completo Adafruit ST7565
ELB_FULL_GRAPHIC_CONTROLLER
(https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/) .
RepRapDiscount Controlador inteligente grá co completo
REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER (http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller)
.
MakerLab Mini Panel (http://reprap.org/wiki/Mini_panel) con
MINIPANEL
controlador grá co y soporte SD.
El controlador inteligente LCD BQ se envía con BQ Hephestos 2 y
BQ_LCD_SMART_CONTROLLER
Witbox 2.
Anet Full Graphics LCD (http://www.anet3d.com/prod_view.aspx?
ANET_FULL_GRAPHICS_LCD
TypeId=10&Id=178) para 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).

LCD de caracteres I2C


Todos estos controladores requieren la biblioteca LiquidCrystal_I2C (https://github.com/kiyoshigawa/LiquidCrystal_I2C) .

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) .

LCD grá cas I2C


Todos estos controladores requieren la biblioteca LiquidCrystal_I2C (https://github.com/kiyoshigawa/LiquidCrystal_I2C) .

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


//#define TEMP_STAT_LEDS

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/) .

SkeinForge Arc Fix


//#define SF_ARC_FIX

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

FAST_PWM_FAN aumenta la frecuencia de FAN PWM. La frecuencia y la escala se pueden ajustar en el


configuration_adv.h archivo.

Fan Software PWM


http://marlinfw.org/docs/configuration/configuration.html 43/79
16/10/2019 Configurando Marlin | Firmware Marlin

//#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

LED de estado de temperatura


//#define TEMP_STAT_LEDS

Agrega un indicador de estado de temperatura simple usando LED.

Corrección del código G de SkeinForge ARC


//#define SF_ARC_FIX

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/)

LED de color RGB


Marlin actualmente ofrece dos opciones para indicadores de color direccionables RGB. En ambos
casos, el color se establece para especi car componentes RGB de 0 a 255. M150
(/docs/gcode/M150.html) Rr Ug Bb

//define BlinkM/CyzRgb Support


//#define BLINKM

La placa BLINKM (https://thingm.com/products/blinkm/) proporciona la retroiluminación para algunos controladores LCD. Su


color se establece utilizando mensajes I2C.

//define PCA9632 PWM LED driver Support


//#define PCA9632

http://marlinfw.org/docs/configuration/configuration.html 44/79
16/10/2019 Configurando Marlin | Firmware Marlin

El PCA9632 de Philips (https://www.digchip.com/datasheets/3286493-pca9632.html) es un controlador LED PWM común,


controlado (como BlinkM) con I2C.

//#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!

Controlador LED Adafruit Neopixel

//#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)

LED de eventos de impresora

#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)


#define PRINTER_EVENT_LEDS
#endif

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

//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command

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

#define SERVO_DELAY 300

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

#if TEMP_SENSOR_0 == 1000


#define HOTEND0_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define HOTEND0_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define HOTEND0_BETA 3950 // Beta value
#endif

#if TEMP_SENSOR_1 == 1000


#define HOTEND1_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define HOTEND1_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define HOTEND1_BETA 3950 // Beta value
#endif

#if TEMP_SENSOR_2 == 1000


#define HOTEND2_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define HOTEND2_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define HOTEND2_BETA 3950 // Beta value
#endif

#if TEMP_SENSOR_3 == 1000


#define HOTEND3_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define HOTEND3_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define HOTEND3_BETA 3950 // Beta value
#endif

#if TEMP_SENSOR_4 == 1000


#define HOTEND4_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define HOTEND4_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define HOTEND4_BETA 3950 // Beta value
#endif

#if TEMP_SENSOR_5 == 1000


#define HOTEND5_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define HOTEND5_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define HOTEND5_BETA 3950 // Beta value
#endif

#if TEMP_SENSOR_BED == 1000


#define BED_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define BED_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define BED_BETA 3950 // Beta value
#endif

#if TEMP_SENSOR_CHAMBER == 1000


#define CHAMBER_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
#define CHAMBER_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
#define CHAMBER_BETA 3950 // Beta value
#endif

Marlin 2.0 permite sensores de temperatura personalizados.

//
// 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

Permite el uso de la cama climatizada Hephestos 2 24V.

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 .

Calefacción de cama Bang-Bang


#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T
#endif
#endif

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.

Con guraciones de protección térmica


Protección térmica Hotend

#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

La protección térmica de extremo caliente se puede ajustar con estas subopciones.

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

Protección térmica de la cama

#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

La protección térmica de la cama calentada se puede ajustar con estas subopciones.

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.

Si obtiene demasiados errores de "Calentamiento fallido", aumente WATCH_BED_TEMP_PERIOD o disminuya


WATCH_BED_TEMP_INCREASE . ( WATCH_BED_TEMP_INCREASE no debe establecerse por debajo de 2.)

Protección Térmica de Cámara Calentada

#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.

Escalado de extrusión PID


#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed
// if Kc is chosen well, the additional required power due to increased melting should be compensated
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif

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

Informe de temperatura ADC


//#define SHOW_TEMP_ADC_VALUES

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.

Termistores de alta temperatura


//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0

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

#define TEMP_SENSOR_AD595_OFFSET 0.0


#define TEMP_SENSOR_AD595_GAIN 1.0
#define TEMP_SENSOR_AD8495_OFFSET 0.0
#define TEMP_SENSOR_AD8495_GAIN 1.0

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 .

Prevención de agotamiento del extrusor


//#define EXTRUDER_RUNOUT_PREVENT
#if ENABLED(EXTRUDER_RUNOUT_PREVENT)
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_SPEED 1500 // mm/m
#define EXTRUDER_RUNOUT_EXTRUDE 5 // mm
#endif

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.

Ventilador del controlador


//#define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN)
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
#define CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors
#define CONTROLLERFAN_SPEED 255 // 255 == full speed
//#define CONTROLLERFAN_SPEED_Z_ONLY 127 // Reduce noise on machines that keep Z enabled
#endif

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.

Inicio rápido de los fanáticos de PWM


//#define FAN_KICKSTART_TIME 100

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

Ventiladores PWM Velocidades mínima y máxima


//#define FAN_MIN_PWM 50
//#define FAN_MAX_PWM 128

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.

Ventiladores de enfriamiento automático del extrusor


#define E0_AUTO_FAN_PIN -1
#define E1_AUTO_FAN_PIN -1
#define E2_AUTO_FAN_PIN -1
#define E3_AUTO_FAN_PIN -1
#define E4_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed
#define CHAMBER_AUTO_FAN_TEMPERATURE 30
#define CHAMBER_AUTO_FAN_SPEED 255

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.

Multiplexor de ventilador de enfriamiento parcial


#define FANMUX0_PIN -1
#define FANMUX1_PIN -1
#define FANMUX2_PIN -1

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.

Topes nales siempre activados


//#define ENDSTOPS_ALWAYS_ON_DEFAULT

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.

Controlador externo de circuito cerrado


//#define EXTERNAL_CLOSED_LOOP_CONTROLLER
#if ENABLED(EXTERNAL_CLOSED_LOOP_CONTROLLER)
//#define CLOSED_LOOP_ENABLE_PIN -1
//#define CLOSED_LOOP_MOVE_COMPLETE_PIN -1
#endif

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

Steppers duales / topes dobles


http://marlinfw.org/docs/configuration/configuration.html 53/79
16/10/2019 Configurando Marlin | Firmware Marlin

//#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] .

Requiere habilitar el controlador paso a paso correspondiente, es decir, X2_DRIVER_TYPE en configuration.h . No


NOT permitir E2_DRIVER_TYPE - esto puede producir resultados undesireabe que pueden dañar su máquina.

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)

En su rebanadora, asegúrese de establecer el segundo desplazamiento X del extrusor en 0.

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).

Requiere de nir el pin correspondiente, es decir, SOL0_PIN, SOL1_PIN, etc.

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.

Alineación automática Z Steppers


//#define Z_STEPPER_AUTO_ALIGN
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
#define Z_STEPPER_ALIGN_X { 10, 150, 290 }
#define Z_STEPPER_ALIGN_Y { 290, 10, 290 }
#define Z_STEPPER_ALIGN_ITERATIONS 3
#define RESTORE_LEVELING_AFTER_G34
#define G34_MAX_GRADE 5
#define Z_STEPPER_ALIGN_AMP 1.0
#define Z_STEPPER_ALIGN_ACC 0.02
#endif

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 AXIS_RELATIVE_MODES { false, false, false, false }


//#define MULTI_NOZZLE_DUPLICATION

#define INVERT_X_STEP_PIN false


#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false

#define DEFAULT_STEPPER_DEACTIVE_TIME 120


#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true
#define DISABLE_INACTIVE_E true

#define DEFAULT_MINIMUMFEEDRATE 0.0


#define DEFAULT_MINTRAVELFEEDRATE 0.0

//#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 MINIMUM_PLANNER_SPEED 0.05

#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]

//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 }


//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 }
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 }

//#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

//#define LCD_TIMEOUT_TO_STATUS 15000

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 ).

Lanzamiento paso a paso terminado en SD


#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
#define SD_FINISHED_RELEASECOMMAND "[`M84`](/docs/gcode/M018.html) X Y Z E" // You might want to keep t

Inicio automático del menú SD


//#define MENU_ADDAUTOSTART // Add an option in the menu to run all auto#.g files

Clasi cación de tarjeta SD


Primero reciente

#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

// SD Card Sorting options


#if ENABLED(SDCARD_SORT_ALPHA)
#define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each.
#define FOLDER_SORTING -1 // -1=above 0=none 1=below
#define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 g-code.
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expe
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option
#define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting.
// Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES
#endif

Con esta opción habilitada, los elementos en las tarjetas SD se ordenarán por nombre para facilitar la navegación.

Por defecto…

Utilice el método más lento, pero más seguro, para ordenar.


Las carpetas se ordenan en la parte superior.
La clave de clasi cación está asignada estáticamente.
No se ha agregado M34 compatibilidad con el código G ( ).
Límite de clasi cación de 40 artículos. (Los elementos después de los primeros 40 no están clasi cados).

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!)

Barra de progreso (LCD de caracteres)


//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
#define PROGRESS_BAR_BAR_TIME 2000 // Amount of time (ms) to show the progress bar
#define PROGRESS_BAR_MSG_TIME 3000 // Amount of time (ms) to show the status message
#define PROGRESS_MSG_EXPIRE 0 // Amount of time (ms) to retain the status message (0=forever)
//#define PROGRESS_MSG_ONCE // Show messages for MSG_TIME then hide them
//#define LCD_PROGRESS_BAR_TEST // Add a menu item to test the progress bar.
#endif

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.

Establecer progreso de impresión


//#define LCD_SET_PROGRESS_MANUALLY

Agregue un M73 (/docs/gcode/M073.html)código G para establecer el porcentaje actual.

http://marlinfw.org/docs/configuration/configuration.html 59/79
16/10/2019 Configurando Marlin | Firmware Marlin

Soporte de host de nombre de archivo largo


//#define LONG_FILENAME_HOST_SUPPORT

Permita que los hosts soliciten nombres largos para archivos y carpetas con . M33 (/docs/gcode/M033.html) [path]

Desplazar nombres de archivo largos


//#define SCROLL_LONG_FILENAMES

Habilite esta opción para desplazarse por nombres de archivo largos en el menú de la tarjeta SD.

Abortar en el golpe nal


//#define SD_ABORT_ON_ENDSTOP_HIT

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

Reimprimir último archivo


//#define SD_REPRINT_LAST_SELECTED_FILE

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.

Extras de pantalla grá ca


#if ENABLED(DOGLCD)
#define XYZ_HOLLOW_FRAME // Enable to save many cycles by drawing a hollow frame on the Info Scre
#define MENU_HOLLOW_FRAME // Enable to save many cycles by drawing a hollow frame on Menu Screens
//#define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGME
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Ch
//#define USE_SMALL_INFOFONT // A smaller font may be used on the Info Screen. Costs 2300 bytes of PR
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Ch
//#define DOGM_SPI_DELAY_US 5 // Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a rel
#endif

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.

Watchdog Restablecimiento manual


#if ENABLED(USE_WATCHDOG)
//#define WATCHDOG_RESET_MANUAL
#endif

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.

Límites Delta / Scara


#if ENABLED(DELTA) && !defined(DELTA_PROBEABLE_RADIUS)
#define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
#elif IS_SCARA && !defined(SCARA_PRINTABLE_RADIUS)
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
#endif

Límites de malla personalizados


#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
// Override the mesh area if the automatic (max) area is too large
//#define MESH_MIN_X MESH_INSET
//#define MESH_MIN_Y MESH_INSET
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
#endif

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

G2/G3 (/docs/gcode/G002-G003.html) Soporte de arco

Curva Bezier G5
//#define BEZIER_CURVE_SUPPORT

Soporte para G5 (/docs/gcode/G005.html)destinos XYZE y compensaciones IJPQ. Requiere ~ 2666 bytes.

Objetivo de sonda G38.2 / G38.3

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

Agregue comandos G38.2 (/docs/gcode/G038.html)y G38.3 (/docs/gcode/G038.html)sondear hacia el objetivo. Habilítelo


PROBE_DOUBLE_TOUCH si desea G38 tocar dos veces.

Pasos mínimos por segmento


#define MIN_STEPS_PER_SEGMENT 6

Los movimientos (o segmentos) con menos pasos que este se unirán con el siguiente movimiento.

Pulso paso a paso mínimo


#define MINIMUM_STEPPER_PULSE 0 // (µs) The smallest stepper pulse allowed

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

Controle el calentador 0 y el calentador 1 en paralelo.

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.

Búfer de comandos en serie

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 .

Transmitir a Host Buffer


#define TX_BUFFER_SIZE 0

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.

Host Recibir Buffer


//#define RX_BUFFER_SIZE 1024
#if RX_BUFFER_SIZE >= 1024
//#define SERIAL_XON_XOFF
#endif

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)!

Sin tiempos de espera


//#define NO_TIMEOUTS 1000 // (ms)

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.

Velocidad extra del ventilador


//#define EXTRA_FAN_SPEED

Agregue una velocidad de ventilador secundario para cada ventilador de enfriamiento de impresión. M106
(/docs/gcode/M106.html)

M106 P[fan] T3-255 establece una velocidad secundaria para [ventilador].


M106 P[fan] T2 usa la velocidad secundaria establecida.
M106 P[fan] T1 restaura la velocidad del ventilador anterior

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 .

Conductores paso a paso


Trinamic TMC26X
//#define HAVE_TMCDRIVER

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.

Bus experimental i2c


//#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave

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)

#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed


#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the s
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to co
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports chang
#define SPINDLE_INVERT_DIR false
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before c

#define SPEED_POWER_SLOPE 118.4


#define SPEED_POWER_INTERCEPT 0
#define SPEED_POWER_MIN 5000
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM

//#define SPEED_POWER_SLOPE 0.3922


//#define SPEED_POWER_INTERCEPT 0
//#define SPEED_POWER_MIN 10
//#define SPEED_POWER_MAX 100 // 0-100%
#endif

Habilitar para control de husillo y láser. Añade el M3 (/docs/gcode/M003.html), M4 (/docs/gcode/M004.html)y M5


(/docs/gcode/M005.html)comandos para girar el husillo / láser de encendido y apagado, y para establecer la velocidad del
husillo, dirección del husillo, y la potencia del láser.

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.

Sensor de ancho de lamento


//#define FILAMENT_WIDTH_SENSOR
Filament sensor

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.

Solo se admite una extrusora en este momento.

#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

Distancia desde el sensor de ancho de lamento hasta la cámara de fusión.

#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.

Sistemas de coordenadas CNC


//#define CNC_COORDINATE_SYSTEMS

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.

Informe automático de temperatura


#define AUTO_REPORT_TEMPERATURES

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.

Informe de capacidades extendidas

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 .

Modo volumétrico predeterminado


//#define VOLUMETRIC_DEFAULT_ON

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.

Sin compensaciones de espacio de trabajo


//#define NO_WORKSPACE_OFFSETS

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.

Proporción de fuente proporcional


#define PROPORTIONAL_FONT_RATIO 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.

Analizador de código G más rápido


#define FASTER_GCODE_PARSER

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.

Aún más opciones ...

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 USER_DESC_1 "Home & UBL Info"


#define USER_GCODE_1 "G28\nG29 W"

#define USER_DESC_2 "Preheat for PLA"


#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEN

#define USER_DESC_3 "Preheat for ABS"


#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEN

#define USER_DESC_4 "Heat Bed/Home/Level"


#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"

#define USER_DESC_5 "Home & Info"


#define USER_GCODE_5 "G28\nM503"
#endif

//#define ACTION_ON_KILL "poweroff"

//#define I2C_POSITION_ENCODERS
#if ENABLED(I2C_POSITION_ENCODERS)

#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of


// encoders supported currently.

#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.


#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on.
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR
// I2CPE_ENC_TYPE_ROTARY.
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles;
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number o
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above w

#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.


#define I2CPE_ENC_2_AXIS Y_AXIS
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
#define I2CPE_ENC_2_TICKS_UNIT 2048
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
//#define I2CPE_ENC_2_INVERT
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
#define I2CPE_ENC_2_EC_THRESH 0.10

#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration


#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.

#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.


#define I2CPE_ENC_4_AXIS E_AXIS

#define I2CPE_ENC_5_ADDR 34 // Encoder 5.


#define I2CPE_ENC_5_AXIS E_AXIS

#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR

http://marlinfw.org/docs/configuration/configuration.html 71/79
16/10/2019 Configurando Marlin | Firmware Marlin

#define I2CPE_DEF_ENC_TICKS_UNIT 2048


#define I2CPE_DEF_TICKS_REV (16 * 200)
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
#define I2CPE_DEF_EC_THRESH 0.1

//#define I2CPE_ERR_THRESH_ABORT 100.0

#define I2CPE_TIME_TRUSTED 10000


#define I2CPE_MIN_UPD_TIME_MS 100
#define I2CPE_ERR_ROLLING_AVERAGE

#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

Con guración avanzada de Prusa MMU2 (desde Marlin


2.0)
Conexión en serie
Se requiere una conexión en serie para la comunicación entre la placa de la impresora y el MMU2. La con guración di ere
entre placas de 8 y 32 bits.

Tarjetas AVR de 8 bits


En una placa con un microcontrolador ATmega2560 / 1280, tiene tres puertos serie potenciales para usar para el MMU2:
serie 1 (pines 18/19), serie 2 (pines 16/17), serie 3 (pines 14/15). De na el puerto al que está conectado su MMU2

#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á.

#define MMU2_SERIAL internalSerial

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

#define MMU2_SERIAL Serial1

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.

Manejo de desviación del lamento


Aquí de ne el script gcode que se ejecutará cuando el llamado sensor FINDA en el MMU2 detecte un agotamiento de
lamento.

// G-code to execute when MMU2 F.I.N.D.A. probe detects filament runout


#define MMU2_FILAMENT_RUNOUT_SCRIPT "M600"

El valor predeterminado es el M600 (/docs/gcode/M600.html)que requiere ADVANCED_PAUSE_FEATURE .

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.

Con guración de carga / descarga de lamento


Carga a boquilla
El menú LCD MMU2 le permite cargar lamento a la boquilla. El MMU2 transportará el lamento hasta los engranajes de la
extrusora. Los pasos requeridos del extrusor para cargarlo en el hotend deben de nirse en Marlin.

http://marlinfw.org/docs/configuration/configuration.html 73/79
16/10/2019 Configurando Marlin | Firmware Marlin

// This is for Prusa MK3-style extruders. Customize for your hardware.


#define MMU2_LOAD_TO_NOZZLE_SEQUENCE \
{ 7.2, 562 }, \
{ 14.4, 871 }, \
{ 36.0, 1393 }, \
{ 14.4, 871 }, \
{ 50.0, 198 }

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

#define MMU2_FILAMENTCHANGE_EJECT_FEED 80.0

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

Traído a usted con  falta de  y muchos .


El contenido de este sitio web es © 2019 bajo los términos de la Licencia GPLv3 (http://www.gnu.org/licenses/gpl-3.0.txt) .

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

S-ar putea să vă placă și