Herramientas de usuario

Herramientas del sitio


guias:seguridad_marlin

Diferencias

Muestra las diferencias entre dos versiones de la página.


Revisión previa
guias:seguridad_marlin [2021/04/16 20:41] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +====== Seguridad en Marlin ======
 +
 +
 +
 +Cuando configuramos el Marlin para nuestras impresoras, prácticamente solo nos centramos en velocidades, calibrados y finales de carrera. Pero el Marlin nos ofrece más. Opciones de configuración que tratan de evitar incendios.
 +
 +
 +===== Precondiciones y objetivo =====
 +
 +
 +Suponemos que tu impresora está operativa, y funcionando de manera correcta. De lo contrario estos ajustes propuestos podrían dificultar su puesta a punto. Una vez configurados podréis estar mas tranquilos en lo que atañe a su funcionamiento "autónomo".
 +
 +
 +=== Pasos previos ===
 +
 +
 +Antes de nada, necesitamos hacer una copia de seguridad de nuestros archivos Marlin. Para ello podemos copiar todo el directorio y colocarlo en lugar seguro.
 +Localizaremos 1 archivo sobre el que vamos a trabajar: configuration.h
 +
 +
 +=== Máxima temperatura de cama y hotend ===
 +
 +
 +Esta opción os protege de un posible error a la hora de marcar las temperaturas en el software. Nunca superará estas temperaturas. En mi caso 260 y 100. Si llega a esas temperaturas desconectará el extrusor ó la cama, parando la impresión. Esto es útil también por si tenemos algún problema con el termistor.
 +  
 +<code cpp>
 +// When temperature exceeds max temp, your heater will be switched off.
 +// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
 +// You should use MINTEMP for thermistor short/failure protection.
 +#define HEATER_0_MAXTEMP 260
 +#define HEATER_1_MAXTEMP 260
 +#define HEATER_2_MAXTEMP 260
 +#define BED_MAXTEMP 100
 +</code>
 +
 +=== Mínima temperatura de la cama y hotend ===
 +
 +Puede suceder y sucede que se rompa el cableado de los termistores, dando una lectura incorrecta de forma permanente. El Marlin calentará de forma indefinida, y nunca alcanzará la temperatura deseada, o al menos eso creerá el. Realmente la revasará y con creces. En teoría el anterior ajuste lo habrá detectado una vez llegue al máximo, pero ya estará caliente.
 +Para ello tenemos esto. Aquí debemos colocar la temperatura mínima de nuestra ubicación, yo tengo 10 grados, la tuve a 13 porque el número me gusta y resulta que un buen día no arrancaba, y tenía 13 grados en la habitación. Que frio!!
 +Si ponéis muy poco es posible que no funcione nunca la seguridad, colocar una temperatura ligeramente inferior a la del local. Y si es posible desconectar el termistor y ver la lectura, colacáis una temperatura superior a esa en un par de grados.
 +
 +<code cpp>
 +// The minimal temperature defines the temperature below which the heater will not be enabled It is used
 +// to check that the wiring to the thermistor is not broken.
 +// Otherwise this would lead to the heater being powered on all the time.
 +#define HEATER_0_MINTEMP 10
 +#define HEATER_1_MINTEMP 5
 +#define HEATER_2_MINTEMP 5
 +#define BED_MINTEMP 10
 +</code>
 +
 +=== Calentamiento fusible cama ===
 +
 +Nuestra cama puede no alcanzar la temperatura deseada, de un tirón. Debemos verificar el fusible de la RAMPS, es posible que ante un exceso de corriente este fusible se caliente  y corte la alimentación, retandando el proceso. Esto no es bueno, para la electrónica de nuestra impresora. Y es motivado por una baja resistencia en la cama.
 +Para solucionar esto el Marlin nos ofrece esto:
 +
 +=== Opcion 1 ===
 +
 +<code cpp>
 +// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
 +// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
 +// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
 +#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
 +</code>
 +
 +Descomentando la última línea le estamos diciendo al Marlin que caliente 1 de cada 4 intervalos. Si medimos con un polímetro la tensión en la cama veremos que esta a disminuido. Podemos jugar con el valor, por defecto 4, para variar esta tensión. Un 1, es continuo, como si no descomentasemos la linea.
 +
 +=== Opcion 2 ===
 +
 +<code cpp>
 +// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
 +// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
 +// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
 +// so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
 +#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
 +</code>
 +
 +En lugar de 255, que es a tope, colocaremos valores inferiores, limitando de esta forma la corriente, es un PWM puro y duro.
 +
 +=== Descuelge del Termistor ===
 +
 +Es posible que el termistor se nos despegue, caiga descoloque .... pero que su cableado sea correcto. El Marlin calentará de forma continua tanto nuestra cama como nuestro hotend, y el termistor indicará una temperatura incorrecta, esto puede derivar en INCENDIO.
 +Para evitarlo tenemos esto:
 +
 +<code cpp>
 +// If you want to enable this feature for all your extruder heaters,
 +// uncomment the 2 defines below:
 +
 +// Parameters for all extruder heaters
 +#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
 +#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
 +</code>
 +
 +Si en 40 segundos no se incrementa 4 grados considera que algo va mal y actuará en consecuencia.
 +
 +<code cpp>
 +// If you want to enable this feature for your bed heater,
 +// uncomment the 2 defines below:
 +
 +// Parameters for the bed heater
 +#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
 +#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
 +</code>
 +
 +Si en 20 segundos no se incrementa 2 grados considera que algo va mal y actuará en consecuencia.
 +
 +Esto es muy interesante, sobre todo para la cama que no vemos en termistor.
 +
 +Con estas opciones podemos estar mas tranquilos, existen otras, muy interesante como desconectar la fuente de alimentación ATX, o regular ventiladores según temperaturas. Pero implica modificaciones hardware o en el Gcode.
 +
 +