Aller au contenu

GO Print

[RÉSOLU] Paramétrer le homing lors d'une pause dans Marlin


Messages recommandés

Bonjour à tous,

J'espère que je ne vais pas faire un double post mais les recherches que j'ai faites n'ont pas abouti.

Mon imprimante est depuis un an sous Marlin 2.0.3. Avec le firmware d'origine, lorsque je faisais une pause lors d'une impression, la buse faisait gentiment son homing en X et Y. Depuis que j'ai installé Marlin, elle s'arrête effectivement d'imprimer mais ne bouge pas, elle reste sur la pièce, ce qui me contraint à reprendre tout de suite si je ne veux pas de dégâts. Or, comme j'ai de plus en plus de longues impressions à faire, je ne suis jamais à l'abri d'une fin de bobine et j'aimerais pouvoir faire une pause avec homing.

J'ai épluché les fichiers de configuration de Marlin sans trouver où cela se paramètre, mais je dois avouer que je suis à une année-lumière de maîtriser la chose. Des recherches en ce sens sur internet ou sur ce forum me ramènent toujours sur la configuration générale, ou bien les classiques comme le bltouch, mais rien à ce sujet précis.

L'un de vous pourrait-il m'aider et me dire comment je peux faire en sorte que la buse se gare sur le côté quand je fais une pause ?

Lien vers le commentaire
Partager sur d’autres sites

Salutation @Roxadi

A tu testé de dé-commenter "PARK_HEAD_ON_PAUSE" ?

https://marlinfw.org/docs/gcode/M025.html

Edit Mais forcement il faut aussi activer "ADVANCED_PAUSE_FEATURE" qui lui même a besoin de "NOZZLE_PARK_FEATURE"

https://marlinfw.org/docs/configuration/configuration.html#advanced-pause

Espérant donner une bonne piste, bonne journée !

Modifié (le) par PPAC
  • +1 1
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Ca ne serait pas ici:

/**
 * Nozzle Park
 *
 * Park the nozzle at the given XYZ position on idle or G27.
 *
 * The "P" parameter controls the action applied to the Z axis:
 *
 *    P0  (Default) If Z is below park Z raise the nozzle.
 *    P1  Raise the nozzle always to Z-park height.
 *    P2  Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
 */
#define NOZZLE_PARK_FEATURE

#if ENABLED(NOZZLE_PARK_FEATURE)
  // Specify a park position as { X, Y, Z_raise }
  #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
  //#define NOZZLE_PARK_X_ONLY          // X move only is required to park
  //#define NOZZLE_PARK_Y_ONLY          // Y move only is required to park
  #define NOZZLE_PARK_Z_RAISE_MIN   2   // (mm) Always raise Z by at least this distance
  #define NOZZLE_PARK_XY_FEEDRATE 100   // (mm/s) X and Y axes feedrate (also used for delta Z axis)
  #define NOZZLE_PARK_Z_FEEDRATE    5   // (mm/s) Z axis feedrate (not used for delta printers)
#endif
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Comme l'a dit @PPAC😉

La commande permettant de changer le filament est M600 (demande l'intervention de l'utilisateur, fonctionne parfaitement avec un écran LCD, pose parfois des problèmes avec les écrans TFT). C'est la «section» 9 du document ci-dessous (prévu pour une Creality CR10-V2 avec Marlin 2.0.7.2 mais ça fonctionne également pour de nombreuses autres imprimantes) :

 

🙂

Modifié (le) par fran6p
orthographe 😱 😳
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Waouw, service rapide, merci à tous. @fran6p, je l'avais déjà pourtant lu et relu ton document, mais je pense pour d'autres recherches. Je l'ai dans mes favoris, c'est un document précieux même si je n'ai pas de Crealty.

@PPAC, merci pour le "park head on pause", petite ligne dans mon fichier config avancé tout en-dessous des paramètres pour les changements de filament ; je ne l'avais pas vue, car quand mes changements de filament sont planifiés pour un changement de couleur, je modifie le gcode. Je n'utilise pas la commande M600. La pause, justement, c'est plutôt en cas d'urgence.

@Jonathan06, c'est ce que je cherchais, merci beaucoup à toi aussi, mais bêtement, je ne l'avais pas vu, je cherchais le mot "pause", quelle cruche.

Mais je vous ennuie encore un peu, je ne suis vraiment pas sûre de moi dès qu'il faut toucher au firmware autrement que pour les corrections. Je dois donc décommenter PARK_HEAD_ON_PAUSE, activer ADVANCED_PAUSE_FEATURE et paramétrer le NOZZLE_PARK_FEATURE. Là, j'ai un peu de mal. Si je veux que la buse fasse un homing à 0 en Y, à 5 mm du capteur de fin de course en X (sinon le chariot rebondit sur le capteur et j'ai un décalage dans l'impression) et que Z monte de 2 mm pour éviter la pièce, je dois le noter au niveau de cette ligne ?

#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }

A savoir aussi que je n'ai pas ces lignes

//#define NOZZLE_PARK_X_ONLY          // X move only is required to park
  //#define NOZZLE_PARK_Y_ONLY          // Y move only is required to park
  #define NOZZLE_PARK_Z_RAISE_MIN   2   // (mm) Always raise Z by at least this distance

Les 2 premières ce n'est pas grave mais la 3ème m'intéresse ; je peux la rajouter ? C'est peut-être une bête question mais je suis vraiment frileuse avec tout ça... 🤪

Lien vers le commentaire
Partager sur d’autres sites

@Roxadioui tu semble avoir tout bon !

Pour les valeurs de NOZZLE_PARK_POINT pas de réponse simple .... c'est selon tes valeur de X_MIN_POS et de Y_MAX_POS mais aussi et surtout de là où se trouve t'on capteur de fin de course en X (voir éventuellement si tu a des inversions d'axe X et Y ... ou des décalage de coordonnées ...) donc disons que les valeurs par défaut sont un choix plutôt judicieux et sans risque d'erreur (je me mouille pas navré 😉 ).

Et puis aussi pour NOZZLE_PARK_Z_RAISE_MIN, je ne sais pas comment cela es pris en compte si lors de la pause, tu es déjà proche de ton Z max. car si tu met 20 comme valeur et que tu te trouve déjà très proche de t'on Z MAX ... comment marlin va comprendre le truc ? comme un forçage de limite ou pas ? ( donc là aussi je me mouille pas, gardon la valeur par défaut par sécurité ... 😉 )

Modifié (le) par PPAC
Lien vers le commentaire
Partager sur d’autres sites

Oui, j'ai un décalage en X et Y (mais pas d'inversion), que je ne peux pas compenser dans Marlin car les valeurs devraient être supérieures à 0 donc ça ne marche pas. Je compense avec mon slicer dans le gcode de démarrage (je suis plus à l'aise avec les gcode qu'avec Marlin en fait). Mais là on parle d'une pause, donc je veux juste amener X 5 mm plus à droite que le capteur de fin de course et Y en 0. Z monte de 2 mm, pas plus, c'est suffisant. Et pour en avoir fait l'expérience hier, le filament casse 30 mm avant le Z max, trop haut dans mon caisson 🤣 Mais en cas d'urgence filament terminé ou cassé, ce n'est pas le gcode qui va m'aider, d'où la nécessité de paramétrer correctement la pause d'impression.

Non, ce que je ne comprends pas, c'est le X MIN et le Y MAX... X MIN je le mets à 5 ? pourquoi Y MAX ? Pourquoi on ne peut pas mettre tout simplement X va à telle position et Y aussi, comme dans un gcode ?

Lien vers le commentaire
Partager sur d’autres sites

... heu ... oui ... non ... navré, comme j'ai pas encore joué avec cela sur mon marlin ... je ne sais pas vraiment tout les implications !

Mais on va évité de toucher au valeur de X_MIN_POS ou Y_MAX_POS !


Juste mettre des valeurs "brutes" constante pour NOZZLE_PARK_POINT me semble possible ... (mais pas top si un jour tu change de configuration taille / placement plateau ... ) ex

#define NOZZLE_PARK_POINT { 5, 5, 5 }

A tester ...

Modifié (le) par PPAC
Lien vers le commentaire
Partager sur d’autres sites

Person j'éviterais de mettre "0", je laisserais telquel:

#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }

Ca a au home décalé de 10, et le Z remonte de 20 quelque soit sa position, je ne pense pas que tu va imprimer au maximum de la hauteur, si ca t'arrive tu y penseras 😉 car je ne sais pas non plu comment ca se comporter la machine!

  • Merci ! 2
Lien vers le commentaire
Partager sur d’autres sites

Tu peux mettre des constantes au lieu des variables, dans tous les cas, au moment de la compilation les variables (X_MIN_POS + 10) et (Y_MAX_POS - 10) sont remplacées par des valeurs fixes (si X_MIN_POS 0 alors la valeur sera de 10 et idem pour Y), d'ailleurs c'est le cas pour le Z 😉

🙂

  • Merci ! 2
Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous.

Je suis désolée pour ce long silence, mais j'ai eu des imprévus, et j'ai dû laisser l'imprimante de côté quelques jours ; puis quand j'ai voulu m'y remettre, ma buse m'a lâchée (après plus de 300 h de print, je ne lui en voulais pas trop). J'ai toujours du "consommable" de rechange à la maison mais là, je m'étais trompée de buses, j'avais racheté celles de mon ancien extrudeur... Enfin bref.

J'ai défini les paramètres du point de parking comme vous me l'avez dit, mais j'ai un souci avec l'option dans le fichier config avancé. C'est prévu pour le changement de filament mais je voudrais uniquement le parking. Donc j'ai commenté pas mal de lignes pour ne laisser que celles qui concernent le mouvement vers ce point, mais Marlin n'est pas content, la vérification de la compilation a échoué. Là je joue un peu à la roulette parce que je ne comprends pas tout ce que je fais. Voici ce que j'ai voulu faire :

#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
  #define PAUSE_PARK_RETRACT_FEEDRATE         60  // (mm/s) Initial retract feedrate.
  #define PAUSE_PARK_RETRACT_LENGTH            2  // (mm) Initial retract.
                                                                                       // This short retract is done immediately, before parking the nozzle.
 // #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     10  // (mm/s) Unload filament feedrate. This can be pretty fast.
 // #define FILAMENT_CHANGE_UNLOAD_ACCEL        25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
 // #define FILAMENT_CHANGE_UNLOAD_LENGTH      100  // (mm) The length of filament for a complete unload.
                                                                                                  //   For Bowden, the full length of the tube and nozzle.
                                                                                                  //   For direct drive, the full length of the nozzle.
                                                                                                  //   Set to 0 for manual unloading.
 // #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   6  // (mm/s) Slow move when starting load.
 // #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0  // (mm) Slow length, to allow time to insert material.
                                                                                                    // 0 to disable start loading and skip to fast load only
 // #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE   6  // (mm/s) Load filament feedrate. This can be pretty fast.
 // #define FILAMENT_CHANGE_FAST_LOAD_ACCEL     25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
 // #define FILAMENT_CHANGE_FAST_LOAD_LENGTH     0  // (mm) Load length of filament, from extruder gear to nozzle.
                                                                                                   //   For Bowden, the full length of the tube and nozzle.
                                                                                                   //   For direct drive, the full length of the nozzle.
  //#define ADVANCED_PAUSE_CONTINUOUS_PURGE       // Purge continuously up to the purge length until interrupted.
  //#define ADVANCED_PAUSE_PURGE_FEEDRATE        3  // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
  //#define ADVANCED_PAUSE_PURGE_LENGTH         50  // (mm) Length to extrude after loading.
                                                                                               //   Set to 0 for manual extrusion.
                                                                                               //   Filament can be extruded repeatedly from the Filament Change menu
                                                                                               //   until extrusion is consistent, and to purge old filament.
  #define ADVANCED_PAUSE_RESUME_PRIME          0  // (mm) Extra distance to prime nozzle after returning from park.
  //#define ADVANCED_PAUSE_FANS_PAUSE             // Turn off print-cooling fans while the machine is paused.

                                                                                       // Filament Unload does a Retract, Delay, and Purge first:
  //#define FILAMENT_UNLOAD_PURGE_RETRACT       13  // (mm) Unload initial retract length.
  //#define FILAMENT_UNLOAD_PURGE_DELAY       5000  // (ms) Delay for the filament to cool after retract.
 // #define FILAMENT_UNLOAD_PURGE_LENGTH         8  // (mm) An unretract is done, then this length is purged.
 // #define FILAMENT_UNLOAD_PURGE_FEEDRATE      25  // (mm/s) feedrate to purge before unload

  //#define PAUSE_PARK_NOZZLE_TIMEOUT           45  // (seconds) Time limit before the nozzle is turned off for safety.
 // #define FILAMENT_CHANGE_ALERT_BEEPS         10  // Number of alert beeps to play when a response is needed.
  #define PAUSE_PARK_NO_STEPPER_TIMEOUT           // Enable for XYZ steppers to stay powered on during filament change.

  #define PARK_HEAD_ON_PAUSE                    // Park the nozzle during pause and filament change.
  //#define HOME_BEFORE_FILAMENT_CHANGE           // Ensure homing has been completed prior to parking for filament change

  //#define FILAMENT_LOAD_UNLOAD_GCODES           // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
  //#define FILAMENT_UNLOAD_ALL_EXTRUDERS         // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
#endif

Et voici la réponse de Marlin, et bien entendu je n'y comprends pas grand'chose 🙄

In file included from C:\Users\Nanri\AppData\Local\Temp\arduino_build_28502\sketch\src\lcd/ultralcd.h:43:0,

                 from C:\Users\Nanri\AppData\Local\Temp\arduino_build_28502\sketch\src\MarlinCore.cpp:34:

c:\users\nanri\appdata\local\temp\arduino_build_28502\sketch\src\feature\pause.h:91:113: error: 'ADVANCED_PAUSE_PURGE_LENGTH' was not declared in this scope

 void resume_print(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=ADVANCED_PAUSE_PURGE_LENGTH, const int8_t max_beep_count=0 DXC_PARAMS);

                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~

c:\users\nanri\appdata\local\temp\arduino_build_28502\sketch\src\feature\pause.h:91:113: note: suggested alternative: 'ADVANCED_PAUSE_FEATURE'

 void resume_print(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=ADVANCED_PAUSE_PURGE_LENGTH, const int8_t max_beep_count=0 DXC_PARAMS);

                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~

                                                                                                                 ADVANCED_PAUSE_FEATURE

 

Je sais que si on veut faire une pause c'est en général pour changer de filament, que ce soit le même ou un autre, mais ça m'est déjà arrivé de vouloir faire une pause parce que le filament était coincé ou un autre problème du genre, donc pas forcément pour changer de bobine, c'est pour cela que je ne voulais pas de rétraction, de purge, etc. Est-ce que je dois quand même décommenter tous ces paramètres pour avoir ma pause au point de parking défini ?

Lien vers le commentaire
Partager sur d’autres sites

Salutation !

Pour moi tu n'a rien a changer ou a désactiver dans les paramètres de ADVANCED_PAUSE_FEATURE (re met comme cela était pour ne plus avoir d'erreur de compilation) ils ne seront utilisé que lors de la commande M600 (changement de filament ) normalement déclenché via un détecteur de fin de filament ...

https://marlinfw.org/docs/configuration/configuration.html#advanced-pause

https://marlinfw.org/docs/configuration/configuration.html#filament-runout-sensor

Il faut activer ADVANCED_PAUSE_FEATURE car il a un genre de dépendance avec le  NOZZLE_PARK_FEATURE mais (M600) ne sera pas utilisé avec le simple "park" lors d'une pause simple ... enfin je crois ...

https://marlinfw.org/docs/configuration/configuration.html#nozzle-park

Bonne continuation !

Modifié (le) par PPAC
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Comme l'a dit @PPACcette section du configuration_adv.h réalise deux choses: le changement de filament et/ou le parking de la tête lors d'une pause. La documentation, bien qu'en anglais, est une mine : https://marlinfw.org/docs/configuration/configuration.html#advanced-pause

Extrait de celle-ci :

Citation

Experimental feature for filament change support and parking the nozzle when paused. Adds the M600 command to perform a filament change. With PARK_HEAD_ON_PAUSE enabled also adds the M115 command to pause printing and park the nozzle. Requires an LCD display. Note that M600 is required for the default FILAMENT_RUNOUT_SCRIPT. Requires LCD display and NOZZLE_PARK_FEATURE.

Traduction DeepL:

Fonctionnalité expérimentale pour le support du changement de filament et le stationnement de la buse en pause. Ajoute la commande M600 pour effectuer un changement de filament. Avec la fonction PARK_HEAD_ON_PAUSE activée, ajoute également la commande M115 pour mettre l'impression en pause et garer la buse. Nécessite un écran LCD. Notez que la commande M600 est nécessaire pour la commande FILAMENT_RUNOUT_SCRIPT par défaut. Nécessite un écran LCD et NOZZLE_PARK_FEATURE.

🙂

  • Merci ! 2
Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous.

Alors j'ai tout remis comme c'était dans le config adv, et dans le fichier config j'ai paramétré le parking comme ceci :

#define NOZZLE_PARK_POINT { (X_MIN_POS + 5), (Y_MAX_POS - 10), 10 }

Je viens de faire le test. La buse se lève de 10 mm et va bien à 5 mm du chariot Z sans le toucher, ce qui est important dans mon cas.

Si ça peut servir à quelqu'un : l'activation de l'option du changement de filament m'a couté 6% de l'espace de la carte mère ; ce sera ma dernière option, il ne me reste que 2% 😂

Un grand merci à tous 🤩

Modifié (le) par Roxadi
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

  • fran6p changed the title to [RÉSOLU] Paramétrer le homing lors d'une pause dans Marlin
  • 1 year later...

Bonjour @cedob77

Oui, avec ces paramètres je n'ai plus jamais eu de problème lors des pauses, le homing a bien lieu, et là où je veux : X à 5 mm de la buse, sinon le chariot de l'extrudeur rebondit sur le capteur de fin de course et cela me provoquait décalage dans l'impression lors de la reprise. Maintenant c'est tout bon à chaque pause.

Lien vers le commentaire
Partager sur d’autres sites

@Roxadibonjour,

je te remercie de me répondre aussi vite. J'avais pas vue que tu fonctionnais avec un détecteur de fin de filaments. Je n'en ai pas .... Je galère à paramétrer le pause homing... Je suis sur une ender 3 pro. 

j'ai suivie un peu tes péripéties et j'ai compilé un firmware avec les modif vue plus haut, faut-il que je place quelque chose dans le g-code de cura ?

j'espère pas t'embêter avec mes question mais je rame pas mal la ...

Lien vers le commentaire
Partager sur d’autres sites

Non, pas de détecteur de filament, pas de Bltouch non plus d'ailleurs, et tu ne m'embêtes pas. Si je peux aider ce sera très volontiers, mais avec mes maigres compétences.

Je suis désolée, je ne connais que mon Anet... et mon Anet. Mon imprimante et moi avons des milliers d'heures d'impression à notre actif, mais je ne suis toujours pas très calée au niveau de Marlin.

Voici mes gcodes de début et de fin dans Cura, je n'ai pas changé grand'chose.

image.png.0b10dfc38ba03bd84c4ef1083c6b9091.png

Les paramètres que tu as vus dans le dernier post de la discussion sont finalement les seuls que j'ai modifiés pour le homing en tout cas, à part l'activation du changement de filament directement depuis la machine. En fait je ne m'en suis jamais servie, mais en cas d'urgence, genre bobine finie avant la fin de l'impression, je peux réagir "proprement". Je fais surtout des changement de couleur et du coup je modifie le fichier gcode généré par Cura, ainsi je suis sûre que cela se passe au bon endroit. Mais comme dit avant, j'ai maintenant le homing comme je le voulais.

Si tu as besoin je peux te donner mon fichier config.

Lien vers le commentaire
Partager sur d’autres sites

@Roxadibonjour,

Je viens de tester ma nouvelle compilation la pause ce fait bien comme il faut c'est niquel par contre à la reprise il se repositionne au bon endroit et après ça plante a chaque fois avec un redémarrage de l'écran ...

Est ce que tu as décommenter la ligne défine PARK HEAD ON PAUSE ?

 

Encore merci à toi 

Lien vers le commentaire
Partager sur d’autres sites

Oui, elle est décommentée, mais seulement cette ligne là. Je n'ai jamais eu le problème que tu mentionnes...

Je n'arrive pas à joindre mon fichier Marlin ici, je viens de te l'envoyer en message perso. J'espère que ça pourra t'aider 🙂

La ligne que tu cherches est la 1864 du configuration_adv

Modifié (le) par Roxadi
Lien vers le commentaire
Partager sur d’autres sites

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