mich0111 Posté(e) Avril 15, 2022 Posté(e) Avril 15, 2022 (modifié) Bonjour, J'utilise Cura et je n'arrive pas à comprendre pourquoi j'ai des instructions Gcode après la séquence supposée de fin. Voici ce que je mets comme séquence de fin : ;Dual end G91 ;Relative positioning G1 E-2 F2700 ;Retract a bit G1 E-2 Z0.2 F2400 ;Retract and raise Z G1 X0 Y240 F3000 ;Wipe out G1 Z10 ;Raise Z more G90 ;Absolute positionning T0 G1 X-62 T1 G1 X362 G1 Y{machine_depth} ;Present print M106 S0 ;Turn-off fan M104 T0 S0 ;Turn-off hotend 0 M104 T1 S0 ;Turn-off hotend 1 M140 S0 ;Turn-off bed M84 X Y E ;Disable all steppers but Z M109 T0 S40 ;Waiting for hotend 0 temp = 40° M109 T1 S40 ;Waiting for hotend 1 temp = 40° M81 ;Turn-off printer Et voici ce que j'ai à la fin du fichier slicé : ;Dual end G91 ;Relative positioning G1 E-2 F2700 ;Retract a bit G1 E-2 Z0.2 F2400 ;Retract and raise Z G1 X0 Y240 F3000 ;Wipe out G1 Z10 ;Raise Z more G90 ;Absolute positionning T0 G1 X-62 T1 G1 X362 G1 Y302 ;Present print M106 S0 ;Turn-off fan M104 T0 S0 ;Turn-off hotend 0 M104 T1 S0 ;Turn-off hotend 1 M140 S0 ;Turn-off bed M84 X Y E ;Disable all steppers but Z M109 T0 S40 ;Waiting for hotend 0 temp = 40° M109 T1 S40 ;Waiting for hotend 1 temp = 40° M81 ;Turn-off printer M82 ;absolute extrusion mode M104 S0 ;End of Gcode ;SETTING_3 {"extruder_quality": ["[general]\\nversion = 4\\nname = \\u00c9bauche ;SETTING_3 custom 1\\ndefinition = SV04_Dual_Mode\\n\\n[metadata]\\nsetting_ver ;SETTING_3 sion = 16\\ntype = quality_changes\\nintent_category = default\\nqual ;SETTING_3 ity_type = draft\\nposition = 0\\n\\n[values]\\ninfill_pattern = tria ;SETTING_3 ngles\\ninfill_sparse_density = 20\\nmagic_fuzzy_skin_outside_only = ;SETTING_3 True\\nmaterial_final_print_temperature = 195\\nmaterial_print_temper ;SETTING_3 ature = 195\\nmaterial_standby_temperature = 185\\nsupport_angle = 52 ;SETTING_3 \\n\\n", "[general]\\nversion = 4\\nname = \\u00c9bauche custom 1\\nd ;SETTING_3 efinition = SV04_Dual_Mode\\n\\n[metadata]\\nsetting_version = 16\\nt ;SETTING_3 ype = quality_changes\\nintent_category = default\\nquality_type = dr ;SETTING_3 aft\\nposition = 1\\n\\n[values]\\ninfill_pattern = triangles\\ninfil ;SETTING_3 l_sparse_density = 20\\nmaterial_final_print_temperature = 195\\nmate ;SETTING_3 rial_print_temperature = 195\\n\\n"], "global_quality": "[general]\\n ;SETTING_3 version = 4\\nname = \\u00c9bauche custom 1\\ndefinition = SV04_Dual_ ;SETTING_3 Mode\\n\\n[metadata]\\nsetting_version = 16\\ntype = quality_changes\ ;SETTING_3 \nintent_category = default\\nquality_type = draft\\n\\n[values]\\nad ;SETTING_3 hesion_type = raft\\nsupport_enable = True\\n\\n"} J'aimerais bien savoir à quel endroit sont ajoutées les dernières instructions, c'est-à-dire à partir du dernier M82. Je m'étais rendu compte d'un problème parce que seul un des 2 hotend était refroidi et qu'en plus l'imprimante n'était jamais éteinte. Or je voulais être sûr que les 2 extrudeuses étaient refroidies avant d'éteindre automatiquement l'imprimante. Par avance, merci de votre aide. Amitiés Michel Modifié (le) Avril 15, 2022 par mich0111
fran6p Posté(e) Avril 15, 2022 Posté(e) Avril 15, 2022 Pour chacun de tes extrudeurs, leur section Gcode de fin est vide ?
mich0111 Posté(e) Avril 15, 2022 Auteur Posté(e) Avril 15, 2022 (modifié) Non, mais rien qui ne corresponde. La séquence est identique pour les 2 extrudeuses. G92 E0 G1 Z{retraction_hop_height_after_extruder_switch} F12000 G1 E-{switch_extruder_retraction_amount} G92 E0 D'ailleurs, si j'ajoute l'instruction M82 dans mon gcode de fin avant le M81, est-ce que cela ne réglera pas le problème ? Le 2ème M104 sera en surplus mais ne devrait pas gêner il me semble avec l'imprimante déjà éteinte. Sachant que je ne sais pas à quoi servent les instructions SETTING qui sont toutes mises en commentaire. Modifié (le) Avril 15, 2022 par mich0111
pommeverte Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 (modifié) Salut @mich0111, Je vais sûrement dire de grosses bêtises, mais au moins, tu es prévenu . Le 15/04/2022 at 14:43, mich0111 a dit : J'aimerais bien savoir à quel endroit sont ajoutées les dernières instructions, c'est-à-dire à partir du dernier M82. Dérouler Je pense que c'est à la fin de la fonction "FffGcodeWriter::finalize" du fichier FffGcodeWriter.cpp, dans les sources de Cura_SteamEngine: Citation // set extrusion mode back to "normal" const bool set_relative_extrusion_mode = (gcode.getFlavor() == EGCodeFlavor::REPRAP); gcode.writeExtrusionMode(set_relative_extrusion_mode); for (size_t e = 0; e < Application::getInstance().current_slice->scene.extruders.size(); e++) { gcode.writeTemperatureCommand(e, 0, false); } gcode.writeComment("End of Gcode"); Dérouler Ce qui peut être intéressant, c'est le commentaire qui suit ces lignes Citation the profile string below can be executed since the M25 doesn't end the gcode on an UMO and when printing via USB. Dérouler La question est: est-ce qu'un M25 à la fin de ton Gcode de fin changerait quelque chose? Le 15/04/2022 at 16:29, mich0111 a dit : D'ailleurs, si j'ajoute l'instruction M82 dans mon gcode de fin avant le M81, est-ce que cela ne réglera pas le problème ? Dérouler Je ne vois pas pourquoi, donc non Le 15/04/2022 at 16:29, mich0111 a dit : Sachant que je ne sais pas à quoi servent les instructions SETTING qui sont toutes mises en commentaire. Dérouler Sûrement pour une analyse / pour information Le 15/04/2022 at 14:43, mich0111 a dit : seul un des 2 hotend était refroidi Dérouler Tu pourrais essayer de forcer les commandes avec: T0 M104 T0 S0 ;Turn-off hotend 0T1 M104 T1 S0 ;Turn-off hotend 1 M140 S0 ;Turn-off bed M84 X Y E ;Disable all steppers but ZT0 M109 T0 S40 ;Waiting for hotend 0 temp = 40°T1 M109 T1 S40 ;Waiting for hotend 1 temp = 40° Le 15/04/2022 at 14:43, mich0111 a dit : en plus l'imprimante n'était jamais éteinte Dérouler As-tu vérifier que la PS_ON_PIN est correctement définie et câblée? Modifié (le) Avril 16, 2022 par pommeverte 1 1
mich0111 Posté(e) Avril 16, 2022 Auteur Posté(e) Avril 16, 2022 Le 16/04/2022 at 10:19, pommeverte a dit : Je pense que c'est à la fin de la fonction "FffGcodeWriter::finalize" du fichier FffGcodeWriter.cpp, Dérouler Bonjour et merci pour ton analyse. Donc, c'est mort puisque je ne vais pas prendre le risque de modifier les sources et les recompiler puisqu'à chaque nouvelle release il faudra penser à le refaire. Le 16/04/2022 at 10:19, pommeverte a dit : Je ne vois pas pourquoi, donc non Dérouler Jee suis mal exprimé. Je voulais dire qu'en ajoutant le M82 manquant dans mon code de fin, avant l'exécution du M81, je complétais la séquence et donc il ne manquait rien par rapport à ce que proposait cura en standard. La question que je me pose est, que se passe-t-il lorsqu'on envoie une instruction à une imprimante éteinte ?. Est-ce que cela ne va pas bloquer l'exécution du fichier puisqu'il n'aura plus de réponse ? Le 16/04/2022 at 10:19, pommeverte a dit : Tu pourrais essayer de forcer les commandes avec: Dérouler Est-ce que ce n'est pas la même chose que ce que j'ai écrit ? Je veux dire que mettre des Tx Le 16/04/2022 at 10:19, pommeverte a dit : Dérouler entre les instructions ou les incorporer dans les instructions ce n'est pas pareil ? C'est une vraie question, je ne suis pas spécialiste du gcode. Le 16/04/2022 at 10:19, pommeverte a dit : As-tu vérifier que la PS_ON_PIN est correctement définie et câblée? Dérouler Pour le coup, je ne comprends même pas la question
pommeverte Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 (modifié) Le 16/04/2022 at 11:08, mich0111 a dit : La question que je me pose est, que se passe-t-il lorsqu'on envoie une instruction à une imprimante éteinte ? Dérouler La communication sera perdue donc, après, c'est la gestion des erreurs de communication du logiciel qui envoie les commandes (Pronterface, octopi,...) qui prend le relai. Le 16/04/2022 at 11:08, mich0111 a dit : Est-ce que ce n'est pas la même chose que ce que j'ai écrit ? Je veux dire que mettre des Tx Dérouler En théorie si, mais peut-être qu'il faut bien lui hurler dans les oreilles pour que le microcontrôleur comprenne Le 16/04/2022 at 11:08, mich0111 a dit : Pour le coup, je ne comprends même pas la question Dérouler Je ne l'ai jamais testé, mais de ce que j'imagine, la commande M81 change l'état de la broche n° PS_ON_PIN du microcontrôleur. Du coup, c'est sur cette broche/connecteur qu'il faut brancher ton relai qui éteint l'alimentation de l'imprimante. Modifié (le) Avril 16, 2022 par pommeverte
mich0111 Posté(e) Avril 16, 2022 Auteur Posté(e) Avril 16, 2022 Le 16/04/2022 at 11:19, pommeverte a dit : Du coup, c'est sur cette broche/connecteur qu'il faut brancher ton relai qui éteint l'alimentation de l'imprimante. Dérouler Mais c'est vraiment galère, j'espère ne pas être obligé de brancher le relais sur cette pin. Je vais faire un essai avec ce gcode et voir ce que ça donne. Je reviendrais donner le résultat. Bon WE et merci encore
pommeverte Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 Normalement, la broche du microcontroleur devrait être accessible depuis une broche d'un connecteur . Quelle carte-mère as-tu sur ton imprimante? 1
PPAC Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 (modifié) Le 16/04/2022 at 10:19, pommeverte a dit : Le 15/04/2022 at 16:29, mich0111 a dit : Sachant que je ne sais pas à quoi servent les instructions SETTING qui sont toutes mises en commentaire. Dérouler Sûrement pour une analyse / pour information Dérouler Cela permet éventuellement de réimporter les modification d'un profil d'impression sous Ultimaker Cura ... Et comme ce sont des commentaires cela n'a normalement pas d'influence lors de l'impression. Après pour l'histoire de l'imprimante qui ne s’arrête pas là il faudrait plus de détail ... (si vraiment il y a un relais d’arrêt ) Aussi il me semble que pour attendre le refroidissement des buses, il faut plutôt utiliser le 'R' pour attendre le refroidissement et non 'S' qui lui continue dé que l'on dépasse la température ... https://marlinfw.org/docs/gcode/M109.html Citation Usage .. [R<temp>] Target temperature (wait for cooling or heating). [S<temp>] Target temperature (wait only when heating). Also AUTOTEMP: The min auto-temperature. ... Examples ... Set target temperature, wait even if cooling M109 R120 Dérouler Modifié (le) Avril 16, 2022 par PPAC 1 1
pommeverte Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 (modifié) Le 16/04/2022 at 11:48, PPAC a dit : si vraiment il y a un relais d’arrêt Dérouler Perso, j'en doute, vu la réponse faite . @mich0111 devait penser que c'était intégré ... Le 16/04/2022 at 11:48, PPAC a dit : Aussi il me semble que attendre le refroidissement des buses, il faut plutôt utiliser le 'R' pour attendre le refroidissement et non 'S' qui lui continue dé que l'on dépace la température ... Dérouler Bien vu , je crois que l'affaire est résolue. Une nouvelle fois, le coupable se situait entre l'écran et la chaise Modifié (le) Avril 16, 2022 par pommeverte 1
fran6p Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 (modifié) Le 15/04/2022 at 16:29, mich0111 a dit : Sachant que je ne sais pas à quoi servent les instructions SETTING qui sont toutes mises en commentaire. Dérouler Elles servent par exemple quand on veut réutiliser un profil de tranchage qu'on a pas enregistré Un fichier gcode tranché via Cura peut être réutilisé pour ajouter un profil (cette dernière section n'est pas bien difficile à analyser, il n'y a en fait que les différences par rapport à un profil standard). Quant aux M80/M81 il faut pour que ça fonctionne ou que la carte soit capable de les gérer directement ou via un relai genre BTT ou, c'est que j'utilise, des prises connectées (commandées via Tasmota (Sonoff)) qui possèdent une adresse IP: je peux éteindre l'imprimante (M81 ad.res.se.ip ) après avoir attendu que la buse soit repassée sous les 50°C (M109 R50) Modifié (le) Avril 16, 2022 par fran6p 1
mich0111 Posté(e) Avril 16, 2022 Auteur Posté(e) Avril 16, 2022 (modifié) J'ai modifié le gcode de fin pour en faire ceci : ;Dual end G91 ;Relative positioning G1 E-2 F2700 ;Retract a bit G1 E-2 Z0.2 F2400 ;Retract and raise Z G1 X0 Y240 F3000 ;Wipe out G1 Z10 ;Raise Z more G90 ;Absolute positionning T0 G1 X-62 T1 G1 X362 G1 Y{machine_depth} ;Present print M106 S0 ;Turn-off fan T0 M104 S0 ;Turn-off hotend 0 T1 M104 S0 ;Turn-off hotend 1 M140 S0 ;Turn-off bed M84 X Y E ;Disable all steppers but Z T0 M109 R40 ;Waiting for hotend 0 temp = 40° T1 M109 R40 ;Waiting for hotend 1 temp = 40° M82 ;Absolute extrusion mode M81 ;Turn-off printer Résultat des courses, sitôt son travail terminée et même si l'extrudeuse 2 a encore des impressions à faire, l'extrudeuse 1 reçoit la commande "M104 S0". De son côté, l'extrudeuse 2 termine et, sitôt fait, reçoit le même "M104 S0", en même temps qu'un "M140 S0" est envoyé. Ensuite, l'extrudeuse 1 reçoit "M109 R40", l'imprimante attend cette température puis envoie la même commande à l'extrudeuse 2. Une fois cette température atteinte, l'impression est terminée mais l'imprimante n'est pas éteinte. Je vérifie l'exécution des commandes à l'aide de l'écran sur lequel je vois afficher les consignes demandées. Quand à la fin de l'impression, je m'en rends compte par l'extinction de la lumière qui est synchronisée sur la fin de l'impression. Conclusion, le M81 n'est pas pris en compte. Donc, question subsidiaire, existe-t-il un plugin me permettant d'éteindre l'imprimante une fois ces températures atteintes ? Ce n'est pas possible avec octorelay ni avec enclosure. Si j'utilise PSU control avec du Gcode, il est fort probable que j'ai le même comportement. Donc je sèche. Si vous avez des idées, je suis preneur. Amitiés Michel Le 16/04/2022 at 11:51, pommeverte a dit : Perso, j'en doute, vu la réponse faite . @mich0111 devait penser que c'était intégré Dérouler En fait, si le M81 ne marche pas, je peux également utiliser le relais intégré au RPI3 d'octopi pour allumer/éteindre l'imprimante Modifié (le) Avril 16, 2022 par mich0111
pommeverte Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 Le 16/04/2022 at 15:51, mich0111 a dit : Donc, question subsidiaire, existe-t-il un plugin me permettant d'éteindre l'imprimante une fois ces températures atteintes ? Dérouler Le plus gros soucis, c'est qu'il n'y a pas beaucoup d'infos sur ta carte-mère, qui est apparemment une creality V2.5.1 (info trouvée ici). Donc c'est franchement compliqué de répondre, d'autant plus que ça dépend aussi du firmware installé. Effectivement, la solution de passer par le RPi est largement plus envisageable à mon avis.
mich0111 Posté(e) Avril 16, 2022 Auteur Posté(e) Avril 16, 2022 Le 16/04/2022 at 16:28, pommeverte a dit : Le plus gros soucis, c'est qu'il n'y a pas beaucoup d'infos sur ta carte-mère, qui est apparemment une creality V2.5.1 Dérouler Que puis-je te fournir comme informations supplémentaires ?
pommeverte Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 Malheureusement aucune puisque je ne pense pas que tu disposes des sources du firmware ni du schéma de la carte. Sinon, on aurait pu activer le GCode M43 qui aurait donné l'info du n° de la broche PS_ON_PIN. Tu peux toujours essayer d'envoyer le Gcode et de croiser tout ce que tu peux pour avoir une réponse ... Le Rpi me parait être la seule solution (que je ne connais pas , mais que d'autres ont déjà utilisée ).
mich0111 Posté(e) Avril 16, 2022 Auteur Posté(e) Avril 16, 2022 Ça peut le faire quand même SV04-V1.1.0 Firmware Source Code(18th Mar 2022).rarFetching info...
pommeverte Posté(e) Avril 16, 2022 Posté(e) Avril 16, 2022 (modifié) Mince, j'm'attendais à ce que tu répondes, "ben, pas grave" ... Dans les sources, PS_ON_PIN n'a pas de n° de patte attribuée donc, c'est mal parti... je poursuis en te donnant des infos, mais sans matos pour tester de mon coté, je trouve ça très risqué de continuer dans cette voie : D'après la photo ci-dessous, les connecteurs Z1-, Z2-, J1, J2 ne sont pas câblés. Mais j'imagine que des entrées du microcontrôleur le sont via la nappe multicolore. D'après les sources, tu possèdes un BLtouch cablé sur la patte PD12 du microcontroleur, ce qui laisserait l'entrée Z- libre qui pourrait être utilisée pour piloter un relai. J'ai donc préparé un firmware où j'ai activé le Gcode M43 et affecté PS_ON_PIN à Z1- (théoriquement ). Après avoir flashé le firmware, tu envoies un M43 qui devrait te retourner une liste d'entrées/sorties dont PS_ON_PIN avec un n° de broche suivi de PE1. Le test pour valider la sortie sera donc de mesurer la tension sur la broche du milieu, je pense (en tout cas, pas celle reliée à la masse ou au 3.3V), du connecteur Z1- : Pour mettre la sortie à 1, tu envoies en remplaçant xx par le n° que tu as lu dans la réponse au M43:M42 Pxx S1 Pour mettre la sortie à 0, tu envoies en remplaçant xx par le n° que tu as lu dans la réponse au M43:M42 Pxx S0 PS: tu les as trouvé où ces sources? peut-être qu'il y a d'autres infos utiles au même endroit? Citation Dérouler firmwareV1.binFetching info... Modifié (le) Avril 16, 2022 par pommeverte 1
mich0111 Posté(e) Avril 16, 2022 Auteur Posté(e) Avril 16, 2022 Je les ai trouvé sur le site de Sovol. Je n'ai pas été cherché bien loin. Ceci étant, ce que tu me proposes est bien trop compliqué pour moi, ou plutôt trop risqué. Je risque de faire des bêtises. Même si je comprends l'idée générale, ça reste assez touchy. Merci quand même pour tous les efforts fournis. Je vais chercher du côté des plugins. Comme tu le disais, il doit y sûrement y avoir du monde qui a dû y arriver. Bon dimanche.
mich0111 Posté(e) Avril 17, 2022 Auteur Posté(e) Avril 17, 2022 Le 17/04/2022 at 14:08, fran6p a dit : As-tu lu / testé le sujet suivant ? Dérouler Salut, Oui j'ai lu tout le sujet et je n'ai pas vu de gestion de température. Ceci étant, je crois que le plugin PSU control est parfait pour ça. Il me reste quelques réglages à trouver et notamment concernant le paramètre sensing. En dehors de ça, ça a l'air de fonctionner. Je reviendrais poster avec la solution complète quand je l'aurais totalement validée. Bonne fin de WE et merci encore
fran6p Posté(e) Avril 17, 2022 Posté(e) Avril 17, 2022 Le 17/04/2022 at 15:05, mich0111 a dit : je n'ai pas vu de gestion de température. Dérouler Tu entends quoi exactement par «gestion de températures» ? Un simple M109 Rtemp_souhaitee ne suffit pas avant de lancer la commande d'extinction (quelle qu'elle soit) ?
mich0111 Posté(e) Avril 17, 2022 Auteur Posté(e) Avril 17, 2022 (modifié) Le 17/04/2022 at 15:57, fran6p a dit : Tu entends quoi exactement par «gestion de températures» ? Dérouler Le refroidissement des buses. Effectivement le M109 fonctionne mais, en revanche, le M81 derrière n'éteint pas la machine. Ceci étant, j'ai trouvé la solution en utilisant des plugins standards sans rien ajouter ni câbler. J'ai fait un post là-dessus. https://www.lesimprimantes3d.fr/forum/topic/47584-octoprint-utilisation-du-plugin-psu-control/?do=findComment&comment=495996 Et mon gcode de fin devient : ;Dual end G91 ;Relative positioning G1 E-2 F2700 ;Retract a bit G1 E-2 Z0.2 F2400 ;Retract and raise Z G1 X0 Y240 F3000 ;Wipe out G1 Z10 ;Raise Z more G90 ;Absolute positionning T0 G1 X-62 T1 G1 X362 G1 Y302 ;Present print M106 S0 ;Turn-off fan T0 M104 S0 ;Turn-off hotend 0 T1 M104 S0 ;Turn-off hotend 1 M140 S0 ;Turn-off bed M84 X Y E ;Disable all steppers but Z A+ Modifié (le) Avril 17, 2022 par mich0111
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant