Aller au contenu

GO Print

Double extrusion à bascule => soft : Marlin


Messages recommandés

Hello

Comme il y a deux sujets qui traitent  de double extrusion, que ce soit à bascule ou non, je vais déserter le post de @yopla31 >>> que j'avais squatté abusivement, me recentrer ici et vous donner des nouvelles de mes propres avancements :

J'ai profité de ses recherches (de @yopla31 ) pour les copier (bêtement 😋 ) et les adapter à ma configue.

J'ai testé pour voir en mettant des valeurs quelconques en X Y et Z

Citation

#define SWITCHING_NOZZLE

#if ENABLED(SWITCHING_NOZZLE)

#define SWITCHING_NOZZLE_SERVO_NR 1

#define SWITCHING_NOZZLE_SERVO_ANGLES { 103, 74 } // Angles for T0, T1

#define HOTEND_OFFSET_Z {0.0, 5.0}

#endif

 #define HOTEND_OFFSET_X {0.0, 20}

#define HOTEND_OFFSET_Y {0.0, 10}

 La bonne nouvelle c'est que le simple fait de taper T0 ou T1 dans le terminal remonte un peu, bascule la tête tout seul et redescend sans avoir besoin de jouer avec les scripts.

La mauvaise, c'est que (pour l'instant) il ne se passe aucune correction automatique en XYZ bien que j'ai spécifié des valeurs dans Marlin

Peut-être que @cmatec ou @yopla31 sauront me dire pourquoi ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 7 minutes, Jean-Claude Garnier a dit :

 #define HOTEND_OFFSET_X {0.0, 20}

#define HOTEND_OFFSET_Y {0.0, 10}

Dans le fichier config de Smoothie, il y a un offset pour "Hotend #1" et un offset différent pour "Hotend #2" ce qui me semble plus logique.

De quel système sont extraits ces lignes de commande ( Smoothie? Marlin ?)

Lien vers le commentaire
Partager sur d’autres sites

il y a 6 minutes, JL3D46 a dit :

.. /.. Moi c'était pour abréger "servocommande" (une), d'ou ce petit dérapage grammatical ...

Oui je sais, on m'a déjà traité de "grammar nazi" >>>>> à cause de cet amour immodéré que je porte à la langue Française, qui me fait pester contre l'orthographe ou plutôt contre sa disparition (mais c'est une cause perdue....) Quand je lis par exemple "j'ai manger une glace" .... je deviens subitement fou furieux et je dois prendre mes gouttes....

il y a 8 minutes, JL3D46 a dit :

.. /..  De quel système sont extraites ces lignes de commande ( Smoothie? Marlin ?)

Marlin, dernier bouillon en date.

Mais comme c'est la première fois que je pars d'un Marlin vierge pour l'adapter à ma brêle, pitêtre que j'ai fait une boulette......

Lien vers le commentaire
Partager sur d’autres sites

@Jean-Claude Garnier : +1 avec @JL3D46 pour les offset. Tu peux soit les renseigner dans marlin ou dans le trancheur. Je te conseille de répartir l'offset sur les 2 têtes pour éviter de perdre en surface d'impression. Si tu veux dégager la tête au changement d'outil, il faut éditer le "g-code avant changement d'extrudeur" dans le trancheur😉.

@JL3D46 : plus simple ... mais j'ai mes 3 points de fixation. Je viens de finir l'impression du palonnier en buse de 0.25mm : résultat des courses ... diamètre demandé 8mm ... 8.02 à la mesure.

Lien vers le commentaire
Partager sur d’autres sites

il y a 47 minutes, cmatec a dit :

.. /.. tu peux soit les renseigner dans marlin ou dans le trancheur. Je te conseille de répartir l'offset sur les 2 têtes pour éviter de perdre en surface d'impression

Je suis revenu pour voir à la version précédente de Marlin, et là quand je fais T0 puis T1 le Z monte puis les offsets X Y et Z "jouent". Je trouve ça chénial !

C'est donc bien moi qui ai merdé la fabrication de ma version 1.9

Au boulot !

Lien vers le commentaire
Partager sur d’autres sites

Sous Marlin, j'explique sur mon file la méthode utilisable avec la v1.1.9 sans devoir ajouter des scripts dans le slicer. 

Lien vers le commentaire
Partager sur d’autres sites

Le 08/10/2018 at 17:57, Jean-Claude Garnier a dit :

La mauvaise, c'est que (pour l'instant) il ne se passe aucune correction automatique en XYZ bien que j'ai spécifié des valeurs dans Marlin

Peut-être que @cmatec ou @yopla31 sauront me dire pourquoi ?

Désolé @Jean-Claude Garnier, je n'avait pas vu ta question :

Si tu n'a pas fait un G28 pour initialiser les position des 3 axes, Marlin doit considérer qu'il est "à louweste" ! Si tu fais le G28, ça devrait rentrer dans l'ordre ! Je viens de tester sans le G28, Marlin exécute bien les déplacements en Z, mais rien en X et Y. "G28, tu devras toujours faire" 😁

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

Pour Marlin ce n'est pas bien compliqué car il y a une fonctionnalité au poil à activer avec T0/T1:

Configuration.h

// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
//#define SWITCHING_NOZZLE
#if ENABLED(SWITCHING_NOZZLE)
  #define SWITCHING_NOZZLE_SERVO_NR 0
  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
#endif
  
[...]
  
// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis

Pour régler les écarts après coup manuellement (c'est sauvegardé dans l'EEPROM):

M218 [T<index>] [X<offset>] [Y<offset>] [Z<offset>]

 

Si besoin: pour gérer la position d'un servo indépendamment il y a la commande:

M280 P[index servo] S[position]

 

@phil135, effectivement ce système de gère pas de détection de fin de course. Comme tu le proposes une solution pourrai être une autre carte micro-contrôleur qui gère la bascule de manière autonome. Pour piloter la carte esclave l'I2C semble indiqué (http://marlinfw.org/docs/gcode/M260.html) ou récupérer le signal PWM généré par T0/T1 avec l'avantage de gérer les offset XYZ automatiquement. Autrement il suffit de laisser un peu de jeu ou de souplesse au horn du servo.

Lien vers le commentaire
Partager sur d’autres sites

Dans ce sujet vous retrouvez les posts concernant le double extrudeur à bascule piloté par malin...

Les premiers posts semblent décousus car ils viennent d'un autre sujet...

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

Comme je le craignais, je n'ai pas dû être très clair dans les explications données à @Jean-Claude Garnier.😲

Je vais essayer d'expliquer la voie que j'ai prise. Je copie en bon feignant que je suis, mon post de "Double extrusion à bascule => coté mécanique", puisqu'il aborde autant la méca que le soft ! Mais bien difficile pour @pascal_lb de contenter tout le monde, chapeau bas !

Avant tout, j'utilise MARLIN v1.1.9 sur une CR-10 modée en CR-10S. Ma carte mère a été remplacée par une GEEETECH GT2560 revA+, puisque j'ai été incapable de souder correctement le Driver manquant (A4988) aussi bien sur ma carte v2.0 que sur ma v2.1, que j'ai toujours en réserve. J'utilise avec bonheur un BLTouch, donc sur le SERVO0.

Sur le cahier des charges que je me suis imposé, figurent un hotend E3Dv6 en Direct Drive avec un Titan et un second E3Dv6 en Bowden avec Titan. Figure également, la possibilité d'évoluer sur un des 2 hotends en Volcano, ce qui impose la possibilité de décalage négatif ou positif de 8.5 mm en Z. J'avoue que cette ambitieuse option n'est plus à l'ordre du jour. Je verrai ensuite si ma conception le permet !

La première remarque qui vient à l'esprit, est 2 hotends E3Dv6, 2 extrudeurs Titan avec leur moteur NEMA17, ça fait lourd, mais en limitant la vitesse max du Z à 1500, voire 2000, ça passe ! En mode bascule comme @cmatec ou @Jean-Claude Garnier, ça veut dire basculer 2 hotends E3Dv6, 1 extrudeur Titan avec son moteur NEMA17 en Direct Drive, donc très encombrant, j'y connais rien en SERVO, mais va falloir un truc hydraulique, bientôt ! 😵

Utilisant les #define HOTEND_OFFSET_X, #define HOTEND_OFFSET_Y pour définir la position X et Y de mon 2ème hotend par rapport au premier, j'ai naïvement pensé que pour les Z, le paramètre #define HOTEND_OFFSET_Z était possible, resté à commander le SERVO via des scripts de changement d'outil dans Simplify3D (voir cette étape dans ce post). L'idée était de tricher avec l'offset Z pour que Marlin relève avec les moteurs Z, l'ensemble X et que le SERVO, commandé par un M280, positionne le T1 (2ème hotend) en le basculant, la valeur Z inférieure de la bascule devant correspondre a la position d'extrusion.

Mais dans mes tests, je me suis rendu compte (cf ce post) que le #define HOTEND_OFFSET_Z n'était disponible que dans le mode particulier "Switching Nozzle", où #define SWITCHING_NOZZLE_SERVO_NR 1 définit le SERVO utilisé, #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } définissant les angles pour chaque hotend, et surtout #define HOTEND_OFFSET_Z {0.0, -5.0} était bien disponible (chaque valeur du tableau {0,1,2,3} définissant l'offset Z de chaque hotend par rapport au T0, 1ère valeur). Exactement ce qu'il me fallait !

J'ai donc fait un test à vide, après avoir beaucoup galérais avec l'alimentation piquée sur le BLTouch ! C'est impossible ! Avec le BLTouch connecté, le SERVO est parasité et est incontrôlable! Il faut impérativement une alimentation séparée. J'ai perdu beaucoup, beaucoup de temps avec ce problème, d'où cette remarque insistante.😩

Mes tests se sont avérés concluant. Je pars du principe qu'en position inactive, T1 (2 ème hotend) est 5 mm plus haut que T0 (1 er hotend). Sa bascule par SERVO1 le descend de 10 mm.

Avec les paramètres suivants dans configuration.h :

#define SWITCHING_NOZZLE
#if ENABLED(SWITCHING_NOZZLE)
  #define SWITCHING_NOZZLE_SERVO_NR 1
  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for T0, T1
  #define HOTEND_OFFSET_Z {0.0, -5.0}
#endif
//
#define HOTEND_OFFSET_X {0.0, 22.80}
#define HOTEND_OFFSET_Y {0.0, -0.70}

et un G28, obligatoire pour que Marlin se situe dans l'espace, l'envoi d'une commande de changement d'outil, T1 provoquera :

  1. La montée rapide de l'ensemble axe X de 5 mm (valeur de l'offset) et 1 mm (relève pour changement d'outil, paramétré je ne sais pas où), soit 6 mm au total.
  2. Le SERVO1 reçoit sa commande de position à 90° (activation de T1 pour extrusion) descendant T1 de 10 mm.
  3. Le chariot X et le plateau se décalent de HOTEND_OFFSET_X et HOTEND_OFFSET_Y du hotend T1, c'est à dire de X=22.80 et Y=-0.70 en relatif.
  4. L'ensemble axe X redescend lentement en Z de 1 mm. T1 est en position pour extrusion, alors que T0 est en position inactive 5 mm plus haut.

Avec cette méthode, plus besoin d'utiliser des scripts dans le slicer. La gestion des hotend est effectuée par Marlin et ça reste compatible avec tout slicer. 😎

J'ai presque terminé ma conception, et ce sera plus simple à comprendre en vidéo, si j'y arrive. Il faudra patienter car, grand-père cette semaine pour la 3 ème fois, j'ai toute la famille à la maison !! La chambre squattée par l'imprimante sera occupée !

(Merci de m'indiquer si j'ai enfin été clair 😉)

Pour compléter et répondre aux questions de @JL3D46, les seules commandes g-code sont

  • T0 ; pour sélectionner le hotend T0
  • T1; pour sélectionner le hotend T1

le reste est fait par Marlin.

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

  • 2 weeks later...

Comment insert-on une vidéo ??? 🤪

En attendant qu'on explique au neuneu de service(🤓) voici le lien Youtube de ma vidéo des premiers essai après montage.

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

il y a 2 minutes, yopla31 a dit :

Comment insert-on une vidéo ??? 🤪

tu la mets sur YouTube et ensuite tu mets juste le lien dans un post et c'est bon

Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

Bonjour à toutes et à tous.
Je suis ce sujet avec intérêt.

J'ai une Geeetech I3 Pro B.

J'ai monté deux extrudeurs. j'essaierai de vous en mettre une vidéo plus tard.

J'ai modifié le marlin et pour la gestion du servo et pour celle de la double extrusion.

Le problème que je rencontre, c'est que, même en ayant configuré le marlin, le #define HOTEND_OFFSET_Z semble ne pas être pris en compte.

Quand j'essaie de faire ça soit dans Ideamaker ou dans Cura, le chariot monte, mais après, il redescend, parce que les positions sont en absolue et pas en relative...

Je n'est plus tellement d'idée...

Est-ce que certains d'entre vous ont rencontré ce problème ?

Merci.

Excellente soirée à toutes et à tous.

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
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...