Grbl et l'ide Arduino

@infobarquee
je vois que vous utiliser Linux ? (ttyACM0) ainsi que Arduino-154.
Je suis mal à l'aise car incompétent en dehors de ce que j'ai présenté.

Toutefois, il me semble que vous l'avez bien téléversé dans la carte MEGA2560, donc le port série de la carte fonctionne,
1- il ne faut pas mettre plusieurs librairies de mon site simultanément dans le répertoire "libraries" car alors Arduino ne prend en compte que la 1ère compilée au niveau des *.h :fearful:
2- essayer de diminuer la vitesse dans le fichier "config.h", ( je ne pouvais pas utiliser 115200 bauds sur mon système)
Ce sont les seules pistes que j'entrevois :blush:

Bien cordialement.

LETARTARE:
@infobarquee
je vois que vous utiliser Linux ? (ttyACM0) ainsi que Arduino-154.
Je suis mal à l'aise car incompétent en dehors de ce que j'ai présenté.

Toutefois, il me semble que vous l'avez bien téléversé dans la carte MEGA2560, donc le port série de la carte fonctionne,
1- il ne faut pas mettre plusieurs librairies de mon site simultanément dans le répertoire "libraries" car alors Arduino ne prend en compte que la 1ère compilée au niveau des *.h :fearful:
2- essayer de diminuer la vitesse dans le fichier "config.h", ( je ne pouvais pas utiliser 115200 bauds sur mon système)
Ce sont les seules pistes que j'entrevois :blush:

Bien cordialement.

:wink: bien vu le coup des 2 lib en même temps, franchement j'y aurai jamais pensé
la 82 fonctionne
la 9b bug
reste a monter la ramps pour tester et demain la carte 4 axes que je vais recevoir.
a ce sujet, est il possible d'avoir 4 axes?

Bonjour Infobarquee,

infobarquee:
a ce sujet, est il possible d'avoir 4 axes?

Bien sur que GRBL traite les 4 axes (X, Y, Z, A)
Je crois qu'il existe même une version 5 axes ! A vérifier

icare:
Bonjour Infobarquee,

infobarquee:
a ce sujet, est il possible d'avoir 4 axes?

Bien sur que GRBL traite les 4 axes (X, Y, Z, A)
Je crois qu'il existe même une version 5 axes ! A vérifier

je parlais de cette version de grbl :wink: mon bon Icare, héhéhé
car je vois en tapant $ juste xyz, mais pas A
A moins qu'il existe une autre version grbl sur mega avec 4 axes + pompe ou laser ou drill

Bonjour,
@icare
je ne serais pas aussi affirmatif : la 8c et la 9d ne comportent que trois axes avec Uno (versions officielles), voir 0.8c dans "pins_map.h" et 9d dans "cpu_map.h" GitHub - grbl/grbl: An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino

@infobarquee
la GRBL-0.82 ( très ancienne version modifiée par ???) sur mon site possède 4 axes X,Y,Z,C qui fonctionnent tous en manuel avec GbrlHoming-3..5.1 , je n'ai pas pu vérifier un fichier en 4 axes, mais cette version demande sûrement encore des mises au point pour ce quatrième axe.

Bien cordialement.

ok, d'ou la confusion
je viens de voir le C $3 steps/deg
pfffff vais aller me coucher avec un grogg si ca continue moi :%
je testerai demain les 4 axes et donnerai le retour :wink:
merci, tu maitrise ton sujet en tous cas LETARTARE, bienvenue chez le petit groupe des fous :grin:

Bonjour,
@LETARTARE

LETARTARE:
@icare
je ne serais pas aussi affirmatif : la 8c et la 9d ne comportent que trois axes avec Uno (versions officielles), voir 0.8c dans "pins_map.h" et 9d dans "cpu_map.h" GitHub - grbl/grbl: An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino

C'est vrai et faux.
De base, on a X, Y, Z et Spin
Il suffit d'utiliser SpinDir et SpinEnable pour commander le 4 ème axe et on travaille à vitesse constante manuelle.
Cette solution est utilisée par certains shields du marché + un peu de bidouille dans le soft.
Pour mémoire: dans le monde de la CNC, on appelle le 4ème axe A et le 5ème axe C

bon voila ce qu'il y a comme interprétation pour les axes en officiel
X position absolue
Y position absolue
Z position absolue
A position (rotation autour de l'axe X)
B position (rotation autour de l'axe Y)
C position (rotation autour de l'axe Z)
U position Relative OU axe secondaire
V position Relative OU axe secondaire
W position Relative OU axe secondaire

donc tout dépend de l'axe que l'on veut utiliser en fait.

Bonsoir,
c'est tout à fait ça.
Aussi dans Grbl-0.82, j'envisage de changer C -> A ( pour un 4ème axe autour de l'axe X ) ce qui risque d'être plus utile que l'axe C.
Mais il faut faire des tests de coordination avec X, Y, Z.
Bonne soirée.

Re,

infobarquee:
bon voila ce qu'il y a comme interprétation pour les axes en officiel
X position absolue
Y position absolue
Z position absolue
A position (rotation autour de l'axe X)
B position (rotation autour de l'axe Y)
C position (rotation autour de l'axe Z)
U position Relative OU axe secondaire
V position Relative OU axe secondaire
W position Relative OU axe secondaire

donc tout dépend de l'axe que l'on veut utiliser en fait.

Exact.
On utilise également des copies d'axes pour avoir un actionneur double.

je viens de m'apercevoir que SPINDLE est toujours en HIGH.
donc le M03-M05 ne fonctionnent pas.
je vais fouiller dans les fichiers pour trouver pourquoi :slight_smile:

Bonjour,
sur la version Win et avec Grbl-0.82 sur MEGA2560, les deux ordres M03 et M05 fonctionnent bien : marche et arrêt sur la broche 6.
De plus si vous modifier la variable en "$12=1" vous avez une sortie en b6 (PWM) à 1 kHz avec un rapport cyclique de 1000/307 pour la valeur par défaut , la commande "S 700" va donner un rapport cyclique de 1000/700.
Bien cordialement.

LETARTARE:
Bonjour,
sur la version Win et avec Grbl-0.82 sur MEGA2560, les deux ordres M03 et M05 fonctionnent bien : marche et arrêt sur la broche 6.
De plus si vous modifier la variable en "$12=1" vous avez une sortie en b6 (PWM) à 1 kHz avec un rapport cyclique de 1000/307 pour la valeur par défaut , la commande "S 700" va donner un rapport cyclique de 1000/700.
Bien cordialement.

étrange car chez moi, le M03 est actif par défaut au boot, donc spindle et pour le mettre sur off c'est M04.
aussi bien sous linux que windows, de toute manière ca ne change rien suivant l'OS.

Bonjour,
voir Les M-codes
A bientôt

LETARTARE:
Bonjour,
voir Les M-codes
A bientôt

je connais les commandes, merci :wink:
pour montrer ce que j'avance voici les photos

1 allumage du mega
2 M05
3 M04
4 M03

Re,

infobarquee:
pour montrer ce que j'avance voici les photos
1 allumage du mega
2 M05
3 M04
4 M03

Coinces-tu toujours sur l'allumage et l'extinction de la diode ?
Pour les photos, j'ai l'impression que l'on a 3 fois la même photo :slight_smile:

@infobarquee
je n'en doutais pas un instant, une simple précision.
Mais c'est effectivement curieux que le M03 soit actif au démarrage.

@icare
oui toujours et j'avoue que ca m'agace un peu, mais tétu le breton, donc j'insiste :slight_smile:
je me suis bien calé pour les prendre :wink:
je mets en plus la photo des commandes qui va bien avec les photos

@LETARTARE
pourtant c'est bien ce qu'il se passe.
j'éteins le relay via M04 (étrange), je reboot la mega et le relay se connecte de suite, donc pour moi, cela vient bien du prog.
vu que la 82mega est la seule qui prenne en compte 4 moteurs, c'est celle que je veux utiliser.

j'ai re re re revérifié mon cable et mes connectiques des fois que, ca arrive de faire une bourde, mais tout est ok et aucun faux contact détecté au multimètre entre les pinoches, ce qui peut arriver aussi

Infobarquee : comme discuté j'ai testé et ça fonctionne. GRBL considère que pour le relay 0 = éteint et 1 = allumé, hors sur ces drivers, c'est actif à l'état bas. J'ai fait ces modifs dans spindle_control.cpp :

void spindle_stop()
{
  SPINDLE_ENABLE_PORT |= ~(0<<SPINDLE_ENABLE_BIT);
}

void spindle_run(int8_t direction) //, uint16_t rpm) 
{
  if (direction != current_direction) {
    plan_synchronize();
    if (direction) {
      if(direction > 0) {
        SPINDLE_DIRECTION_PORT &= ~(1<<SPINDLE_DIRECTION_BIT);
      } else {
        SPINDLE_DIRECTION_PORT |= 1<<SPINDLE_DIRECTION_BIT;
      }
      SPINDLE_ENABLE_PORT &= 0<<SPINDLE_ENABLE_BIT;
    } else {
      spindle_stop();     
    }
    current_direction = direction;
  }
}

La logique inversée est prévu sur les pins attachés au moteurs, mais pas pour la broche. Avec ces modifs le fonctionnement redevient normal chez moi

je viens de faire la modif et aucun changement.
:fearful: