Homing est la fonction qui permet de donner une position de référence sur les 3 axes de la machine, de manière à ce qu’un certain nombre d’opérations soient possibles grâce à un “repère” physique constant, tel que la position de brides et d’attaches, d’une sonde, etc….
La position de ce repère sur la machine dépend des paramètres indiqués dans GRBL. Comme la chose n’est pas absolument intuitive (???), on va tâcher d’illustrer tout ça.
Tout d’abord, il vous faut déterminer où vous voulez que le homing se fasse:
Paramètre $23 – Direction du Homing
Position du Homing pour $23=0
Comme vous pouvez le voir sur les illustrations, les coordonnées absolues sont données en négatif par rapport au point 0,0,0. C’est a priori le défaut pour toutes les machines CNC professionnelles, et pour LinuxCNC, dont GRBL s’inspire. Ne me demandez pas pourquoi, aucune idée! 🙂
Bien sûr, du choix de la direction du Homing va dépendre la position des switches de fin de course. Notez qu’il n’est pas nécessaire de mettre de fin de course en Z+. De mon point de vue (mais ce n’est que mon point de vue), il n’est pas non plus nécessaire de mettre des switches de chaque coté des Axes X et Y. Personnellement, ayant choisi la position $23=3, je n’ai des fins de course qu’en X- et Y-.
Etapes du Cycle de Homing
Par défaut, le cycle de homing passe par les étapes suivantes:
- Axe Z
- L’axe Z monte en vitesse rapide ($25)
- Lorsque le fin de course Z est déclenché, Z s’arrête pour une courte période ($26), et recule d’une certaine distance ($27)
- L’Axe Z va monter à nouveau lentement ($24) jusqu’à ce qu’il touche le fin de course à nouveau.
- L’Axe Z recule d’une certaine distance ($27)
- Axes X et Y
- X et Y se déplacent tous les deux dans la direction du Homing, à vitesse rapide ($25)
- Le premier Axe qui déclenche le fin de course s’arrête, et attends que l’autre Axe déclenche aussi.
- Lorsque le second Axe touche le switch, les 2 axes reculent d’une distance pré-établie($27)
- Les 2 axes X et Y vont se déplacer vers les fins de course à nouveau, lentement ($24), jusqu’à ce que les 2 switches soient à nouveau déclenchés
- Les deux axes X et Y vont reculer d’une petite distance ($27)
Vitesse du Homing
Comme décrit ci-dessus, le Homing est fait en deux phases distinctes par axe: rapide et recherche. La vitesse rapide est contrôlée par le paramètre $25. Dans cette phase, GRBL essaye juste de trouver la fin de course en un temps raisonnable.
Après la phase rapide, la phase de recherche fait exactement la même chose, mais à une vitesse lente, contrôlée par le paramètre $24. Cette phase est dédiée à trouver précisément le point de déclenchement du switch fin de course.
Attention, surtout pour la phase rapide, à ne pas être trop rapide, au risque d’endommager les interrupteurs. Pour ma machine, à titre d’exemple, $24=100, $25=800 (ce sont des millimètres/minute). Bien sûr tout dépend de votre machine, mais si vous venez de l’impression 3D, oubliez vite les vitesses utilisées sur votre imprimante! Les masses en mouvement n’ont aucun rapport!
Distances de Homing
GRBL va abandonner la recherche pour une fin de course après avoir effectué la distance de déplacement maximum X 1.5. Cette distance de déplacement maximum est contrôlée par les paramètres $130 pour X, $131 pour Y et $132 pour Z. Ces valeurs sont aussi utilisées pour les limites logiciel, et devraient être réglées un peu en dessous de la longueur pour chaque axe.
Après la phase rapide, l’axe recule un petit peu, pour que le switch revienne en position de repos. Cette distance est contrôlée par le paramètre $27. Indiquez une valeur suffisamment haute pour que l’interrupteur soit complétement dégagé,même si la phase rapide dépasse le point limite (va taper sur la machine).
Paramètre $22
Maintenant que vous avez effectué les différents réglages expliqués ci-dessus, vous pouvez mettre le paramètre $22=1. Lorsque que vous re-lancez GRBL, le homing est actif, la machine va se mettre en erreur tant qu’un cycle de homing valide n’a pas été effectué, et il ne peut s’effectuer QUE si vos end stop et les autres paramètres sont corrects…..
Dans bCNC, vous allez voir quelque chose comme ceci:
Cliquez sur l’icône “Home” (Maison) pour démarrer le cycle de homing. Si tout se passe bien, vous verrez la barre rouge passer en jaune, avec le mot Idle, signifiant que la machine (GRBL, en fait) est en attente de commandes.
Vous verrez aussi s’afficher, sur la ligne MPos, les coordonnées absolues (physiques, si vous préférez) correspondant à la position de Homing que vous avez définie.
Et après le Homing, on fait quoi?
Le homing n’est utile que si l’on s’en sert. Comme dit au début, il nous donne une position de référence sur la machine, indépendante de pièce à travailler. Une des utilisations possibles est d’indiquer à GRBL où l’on veut que se positionne la broche (et fraise), après que le travail sur une pièce spécifique est fini. La plupart des post-processeurs de Fusion 360 envoient la commande G28 à cet effet.
Imaginons que vous vouliez qu’après le travail, votre broche remonte à la position de homing, mais avec X et Y correspondants à un repère sur votre martyr où vous positionnez vos pièces à travailler (Angle d’une équerre, par exemple). Vous amenez, par jogging, l’outil à la position souhaitée. Ensuite, dans bCNC, vous tapez la commande G28.1, et validez par Entrée. Cette commande indique à GRBL de mémoriser la position courante de l’outil pour G28.
Vous pouvez tester si cette position est correctement mémorisée en joggant à nouveau quelque par ailleurs, puis en tapant simplement G28 (et Entrée). Vous devriez alors voir la machine positionner votre outil à la position mémorisée.
Personnellement, j’ai choisi pour G28 une position qui me facilite le changement d’outils (fraise).
Coordonnées absolues et relatives
Il est clair que la position trouvée lors du cycle de homing est une position “absolue”, correspondant toujours aux même coordonnées sur votre machine. De la même manière, la position G28, définie après un homing, est une position absolue, sans relation avec une pièce à travailler.
Seulement, le mode de travail d’une pièce, et la détermination du point origine des axe X, Y et Z, doit correspondre à des coordonnées relatives (à la pièce à travailler). Si j’utilise Fusion 360, j’ai défini un point origine quelque part sur mon stock. Comment faire pour que ma machine (et GRBL) sachent où est ce point?
Dans l’exemple ci-contre, il me faut tracer les diagonales du carré pour identifier sur la pièce brute l’endroit où positionner ma fraise.
Ensuite, en “joggant” avec les flèches de déplacement, vous amenez votre fraise sur le point en question. OK, très bien! MAIS vous ne voulez pas vraiment refaire cette même manipulation à chaque fois que vous voulez travailler une pièce, n’est-ce pas? Ce serait quand même plus pratique si on pouvait mémoriser cette position.
Justement, c’est ce à quoi les “espaces de travail” G54, G55 …. G59 sont destinés. Une fois votre outil positionné là où vous le souhaitez, en étant dans l’espace de travail G54 (Espace par défaut pour GRBL), vous mémorisez cette position en cliquant sur le bouton XYZ=0. AUCUN DES AXES NE BOUGE SUR LA MACHINE, et c’est NORMAL! Simplement, la position (absolue) est enregistrée, et comme il s’agit du point origine de l’espace de travail G54, les axes sont tous à zéro (avec parfois quelques petits décalages, dus au nombre de pas et à la résolution définie pour les moteurs).
La copie d’écran de gauche correspond au résultat du jogging. Les valeurs pour Wpos ( Work Position, position de Travail) ,n’ont pas grande signification.
Après appui sur le bouton XYZ = 0, (image de droite) pour l’espace de travail G54 (dont le bouton est enfoncé, c’est donc l’espace actif), les axes sont tous à zéro (à quelques millièmes près,la résolution sur ma machine ne permet pas d’aller en dessous du 1/100ème)
Cette opération est celle qui nous permet de “faire le lien” entre le GCode généré par Fusion 360, et la machine.
Si vous avez défini une position pour G28, comme indiqué précédemment, vous pouvez tester vos positions mémorisées, en envoyant la commande G28, puis, lorsque la machine a fini de se repositionner,en cliquant sur le bouton avec un cercle, au centre des flèches de jogging, ce qui demande à la machine de reprendre la position définie pour G54. Vous avez sans doute remarqué qu’il y a 5 autres espaces de travail possibles. Personnellement,j’ai trouvé pratique d’utiliser G55 pour mémoriser le coin d’une équerre sur le martyr, et G54 pour une position sensiblement au centre du martyr.
Une fois les opération décrites faites, vous pouvez charger votre fichier GCode et demander à bCNC de l’exécuter (en fait bCNC l’envoie à GRBL, qui lui l’exécute)
Pour en savoir plus sur les commandes GCode évoquées ici, veuillez vous référer à cette page: Tout le GCode de LinuxCNC
En guise de conclusion
Cet article fait suite à beaucoup de lectures sur des groupes Internet et de Forums (Français ET Anglais), et essaye de “réparer” un peu les erreurs de compréhensions, et les “conseils” lus, comme de supprimer la génération de G28, parce que “ça ramène toujours tout à zéro”. GRBL n’est jamais qu’un outil dont VOUS vous servez. Si vous le laissez faire ce qu’il veut, sans chercher à apprendre et à comprendre, ça peut sembler plus “facile”, mais vous passez à coté de fonctions utiles qui ne sont pas là par hasard.
Ne me faites pas dire ce que je ne dis pas: rien n’est “obligatoire”, et personne ne vous oblige à utiliser GRBL d’une certaine manière plutôt qu’une autre. On peut en fait très bien se passer complètement du Homing, tout faire en coordonnées relatives, et ne pas chercher plus loin, ça “marche”.
Mais si vous avez passé du temps et dépensé de l’argent pour avoir une machine CNC correspondant à vos souhaits, pourquoi se priver de la moitié des fonctions gratuitement à votre disposition?
Bonsoir Le Bear, je suis bien inscrit, tu as repondu à certaines de mes questions, merci….mais je n’ai pas trouvé la rubrique concernant :
Comment regler la direction des X, Y qui ne correspont pas à tes schemas…? Merci à toi….
Philippe
Bonjour Le Bear, petit soucis pour m’inscrire dù à un pb sur la demande ” Que ne sait pas faire une CnC” et là, pas possible de valider….Bref, ici ce qui m’interesse c’est la disposition des axes….Me concernant, je suis avec un logiciel UsBCnc controlleur mais je visualise un max tes videos car je souhaite changer pour bCNC + Grbl….les axes, disais-je sont sur ma CnC comme suit……Z vers le haut (normal), X vers la Gauche et Y en Profondeur…et donc mon zero Absolu se situe à Z=0, X=-55 et Y=-150 du bord Avant Gauche ( coin du plateau utile de la Cnc ) où se trouve le Contact pour changement d’outils….Contact lui…Z= +18, X=0, Y=0 donc Décalage +18, 55, 150 par rapport au Zero Absolu mais juste au bord de mon plateau utile….tout cela pour une question .. Comment regler la direction des X, Y qui ne correspont pas à tes schemas…? Merci à toi….Philippe
Je répondrais sur le forum, une fois inscrit.
Bonjour,
d’abord merci pour tous vos conseils et le temps que vous prenez pour cela !
J’ai acheté et monté une CNC Milright M3 et installé GRBL (je suis sur mac et Fusion 360)
La CNC est raccordée au Mac et ça fonctionne avec GRBL…
Quand je dis que ça fonctionne c’est juste que les moteurs X Y Z répondent bien aux ordres + et –
MAIS Je n’ai pas d’ interrupteurs physiques et je ne parviens pas à définir un XYZ 0 ou une distance maximum pour les 3 axes.
Sans doute je m’y prend mal !
Peut-être pourriez-vous m’aider dans l’ordre des choses à faire ?
Je vous remercie
daniel
Le mieux est de rejoindre le Forum et de vous y inscrire. Il sera bien plus simple d’avoir une conversation sur le forum, et de joindre documents et/ou photos à la discussion.
A très bientôt sur le Forum
Cordialement,
Bernard