Grbl et l'ide Arduino

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:

Bonsoir,
@LE TARTARE
Dans la version Grbl82Mega2560 - fichier config.h ne devrait-on pas commenter la ligne 50 ?

Bonsoir,
pour quelle raison ?

Re,

LETARTARE:
Bonsoir,
pour quelle raison ?

On utilise la même pin ligne 81

Bonjour,
@infobarquee
je viens de publier une version 0.83 qui prend en compte dans le fichier "config.h" le niveau actif voulu par l'utilisateur pour les sorties 6, 36, 37, 35

je l'ai testé sous Vista Pro pack2 en utilisant des relais actifs niveau 0 pour :

  • Spindle Enable (br6) avec M3, M4, M5,
  • Spindle Direction (br36) avec M3, M4,
  • Coolant Flood (br37) avec M8, M9,
  • Coolant Mist (br35) avec M7, M9

toutes ces sorties fonctionnent correctement et lors d'une RAZ sont toutes inactives.
Pouvez la tester ?

Bien cordialement.

@icare
la ligne "config.h:50"

// STEPPERS_DISABLE_INVERT: Set to 0 for active high stepper disable or 1
// for active low stepper disable.
#define STEPPERS_DISABLE_INVERT 0

ne sert pas pour adresser un bit d'un port, c'est une valeur utilisée comme masque sur une assignation de bit dans le fichier "stepper.c:90,95".
Si vous la commentez vous ne pourrez plus choisir le niveau actif associé à la commande des axes !!

Bonne nuit.