Marlin: Thermal Runaway Protection

340 views
Skip to first unread message

Alex Borro

unread,
Jun 30, 2014, 8:18:54 PM6/30/14
to repr...@googlegroups.com, reprapbr-advanced
Olá Senhores,

Para quem usa o Marlin, eu fiz um update hj implementando a função que discutimos há alguns dias (https://groups.google.com/d/topic/reprapbr/wNyDCV0lVr4/discussion).


Basicamente, adicionei 4 defines:

#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius

#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius

Os dois primeiros para os extrusores e os dois segundos para a mesa.

Funciona basicamente assim:

Quando a temperatura estabiliza (atinge o alvo), o sistema entra em ação.
Se a temperatura ficar abaixo do: (ALVO - HYSTERESIS) por (PERIOD), o sistema simplesmente se desliga, ficando ativo somente o LCD...

Por exemplo, usando os parâmetros acima para o extrusor e digamos que a temperatura ajustada seja de 220ºC, se a temperatura ficar abaixo de 220ºC - 4ºC = 216ºC por mais de 40 segundos, o sistema se desliga.

Vale frisar que ele só entra em ação após o aquecimento, ou seja, não se preocupe se seu hotend demora 2 minutos para atingir o alvo.

Abraços..

Alex.


--
"Não é o mais forte da espécie que sobrevive, nem o mais inteligente. É aquele que se adapta melhor as mudanças"  ( Charles Darwin )

Alex Borro

Henrique Muringa

unread,
Jun 30, 2014, 9:51:40 PM6/30/14
to reprapbr...@googlegroups.com, repr...@googlegroups.com
valeu chapa... =]

não curtiu minha ideia de comparar com um thermistor medindo a temp ambiente né?

Alex Borro

unread,
Jul 1, 2014, 8:57:49 AM7/1/14
to repr...@googlegroups.com, reprapbr-advanced
Vamos lá, he he

@Miguel, essa feature é mais um nível de proteção, da mesma maneira que dois termistores no hotend. No final são redundâncias.. Se X falhar, Y assume.. se Y falhar, Z assume.. e por ai vai..
Tendo dois termistores, se um falhar, o outro vai detectar o erro.. mas e se acontecer dos dois falharem juntos?? Digamos q estejam pesos pela mesma fita kapton e ela se solte.. 
Ai uma feature como essa salva a pátria.. 
E tem outra, minha idéia foi implementar alto que não precisasse de mais hardware - no caso, um termistor adicional.

@Muringa, o problema de um sensor de temperatura no ambiente seria, primeiro, onde colocar; e segundo, quando ele detectar um aumento de temperatura, pode ser tarde demais.. o filamento já pode ter se incendiado.. ai não adianta mais nada.. E como eu disse pro Miguel, minha idéia era fazer de maneira a dispensar hardware adicional.

@Marcelo, o Marlin já tem uma feature que cobre esse problema no aquecimento. Foi até bom vc tocar no assunto, pois acho que poucas pessoas conhecem. Vamos lá, no configuration_adv.h:

//// Heating sanity check:
// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature
// If the temperature has not increased at the end of that period, the target temperature is set to zero.
// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature
//  differ by at least 2x WATCH_TEMP_INCREASE
#define WATCH_TEMP_PERIOD 20000 //20 seconds
#define WATCH_TEMP_INCREASE 10  //Heat up at least 10 degree in 20 seconds

Funciona assim: quando a temperatura atual difere do alvo em (2 * WATCH_TEMP_INCREASE), ou seja, geralmente durante o início do aquecimento, a temperatura precisa subir pelo menos (WATCH_TEMP_INCREASE) graus em (WATCH_TEMP_PERIOD) segundos. No exemplo acima, ela precisa subir pelo menos 10 graus em 20 segundos. Caso isso não aconteça, a temperatura alvo é zerada, desligando o aquecimento.

Essas duas features cobrem bastante problemas de aquecimento.. 

Abraços.

Alex.


Em 1 de julho de 2014 08:33, Marcelo ( www.sethi3d.com.br ) <msr...@terra.com.br> escreveu:
Ola Alex,

Legal, mas acho que ainda tem chance de dar problema...

Muita gente usa o aquecimento do bico e mesa no modo automático, ou seja, manda imprimir e vai embora fazer outra coisa, vamos supor que o termistor esteja fora do bico... quando você mandar aquecer ele vai ligar o PWM em 100% e assim permanecer pra sempre... (pois a temperatura não vai subir)

Ou já tem alguma proteção pra isso no Marlin? (não conheço a fundo o Marlin)

abs!
Marcelo

--
Você recebeu essa mensagem porque está inscrito no grupo quot;RepRapBR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para reprapbr+u...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/reprapbr/4b299410-8d25-4885-bc71-87d51113ef29%40googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Marcelo ( www.sethi3d.com.br )

unread,
Jul 1, 2014, 10:27:09 AM7/1/14
to repr...@googlegroups.com, reprapbr...@googlegroups.com
Ola Alex,

Legal, mas acho que ainda tem chance de dar problema...

Muita gente usa o aquecimento do bico e mesa no modo automático, ou seja, manda imprimir e vai embora fazer outra coisa, vamos supor que o termistor esteja fora do bico... quando você mandar aquecer ele vai ligar o PWM em 100% e assim permanecer pra sempre... (pois a temperatura não vai subir)

Ou já tem alguma proteção pra isso no Marlin? (não conheço a fundo o Marlin)

abs!
Marcelo

Em segunda-feira, 30 de junho de 2014 21h18min55s UTC-3, Alex Borro escreveu:

Henrique Muringa

unread,
Jul 1, 2014, 12:14:36 PM7/1/14
to reprapbr...@googlegroups.com, repr...@googlegroups.com
Alex você não intendeu minha implementação rsrs.

Coloco um sensor pra medir a temperatura ambiente, se o primeiro thermistor medir a mesma temperatura que a ambiente significa que deu problema né? é bem funcional pro caso do thermistor escapar, se ele quebrar aí ja num sei, qual a leitura provavel dele? teria que dar um tratamento no código pra essas situações de quebra...

Não tenho intenção de medir aumento na temperatura ambiente rsrs, quero medir a ambiente e comparar com a medida do thermistor do hotend/mesa...

Essa implementação é viável pra mesa tbm, porque independente da potencia da mesa/tempo de aquecimento, se os thermistores medirem a mesma coisa, tem algo errado.

Claro que precisa tratar o início do aquecimento tbm né, quando as temperaturas devem ser iguais, ou muito próximas.

Agora que eu esclareci como funciona eu repito, depois de ver aquelas fotos, um thermistor a mais é quase nada... 

De qualquer forma só insisti nisso, apesar de vc ja ter publicado o código, porque seu código é sensível a variações na potencia da mesa, como levantado pelo pessoal na outra discussão...



Alex Borro

unread,
Jul 1, 2014, 12:38:52 PM7/1/14
to reprapbr-advanced, repr...@googlegroups.com
@Thiago, o problema é que o Repetier é controlado/centralizado por uma empresa. Submeter modificações pra ele é mais complicado e demoram décadas para entrar em série, o que desestimula o desenvolvimento.

Eu já cheguei a mexer com o Repetier, mas desisti.. é muito contra-produtivo e não vou gastar meu tempo implementando uma função q vai ficar perdida..

Vale citar que implementar algo pra funcionar somente na sua impressora é uma coisa, implementar algo prevendo diversos cenários é beeemm mais dificil.. Então é realmente desestimulante gastar tempo implementando algo que funcione em diversos cenários e ver esse trabalho deixado de lado, como o pessoal do Repetier faz..

Eu prefiro a ideologia usada pelo time do Marlin.. é muito mais rápido e, apesar de susceptível a bugs, vem provando que funciona melhor, pelo menos no meu entendimento..

Por exemplo, eu acabei de submeter um bugfix q foi "criado" já dois dias atrás por um merge.. o cara implementou uma modificação que quebrava a compilação quando não se habilitava o LCD. Eu recebi o email de bug report (todos os desenvolvedores recebem), corrigi e postei a correção em 5 minutos.. pronto, resolvido.. a maioria dos bugs é coisa besta assim... Já no Repetier, alguns bugs demoram bem mais para serem corrigidor..

Enfim, essa é apenas MINHA opinião, me dou melhor com o Marlin... cada um tem duas preferências, he he..

@Muringa, agora entendi sua idéia, he he.. Realmente é uma proteção a mais.. Vou dar uma estudada e tentar implementar..
Sobre minha lógica com uma mesa fraca como a MK2... cara, uma MK2 jamais vai incendiar uma impressora, ela mal chega a 110ºC

Abraços..


--
Você recebeu essa mensagem porque está inscrito no grupo quot;RepRapBr Advanced" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para reprapbr-advan...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/reprapbr-advanced.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/reprapbr-advanced/73342dfb-055d-4afa-b455-bd6f1363356e%40googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Thiago Peixoto

unread,
Jul 1, 2014, 1:15:36 PM7/1/14
to reprapbr-advanced, repr...@googlegroups.com
hum.. Legal Alex, acho que vou estudar melhor e talvez implementar um Marlin, seus argumentos me convenceram!
Agora é pegar meu configuration.h e tentar traduzir! kkkk



Thiago Peixoto
Analista de Suporte


Henrique Muringa

unread,
Jul 1, 2014, 4:45:34 PM7/1/14
to reprapbr...@googlegroups.com, repr...@googlegroups.com
ahuahauha realmente uma MK2 vai ter dificuldades pra por fogo em alguma coisa...

=]

Alex Borro

unread,
Jul 1, 2014, 5:20:57 PM7/1/14
to repr...@googlegroups.com, reprapbr-advanced
Eu uso a da Sethi3D.


Em 1 de julho de 2014 18:02, Igor Tomiatti <igorto...@gmail.com> escreveu:
Qual heated bed é bom? Pois estou comprando as peças pra fazer minha primeira impressora.


Em segunda-feira, 30 de junho de 2014 21h18min55s UTC-3, Alex Borro escreveu:

--
Você recebeu essa mensagem porque está inscrito no grupo quot;RepRapBR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para reprapbr+u...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/reprapbr/3699fe07-0362-4030-8b2b-faf36d61aef7%40googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages