Como faço para definir o tamanho do buffer do código G no Marlin?

8

Estou reconfigurando um Printrbot Simple Metal que foi adaptado com um RAMPS + Arduino Mega executando o Marlin, com um avanço bastante lento devido a limitações mecânicas e de qualidade.

Estou descobrindo que, ao cancelar uma impressão em que algo dá errado, tenho um longo período de tempo em que a impressora continua imprimindo a partir do código G e do buffer de movimento, embora o software host (Octoprint) tenha parado de enviar G- código.

Existe uma maneira de: a) configurar o Marlin para ter um buffer de impressão menor (já que a Octoprint não tem problemas em acompanhar a impressora como está) ou b) enviar um sinal ou código G específico à impressora que a interrompe sem continua a ler o conteúdo do buffer?

nanofarad
fonte
Matt: Obrigado pela sugestão de edição. Eu o rejeitei por enquanto, já que esta pergunta não é específica do Printrbot. É aplicável a quase qualquer impressora baseada em Marlin, que era um Printrbot nesse caso. Se você ainda achar que é uma tag necessária, reenvie a edição e eu a aprovarei ou entre em contato pelo comentário.
Nanofarad

Respostas:

7

O Marlin permite alterar o tamanho dos buffers, em Configuration_adv.h. Na versão atual, há um ifdef que alterna entre dois casos, um com suporte a SD e outro sem. Ambos têm um planejador de movimento do tamanho 16, que pode ser ajustado.

Além disso, no mesmo arquivo, BUFSIZEpode ser alterado para modificar o tamanho do buffer armazenando comandos não analisados antes de serem analisados ​​e inserir o buffer do planejador de movimento.

Além disso, para alguns firmwares, M112a impressora será desligada imediatamente, independentemente do conteúdo do buffer, mas será necessário usar o botão de reinicialização e os eixos não serão direcionados posteriormente. Em Marlin, é codificado para ligar kill().

nanofarad
fonte