Etalonnage avec Marlin

Posted by & filed under , , .

Si vous avez tapé « calibration ? » dans le Chan IRC reprap-fr, bienvenue !

Ici, je vous explique ce qu’est l’étalonnage et comment le faire. Vous pouvez descendre un peu si vous n’êtes pas friand d’explications techniques !

EDIT : tout le montage très détaillé, réglage et démarrage d’une reprap ICI

Rien de mieux qu’un petit voyage en train de cinq heures pour lâcher la Reprap et autres projets et enfin trouver le temps de vous faire un tuto « étalonner votre imprimante« .

Pour les pressés, sautez au chapitre ÉTALONNAGE plus bas

Explications

D’abord, comprenons comment nos petites machines sont motorisées. Je n’ai pas suivis depuis le commencement les développements du projet Reprap donc je ne donnerais pas de détails « historiques ». Toujours est-il que la solution retenue est de contrôler les mouvements par des moteurs pas à pas. Ce sont des moteurs dont on va faire varier la position.

Un moteur pas à pas, c’est des bobines dans le stator, et des aimants dans le rotor, en face des bobines.

Imaginer qu’au bout des fils de votre moteur, vous ayez des interrupteurs, relier à des bobines qui sont en faces d’aimants. Si vous fermez le bon contact, vous allez alimenter une bobine, qui va forcer l’aimant en face à se mettre dans une position. TAC ! le moteur est bloqué à cette position. Si maintenant vous fermez un autre contact (pas n’importe lequel, cela dépend du moteur) et bien vous allez changer la manière dont la bobine fonctionne, et donc, l’aimant ira se placer différemment. Résultat, votre moteur aura légèrement tourné, il sera passé au pas suivant !

Pour faire tourner le moteur, il suffit maintenant de connaitre la bonne séquence de fermeture et d’ouverture de nos contacts.

Les moteurs de reprap communs pour le moment ont un pas de 1,8°.

En réalité, on ne va pas vraiment jouer avec des contacts. Les modules Polulu, ces espèces de grosses puces installées en haut de votre électronique, vont appliquer des signaux carrés entre les fils des moteurs. Cela fait que nous allons nous retrouver avec des signaux de haute fréquence qui peuvent perturber les appareils électriques voisins. Pour éviter cela, l’idéal est de torsader les fils par paires, comme dans un câble réseaux. Une paire pour les fils de la bobine A et l’autre paire pour la bobine B.

Petit plus : peu de gens connaissent les moteurs pas à pas, mais tout le monde connais les brushless ! Et ben…. c’est la même chose ^^

Avantages

Ces moteurs présentent de très sérieux avantages, tellement qu’on pourrait se demander pourquoi il n’y en pas partout et depuis longtemps.

Premier avantage : le rendement. ces moteurs utilisés par exemple dans des motorisations de modélisme ou de véhicules peuvent monter jusqu’à des rendements de 95%, ce qui est proprement génial. Cela permet de diminuer la taille des moteurs, et surtout d’augmenter considérablement l’autonomie et de baisser les consommations. J’en veux pour preuve que les moteurs ne chauffent quasiment pas, c’est là encore un avantage précieux pour les utilisations en grosse puissance ou espace confiné.

Ensuite : le couple à l’arrêt. Ce n’est pas évident d’y penser, mais cela est probablement la choses la plus balèze de ces moteurs ! En effet, la plupart des moteurs sont incapables de fournir de la force au démarrage, ou posent des problèmes. Les moteurs à courant continues (démarreur de voiture par exemple, ou de train électrique) forment en fait un court circuit à l’arrêt. Donc s’ils sont un peu bloqués, leur alimentation en prend plein les dents. Idem pour les moteurs synchrones qui dépendent d’une fréquence d’alimentation et qui sont hyper mous au démarrage, tout en consommant plus. Nos moteur pas à pas, eux, sont contrôlé à courant maitrisé et en fréquence, et, ont le même couple à l’arrêt qu’en mouvement.

Et enfin, ce qui nous intéresse pour notre application, et même ce pourquoi ils ont été inventés : on maitrise leur position.

Qu’est-ce que l’étalonnage ?

Et bien c’est tout bête : il s’agit de dire à notre reprap « pour bouger un millimètre, tu vas devoir faire TANT de pas sur la X, tant sur Y, tant sur Z et tant sur E.

Par défaut, Marlin connais des paramètres raisonnables, pas précis mais suffisamment proches pour nous permettre de ne pas faire trop n’import’ quoi !

Étalonnage

Pour ce faire, nous allons déjà repérer où sont inscrit les bons paramètres. Oui, vous le verrez très vite, il y aura beaucoup de paramètre à affiner plus tard, et tous ne seront pas forcément au même endroit. Réponse : dans le microgiciel ! Il faut donc ouvrir votre Marlin dans l’IDE d’Arduino.

Allez dans l’onglet « configuration.h ». Il y a beaucoup de choses dans ce fichier.

Descendez jusqu’à ceci :

le bon endroit dans Configuration.h

le bon endroit dans Configuration.h

Vous voyez, entre parenthèses, vous avez une série de quatre nombres séparés par une virgule. Ce sont vos nombres de pas par millimètre de vos 3 axes et de votre extrudeur. Concernant l’extrudeur, cela correspond au nombre de pas par millimètre de fil avalé.

Donc pour faire simple, le but est de commander un mouvement de 1cm, de mesurer de combien la tête a bougé, de faire une règle de trois et le tour est joué.

/!\ ATTENTION /!\ si vous voulez être précis, il vous faudra absolument un pied à coulisse.

/!\ Faites encore ATTENTION /!\   Vos moteurs ont une vraie force, éviter de les faire forcer ! (dans le doute, le doigt sur le bouton reset prêt à tout arrêter, quand on débute, c’est bien !)

INFO UTILE : Les modules Polulu se règlent ! Certains fournisseur (intelligents) les mettent à zéro, d’autre nimporte où ou d’autres encore avec des réglage de trappeur.

Réglés trop faible, les moteur n’aurons pas assez de force pour bouger. Réglés trop fort, le polulu font chauffer. Vous devez régler la puissance avec le petit potentiomètre et si possible un tourne vis en plastique. Mon conseil : tournez dans le sens anti horaire pour mettre à zero, et ensuite, monter un tout petit peu puis commander un mouvement, si rien ne se passe, recommandez. Quand ça bouge, faite bouger la tête en la retenant un petit peu avec la main (pas comme un bucheron s’il vous plait – même si nous, les geeks, sommes peut nombreux à être pourvu de tant de force). Le moteur doit être capable de vous pousser. Pensez à vérifier que le Polulu ne chauffe pas trop.

Faisons notre étalonnage, et pas n’importe comment.

On commence par aller sur la page du Maître Prusa : http://calculator.josefprusa.cz/

Cela vous donnera de bonnes valeurs. surement même suffisante pour imprimer. Vous ne serez peut être pas très précis dans vos dimension, mais ça aura le mérite d’imprimer.

Rentrez les valeur du calculator dans Marlin puis charger dans la Reprap puis reconnecter Repetier.

Par la suite, on calculera : Nouvelle valeur de pas/mm = (ancienne valeur) * (longueur du mouvement demandée) / (longueur du mouvement réelle)

L’extrudeur

– Merci à Ponpont sur IRC#reprap-fr ! –

D’abord, on vas régler l’extrudeur.Le principe, c’est de demande à la machine de rentrer ou sortir 10 millimètres de fil, de mesurer quel est le mouvement réel, et de régler.

DSC01510

Nous allons faire un trait au marqueur, donc le mieux est d’avoir du fil clair. Il faudra chauffer la buse car Marlin interdit les mouvements d’exDSC01511trusion à froid. pour de l’ABS, je mets 190-200 -> ça permet de fondre le fil pour ne pas forcer si le plastique vient jusqu’à la buse sans pour autant le maintenir vraiment chaud longtemps, ce qui le dégrade et bouche l’orifice de votre buse (aussi appeler effet « ET MERDE ! PUTAIN CA SORT PLUS »)

  1. Faire rentrer un peu de fil, par exemple 3 cm (rentrer 30mm dans Repetier puis appuyer sur la flèche vers le bas)
  2. Faire un trait à l’entrée de l’extrudeur.
  3. Commander 1cm en sortie (« 10mm » puis flèche vers le haut)
  4. Mesurer combien de fil est vraiment sortir (je trouve qu’un petit réglet gradué à 1/2 mm, ça va bien !)
  5. faire le calcul du nouveau pas/mm
  6. le marquer dans Repetier dans la quatrième variable (pour un wade’s extruder, autour de 750)
  7. NE PAS CHARGER TOUT DE SUITE, on chargera les 4 nouvelles valeurs en même temps.

AXES X, Y et Z

L’axe X est l’axe gauche-droite, Y : avant-arrière.

Certain étalonnent avec CECI , en imprimant la boite de 20mm x 20mm x 10 mm, et en mesurant.

Moi, je le fait par mesure directe. C’est parti !

  1. Attraper son pied à coulisse, connecter Repetier
  2. placer la reprap sur son HOME
  3. caler le pied a coulisse intelligemment (voir photo plus bas)
  4. faire bouger un tout petit peu la tete pour se placer son pied a coulisse sur une valeur simple (genre 16cm et pas 15,78)
  5. demander à la reprap de bouger de 2 cm, calculer de combien elle a réellement bougé
  6. calculer la nouvelle valeur [pour mémoire : Nouvelle valeur de pas/mm = (ancienne valeur) * (longueur du mouvement demandée) / (longueur du mouvement réelle) ]
  7. l’écrire dans Marlin
  8. Passer a l’axe suivant.

Je ne peux que vous conseiller de faire les mesure deux ou trois fois.

Quand vous aurez fini, déconnecter repetier, et charger votre Marlin dans la reprap.

Maintenant que nous somme censés avoir des valeur plus correcte, nous allons refaire la même chose, mais avec des mouvement de 10 cm. Pourquoi ? et bien plus le mouvement demandé est grand et plus l’erreur est visible et le calcul fiable ! ^^

et voilà, votre Reprap est étalonnée ! c’est tout bête quand on a compris !

 

le pied DOIT être le plus parallèle possible à l'axe que vous mesurez.

le pied DOIT être le plus parallèle possible à l’axe que vous mesurez.

 

11 Responses to “Etalonnage avec Marlin”

  1. Nicolas Abraham

    Trop, classe. Merci beaucoup, protocole efficace et bien clair 😀

    Répondre
  2. Nicolas Abraham

    Cela dit, pour ceux qui comme moi n’ont pas de pied à coulisse : une parade consiste à augmenter la taille de l’échantillon mesuré. Au lieu de mesurer 1 cm, faites des déplacement de minimum 5 cm et mesurez avec une règle classique. Par contre pour la tête, c’est vrai que la ça va consommer du plastique…

    Répondre
  3. polaroid

    bonjour,
    je me sers de ton tutoriel pour programmer une ramps avec un Nema 23 qui controlle l’axe Z… (je me sers d’un pilote moteur TB6600)…
    J’ai du passé en pas entier et pas en 1/16 eme de pas car cela me donnais des valeur bien trop élevées qui ne marchait pas. ma valeurs est de 1600/3 soit environ 533,33…
    le fait est que cela ne marche toujours pas… le moteur bouge seulement si je lui demande des mouvement de 0,1 mm mais pas de 1 mm…
    Aurait tu une explication ??
    merci d’avance

    Répondre
    • Jean-Philippe

      Salut !
      ALors il y a pas mal de choses à voir avant que je me fasse une idée de ton problème. D’abord je n’ai jamais travaillé avec un driver externe, autre que les pololus. Si le problème vient de là… je ne le verrais pas. Cela dis, c’est excellent d’avoir mis un driver sérieux en fasse d’un NEMA 23. (J’ai piloté du 23 sur pololu, ca fonctionne – seul bémol -> le moteur est clairement sous exploité)
      Ta valeur est de 533 pour les pas entiers ou en micro-pas (1:16) ? Tu peux essayer du micro-stepping en 1:8eme ou 1:4 avant de passer en pas complets. Mais je suis étonné : j’ai utilisé sur ma géante pour le Z un assemblage très démultiplié : NEMA 17 – petit pignon 17dents sur couronne 111 dents (de mémoire), et la couronne faisait tourner une vis. Résultat : de mémoire encore, j’avais un truc comme 32000 (32 milles) pas par millimètre !
      Pour que ça fonctionne, il m’a fallu régler la vitesse max dans marlin a 0,1mm par seconde (ou un truc du genre, j’avais fait le calcul pour arriver à 200tours minutes sur le moteur) et idem dans Repetier, régler la vitesse du Z très bas. Clairement, sans ce réglage, il ne se passait rien; la commande aux moteurs était beaucoup trop rapide.
      Pense aussi à régler l ‘accélération max beaucoup plus bas.

      Que tu bouges de 1 dixième et pas de 1mm, par contre, ça me chatouille les neurones; la bonne nouvelle (et crois moi, c’est VRAIMENT une bonne nouvelle car tu ne dois plus être loin de la victoire de l’homme sur la machine 😉 ) c’est que ça bouge. Sur l’IRC on a eu le cas de la machine qui fait rien a 0,1mm et qui bouge a 1mm, mais là.. je vois pas. Peut être qu’en commandant 0,1mm, la machine envoie les pas plus doucement qu’avec 1mm (oui, en tenant compte de l’accélération puis du freinage sur 1mm et sur 1 dixième, peut etre que ca envoie la purée moins fort… :/ )
      Tiens moi au courant ! je suis sur l’IRC #reprap-fr systématiquement quand je suis à mon bureau 😉

      Répondre
  4. Capucin

    Bonjour, je suis débutant en la matière mais une bête question me turlupine car c’est quelque chose à quoi on fait souvent référence: le Marlin! Apparemment, on doit souvent y avoir accès pour modifier des paramètres. Où le trouver? Comment y accéder? J’ai une imprimante Creality CR10mini et je travaille actuellement sur Cura 3.6.
    Merci pour votre aide.

    Répondre
    • Jean-Philippe

      Bonjour Capucin 🙂
      D’abord, merci pour cette question, car je me demandais si après 4 ans ce tuto était encore utile. J’ai été obligé d’arrêter l’impression et la recherche depuis 3 ans maintenant et il faudrait que je regarde ce qu’il y a dans ta machine pour te répondre !

      Mais d’abord quelques bases, et si ça ne t’éclaire pas assez, je serais ravi te t’aider d’avantage !

      Marlin est le firmware de beaucoup de machines. en Français « microgiciel ». C’est le programme qui est dans le contrôleur de l’imDrimante et qui le fait tourner.

      Pour y accéder, je le faisait sur le logiciel de programmation d’arduino. Tu ne peux pas « pomper » celui qui est dans ta machine car il a été compilé (mis sous forme compréhensible et optimale pour le processeur, mais plus pour l’homme ^^). Il fallait télécharger le dernier Marlin sur GitHub, rentrer les bons paramètres, connecter à l’arduino, et envoyer.

      Après quelques recherches, http://www.cr10.fr/ameliorations/marlin/ devrait pouvoir t’aider ^^ Et sinon, J’y ai passé un peu de temps : tu peuxaller sur le chan IRC http://webchat.freenode.net/?channels=reprap-fr 🙂 je m’y suis fait de vrais amis !

      Répondre
  5. JF

    Merci Jean-Philippe
    Depuis une semaine je cherche le réglage qui coince sur ma CNC « fait maison » avec Marlin.
    Les Nema 17 broutes avec #define DEFAULT_AXIS_STEPS_PER_UNIT { 2560, 2560, 2560 }
    Avec la lecture de lignes « Pour que ça fonctionne, il m’a fallu régler la vitesse max dans marlin a 0,1mm par seconde »
    Et bien oui, gros couillon que je suis.
    Le réglage sur « #define DEFAULT_MAX_FEEDRATE { 7, 7, 7 } » à résolu mon problème.
    Merci à toi.

    CNC 3 axes 500×500 (réalisée en impression 3D en PTFe), 5 Nema17 2X 2Y 1Z, broche 250w 28000t/mn (fraiseuse Parkside LIDL modifié), Tachymètre « maison » écran OLED, caméra endoscopique, ramps 1.6, arduino Mega

    Répondre
    • Jean-Philippe

      Ravi de voir que le Blog peut encore servir ! Merci du retour 🙂 bon routage !

      Répondre
    • Jean-Philippe

      Impression 3D PTFe ! ah ! bravo 🙂 je me suis arrêté au PC, j’avais été le premier à importer des USA le Taulmann pour avoir du PET et du nylon ^^

      Répondre
  6. Jean-Philippe

Répondre à Nicolas Abraham Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *