Configurer et Paramètrer GRBL

C’est une question qui revient souvent, après avoir installé GRBL. Comment dois-je faire pour configurer et paramètrer GRBL pour ma machine? Bien sûr, chaque machine est différente, dans ses courses, dimensions, moteurs, vitesse dont elle est capable, etc.…

Il y a deux types différents de “réglages” possible: “En dur”, à la compilation, en modifiant des valeurs dans un fichier, et en interactif, alors que le programme s’exécute. Dans la suite de cet article, et pour mieux différencier les deux, on va appeler les réglages en dur “configuration”, et ceux en interactif “paramétrage”, même si cette différence de vocabulaire est un peu arbitraire. J’espère simplement que cela contribuera à la compréhension.

Configuration

On va commencer par décrire ce qui ne l’est pas très souvent, la modification de valeurs dans certains fichiers qui seront compilés avec GRBL lorsque vous le flashez sur l’Arduino. Si vous avez déjà installé GRBL dans votre Arduino, vous l’avez certainement compilé et flashé tel que, sans faire de modifications. Très bien, cela fonctionne, et ce n’est pas un problème particulier. Il peut cependant être utile de savoir comment modifier la configuration de base, et en quoi cela peut vous aider.

Dans votre IDE (Visual Studio pour moi), ouvrez le fichier config.h qui doit se trouver dans votre répertoire GRBL.  C’est un assez long fichier (+- 400 lignes) extrêmement bien commenté, en Anglais bien sûr. Nous allons isoler ici les paramètres de configuration les plus importants pour s’adapter au mieux à votre machine spécifique.

Tout d’abord, si vous liez en parallèle 2 interrupteurs de butée pour 1 même axe, au lieu d’avoir un switch câblé séparément pour chaque extrémité, il faut dé-commenter la ligne commençant par define, ci-dessous, en supprimant les “//”

// If your machine has two limits switches wired in parallel to one axis, you will need to enable
// this feature. Since the two switches are sharing a single pin, there is no way for Grbl to tell
// which one is enabled. This option only effects homing, where if a limit is engaged, Grbl will
// alarm out and force the user to manually disengage the limit switch. Otherwise, if you have one
// limit switch for each axis, don't enable this option. By keeping it disabled, you can perform a
// homing cycle while on the limit switch and not have to move the machine off of it.
// #define LIMITS_TWO_SWITCHES_ON_AXES

Ensuite, et toujours en liaison avec vos interrupteurs de fin de course, il faut définir si vous câblez vos switches en “normalement ouvert”, où en “normalement fermé”. Par défaut, GRBL est défini pour utiliser des switches normalement ouverts. Dé-commentez la ligne pour un fonctionnement en normalement fermé:

// Inverts pin logic of the control command pins. This essentially means when this option is enabled
// you can use normally-closed switches, rather than the default normally-open switches.
// NOTE: If you require individual control pins inverted, keep this macro disabled and simply alter
// the CONTROL_INVERT_MASK definition in cpu_map.h files.
// #define INVERT_ALL_CONTROL_PINS // Default disabled. Uncomment to enable.

 

Depuis peu, GRBL est capable de gérer (s’il reçoit les commandes G-Code correspondantes) la vitesse de rotation de la broche. Si vous vous servez de cette fonction, laissez là activée (elle l’est par défaut), sinon désactivez-là. Si vous la laissez activée, il vous faudra aussi définir la plage de vitesses dont votre broche est capable:

// Enables variable spindle output voltage for different RPM values. On the Arduino Uno, the spindle
// enable pin will output 5V for maximum RPM with 256 intermediate levels and 0V when disabled.
// NOTE: IMPORTANT for Arduino Unos! When enabled, the Z-limit pin D11 and spindle enable pin D12 switch!
// The hardware PWM output on pin D11 is required for variable spindle output voltages.
#define VARIABLE_SPINDLE // Default enabled. Comment to disable.

// Used by the variable spindle output only. These parameters set the maximum and minimum spindle speed
// "S" g-code values to correspond to the maximum and minimum pin voltages. There are 256 discrete and
// equally divided voltage bins between the maximum and minimum spindle speeds. So for a 5V pin, 1000
// max rpm, and 250 min rpm, the spindle output voltage would be set for the following "S" commands:
// "S1000" @ 5V, "S250" @ 0.02V, and "S625" @ 2.5V (mid-range). The pin outputs 0V when disabled.
// BG Note: As the spindle max speed is said to be 12K, that's what I set here. Should never go that fast in the GCode, but I will test.

#define SPINDLE_MAX_RPM 18000.0 // Max spindle RPM. This value is equal to 100% duty cycle on the PWM.
#define SPINDLE_MIN_RPM 0.0 // Min spindle RPM. This value is equal to (1/256) duty cycle on the PWM

Jusqu’à présent, je n’ai pas eu besoin de m’intéresser de près aux autres paramètres du fichier config.h, mais sachez que vous avez peut-être là la solution à certaines difficultés que vous pourriez rencontrer en utilisant GRBL

Paramétrage

Le paramétrage se fait alors que l’Arduino est branché et que vous êtes en liaison série avec lui. Il existe beaucoup de logiciels différents permettant d’envoyer le G-Code et de contrôler GRBL, que ce soit depuis un PC, un Mac où une machine Linux. Pour éviter d’entrer de suite dans d’autres considérations de choix pour ces logiciels, nous allons paramétrer GRBL le plus simplement du monde avec un terminal série, en envoyant manuellement les commandes.

Réponse de GRBL lors d'une connection sérieLorsque vous vous connectez avec un terminal série sur votre Arduino, si le flashage s’est passé correctement, vous devriez obtenir une réponse Grbl 0.9j [‘$’ for help], tel que vous  pouvez le voir ici.

Pour lister l’ensemble des paramètres qui vous permettront d’adapter Grbl aux spécificités de votre machine, il vous suffit de taper $$. Grbl va répondre en renvoyant la liste visible ci-dessous.

Paramètres 100, 101 et 102, nombre de pas par millimètre.

Nous allons tout d’abord nous intéresser aux paramètres 100, 101 et 102. Ces paramètres, comme indiqué dans le commentaire Liste des constantes de réglage dans GRBL, obtenue par $$entre parenthèses, définissent le nombre de pas (des moteurs pas à pas) nécessaires pour parcourir une distance de 1 millimètre sur l’axe indiqué. La plupart du temps, 100 et 101 (X et Y) seront identiques, alors que Z (102) aura une valeur différente. Pour vous faciliter la tache, vous trouverez au bas de l’article un calculateur pour trouver cette valeur, mais la formule est assez simple:

Valeur = Nombre de pas (du moteur) pour faire 360°/Pas de la Visse sans fin (où nombre de dents de la poulie * espace dents chaîne où courroie)

Résultat = Valeur x Micro Pas.

Exemple: Moteur Nema 17, 1.8° par pas, soit 200 pas pour 360°

Courroie dentée, 2mm d’espace entre dents.

Poulie 20 dents

Opération: (200/40) * 4 (par exemple) = 5

Dans cet exemple, il faut 5 pas des moteurs pour parcourir une distance de 1 millimètre. Attention, dans GRBL, tout est en millimètres, donc, si vous avez des dimensions en pouces (inches), n’oubliez pas de multiplier par 25,4 avant de faire vos opérations.

Paramètres 130, 131 et 132. Distance maximum à parcourir sur chacun des axes.

Ici, il n’y a pas de calcul à faire, il suffit d’entrer en millimètres  la longueur de coupe sur cet axe. En théorie, et en l’absence de fausses manipulations, si ces distances sont entrées correctement, les détecteurs de fin de course devraient être inutiles.

Paramètres 110, 111 et 112. Vitesse maximum sur X, Y et Z.

Ici on entre plus dans le domaine de l’expérimentation personnelle que dans le purement rationnel. Il s’agit ici de vitesse de déplacement maximum, HORS TRAVAIL, c’est à dire pour se repositionner, et pas pour couper. Il y a de nombreuses discussions sur les forums à ce sujet, et nombreux sont ceux qui soutiennent que des valeurs de 12 000 à 14 000 sont parfaitement acceptables, alors que d’autres pensent que 5 000 est bien suffisant. Tout dépend de votre mécanique ET de votre électronique. Pour commencer, une valeur de 8 000 me semble correcte, et la moitié, 4 000, pour l’axe des Z. Expérimentez avec des commandes manuelles pour voir comment votre machine se comporte.

Paramètres 24, 25, 26 et 27.  Homing. Comme dans E.T., “maison”!

La procédure de homing (retour à la maison, plus techniquement, point 0, où X= 0, Y = 0 et Z = 0), est importante, et pas le plus simple réglage à effectuer, mais il n’est pas obligatoire, simplement il faudra, s’il n’est pas utilisé, que tous vos fichiers G-Code soient générés pour exprimer des coordonnées relatives, et pas absolues, un concept sur lequel nous reviendrons plus tard. Tout d’abord, ces paramètres ne seront pris en compte que si le paramètre 22 est à 1 (activé), et il faut que vous ayez câblé vos fins de course.

La procédure de Homing va déplacer le portique sur X et Y, d’abord relativement vite, jusqu’à ce qu’il touche les fins de course, puis plus lentement pour détecter le point exact où l’interrupteur se déclenche, en effectuant des mouvements lents de va et vient.

  • Le paramètre 24 correspond à cette vitesse lente. 25 mm/min devrait fonctionner. Le but est d’obtenir une localisation exacte et répétable à chaque fois.
  • Le paramètre 25 correspond à la vitesse de déplacement jusqu’à déclencher les interrupteurs. Une vitesse trop élevée, et votre portique risque de heurter violemment vos fins de course. Une vitesse trop lente, et le processus va prendre trop de temps. Expérimentez, 500 à 600 mm/min sont de bonnes valeurs de départ.
  • Le paramètre 26 est la valeur en millisecondes pendant laquelle le signal électrique de l’interrupteur peut “rebondir” lorsqu’il est déclenché. Ce bruit peut (et devrait!) être filtré électroniquement, mais GRBL utilise ce court délai pour laisser le temps au signal de se stabiliser.
  • Le paramètre 27 est la valeur de laquelle le processus de homing va se décaler des fins de course, de manière à éviter un déclenchement accidentel des fins de course, une fois que le processus à été achevé.

Il n’est normalement pas nécessaire de toucher aux autres paramètres, sauf cas très particuliers, sur lesquels nous reviendrons éventuellement à l’occasion.

Paramètres GRBL modidiés 110, 111 et 112Comment changer les paramètres?

Il suffit de taper $nombre du paramètre = nouvelle valeur, par exemple $110=10000. Faites à nouveau $$ pour vérifier les nouvelles valeurs. Comme vous pouvez le voir sur cette copie d’écran les paramètres 110, 111 et 112 ont été modifiés.

Conclusion

J’espère que cet article aura levé certaines difficultés à l’utilisation de Grbl. Bien que ce programme ne nécessite qu’un Arduino Uno, il est assez complet et permet de piloter des machines CNC “comme les grands”. Dans un prochaine article, nous évoquerons différents programmes pilotant l’Arduino par le biais d’une interface graphique, et examinerons l’un deux plus en détails, sa version Française devant être disponible sous peu.

 

Bien que tout ce qui précède soit relatif à GRBL, un certain nombre de principes et de calculs sont valables pour TOUTES les machine CNC.

67 réflexions sur “Configurer et Paramètrer GRBL”

  1. Bonjour, Je bloque aujourd’hui avec la fonction d’autonivellage pour réaliser des gravure de piste plus precise de mes circuits imprimés. La fonction de mon logiciel de pilotage de ma cnc (UGS PLATFORM) sort un Gcode avec 6 chiffre après la virgule pour les coordonnées de position des axes X,Y et Z .
    Quand je lance le Gcode il y a un message d’erreur ne reconnaissant pas le format des nombres .
    N’ayant pas la main sur le plugin qui gère cette fonction, Je me demande si il ne faudrait pas modifier le fichier config.h du dossier GRBL et mettre la valeur 6 ou 7 a la ligne #define N_DECIMAL_COORDVALUE_MM.
    Si oui es ce que cela aura une incidence sur le fonctionnement de ma machine?

    1. Avec 3 chiffres après la virgule, on est déjà au micron. 6 chiffres après la virgule, c’est donc du 1/1000 de micron. Je ne sais pas quelle machine tu as, mais je doute qu’elle puisse attendre cette précision. Le micron, c’est dèjà très bien! Pour le dire autrement, reconnaitres des chiffres avec 6 positions après la virgule ne sert strictement à rien. Il vaudrait mieux indiquer à UGS d’arrondir à 3 chiffres après la virgule, ou changer de logiciel.

      Si tu veux porolonger la conversation, je te suggère d’aller sur le Forum, bien mieux adapté que les commentaires à ce genre d’échange.

      1. En fait je vient de faire un essai de cette fonction sur le logiciel Ugs sous window (avant j’étais sur Mac OS) et le plugin contenus dans le dernier version a corrigé le problème en arrondissant les coordonnées a 3 chiffre après la virgule. Le scan de ma surface de travail a l’air de se faire correctement. Je vais faire un usinage a vide quand j’aurais le temps pour être sur.

        L’erreur sous Mac provient donc de mon nombre de chiffre après la virgule. Comme j’aime mieux l’environnement Mac et que je ne peut pas modifier le nombre sur UGS qu’est ce que je risque a modifier config.h en étant bien sur conscient que cela ne m’apportera rien a la précision d’usinage.
        Pour info j’édite mes fichier Gcode avec CamBam paramètré a 3 chiffres après la virgule

          1. Du coup je croit que quand j’aurais a usiner avec une precision demandant un scan de la surface de travail je le ferait avec mon vieux windows ca sera bien plus simple.
            Je vais également essayer de trouver une version Mac qui pourrait fonctionner…

            Merci pour tes conseils

    1. GRBL ne sait pas quel moteur pas à pas il pilote. Un moteur pas à pas est un moteur pas à pas. C’est du côté des branchements vers le driver du moteur qu’il faut regarder. N’étant pas du tout électronicien, je ne peux pas aider pour cette partie.

  2. Bonjour,

    J’ai une CNC 300×150 cm avec des profils CBEAM avec des courroies de 6 mm pour découper du contreplaqué essentiellement.
    Ma machine n’est pas hyper précise, décalage de 1mm parfois lors des découpes. Je pense que cela vient des entrainement par courroies qui sont forcement moins précis de par des tiges filetées.
    Je pensai ralentir un peu les vitesses pour gagner en précision : vitesse à vide et vitesse lors des découpes.
    Cependant je ne comprends pas la différence entre les paramètres de vitesse 110/111/112 et les paramètres d’accélération 120/121/122. Qui fait quoi?
    Lesquels sont utiles pour l’utilisation en mode “découpe” et lesquels sont utiles pour les déplacement à vide entre deux actions de découpe?

    Merci pour votre chouette site.
    Fabrice M

    1. Bonjour Fabrice.

      Il serait préférable de rejoindre le Forum, sur ce site, pour ce type de discussion, Bien mieux approprié que les commentaires.
      En fait, les courroies sont TRES précises, plutôt mieux que les tiges filetées, qui ont du ‘backlash’ (jeu) lors des changements de direction, ce que n’ont pas les courroies. Par contre, il faut que les courroies soient tendues. tendu de chez tendu, comme on dit. Les miennes “sonnent” comme une corde de guitare. Faut pas exagérer non plus, mais il faut qu’elles soient réellement tendues.

      La vitesse est la vitesse, et l’accélération, l’accélération. Vous connaissez la différence dans votre voiture, c’est la même chose ici. Les paramètres 110, 111 et 112 sont des paramètres de “vitesse à ne pas dépasser”. Vitesse maximum possible sur votre machine. Les paramètres 120, 121 et 122 sont des paramètres d’accélération (passer de 0 à 100 km/h en x secondes).

      Les paramètres d’accélération sont TOUJOURS utilisés, découpe où pas. Les paramètres de vitesse maximum ne sont, normalement, jamais utilisés. Les vitesses indiquées dans le G-Code devraient être en-dessous de la vitesse limite.

  3. Bonjour,

    Je rencontre un soucis sur ma cnc homemade contrôlée via GRBL.
    lorsque je modifie la valeur $102 pour adapter le nombre de pas par mm je me retrouve “bloqué” en terme de hauteur. C’est à dire que je ne peut pas aller a une valeur supérieur à 1000
    et que malgré cela je n’arrive pas à arriver a 1mm.

    Configurée à 1000 elle monte a peine de 5mm.

    Pouvez-vous m’aider ?

    bien à vous,

    Lee

    1. Je ne sais pas combien de micro-pas tu as, mais ça semble beaucoup. Néanmoins GRBL accepte très bien des valeurs largement supérieures (Voir image avec 20 000) Je ne sais pas ce que tu utilises pour dialoguer avec GRBL, l’image montre le terminal interne à bCNC.

      Valeur $102 à 20 000

      PS- Il est préférable d’avoir ce genre de discussion sur le forum, bien plus approprié.

  4. Bonjour à tous, je suis équipé d’une CNC 3018, je désire effectuer de la découpe avec mon laser 2500, lorsque je demande de répéter la passe plusieurs fois, lorsque de la première passe est effectuer il se décale de quelques cm puis elle recommence l’opération . je désire effectuer la passe plusieurs fois pour faire ma découpe laser mais je trouve pas le moyen de le faire.
    Quelqu’un aurait une idée svp?

  5. Bonjour Bernard,

    Je ne vois plus de réponses de votre part depuis février, j’espère que tout va bien pour vous !

    Je voulais apporter ma pierre à l’édifice avant de poser moi aussi une question ^^ j’ai remarqué que sur votre article, concernant le réglage du nombre de pas/mm vous aviez écrit “200/40 * 4 = 5” or si on est affectivement à 4 microstep, le résultat serait = 20 au lieu de 5 ! Et pour préciser, on aurait bien une valeur de 5 pas/mm si on reste en full step (microstep =1)

    Concernant mon projet, j’ai des moteur nema 17 de 200 pas/tour, contrôlés par des DRV8825 réglés en fullstep (=1) et montés sur courroie dentée de 20 dents/tour et 2 mm/dent. Je me retrouve donc avec un nombre de pas/mm = 5.

    Sauf que, physiquement, le comportement et la vitesse des axes x et y sont vraiment très lents, très “hachés” et créent des vibrations (beaucoup trop à mon goût). Du coup je me suis penché sur chacun des réglages $$ pour essayer de comprendre et régler ça au mieux, mais je suis complétement perdu…

    Une idée sur les réglages ? Ou, encore mieux, sauriez-vous m’expliquer comment agir sur le comportement (douceur, vitesse, délais etc) des axes X et Y via grbl (sans me dire de rentrer telle ou telle valeur, si je n’apprend rien c’est pas rigolo et surtout je ne saurai pas le refaire dans un cas différent).

    Au plaisir de vous lire très vite !
    Nicolas.

  6. Bonjour à tous, je viens d’acheter une cnc 3018 et je galère à la faire fonctionner. Déjà quand je lance GRBL et que je test en manuel mon z+ et mon z- sont inverses et je n’arrive Pas à le modifier. Quelqu’un aurait une idée svp?

  7. Bonjour,

    J’ai installé GRBL 1.1 sur une carte Mega 2560 et avec “Universal Gcode Sander” tout fonctionne bien après paramétrage en fonction des valeurs de mes moteurs et des transmissions. Un seul bémol, le compteur X,Y,Z reste à zéro malgré le déplacement normal des moteurs. Ceci en mode manuel ou en mode fichier.

    Qu’en pensez-vous? où est l’erreur?

  8. Bonjour

    Un léger problème m’a permi de vous connaître.

    Je viens de me procurer un ensemble cnc siency
    Tout semble fonctionner correctement
    Quelques essais se sont soldés positivement si on fait exception de trous dans le plateau
    Cette machine utilise de moteur nema17 avec le grbl.

    Je veux ajouter des interrupteurs de limites et la fonction ´´homé’´
    Je ne prévois pas de problème

    La fonction qui me cause problème est l’indicateur de position de l’ecran Grbl.

    J’ai changé le $10= 0,1 ou 2, rien n’y fait.
    L’indicateur indique toujours X=0 Y=0, Z=0.

    Existe t’il d’autres commandes pour activer cette utilitaire
    Une référence française ou anglaise serait utile s’il y a lieu.

    Merci à l’avance

    Jean St-Pierre

  9. Bonjour,
    J’ai acheté une graveuse laser chinoise (LaserAxe) dont je ne connais pas le code Arduino (firmware). Le fabricant ne veut pas le divulguer Comme elle ne possède pas de switches de fin de course, j’ai décidé de les installer sur les axes X et Y puis de paramétrer la carte avec le logiciel Arduino IDE pour faire fonctionner le Homing. J’ai donc paramétré les divers paramètres: $22, $21, $20, $23, $24, $25, $26, $27, $130, $131. Mes microswitches sont des NO. Le homing ne marche pas avec la commande $H. Avez-vous une idée. Je sais que lorque le homing est ON, l’Alarm est ON au démarrage. Mme si j’enlève l’Alarm avec $X le homing ne démarre pas.

    Merci

  10. Bonjour

    je suis actuellement en train de monté un petit graveur laser :

    Matériel utilisé:

    -arduino nano
    -shield V4 avec drivers A4988
    -Moteur de lecteur dvd

    Logiciel et micro logiciel :

    GRBL 0.9j dans l’arduino
    GRBL laser sur le Pc

    Lorsque je me connecte a l’arduino avec grbl laser tout et OK ( Grbl 1.1d [‘$’ for help]) et affiché.

    le problème et que lorsque je demande un déplacement d’axe en manuelle via le pc, je vois bien le code G qui s’affiche, le curseur de mouvement se déplace bien mais mon moteur ne bouge pas d’un poil.

    Mon moteur et je pense bien alimenté car je l’entend légèrement siffler et résister à la main.

    Auriez vous une solution à m’apporter?

    Merci beaucoup de votre éventuel aide.

    Cordialement.

  11. Bonjour,
    J’essai de bien paramètrer ma CNC mais j’ai toujours un décalage de cotes en mm.
    Ma configuration:
    -Arduino Uno
    -Shield + drivers A4988
    -3 Moteurs Nema17 régler en 1/16°
    -Tout les moteurs pas a pas sont en direct sur vis sans fin M8
    Ayant trouvé une app pour la configuration de tout ça j’ai une valeur de 2560 par moteur X,Y,Z.
    Mais j’ai tester de Graver un carré de 2cm x 2cm je me suis retrouver avec un carré hors norme…..
    J’ai donc jouer avec ces paramètres jusqu’a descendre environ 405.000 pour X et Y, 402 pour Z, mais les valeurs ne sont toujours pas bonne.
    Si je demande de creer un trou de 3mm de diamètre et 2mm de profondeur bah je me retrouve avec un diamètre de 4,5mm et 3mm de profondeur…..
    Pourriez vous m’éclairer la dessus?
    Cordialement.

    1. Bonjour Loic,

      Tout d’abord, je pense qu’il y a une confusion avec M8. M8 est un standard métrique de diamètre ET de pas. Une vis sans fin M8 fait 8 millimètres de diamètre, et 1,2 millimètres de pas; La valeur de 2560 est CORRECTE, pour ce pas. Mais si ça ne fonctionne pas, c’est que la tige filetée/vis trapézoïdale a un pas différent, que je ne peux pas deviner…..

      Puisque tu as trouvé des valeurs approchantes, le mieux est d’utiliser la bonne vieille règle de trois:
      ( 405 (valeur de réglage actuelle) / 4,5 (dimension actuelle) ) * 3 (objectif à atteindre) = 270. Ensuite, il faut essayer avec cette nouvelle valeur, et si nécessaire recommencer la même opération jusqu’à obtenir exactement les dimensions voulues. Même chose pour Z.

      Maintenant, ce ne serait pas plus mal de connaitre la valeur exacte du pas de ta vis trapézoïdale, qui me semble être en pouces, et pas en millimètres…

      J’espère que ça aide un peu.
      Cordialement.

      1. Merci pour tes explications, du coup ne sachant pas la cote de mes vis sans fin M8 j’en ai commander Normalisé M8 8mm x 2mm ce qui devrait mieux fonctionné.
        Une fois remplacé je te tiendrais au courant des cotes.
        Encore Merci.

        1. D’accord, donc ça donnerait 200 (pas par tour) / 2 (pas de la vs en mm) = 100 s’il n’y a pas du tout de micros pas. S’il y a un réglage de 1/16 ème de pas, ça devrait donner 1600 micros pas pour 1 millimètre. Deux observations:
          -1- Je ne mettrais pas 1/16 sur tous les axes. Juste sur Z, où on peut accepter d’être lent, et où on veut la précision maximum. Sur X et Y, 1/4 de pas devrait suffire.
          -2- Il faut considérer les valeurs obtenues par calcul comme des bases de départ, à affiner par étalonnage, avec une règle de trois.

          1. Bonjour et merci pour tes explications….
            Cela ne fait que 6 mois que j’essai de comprendre un peu tout et je dois dire tu explique bien les choses….et je n’oubli pas non plus les personnes comme moi(pas de questions bête mais celle auxquelles je me posais cette question 😉 ) qui me font comprendre aussi pas mal de choses.
            Les cotes sont bonne maintenant.
            Ah oui ma CNC 3040T-D
            -Moteur PAP remplacer par des Nema 23
            -Arduino Uno R3 Original
            -Shield Original
            -Cool Drv8825 Original

            J’ai installer des contacteurs de fin de course sur chaque axes ( a chaque extrémitées) je les ai raccordés sur le Shield ” end-stop “Y-Y+;X-X+;Y-Y+ ainsi que l’arrêt d’urgence.
            Mais le problème (j’ai suivi ton tuto) et sans que l’un des axes ne viennent en butée dedans j’ai une alarme aléatoire( Alarme:1 Reset to continu) qui foire tout et impossible de repartir meme en faisant un reset Shield.
            Jai désactiver ” $27=hard limit ” et tout fonctionne correctement…..(toutes le lignes de commandes OK)
            J’ai dut louper quelque chose mais quoi?????
            Les contacteur sont en NO chacun cabler séparément.
            “Hard Limit Activer” si j’appuis sur un des contacteur j’ai cette fameuse Alarme:1 qui bloque tout (fait moteur a vide) et pour remettre en route la machine j’appuie sur Reset sur le Shield mais cette alarme s’enclenche sans cesse….Obliger de tout débrancher (12V et 220V)
            Est-ce dut aux contacteurs?(tester avec un tester et fonctionne bien en appuyant…)
            Mauvais parametrage dans fichier Config.h?
            Merci dans l’attente de te relire.
            Cordialement.

    1. Bonjour djebli,

      J’imagine que tu veux parler des paramètres. Dans ce cas il s’agit des lignes $110, $111 et $112. Attention, il ne s’agit QUE de la vitesse maximum! La vitesse lors de l’exécution de GCode est normalement donnée par la commande S.
      Par exemple,la commande X150 Y150 Z10 S5000 enverra l’outl se positionner en X et Y 150, montera sur l’axe des Z de 10 (millimètres) à une vitesse de 5000 millimètres/minute.

      Est-ce que ça répond à ta question?
      N’hésites pas si tu en as d’autres!
      Cordialement,
      Bernard

      1. Merci de votre réponse Le Bear.

        Je possède un laser 500mw et mes déplacement son trop rapide pour couper une feuille de papier.
        Mon laser en puissance max M3 S1200 ligne de commande G01 x10 f0.05 et la
        sa fonctionne bien mes des qu’il s’agit d’un fichier Gcode complet sa plante.
        Si vous aviez une réponse.
        Merci d’avance

        1. Si le GCode généré n’a pas la vitesse spécifiée correctement; il faut l’éditer et ajouter S1200, si tu as constaté que c’est une bonne valeur. Maintenant, est-ce que ton GCode est bien spécifique pour laser? Ensuite, dans GRBL, il y a des paramètres spécifiques au laser, mais comme je n’ai pas encore mis mon nez dedans (le laser), je ne veux pas trop m’avancer.

          Codialement,

      1. Temps de réponse entre 2 mouvements? Désolé, mais je ne suis pas sûr de comprendre de quoi tu veux parler, exactement. Si tu veux augmenter la vitesse d’avance, ce sont les paramètres 110. 111 et 112.

        Pour être plus précis, il faudrait connaitre:
        -1- Quelle version de Grbl?
        -2- Quels drivers sont utilisés?
        -3- Comment ces drivers sont réglés?
        -4- Comment les moteurs Nema17 sont alimentés?

      2. Je viens de regarder un petit peu en ligne ce que je pouvais trouver sur ce traceur axidraw. Il semble qu’il soit normalement piloté directement par le PC au travers d’extensions au logiciel de dessin vectoriel Inkscape, d’où ma confusion.

        Est-ce que tu utilises GCode et un Arduino à la place?

        1. bonjour, je débute en programmation.
          donc voilà les infos:
          2 néma 17 A 2.5,1.25 ohms,3.1 V
          alimentation 12V 500 mA
          2 drivers A 4988 réglage 0.60V
          GRBL V0.9
          1 carte protoneer cnc shield V3
          1 arduino uno
          commande grbl universal gcode sender.
          encore merci pour la réponse,meme si ce n’est pas une fraiseuse,le principe et les réglages reste les memes.
          cordialement.

          1. OK, trés bien, mais je ne comprends toujours pas trés bien la question!
            Qu’est-ce que tu appelles “le temps de réponse entre deux mouvements ?”

            La vitesse d’avance?
            Un délai entre l’envoi de commandes et la réponse des moteurs?

            Il est difficile de t’aider sans comprendre précisemment ce dont tu veux parler.

  12. BONJOUR 28/01/17
    comment calculer les valeurs 100,101
    méma 17 poulies 16 dents courroie 2mm entre dents
    calcul 200 pas pour 360 deg,16*2=32,1pas entier=6,25 pour 1 mm grbl ne l’accepte pas.
    ce n’ai pas une fraiseuse mais un traceur (axidraw)
    cordialement.

  13. Bonsoir,

    Bravo pour votre travail qui doit en dépatouiller plus d’un !

    Justement je suivais le tuto au dessus, et pas de réaction de grbl quand j’envoie “$$” ou “$”, savez vous d’où cela peut provenir ?

    Merci

    1. Ha, pas forcémment évident de diagnostiquer à distance. Ca m’est arrivé, même lorsque tout va bien. La toute première chose à faire, après avoir vérifié que les paramètres du terminal série sont les bons (115200 bauds), est de redémarrer Grbl en appuyant sur le bouton reset de l’Arduino. Le terminal devrait afficher “Grbl 1.1d ['$' for help]

      Si cela ne fonctionne pas, c’est un problème de communication (admettant que Grbl à été correctement installé). Voir coté terminal série, il existe plein d’excellents utilitaires, et être sûr que ce sont bien les paramètres par défaut qui sont utilisés (8, N, 1, c’est à dire 8 bits, NO parity bit, et 1 stop bit)

      Tant que cette réponse de Grbl n’est pas obtenue, pas la peine d’aller plus loin.

      Une fois cette réponse obtenue, si $ où $$ n’obtiennent pas de réponse, il y a des chances que là encore ce soit liè au soft de terminal série. Celui de l’IDE Arduino n’est pas toujours coopératif, mais j’avoue ne pas avoir beaucoup d’expérience avec, utilisant Visual Micro depuis Visual Studio constamment.

  14. Bonjour Bearnard,

    merci pour les explications.
    Apparemment pas de méthode bien définie mais juste à ajuster à chaque machine si j’ai bien compris.

    Tant que j’y suis, comment calculer la tension qu’il faut envoyer à chaque moteur (réglage sur pololu) ?

    1. le réglage des drivers Pololu (il y a plusieurs drivers du même type et de la même marque, avec des références différentes) nécessite plus d’explications que je ne peux en fournir dans un simple commentaire. Je ferais un article assez complet à ce sujet. Juste un peu de patience…

    1. Bonsoir Yannick,

      Bonne question, à laquelle je ne suis pas sûr qu’il y ait de bonne réponse! La théorie veut qu’en augmentant les micros pas, on augmente la précision, mais on ne peut bien évidemment pas aller au-delà de la précision de l’ensemble de la chaîne mécanique. D’autre part, l’augmentation des micros pas diminue le couple du moteur. Il faut aussi prendre en compte la vitesse d’avance en déplacement rapide. Trop de micros steps, et on dépasse la fréquence maximale à laquelle les impulsions peuvent être envoyées aux moteurs.

      Si on prend comme exemple ton axe des Z, sans micros pas, il faut déjà 100 pas pour 1 millimètre. Autrement dit, 1 pas = 1/100ème de millimètre. Si la précision de ton ensemble mécanique est de (juste pour l’exemple) 1/10ème, ça ne servirait vraiment à rien du tout de mettre des micros pas. Par contre, si tu atteins une précision de 1/1000ème, oui, 8 serait une assez bonne valeur.

      Le mieux est de tester avec des valeurs raisonnables et d’ajuster petit à petit selon de que tu fais. On cherche généralement une plus grande finesse sur l’axe des Z que sur X et Y.

  15. Bonjour l’ours
    Je suis assez admiratif de ton travail après avoir regardées pas mal de tes vidéos sur youtube.
    J’ai pour projet de construire ma cnc de 1000x1000xen700 (un peu moins pour l’usinage) et mon métier premier est la CAO dans le bois et dérivés. Je ne suis pas très au courant des différent type de langage de prog et donc j’aurai voulu savoir s’il me serai possible de modéliser une pièce en 3D puis de l’envoyer vers la cnc sans trop passer par les lignes de programmation?

    1. Bonjour Kevin,
      content de savoir que mes vidéos sont utiles!
      Je n’ai pas encore écrit d’article à ce sujet sur le site, mais sur mes vidéos concernant Fusion360, tu as sans doute pu voir qu’on passe directement de la conception à la génération du G-Code. Ensuite tu envoies ce G-Code vers ta machine CNC. Il n’est pas nécessaire de connaître le G-Code, même s’il est utile d’avoir des notions de base.
      L’autre solution, ce sont des programmes “tout en un”, où tu vas concevoir ET directement piloter la machine, mais je pense que c’est une “fausse bonne solution”, parce que tu deviens prisonnier des choix du concepteur du logiciel, notamment en matière d’électronique pour piloter la machine. Le plus souvent, ces solutions passent aussi par un port parallèle, qui n’existe plus depuis belle lurette sur nos PC et Portables.
      Le G-Code donne une grande souplesse en permettant de concevoir sur une machine, dans le confort d’un bureau, et d’utiliser un Arduino, par exemple, où une autre machine, à l’atelier, pour faire effectivement le travail.

      Au risque de me répéter, la connaissance du G-Code n’est pas du tout une obligation. Tu peux très bien t’y mettre sans le connaître du tout, et tu “apprivoisera” au fur et à mesure.

      Surtout, n’hésites pas si tu as d’autres questions.

      Bien Cordialement,
      Bernard

  16. Bonjour,

    oui c’est un peu plus clair par contre je n’avais pas pris en compte les micro pas.
    le nombre de pas pour mes moteurs et de 200 pas, entraînement par poulies 20 dents, courroie 3mm.
    Pour mon Z, vis tapézoïdale de 8, pitch de 2

    merci d’avance

    1. Il suffit d’entrez les chiffres dans le calculateur situé juste au-dessus des commentaires:
      nb de pas par tour du moteur: 200
      distance par tour : 60 (20×3)
      Sans micro steps on obtient 3.3333 Avec 8 micro steps (par exemple), on obtient 26.66.

      Pour la vis avec un pitch (pas) de 2 (en assumant que ce soit bien des millimètres), on obtient (sans micro steps) 100 pas/mm, soit 1/2 tour. Avec 8 micro steps, on obtient 800.

      Voilà, j’espère que ça t’aide.
      Cordialement,
      Bernard

        1. Bonjour Rémi,

          Tous les moteurs pas à pas sont susceptibles d’être commandés en “micro-pas”, plutôt qu’en pas complet. C’est la “manière” d’envoyer les impulsions électriques au moteur qui va permettre de “simuler” ces micros pas. Pour plus d’explications techniques, cet article est très bien fait.

          Sur le plan pratique, c’est au niveau de la carte “shield” de l’Arduino qu’il nous faut définir si on utilise des micros pas, et quelle valeur. Le “CNC Shield” de Protoneer utilise des cavaliers pour déterminer si on utilise des micros pas, de 1 à 16.

          Comme indiqué dans l’article, il faut tenir compte de cette multiplication du nombre de pas nécessaires pour faire 360° pour indiquer la bonne valeur dans les paramètres de GRBL.

          J’espère que cela répond à la question.
          Cordialement,

          1. Bonjour,

            merci pour cette réponse claire.
            Je pense être proche du bon réglage maintenant.
            J’arrive à sortir les fichiers exemple de gcode sender.
            il ne me reste plus qu’a comprendre comment sortir un gcode correct de inkscape….
            Malgrès tout les tuto que j’ai pu suivre le fichier gcode produit est mal interprété par universal gcode sender j’ai toujours des erreurs un peut partout.

            Pourtant sur le papier ca à l’air simple lol
            Vectorisé l’objet, supprimer le calque d’origine, enregistrer en gcod via l’extension.

            Skipping command #0
            Skipping command #1
            Skipping command #12
            Skipping command #63
            Skipping command #83
            Skipping command #98
            Skipping command #109
            Skipping command #127
            Skipping command #141
            Skipping command #154
            Skipping command #171
            Skipping command #241
            Skipping command #257
            Skipping command #270
            Skipping command #285
            Skipping command #302
            Skipping command #317
            Skipping command #330
            >>> G21
            >>> G90
            >>> G92X0.00Y0.00Z0.00
            >>> 0S30
            >>> G4P150
            >>> 0S50
            ok
            ok
            >>> G4P150
            >>> M18
            >>> M01
            >>> M17
            >>> G1X-45.72Y35.09F3500.00
            >>> 0S30.00
            ok
            >>> G4P150
            error: Expected command letter
            >>> G1X-46.59Y35.90F3500.00
            >>> G1X-46.72Y36.20F3500.00

            toute aide est bienvenue

            Rémi

          2. Bonjour Rémi,

            Je ne sais pas pourquoi je ne vois ce message que maintenant!
            Je suis assez familier avec Inkscape, mais pas du tout avec la génération de GCode directement à partir de celui-ci. Si je ne me trompes pas, il s’agit d’un plugin? Il a peut-être eu des mises à jour.
            Autrement, j’utilise avec bonheur Fusion 360. Cette vidéo explique comment obtenir la licence gratuite: https://youtu.be/6TYZ1n6AQq4
            Il est très facile d’importer un fichier SVG, créé avec Inkscape, de le retravailler si nécessaire comme on veut, puis de générer le GCode compatible avec GRBL.

    1. Bonjour Yannick, je vais tacher de faire de mon mieux: la valeur attendue pour ces paramètres est le nombre de pas (du moteur pas à pas) nécessaire pour avancer de 1 millimètres Admettons un moteur pas à pas donné pour 200 pas par tour (valeur très courante). Admettons une visse sans fin dont le pas (de vis. Le Français est embêtant ici parce qu’il utilise le même mot pour 2 choses très différentes) est de 5 millimètres (Là aussi, valeur assez courante). Puisque le moteur a besoin de 200 pas pour faire un tour, donc 5 mm avec cette visse sans fin, il est facile de voir que le nombre de pas par millimètre = 200 / 5, soit 40.
      Si maintenant on utilise des micros pas, en réglant les drivers sur 8, par exemple, il va falloir 200 x 8 = 1600 pas pour un tour, et donc 320 pas pour un millimètre.
      Le pas de vis est le nombre de millimètres d’avance sur un tour.
      Si au lieu d’une visse on a une courroie crantée, où une chaîne, pour obtenir l’avance il faut multiplier l’écartement entre les crans (ou maillons) avec le nombre de dents de la poulie, pour obtenir l’avance sur 360°.

      Si tu me donnais les valeurs correctes pour tes moteurs et ton moyen de transmission du mouvement, je pourrais te montrer le calcul à partir de tes valeurs.

      Est-ce que c’est un peu plus clair? Surtout n’hésites pas si tu as d’autres questions.

Répondre à kevin Annuler la réponse

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Retour en haut