J'ai terminé le montage et la calibration de mon imprimante I3 RS il y a quelques semaines et en suit très satisfait.
Étant un fan d'automatisation/domotique, j'ai voulu intégrer à mon imprimante un RPI (Model B Rev 2) avec octoprint.
Toutes mes impressions en passant par les lecteurs SD/USB fonctionnaient parfaitement bien. Cependant, en passant par octoprint, elle imprime bien, jusqu'à ce qu'à un moment (aléatoire car jamais la même couche) l'imprimante se mette à saccader, puis s'arrêter net.
Je suis allé voir le terminal d'octoprint qui est le suivant:
Code : Tout sélectionner
Send: N47700 G1 X117.444 Y105.35 E776.61995*83
Recv: Error:Line Number is not Last Line Number+1, Last Line: 47699
Recv: Resend: 47700
Recv: ok
Send: N47700 G1 X117.444 Y105.35 E776.61995*83
Recv: Error:Line Number is not Last Line Number+1, Last Line: 47699
Recv: Resend: 47700
Recv: ok
Send: N47700 G1 X117.444 Y105.35 E776.61995*83
Recv: Error:Line Number is not Last Line Number+1, Last Line: 47699
Recv: Resend: 47700
Recv: ok
Send: N47700 G1 X117.444 Y105.35 E776.61995*83
Recv: Error:Line Number is not Last Line Number+1, Last Line: 47699
Recv: Resend: 47700
Printer keeps requesting line 47700 again and again, communication stuck
Changing monitoring state from "Printing" to "Error: Printer keeps requesting line 47700 again and again, communication stuck"
Send: M112
Send: N47701 M112*36
Send: N47702 M104 T0 S0*39
Send: N47703 M140 S0*98
Changing monitoring state from "Error: Printer keeps requesting line 47700 again and again, communication stuck" to "Offline (Error: Printer keeps requesting line 47700 again and again, communication stuck)"
Connection closed, closing down monitor
Je me suis un peu renseigner sur le net et j'ai trouvé un plugin python que j'ai ajouté dans le dossier plugin de mon RPI.
Le plugin est le suivant:
Code : Tout sélectionner
# coding=utf-8
from __future__ import absolute_import
def Fix_Bad_Resend(comm, line, *args, **kwargs):
if "Error:Line Number is not Last Line Number+1" not in line:
return line
goodline = line.replace(".*Resend:","Resend:")
return goodline
__plugin_name__ = "Fix Bad Resend"
__plugin_version__ = "1.0.0"
__plugin_description__ = "Fix Bad Resend in printer responses (add newline)"
__plugin_hooks__ = {
"octoprint.comm.protocol.gcode.received": Fix_Bad_Resend
}
J'ai vérifié qu'il se trouvait bien dans ma liste de plugin de mon dashboard et ai relancé une impression.... malheureusement, le problème persiste.
J'ai donc continuer mes recherches et j'ai trouvé que quelqu'un avait modifié la taille des buffer dans le fichier "Configuration_adv.h" pour la liaison série de marlin.
Code : Tout sélectionner
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
Code : Tout sélectionner
//before 32->16
#define BLOCK_BUFFER_SIZE 32 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
//before 32->16
#define BLOCK_BUFFER_SIZE 32 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
//before 32 -> 4
#define BUFSIZE 32
[EDIT:]J'ai essayé d'imprimer de la même manière mais depuis mon PC et Simplify3D et de cette façon cela a fonctionné.
[EDIT 2:]Je me demande si le problème est un problème de baud rate lors de l'envoi du gcode depuis octoprint? Pouvons-nous changer ce paramètre quelque part?
OctoPrint 1.4.2
Python 2.7.16
OctoPi 0.17.0
Printer:
MakerFr I3-RS
Modified version of Marlin 1.1.8
Motherboard: MKS Base 1.5
Screen: TFT MKS 3.2"
RPI model B rev2 (2 USB ports)
Je viens donc ici pour savoir si quelqu'un a la solution à mon problème ou une piste qui me permettait d'avancer.
Merci d'avance