Plateau Core(X,Y)

J’ai toujours dans l’idée de diminuer au maximum le jeu sur ma machine CNC…

Le système CoreXY m’a semblé super intéressant (vitesse et précision) et relativement simple à mettre en œuvre, avec du contreplaqué et des pièces imprimées (bon ben, comme d’hab finalement!)

J’ai modélisé le bazar en fonction de ce que j’ai sous la main (à savoir notamment des roulements 608zz et LM8UU. Je vais partir là dessus pour les poulies et le guidage.

Je compte utiliser du fil pour l’entrainement, plutôt que des courroies (question de budget). J’essaierai déjà avec de la ficelle toute bête, et on verra comment ça se passe!

Il me reste la pièce du moteur, qui devrait ressembler à ça.

 

Vue de dessus
Vue de dessus
Vue en perspective
Vue en perspective
Détail de la jonction XY
Détail de la jonction XY
Une poulie montée sur un 608ZZ
Une poulie montée sur un 608ZZ

Ça promet! Je pourrai monter le laser là-dessus, ou bien un petit moteur DC équipé d’un mandrin pour graver des PCB avec une meilleure précision (note à moi-même : prévoir un axe Z pour ça…)

Découpe de papier cartonné au laser

Haha, ayé, j’ai essayé de découper du papier un peu épais (un intercalaire), et… ça marche! J’ai fait un marque page dans un style organico-végétal-de-la-mort. Après coup on m’a fait remarquer qu’il avait un côté légèrement phallique… Ouais, c’est pas faux… Bon en réalité je voulais surtout découper un truc un peu compliqué pour voir comment ça se passerait. J’ai ajouté une étoile pour le plaisir des yeux…

Je vous avais prévenus :)
Je vous avais prévenus 🙂

Le laser bouge à 90mm par minute pour bien prendre le temps de brûler le papier mais pas trop (peut-être à ajuster).

Voici la bête pendant l’opération!

Laser bookmark cutLaser bookmark cutLaser bookmark cut Et voilà le résultat:

Papier bristol découpé à 90mm/minute
Papier bristol découpé à 90mm/minute
Marque page découpé au laser
La pointe en bas à gauche a un peu brûlé…

Alors un peu lancé, j’ai tenté le carton ondulé… Hé hé 🙂

J’ai divisé la vitesse par 2 (45mm/minute) et paf:

Carton ondulé de 3mm, à 45mm/minute
Carton ondulé de 3mm, à 45mm/minute
C'est net :)
C’est net 🙂

Zeeeeng 🙂

Compensation du jeu dans le G-Code (backlash compensation)

S’il y a quelque chose qui m’agace avec cette machine, c’est le petit jeu sur les axes.

J’ai bien mon système d’écrou/contre-écrou serrés l’un vers l’autre, mais un jeu subsiste malgré tout.

Si je serre trop les vis de réglage, il y a trop de frottement. Le serrage est donc un compromis entre le jeu tolérable et le frottement induit par ce serrage.

Le jeu est mis en évidence lors des changements de direction, et on s’en rend compte quand on cherche à avoir du détail dans les dessins (1mm d’écart entre deux lignes par exemple, ou bien dessiner des petits cercles).

Pour le mesurer, j’ai fait les choses très simplement:
– Positionner le X sur une origine arbitraire
– « Précharger » l’axe dans le sens positif en le faisant avancer de quelques millimètres.
– Faire un point au laser
– Avancer en X de 100mm
– Reculer en X de 100mm
– Refaire un point au laser

Résultat : le second point est légèrement décalé du premier à cause du jeu lié au changement de direction.

Mesuré à la truelle, l’écart est d’un peu moins de 1mm.

J’ai commencé par chercher au niveau de Marlin s’il y avait possibilité de configurer une compensation. Pas évident visiblement.

Alors j’ai fait un programme qui analyse un fichier G-Code, et injecte la compensation directement dans le G-Code.

Le processus est le suivant: quand un changement de direction est détecté sur un axe,
1. On passe en mode relatif
2. On déplace l’axe de la valeur de la compensation (en positif ou en négatif, selon la direction)
3. On repasse en mode absolu
4. On met à jour la position de l’axe au niveau du firmware (sinon ça ne sert à rien)

Exemple : je veux compenser mon axe X de 0.5mm.
Si j’ai le G-Code suivant :
[code]
G0 X0   ;on commence à l’origine
G0 X10  ;déplacement positif
G0 X15  ;déplacement dans la même direction -> pas de compensation
G0 X0   ;changement de direction -> on doit compenser avant d’exécuter cette ligne
[/code]

Avant la ligne 4, on va donc injecter les instructions selon le processus décrit plus haut:
[code]
G0 X0
G0 X10
G0 X15
;Compensation X :
G91;passage en mode relatif
G1 X-0.5;compensation négative de 0.5mm
G90;retour en mode absolu
G92 X15;update de la position X dans le contrôleur.
;Fin de compensation
G0 X0
[/code]

En vrai, mon programme génère des commentaires en anglais; je me dis que c’est mieux pour la communauté internationale 🙂

La commande G92 est très importante. En fait, le contrôleur (Marlin) a dans sa mémoire les positions de chaque axe, qu’il incrémente ou décrémente son compteur interne.

Par conséquent après le G1 X-0.5, pour Marlin, la position actuelle de l’axe est à 14.5mm. Normal en même temps. Hé bien le G92 permet de de à Marlin: « Oublie la position que tu connais, et prends celle là à la place ». De cette manière, pour les futures commandes, Marlin n’y verra que du feu et ne saura même pas qu’on a ajouté artificiellement des mouvements.

Quelle interface!
Quelle interface de malade!

Le hic, c’est que cette approche ne pourra pas fonctionner sur des commandes d’arcs (G02 et G03).

C’est pourquoi dans le post processeur, j’ai ajouté une instruction

<ArcOutput>ConvertToLines</ArcOutput>, qui transforme les arcs en une suite de segments.

Les sources sont ici : https://github.com/toxnico/CNC-Backlash-Compensator

L’exécutable est dispo ici

Fabrication d’un circuit imprimé à la fraiseuse

Bonjour tout le monde!

N’ayant toujours pas reçu mes LM317, j’ai attaqué le circuit de contrôle du laser (celui qui reçoit les impulsions PWM et active / déasactive le laser).

Trois étapes:

  1. Traçage des contours des pistes avec ma fraise conique
  2. Traçage des trous pour les composants (je n’ai pas encore osé lui faire faire le perçage complet)
  3. Perçage manuel à la dremel (mèche de 1mm)

Voici la plaque après ces trois étapes:

PCB après perçage
On voit bien le jeu dans les axes, qui n’est pas toujours bien compensé… Mais je trouve ça pas si mal quand même, pour du roulé à a main sous les aisselles!

J’ai testé au multimètre l’isolation des pistes; ce n’était pas bien isolé partout, donc j’ai dû terminer les traces au couteau!

Le soudage des composants m’a posé un problème majeur : l’espace isolant n’étant pas très large, l’étain a eu tendance à baver à l’extérieur des pistes… Et je n’ai pas de tresse à dessouder alors j’ai arrangé le truc comme j’ai pu 🙂

PCB côté soudures
Côté soudures : sur la piste de gauche, on voit bien que c’est un peu la daube… Mais c’est isolé!
PCB côté composants
Côté composants : on n’y voit que du feu!

Bref, une fois certain de l’isolation de toutes mes pistes, j’ai testé ce petit circuit, et ça marche! La LED témoin s’allume en fonction du signal PWM. Je ferai le circuit d’alimentation du laser avec des traces plus larges, ça devrait demander moins de travail manuel après la gravure.

Premiers tests du module laser!

Wouhou!

J’ai enfin reçu mes lunettes de protection de chez Wicked Lasers. Elles ont de la gueule, et surtout elle m’éviteront de perdre un œil 🙂

EDIT 16.10.2014 : Bif bof, ces lunettes, comparées aux Eagle Pair. Voyez la comparaison ici.

Lunettes Wicked Lasers
Les lunettes tant attendues

Alors j’ai installé tout mon petit bazar sur le support Z avec une équerre de récup, et ça tient bien:

Le module laser monté
Le module laser monté

Et je peux vous dire que le laser de 1.5 watts, il détartre de l’homme-tamanoir atomique à la cisaille émoussée ! (merci nioutaik pour l’expression) Ça fume ultra rapidos, je n’y mettrais pas un doigt!

Le point du laser
Le point du laser

Alors j’ai voulu tenter de graver la carte de mon copain Gégé sur un morceau de contreplaqué pour voir ce que ça pouvait donner. Petit coup de pub dans la foulée, si vous êtes en Haute-Savoie et que vous avez faim, il faut venir manger le Gégé-Burger!

Le camion à Gégé
La carte du camion à Gégé à Monnetier, haute Savoie. (réalisée par Chris. Coup de pub numéro 2! un truc de malade!)

J’ai vectorisé vite fait les quatre pictogrammes au-dessus de « snack et plats cuisinés », et voici le résultat (largeur totale : 6cm. Chaque picto fait environ 1.5cm de large)

premier test
Premier test. Prometteur?

Alors il faut savoir une chose. Les grosses lignes  sont les déplacements « à vide » de la machine. Oui, parce que je n’avais pas encore cherché de solution pour couper le faisceau laser pendant les déplacements rapides… En gros, il crache en permanence… Donc c’est gras et crado mais je l’assume (z’allez voir la suite 😉

Le premier essai étant relativement concluant, j’ai entrepris de trouver une solution pour couper et activer le laser dans le G-Code.

La première idée a été d’utiliser les commandes M106 et M107 et les bornes D9 du RAMPS (activer / désactiver le ventilateur).

Le hic, c’est que les bornes D9 délivrent du 12V, alors que le laser demande du 5V… On ne va pas risquer de faire griller la petite bête.

Alors j’ai cherché une autre approche: alimenter le laser en direct sur l’alimentation 5V de mon alim de PC, à travers un transistor qui sera piloté par une borche du RAMPS ou de l’Arduino. Ouais mec!

En cherchant dans les tréfonds des forums reprap et CNC, je suis assez rapidement tombé sur la commande G-Code M42. Et comme chacun le sait, 42 est la réponse à la grande question sur la vie l’univers et le reste (paix à ton âme, Douglas Adams).

M42 est en tout cas une commande qui permet à Marlin de changer arbitrairement l’état d’une broche de l’Arduino (et par conséquent du RAMPS).

Voici les numéros des broches du RAMPS. Je me suis attaché à la 45, parce qu’elle supporte le PWM. Oui, je suis un gros coquin.

ramps pinoutLa commande M42 s’utilise de la sorte:

M42 P45 S255, où 45 est le numéro de la broche à contrôler, et 255 est la valeur qu’on veut donner à la broche PWM. Si c’était une broche digitale, 42 Pxx S1 permettrait d’activer la broche xx. Enfin je suppose, je ne l’ai vu nulle part…

Côté G-Code, je remplace (manuellement pour le moment) tous les mouvements Z vers le bas par des M42 P45 S255 (on attaque la matière), et tous les mouvements Z vers le haut par des M42 P42 S0 (on arrête d’attaquer la matière).

Attention : il faut précéder TOUTES les commandes M42 par une commande M400 (finish all moves), sinon la commande est exécutée dès qu’elle est reçue (et donc pas synchronisée avec les mouvements).

Alors j’ai fait un petit montage avec un BD135, qui supporte 1.5A. Le laser pompe 1.5A, mais je n’avais que ça sous la main. Alors gros radiateur improvisé (à base de 2 équerres et de la pâte thermique) pour le BD135, et voilà le résultat! Notez que j’ai laissé en plus un interrupteur manuel dans le circuit par pur souci de sécurité oculaire.

Montage pour piloter le laser
L’est pas beau mon radiateur??

Grâce au PWM, j’ai pu allumer le laser avec un puissance moindre, et m’appliquer à focaliser correctement le faisceau sans me brûler les doigts.

deuxième test
Deuxième test : et là, ya rien???

La qualité des mouvements sur des petites distances est toujours un peu moyenne, mais quelle finesse de trait! Et la désactivation du laser fonctionne bien 🙂

Test de gravure avant / après. Ya pas photo!

Alors, ça vous inspire?

Assemblage du module laser

Hé hé, ça s’enchaine!

J’ai reçu le module ventilé, et je viens de le monter, appareil photo à l’appui 🙂

Alors j’ai commencé par dessouder la diode laser de son driver dans le module d’origine (le cylindrique). Je me suis rendu compte que dans ce module, la diode n’était pas du tout en contact avec la masse métallique; donc dissipation thermique = walou. A mon avis elle n’aurait pas fait long feu.

Alors je l’ai retirée délicatement, j’ai soudé deux fils aux 2 broches, et j’ai isolé tout ça avec du kapton, et resserré avec du teflon.

La diode laser
La diode laser

Ensuite, on doit enfiler la tête de la diode dans le dissipateur, qui va lui-même se visser dans le corps en alu noir.

On va faire rentrer ça là-dedans
On va faire rentrer ça là-dedans

 

Ca passe!
Ca passe!

 

Avant d’assembler tout ça, j’ai mis de la pâte thermique (achetée dans un magasin de composants d’ordi)

Un peu de pâte thermique
Un peu de pâte thermique
On tartine bien partout
On tartine bien partout

 

Et à partir de là, on peut visser le petit bouzin dans le gros bouzin en faisant bien attention à la diode laser.

Et hop!
Et hop!

 

J’ai ensuite ressoudé le driver qui m’était fourni dans le module d’origine, et je l’ai isolé avec du kapton, à la sauvageonne.

Isolation cochonne mais efficace
Isolation cochonne mais efficace

 

Après montage du ventilo
Après montage du ventilo
Et voilà le travail!
Et voilà le travail!

Bon ben voilà, c’était plutôt vite fait. Mais je n’ai toujours pas de lunettes, alors impossible de tester. Je vais maintenant voir comment fixer l’engin sur la CNC, en gardant un peu d’espace en dessous pour le Peltier que je devrais recevoir incessamment sous peu!

Edit 29.04.2015

Depuis, j’ai changé le driver et la diode, qui ont grillé…

Voici les liens vers le matériel:

 

Fabrication de pochoirs à la fraiseuse

Un collègue est en train de préparer son mariage et m’a demandé si par hasard je pourrais lui faire quelques pochoirs pour indiquer aux invités les directions pour la cérémonie, le vin d’honneur, le repas et le terrain de pétanque.

Pas de problème! Voici un petit challenge qui me permet de tester la machine sur quelque chose de réel. C’est du papier épais, alors j’ai pensé remettre le drag knife à l’essai; mais depuis la nouvelle machine, je ne suis pas trop sûr que le niveau de la table soit parfait. Alors comme ça devait être fait rapidement, j’ai pris l’option fraise conique avec une planche à sacrifice sous le papier.

Hé ben le résultat n’est pas si dégueulasse!

La bête !
La bête !
Pochoir avant
Pochoir avant
Après post processing... C'est à dire le bon vieux cutter !
Après post processing… C’est à dire le bon vieux cutter !
Cérémonie... Tout plein de "e" bien pourris!
Cérémonie… Tout plein de « e » bien pourris!

Par contre il a choisi une police de caractères à la con avec certains tracés très fins, alors à proximité de la fraise, il a fallu bien maintenir le papier à plat avec un tournevis pour éviter qu’il ne se plie ou s’arrache!

Quand j’aurai reçu les éléments de refroidissement et les lunettes pour le laser, je pourrai réessayer, je pense que les contours seront 10x plus nets.

Par contre il sera déjà marié…