Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
CONSULTA No puedo ajustar PID Cama Caliente Marlin 1.1.8
#1
Buenas noches a todos, os comento mi problema

Tengo una Anet A8 y he actualizado a Marlin 1.1.8 y estoy en el proceso de calibración de la impresora

Desde Pronterface lanzo el comando

SENDING:M303 E-1  S60 C8

Y obtengo  el siguiente mensaje 

PID Autotune start
Error:Heating failed, system stopped! Heater_ID: bed
[ERROR] Error:Heating failed, system stopped! Heater_ID: bed

ErrorLenguarinter halted. kill() called!
[ERROR] ErrorLenguarinter halted. kill() called

En la pantalla de Arduino en las pestaña Configuration.h he verificado que tengo activado el PID y desactivado el  BED_LIMIT_SWITCHING. El MAX_BED_POWER, tambien lo tengo activado

#define PIDTEMPBED     

//#define BED_LIMIT_SWITCHING

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

¿Por qué no me deja realizar el calibrado del PID de la cama? Se os ocurre cual puede ser el motivo.

Si desde Simplify3D le doy a que caliente la cama lo hace correctamente

Gracias de antemano a todos.
Citar
#2
Hay un error documentado en Marlin el pasado 4 de enero muy similar al tuyo:

La solución que proponen es:

El Parche #9037 corrige el problema o configura WATCH_BED_TEMP_PERIOD en Configuration_adv.h a no más de 127 segundos

Y en el Parche #9037 dice:

Si el período de observación es> 127, que  frecuentemente es el caso de las camas con calefacción, el valor es cero o negativo para el autoajuste debido al uso de datos tipo "int" para la variable watch_temp_period. Esto mata el proceso de autoajuste inmediatamente. Declararlo como "Unsigned int" soluciona el problema.

Es decir tienes que bajarte la versión posterior al 4 de enero para tener solucionado el problema, o hacer lo que indican en el primer comentario. el enlace de la versión de con los errores corregidos es el siguiente: https://github.com/MarlinFirmware/Marlin...1.x/Marlin

Yo probaría haciendo el cambio del WATCH_BED_TEMP_PERIOD por debajo de 127 sg... antes probar otras opciones.

Suerte.
Citar
#3
también te vale, para los que le falle ese comando, usar 4 ciclos en vez de 8:

M303 E-1 S60 C4
Citar
#4
Muchas gracias por las indicaciones pfvidal corregido a 120 PID de la cama realizado y funcionando
Citar
#5
Curioso el bug, debe de hacer algun calculo interno o alguna multiplicacion que haga overflow, ya que un int comprende entre -32768 a 32767.

Igualmente hay que tener cuidado con los datos unsigned ya que a veces los calculos no se realizan correctamente si mezclamos datos provenientes de variables signed con unsigned... lo mejor a veces es directamente irnos al tipo de dato superior, sobretodo si vamos a realizar operaciones matematicas con ese dato y otros de diferente tipo (unsigned × signed)

Me alegro de que hayais encontrado el error, desde luego este tipo de fallos son los tipicos que te hacen perder el dia entero haciendo pruebas hasta dar con el error.
Citar
#6
Gracias NeoxM3 por la solución alternativa y a Shellmer por tu reflexión y recomendaciones
Citar
#7
No hay porque dar las gracias, la fuerza de una comunidad de usuarios de productos bajo licencias abiertas está la colaboración y el compartir conocimientos.
Citar
#8
Un saludo pfvidal y gracias por tu aporte, me has librado de un quebradero de cabeza, había probado mil veces y no daba con la solución, al final he cambiado a 120 en configuración advance el WATCH_BED_TEMP_PERIOD  y  todo solucionado, mil gracias y un saludo.
(13-02-2018, 02:34 AM)pfvidal escribió: Hay un error documentado en Marlin el pasado 4 de enero muy similar al tuyo:

La solución que proponen es:

El Parche #9037 corrige el problema o configura WATCH_BED_TEMP_PERIOD en Configuration_adv.h a no más de 127 segundos

Y en el Parche #9037 dice:

Si el período de observación es> 127, que  frecuentemente es el caso de las camas con calefacción, el valor es cero o negativo para el autoajuste debido al uso de datos tipo "int" para la variable watch_temp_period. Esto mata el proceso de autoajuste inmediatamente. Declararlo como "Unsigned int" soluciona el problema.

Es decir tienes que bajarte la versión posterior al 4 de enero para tener solucionado el problema, o hacer lo que indican en el primer comentario. el enlace de la versión de con los errores corregidos es el siguiente: https://github.com/MarlinFirmware/Marlin...1.x/Marlin

Yo probaría haciendo el cambio del WATCH_BED_TEMP_PERIOD por debajo de 127 sg... antes probar otras opciones.

Suerte.

Hola JC, a mi tu solución no me ha servido, no se si tendrá que ver la versión que me descargue, que ha sido la ultima a día 25 de Junio o que sera, pero lo que si me ha funcionado el lo que comenta el compañero, ya te digo que probé a 4,3,2,1  y nada , probé a cambiar el Pronterface por el Simplify, la versión de Arduino, el puerto, el termistor, con otro ordenador y alguna cosa que se me olvida, pero al final la solución fue la del compañero pfvidal, un saludo.
(13-02-2018, 10:16 AM)neoxM3 escribió: también te vale, para los que le falle ese comando, usar 4 ciclos en vez de 8:

M303 E-1  S60 C4
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  ¿MKS Sbase + Marlin 2.0? 3Dsastre 1 60 14-11-2018, 11:13 PM
Último mensaje: Nullz
  El marlin no me hace caso spa_sergio 10 1,328 05-11-2018, 01:17 PM
Último mensaje: Simemart
  la cama caliente no deja de calentar Ray monjeta 1 107 22-10-2018, 02:29 PM
Último mensaje: Shellmer
  Marlin 1.1.9 en Anet A8 PatogomaII 9 1,370 18-10-2018, 07:45 PM
Último mensaje: jhony85
  Problema autolevel con Marlin 1.1.9 klipendorf 3 796 07-08-2018, 06:15 PM
Último mensaje: Simemart