Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
seguridad_marlin [2015/01/22 10:02] – pgapom | guias:seguridad_marlin [2021/04/16 20:41] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | {{Idiomas}} | + | ====== Seguridad en Marlin ====== |
+ | |||
Cuando configuramos el Marlin para nuestras impresoras, prácticamente solo nos centramos en velocidades, | Cuando configuramos el Marlin para nuestras impresoras, prácticamente solo nos centramos en velocidades, | ||
- | ====== Precondiciones y objetivo | + | ===== Precondiciones y objetivo ===== |
Línea 10: | Línea 12: | ||
- | ==== Pasos previos | + | === Pasos previos === |
Línea 17: | Línea 19: | ||
- | ==== Máxima temperatura de cama y hotend | + | === 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. | 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> |
- | // This feature exists to protect your hotend from overheating accidentally, | + | // When temperature exceeds max temp, your heater will be switched off. |
- | // You should use MINTEMP for thermistor short/ | + | // This feature exists to protect your hotend from overheating accidentally, |
- | #define HEATER_0_MAXTEMP 260 | + | // You should use MINTEMP for thermistor short/ |
- | #define HEATER_1_MAXTEMP 260 | + | #define HEATER_0_MAXTEMP 260 |
- | #define HEATER_2_MAXTEMP 260 | + | #define HEATER_1_MAXTEMP 260 |
- | #define BED_MAXTEMP 100 | + | #define HEATER_2_MAXTEMP 260 |
+ | #define BED_MAXTEMP 100 | ||
+ | </ | ||
+ | === Mínima temperatura de la cama y hotend === | ||
+ | Puede suceder y sucede que se rompa el cableado de los termistores, | ||
+ | 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. | ||
- | ==== Mínima temperatura de la cama y hotend ==== | + | <code cpp> |
- | + | ||
- | + | ||
- | Puede suceder y sucede que se rompa el cableado de los termistores, | + | |
- | 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. | + | |
// The minimal temperature defines the temperature below which the heater will not be enabled It is used | // 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. | // to check that the wiring to the thermistor is not broken. | ||
// Otherwise this would lead to the heater being powered on all the time. | // Otherwise this would lead to the heater being powered on all the time. | ||
- | - define HEATER_0_MINTEMP 10 | + | #define HEATER_0_MINTEMP 10 |
- | | + | #define HEATER_1_MINTEMP 5 |
- | | + | #define HEATER_2_MINTEMP 5 |
- | | + | #define BED_MINTEMP 10 |
- | + | </ | |
- | + | ||
- | ==== Calentamiento fusible cama ==== | + | |
+ | === 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 | 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 | ||
Para solucionar esto el Marlin nos ofrece esto: | Para solucionar esto el Marlin nos ofrece esto: | ||
- | Opcion 1: | + | === 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 | // 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 | // 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. | // HEATER_BED_DUTY_CYCLE_DIVIDER intervals. | ||
- | - define HEATER_BED_DUTY_CYCLE_DIVIDER 4 | + | #define HEATER_BED_DUTY_CYCLE_DIVIDER 4 |
+ | </ | ||
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. | 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: | + | === Opcion 2 === |
+ | <code cpp> | ||
// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option. | // 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) | // 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, | // 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' | // so you shouldn' | ||
- | - define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current | + | #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current |
+ | </ | ||
En lugar de 255, que es a tope, colocaremos valores inferiores, limitando de esta forma la corriente, es un PWM puro y duro. | 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 === | |
- | ==== 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. | 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: | Para evitarlo tenemos esto: | ||
- | * / | + | <code cpp> |
// If you want to enable this feature for all your extruder heaters, | // If you want to enable this feature for all your extruder heaters, | ||
// uncomment the 2 defines below: | // uncomment the 2 defines below: | ||
// Parameters for all extruder heaters | // Parameters for all extruder heaters | ||
- | - define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds | + | #define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds |
- | | + | #define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius |
+ | </ | ||
- | Si en 40 segundos no se incrementa 4 considera que algo va mal y actuará en consecuencia. | + | Si en 40 segundos no se incrementa 4 grados |
+ | <code cpp> | ||
// If you want to enable this feature for your bed heater, | // If you want to enable this feature for your bed heater, | ||
// uncomment the 2 defines below: | // uncomment the 2 defines below: | ||
// Parameters for the bed heater | // Parameters for the bed heater | ||
- | - define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds | + | #define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds |
- | | + | #define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius |
+ | </ | ||
- | Si en 20 segundos no se incrementa 2 considera que algo va mal y actuará en consecuencia. | + | Si en 20 segundos no se incrementa 2 grados |
Esto es muy interesante, | Esto es muy interesante, |