Problème de endstop avec Arduino CNC Shield V3 / TB6600

S

Sobschack

Nouveau
Salut tout le monde,

Ma fraiseuse CNC qui tourne actuellement sous Mach3 avec une carte Geckodrive G240, commence à montrer des signes de faiblesse. J'ai des pertes de signaux et de temps en temps des crashs de l'electronique (hard reboot obligatoire).
Au vu du prix de cette carte, je ne veux pas la changer mais passer sur Arduino/GRBL 1.1 avec Candle sur Raspberry comme soft de pilotage. Comme je commence à avoir pas mal de machines (fraiseuse CNC, laser Co2, Plasma CNC, Imprimante 3D maison), ca serait aussi l'occasion d'uniformiser mes électroniques et surtout mes softs plus tard.

J'ai commencé à assembler, pour le moment sur bureau, une armoire CNC avec une alim 12v/6A, un Arduino Uno, un CNC Shield V3 et 3 drivers TB6600.
J'ai branché mes endstops en NO pour le moment (jai lu que c'etait une base plus simple).
Je n'ai pas spécialement rencontré de souci niveau branchement, tout est assez bien documenté. Niveau moteurs tout fonctionne, je lance des gcodes dans le vide et je n'ai aucun problème. Les commandes de broche, de pompe et l'arret d'urgence fonctionne.
Mes tests sont fait sur CNCjs et/ou UGCS sous Windows 10 pour m'eviter la surcouche d'emmerdes Raspi pour le moment.

Voila mes paramètres GRBL :

$0 = 10 (Step pulse time, microseconds)
$1 = 255 (Step idle delay, milliseconds)
$2 = 0 (Step pulse invert, mask)
$3 = 0 (Step direction invert, mask)
$4 = 0 (Invert step enable pin, boolean)
$5 = 0 (Invert limit pins, boolean)
$6 = 0 (Invert probe pin, boolean)
$10 = 1 (Status report options, mask)
$11 = 0.010 (Junction deviation, millimeters)
$12 = 0.002 (Arc tolerance, millimeters)
$13 = 0 (Report in inches, boolean)
$20 = 0 (Soft limits enable, boolean)
$21 = 1(Hard limits enable, boolean)
$22 = 1 (Homing cycle enable, boolean)
$23 = 0 (Homing direction invert, mask)
$24 = 25.000 (Homing locate feed rate, mm/min)
$25 = 500.000 (Homing search seek rate, mm/min)
$26 = 250 (Homing switch debounce delay, milliseconds)
$27 = 1.000 (Homing switch pull-off distance, millimeters)
$30 = 1000 (Maximum spindle speed, RPM)
$31 = 0 (Minimum spindle speed, RPM)
$32 = 0 (Laser-mode enable, boolean)
$100 = 160.000 (X-axis travel resolution, step/mm)
$101 = 160.000 (Y-axis travel resolution, step/mm)
$102 = 160.000 (Z-axis travel resolution, step/mm)
$110 = 2000.000 (X-axis maximum rate, mm/min)
$111 = 2000.000 (Y-axis maximum rate, mm/min)
$112 = 2000.000 (Z-axis maximum rate, mm/min)
$120 = 75.000 (X-axis acceleration, mm/sec^2)
$121 = 75.000 (Y-axis acceleration, mm/sec^2)
$122 = 75.000 (Z-axis acceleration, mm/sec^2)
$130 = 400.000 (X-axis maximum travel, millimeters)
$131 = 600.000 (Y-axis maximum travel, millimeters)
$132 = 200.000 (Z-axis maximum travel, millimeters)

Par contre... Niveau endstop ca à l'air d'etre un sacré bordel ! Comme je disais, pour le moment j'ai branché juste 3 endstops sur Y-, X- et Z- sans resistance externe (la doc GRBL dit que la resistance interne de l'Arduino est utilisée dans le code)

Quand je fais un "?" sans actions sur les endstop j'ai :
<Idle|MPos:100.000,0.000,0.000|FS:0,0>

Quand je contact le endstop X j'ai :
<Idle|MPos:100.000,0.000,0.000|FS:0,0|Pn:X|Ov:100,100,100>

Quand je contact le endstop Y j'ai :
<Idle|MPos:100.000,0.000,0.000|FS:0,0|Pn:Y>

Quand je contact le endstop Z j'ai :
<Idle|MPos:100.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000> (donc pas de trace de ce contact et wtf pour WCO ???)

Bien entendu, le homing ne fonctionne pas.
J'ai testé avec plusieurs Arduino Uno, plusieurs CNC Shied, ca ne fonctionne jamais et de plus les retours de la commande "?" semble erratique en fonction du materiel.

Est ce que quelqu'un a une piste pour m'aider ? J'ai l'impression que les contacts sont en l'air, est ce qu'ont doit mettre une resistance de pull-down ? Configurer les endstop et GRBL en NC, avec une resistance de pull-up ?

Merci de tout aide
Vincent
ps : avec le firmware custom GRBL pour Arduino spécial laser, tout fonctionne, y compris le Homing en Z et Y (mais évidemment, l'axe Z n'est pas pris en compte ce qui n'est pasviable dans mon cas)
 
Dernière édition:
P

pascalp

Compagnon
Commence par essayer avec 1 seul contacteur branché.

Je ne suis pas sur d'avoir tout compris, mais si le "firmware custom GRBL pour Arduino spécial laser" fonctionne sur ta config matériel. Copie le paramétrage et compare avec celui que tu a listé.

Un des défauts que je trouve à ta config, c'est la limitation 12v du cnc shield, du 24v disponible sur la carte est souvent utile.
Même en restant sur du 8bit et du 328p, les cartes un peu plus évoluées et abordables existent.

Vu que tu vas utiliser Candle sur raspberry, il serait logique de l'utiliser aussi sur le PC pour tes tests.
 
S

Sobschack

Nouveau
Commence par essayer avec 1 seul contacteur branché.

Je ne suis pas sur d'avoir tout compris, mais si le "firmware custom GRBL pour Arduino spécial laser" fonctionne sur ta config matériel. Copie le paramétrage et compare avec celui que tu a listé.

Un des défauts que je trouve à ta config, c'est la limitation 12v du cnc shield, du 24v disponible sur la carte est souvent utile.
Même en restant sur du 8bit et du 328p, les cartes un peu plus évoluées et abordables existent.

Vu que tu vas utiliser Candle sur raspberry, il serait logique de l'utiliser aussi sur le PC pour tes tests.
Merci de ta réponse.

J'ai testé avec un seul switch, ca ne change pas grand chose. De plus comme les comportements des 3 est différents c'est complexe.

C'est aussi ce qu'il y a d'etranges, même config GRBL, même wiring > Homing XY pas de souci avec le firmware custom laser, je flash l'Arduino pour mettre le firmware GRBL 1.1 classique > tous les endstops déconnent.

Je viens de tester en 24V > Pas de changements.

Je test aussi avec Candle sous Windows mais j'ai les mêmes résultats. C'est juste que je n'aime pas trop la console GRBL de Candle pour la mise au point.
 
S

Sobschack

Nouveau
J'ai un peu avancé, j'ai trouvé ça dans le config.h de GRBL 1.1h :

Désactivé ca ne fonctionne toujours pas.
Par contre j'ai viré le CNC Shield et fait un branchement en direct sur l'Arduino, en branchant la broche de signal du Endstop sur la D12 de l'Arduino et tout rentre dans l'odre !

Je suis en train d'essayer de voir si je trouve le fichier Gerber des CNC Shield V3 pour voir si il y a une possibilité de le rendre compatible avec GRBL 1.1h.

La suite au prochain numero.
 
P

pascalp

Compagnon
J'allais te demander quelle version exacte de grbl, mais tu as répondu 1.1h.

Un peu de lecture sur la problématique des switchs avec un paragraphe dédié au z switch, arduino et grbl >0.9. Tu devrais trouver de quoi avancer.
limit-switches-types-and-wiring
 
S

Sobschack

Nouveau
Super lien merci, c'est donc bien ce que j'aavais trouvé.
Par contre eux disent qu'en commentant la ligne ca devrait résoudre le problème. J'ai peut-être foiré mon flashage. Je me paume un peu a force.

J'essaierai de nouveau un peu plus tard, sur mon laser et mon plotter ca serait bien plus pratique que je puisse utiliser un CNC Shield.

Merci de ton aide.
 
P

pascalp

Compagnon
1) Toujours faire une copie de son paramétrage, voir en faire un historique. Des fichiers .txt ou .nc pour faciliter la relecture directe par le soft
2) Après une compile ou flashage, faire un reset "usine" avec les paramètres du nouveau grbl ( $RST=$ ). Cela permet de s'assurer que tout est cohérent avec ce qui vient d'être implanté. En contre-partie il faut refaire la customisation pour sa configuration. Ré-injecter le fichier de conf sauvegardé est une solution rapide, passer en revue ligne à ligne permet de voir et comprendre ce qui a bougé.

NB: Tu risques d'avoir des soucis avec le homing si tu veux utiliser le même arduino/shield entre CNC et Laser. La cnc va demander un home ($H) complet Z, X, Y alors que le laser n'a besoin que de X et Y (surtout pas d'une recherche sur le Z qui est inexistant). Le paramètrage accessible à chaud ne permet pas de jongler à ce niveau.
Il semblerait qu'il y ait une solution prévue lors de la compilation pour jongler entre 2 et 3 axes. Regarde dans le config.h le commentaire avec "// #define HOMING_SINGLE_AXIS_COMMANDS // Default disabled. Uncomment to enable."
 
Dernière édition:

Sujets similaires

U
Réponses
85
Affichages
7 973
Hubert86
H
F
Réponses
14
Affichages
3 373
franckapik
F
01power
Réponses
3
Affichages
14 390
01power
01power
J
Réponses
1
Affichages
1 713
pro-ms
P
D
Réponses
9
Affichages
3 312
David80
D
taratata
Réponses
4
Affichages
4 597
taratata
taratata
lamidetlm
Réponses
2
Affichages
3 478
lamidetlm
lamidetlm
web34
Réponses
11
Affichages
13 303
web34
web34
Haut