Aller au contenu

Messages recommandés

Posté(e) (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) par mich0111
Posté(e)

Pour chacun de tes extrudeurs, leur section Gcode de fin est vide ?

🙂

Posté(e) (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) par mich0111
Posté(e) (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 0
T1
M104 T1 S0 ;Turn-off hotend 1
M140 S0 ;Turn-off bed
M84 X Y E ;Disable all steppers but Z
T0
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) par pommeverte
  • J'aime 1
  • Merci ! 1
Posté(e)
  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

Posté(e) (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) par pommeverte
Posté(e)
  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

Posté(e) (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 ...

image.png.c14c61fb18b69bb92f6457d1e8a057fa.png

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) par PPAC
  • +1 1
  • Merci ! 1
Posté(e) (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) par pommeverte
  • J'aime 1
Posté(e) (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) par fran6p
  • Merci ! 1
Posté(e) (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) par mich0111
Posté(e)
  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.

Posté(e)
  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 ?

Posté(e)

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 😉).

Posté(e) (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

Sovol-SV04-Board-Creality-V5.2.1-3.jpg_resultat.thumb.jpg.e572741530c0ed5b9412be5f87745f1a.jpg

Dérouler  

 

firmwareV1.binFetching info...

Modifié (le) par pommeverte
  • Merci ! 1
Posté(e)

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.

Posté(e)

As-tu lu / testé le sujet suivant ?

🙂

Posté(e)
  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

Posté(e)
  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) ?

🙂

Posté(e) (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) par mich0111

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...