¿Cómo configuro el tamaño del búfer de código G en Marlin?

8

Estoy reconfigurando un Printrbot Simple Metal que se ha adaptado con un RAMPS + Arduino Mega con Marlin, con un avance bastante lento debido a limitaciones mecánicas y de calidad.

Estoy descubriendo que al cancelar una impresión donde algo sale mal, tengo un largo período de tiempo en el que la impresora continúa imprimiendo desde el código G y el búfer de movimiento, aunque el software host (Octoprint) ha dejado de enviar G- código.

¿Hay alguna manera de: a) configurar a Marlin para que tenga un búfer de impresión más pequeño (ya que Octoprint no tiene problemas para mantenerse al día con la impresora tal como está) ob) enviar una señal particular o un código G a la impresora que lo detiene sin ¿Continúa leyendo el contenido del búfer?

nanofaradio
fuente
Matt: Gracias por la sugerencia de edición. Lo rechacé por ahora ya que esta pregunta no es específica de Printrbot. Es aplicable a casi cualquier impresora basada en Marlin, que resultó ser una Printrbot en este caso. Si aún cree que es una etiqueta necesaria, vuelva a enviar la edición y la aprobaré, o hágamelo saber por comentario.
nanofarad

Respuestas:

7

Marlin permite que uno cambie el tamaño de las memorias intermedias, en Configuration_adv.h. En la versión actual hay un ifdef que cambia entre dos casos, uno con soporte SD y el otro sin él. Ambos tienen un planificador de movimiento de tamaño 16, que se puede ajustar.

Además, en el mismo archivo, BUFSIZEse puede cambiar para modificar el tamaño de la memoria intermedia que almacena no analizadas comandos antes de que sean analizados y entrar en el búfer planificador de movimiento.

Además, para algunos firmwares, M112la impresora se apagará inmediatamente, sin importar lo que esté en el búfer, pero será necesario utilizar el botón de reinicio y los ejes no se alojarán después. En Marlin, es difícil llamar kill().

nanofaradio
fuente