Skip to main content

Reverse-ingeneering de la graveuse laser Jinsoku LE1620

Informations

  • Christian Simon
  • FabLabSU
  • Date de fin : 29 avril 2022

Contexte - Motivation

Il s'agit de détourner une CNC peu chère de son usage initial. C'est un point de départ intéressant pour construire des machines 2D+ rapidement : l'électronique et le bâti sont déjà montés, ça permet de faire vite plein de choses.

C'est initialement dans le cadre du projet Pillink que j'y ai pensé. Mais on pourrait également transformer cette découpeuse laser en découpeuse à plasma (ou autre !) avec un effort minimal.

L'étape indispensable est de pouvoir modifier la tête pour contrôler autre chose que le faisceau laser de gravure, sans changer le reste.

ObjectifsPrésentation de la machine

NullaC'est imperdietgraveuse mattislaser nequeà nonbas-coût vehicula.que Aliquaml'on aliquampeut actrouver lectussur nonde euismod.nombreux Nullasite, facilisi.dont FusceAmazon, fermentumpour enim245€ magna,environ, velproduite consecteturpar semGenmitsu malesuadaet eu.SainSmart.

Integer

ac

Elle iaculisest magna,basée dictumsur posuereun neque.contrôleur Seddont pretiumle dignissimfirmware arcu,est velbasé maximussur felisl'open-source cursusgrbl.

in.

On peut donc la contrôler avec la plupart des logiciels usuels : LaserGRBL (Windows seulement), Lightburn (non-libre). On pense aussi à UGS (Universal Gcode Sender, libre et multiplateforme).

Références : Le blog Ben Maker

On trouve également quelques “unboxing” sur Youtube, mais ils sont sans intérêt pour la plupart.


Démarche

La puissance du laser est fixée dans le Gcode, qui est transmis au contrôleur, qui envoie un PWM à une carte fille montée sous le bras, qui elle-même contrôle et alimente le laser.

On va donc chercher à exploiter ce PWM pour déclencher d'autres actions : démarrer l'aspiration (ouvrir une électrovanne), actionner un servo-moteur, ouvrir un relais. Les valeurs du PWM étant autant de codes d'actions possible… à la précision et au bruit près !

Décodage d'un PWM

La première étape est d'arriver à décoder un PWM avec un Arduino. La meilleure lecture est le blog de image-1653061695508.jpegBen Ripley, qui présente 3 méthodes :

  • Simple, basique avec la fonction pulseIn().
  • Avec des interruptions externes à coups de attachInterrupt().
  • Avec des bibliothèques qui implémentent des fonctions autour de ces interruptions.

Il utilise PinChangeInt mais ont trouve très vite ses évolutions dont PinChangeInterrupt, incluse dans la base de bibliothèques de l'IDE Arduino.

On trouve facilement des exemples de gens l'utilisant, par exemple le blog QuadMeUp de @pspychalski. L'exemple permet de décoder des signaux RC transmis par une télécommande avec un PWM à 50 Hz… La première inconnue est donc la capacité à travailler à plus haute fréquence.

Pour prendre en main cela, on programme un premier Arduino pour générer des PWM de 0 (dutycycle 0%) à 255 (dutycycle 100%), selon une entrée. Le PWM généré par l'Arduino UNO est à 490 Hz, déjà de fréquence plus élevée. Ce PWM est envoyé vers l'Arduino qui décode, et allume des LED selon la valeur décodée.

Lorsque cet ensemble fonctionne, on a le code suivant.

Du Gcode au PWM

Avant de faire interpréter le PWM à l'Arduino désormais programmé, on va vérifier les caractéristiques du PWM qui sort du contrôleur, en fonction des Gcode envoyés.

Hélas, l'interface UGS est incapable (a priori) d'allumer/éteindre/moduler le laser de la machine. Pour trouver les Gcode à envoyer, on a donc recours à Lightburn. La configuration du logiciel pour la Jinsoku-LE1620 est détaillée sur le blog Ben Maker.

On met en place 4 tracés, en définissant 4 lignes à 4 puissances différentes :

AjouterPour aucomprendre moinsce unecode, imageon se reporte à la documentation de votregrbl, projetpage "Laser Mode".

Matériel

En

    examinant
  • 1le plancheGcode, on repère des lignes G1 qui sont suivies de CPSXXX peuplieret 3mmFXXX. On a en particulier choisi le mode d'opération M3 “puissance constante” (dimensionset 300*600mm)
  • non
  • scotchM4 modulé en fonction de peintre
  • la
  • collevitesse de déplacement). Le code du réglage de la puissance est SXXXX (de 0 à bois
  • 1000),
  • cutter
  • et
  • papierF est le “feed-rate”.

    Avec Lightburn, on envoie divers séquences, et on observe alors à l'oscilloscope :

    séquence envoyéeM3 G1S100F100M3 G1S400F100M3 G1S800F100
    PWM constaté10%40%80%
    observation

    Accessoirement, on peut mesurer la fréquence du PWM, qui est 1kHz, conformément d'ailleurs à ce qui est annoncé dans la documentation de verregrbl.

    grain

    Décodage moyenpar (80-100)

  • l'Arduino
et

Machinesremontage utilisées

global

TrotecUn Speedypoint 100important est d'assurer la continuité des masses sur l'ensemble du montage. Même ainsi les moteurs pas-à-pas génèrent un bruit important sur le PWM que l'on cherche à exploiter.

Construction

Je

(Fichiers,dessine photos,alors code,un explications,carré paramètresavec d'usinage,4 photos, captures d'écran...)

Étape 1

----

Étape 2

----

Étape 3

----

Journalcôtés de bord

couleurs différentes dans Lightburn, j'exporte le Gcode, que j'ouvre avec UGS :

; LightBurn 1.1.03
; GRBL device profile, absolute coords
; Bounds: X20 Y30 to X50 Y60
G00 G17 G40 G21 G54
G90
M4
; Cut @ 100 mm/sec, 20% power
M9
G0 X20Y30
M3
; Layer C00
G1 X50S200F6000
; Cut @ 100 mm/sec, 40% power
M9
G0 X50Y30
; Layer C01
G1 Y60S400
; Cut @ 100 mm/sec, 60% power
M9
G0 X50Y60
; Layer C03
G1 X20S600
; Cut @ 100 mm/sec, 100% power
M9
G0 X20Y60
; Layer C02
G1 Y30S1000
M9
G1 S0
M5
G90
; return to user-defined finish pos
G0 X0 Y0
M2

AvancéeVoici dule projetrésultat à chaque étape, difficultés rencontrées, modifications et adaptations (facultatif pour les petits projets):

03/04/2022

Duis tincidunt mattis sollicitudin. Aenean posuere sapien a metus consectetur, ut blandit tellus finibus. Vivamus convallis tincidunt metus, ut fringilla eros gravida nec. Cras dignissim urna et vestibulum feugiat. Phasellus tempor, nunc quis lobortis volutpat, dolor arcu fermentum elit, in eleifend enim sem fringilla metus. 🚨 Donec quis libero vehicula, varius tortor quis, vehicula libero !!! Cras ultricies tempus ante gravida hendrerit.

11/04/2022

Phasellus in purus quis justo feugiat vestibulum quis eu lacus. 😎 Etiam maximus metus vel massa pharetra convallis. Curabitur vel nunc orci. Praesent dolor dui, laoreet non massa non, pellentesque vestibulum quam. Sed posuere, dui quis semper pulvinar, eros nibh commodo elit, nec auctor arcu est et purus.

18/04/2022

Maecenas interdum turpis sit amet rutrum elementum. Aenean eget accumsan ligula. Phasellus et scelerisque lectus. Cras vel venenatis nulla. Integer tristique non diam et molestie. Pellentesque condimentum enim arcu, in commodo nunc commodo vel. Integer vitae neque facilisis, mattis elit sit amet, gravida turpis. Maecenas lectus mauris, fringilla ut lectus eu, condimentum finibus tortor 🤩🤩🤩