Laser ne s'allume pas via gcode

Électricité, électronique
smillier
Messages : 10
Enregistré le : 06 avr. 2020 11:41

Laser ne s'allume pas via gcode

Message par smillier »

Bonjour,
J’ai un petit souci avec mon laser (celui-ci https://fr.aliexpress.com/item/32912507 ... 61-_s8xpVm) il ne s’allume jamais avec un gcode, par contre il s’allume plein pot lorsque je débranche le ground. Mon gcode est fait avec LaserGrbl.
J’ai vérifié si le PWM était bien envoyé avec un analyseur logique, j’ai bien les « pulses ». Pour les branchements, j'ai double checké, ça me semble correct, 12V sur le laser, PWM sur PWM Splindle de la carte grbl, et ground commun entre la carte et l'alim du laser.
J'ai flashé les dernières versions de grbl et firmware TFT, et je cherche donc des idées.
Avatar du membre
RoMaker
Administrateur du site
Messages : 5063
Enregistré le : 02 janv. 2017 20:24
Localisation : Montpellier
Contact :

Re: Laser ne s'allume pas via gcode

Message par RoMaker »

Salut,
Regarde ce topic si ça peut t'aider https://www.makerfr.com/forum/viewtopic.php?f=47&t=7094
Quand tu lances le job, tu vois le laser s'allumer ou pas du tout ?
smillier
Messages : 10
Enregistré le : 06 avr. 2020 11:41

Re: Laser ne s'allume pas via gcode

Message par smillier »

Je vais regarder le topic en détails, mais non, je ne le vois jamais s'allumer. A voir si je dois activer ou non le invert spindle pwm dans le firmware, je pourrai tester même si à priori je n'ai aucune raison logique d'inverser le signal si c'est censé fonctionner par défaut dans le dernier firmware.
J'ai même testé en inversant les codes gcodes pour laser on / off dans lasergrbl, mais ça n'a aucun impact, j'ai aussi testé la continuité de mes cables pwm/gnd pour être sûr que le signal aille bien de bout en bout.
Au pire je vais faire un bout de code pour tester le pwm via un esp8266, on verra bien si à un moment ça s'allume ou pas.
smillier
Messages : 10
Enregistré le : 06 avr. 2020 11:41

Re: Laser ne s'allume pas via gcode

Message par smillier »

J'ai pu confirmer que mon laser fonctionnait parfaitement et la puissance varie bien lorsque je varie le pwm depuis un esp8266.
Par contre j'ai l'impression que les duty cycles du PWM sortant de la carte grbl sont bien trop faibles, d'après ce que je vois à l'analyseur logique, j'arriverais au max à 1.2V alors que l'image d'origine est en noir et blanc, donc je devrais logiquement avoir une tension proche des 5V.
Juste pour être sûr, peut-on me confirmer les valeurs pour $32, $31 dans grbl lorsqu'on utilise le PWM ?
De même, on bien d'accord que les valeurs dans LaserGRBL sont Laser On: M4, Laser Off: M5, S=0 à 255 ?
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Laser ne s'allume pas via gcode

Message par mstrens »

Les problèmes pourraient peut-être venir des niveaux de tension disponibles sur la pin PWM en sortie du shield.

Le signal PWM est en fait la sortie à collecteur ouvert d'un transistor darlignton (uln2803) lequel se comporte un peu comme un interrupteur.

Cela signifie que :
- quand le transistor est bloquant, le courant ne le traverse pas. Si le laser a un vrai circuit TTL sur l'entrée PWM, le fait que le courant ne puisse pas passer est interprété comme un niveau haut (et don laser ON). De plus, dans ce cas, le circuit TTL du PWM "force" un voltage élevé (plus de 2.5V sur le PWM). Toutefois, si le laser n'a pas un vrai circuit TTL en entrée et s'il ne "force" un courant sur le signal, la tension va rester faible (de l'ordre de 1V). Il faut alors ajouter une résistance (dite de rappel) entre la sortie PWM et le +5V. Cette résistance va forcer un courant vers le transistor (= interrupteur ouvert) et la tension sera alors de 5V sur la pin PWM. Pour savoir si le laser a une vraie entrée TTL, tu peux mesurer le voltage entre Gnd et la pin PWM du laser quand le laser n'est pas branché au shield. Si la tension est supérieure à 2.5V (et le rayon laser ON) le laser a probablement une vraie entrée TTL et l'ajout d'une résistance (par exemple 1k Ohm) entre PWM et +5V n'est pas nécessaire.
- quand le transistor est passant, le courant le traverse. Toutefois comme il est composé de 2 transistors et que le courant doit traverser ces 2 transistors, la tension entre PWM et Gnd n'est pas nulle mais est de l'ordre de 1 à 1.2V. Si c'est un vrai TTL en entrée, il est possible que ce voltage soit trop élevé pour être reconnu comme niveau bas. Je pense que pour le TTL, le niveau bas ne doit pas dépasser 0.8V en théorie. Il faudrait alors ajouter un petit montage pour disposer d'un voltage plus faible en PWM
smillier
Messages : 10
Enregistré le : 06 avr. 2020 11:41

Re: Laser ne s'allume pas via gcode

Message par smillier »

Je vois ce que tu veux dire, et je te rejoins sur cette analyse.La tension n'est certainement pas la bonne pour que le laser s'allume.
Tu penses qu'il faudrait faire en quelques sorte un pullup entre le +5V et le PWM ?
Sur mon esp8266 de test, j'ai fais varier le pwm pour que la tension soit entre environ 1V et 3V, et on voit bien que le laser s'allume et la puissance varie.
Si je met du +5V sur le PWM du laser, il s'allume à pleine puissance.
Le comportement semble logique.
Est-ce que le paramètre "Invert_Spindle_PWM" du firmware a un impact ?
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Laser ne s'allume pas via gcode

Message par mstrens »

Le paramètre invert joue un rôle en ce sens qu'il inverse dans le programme GRBL les niveaux haut et bas.
En temps normal, le signal PWM en sortie du micro STM32 (donc pas la pin PWM du shield qui est elle connectée à la sortie du ULN2803) est à 0 pour OFF et à 1 pour ON; Si invert est activé, c'est l'inverse (1 = OFF, 0 = ON).

Entre la sortie du micro STM32 et la pin PWM du shield il y a le ULN2803.
Sans activer l'inversion, 0 sur le STM32 laisse les transistors de ULN2803 bloquant et donc si l'entrée du laser est un vrai TTL, il ne laisse pas passer le courant.
Dans ce cas, il ne faut donc pas inverser le signal pour avoir un fonctionnement normal.

Si le laser n'est pas un vrai TTL, il réagit peut être à un niveau de tension (et non au courant). Dans ce cas, il faut mettre une résistance de rappel (par ex 1k ohm) entre la pin PWM du shield et le +5V. De la sorte, quand le signal du STM32 sera 0, le transistor sera bloquant et la tension sur la pin PWM sera 5V. Pour avoir un fonctionnement normal, il faut alors activer le invert. Ainsi à l'arrêt le STM32 génère un niveau haut, les transistors sont passant et la tension sur la pin PWM est alors environ 1V (soit un niveau bas pour l'entrée du laser) et donc le laser effectivement éteint.
smillier
Messages : 10
Enregistré le : 06 avr. 2020 11:41

Re: Laser ne s'allume pas via gcode

Message par smillier »

OK, j'ai compris. Merci pour les explications claires.
Je soupçonne le laser de ne pas être un vrai TTL, effectivement et je vais tenter avec la résistance de rappel. Je vous tiendrai informés.
smillier
Messages : 10
Enregistré le : 06 avr. 2020 11:41

Re: Laser ne s'allume pas via gcode

Message par smillier »

Alors, pullup de 1K entre le 5V et pwm ne change rien. Le laser ne s'allume jamais.
Par contre, hors shield grbl, j'ai une tension de 5V entre le PWM et le ground du laser. Du coup je m'embrouille... Sachant que le laser se comporte parfaitement si je le commande avec mon esp8266 de test.
smillier
Messages : 10
Enregistré le : 06 avr. 2020 11:41

Re: Laser ne s'allume pas via gcode

Message par smillier »

Je crois que j'ai compris mon souci, j'avais un comportement super étrange sur le pwm, d'un seul coup une étincelle, je me dis que j'avais tout cramé, je desoude le composant jaune ayant vu l'étincelle dessus, persuadé que c'était un fusible, puis constate que c'est un condo.
En le resoudant je vois ceci:
mosfet.jpg
Du coup je me demande si le fait qu'il ait définitevement pété explique pas que j'avais des fois aucune tension sur le PWM, des fois un PWM presque cohérent, d'autres fois un PWM inexplicable... Le STM32 n'a pas survécu à la blague, ce qui n'est pas dramatique, je dois en avoir, par contre ce composant, j'en ai pas en stock et c'est beaucoup plus chiant.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Répondre