Ma petite CNC est arrivée !

J’y pensais depuis quelques temps, j’ai franchis le pas et j’ai commandé une petite CNC !

CNC signifie Computer Numerical Control, ce qui, en français, donnerait machine-outil à commande numérique, ou plus littéralement « commande numérique par calculateur ».

Alors qu’une imprimante 3D dépose de la matière en partant du bas de l’objet, la fraiseuse CNC va retirer de la matière en partant du haut de l’objet. Mais si souvent on y fixe une fraise pour faire de l’usinage, on peut aussi y attacher un foret pour réaliser des perçages très précis, ou encore un laser pour « dessiner » sur du bois ou du liège, voir découper certains matériaux.

On peut aussi l’utiliser comme graveuse (sur bois, plexi, alu…). Et l’un des usages qui m’intéresse le plus : la gravure de PCB ! Je ne réalise pas souvent des PCB, mais à chaque fois, avec la gravure chimique, c’est tout un chantier dans la salle de bains, les produits perdent leur efficacité avec le temps, on ne peux pas s’en débarrasser simplement, bref, la gravure m’ira très bien pour mes besoins 🙂

Entrons dans le vif du sujet, j’ai commandé un modèle d’entrée de gamme en chine, sur Ebay, précisément, ce modèle. A ce prix, elle aura ses limites, pas question d’usiner des métaux ferreux, et il ne faudra pas être trop exigeant avec les métaux plus mous (alu, laiton…), mais pour le bois, le plastic, les PCB etc., pas de souci. La surface de travail est de 24 cm par 17 cm.

Note du 09/09/2017 : je ne recommande absolument pas ce vendeur Ebay (jzelectric), ils sont en apparence très polis, mais leur SAV est complètement incompétent et leur spécialité est de gagner du temps pour vous empêcher de mettre un avis négatif dans les 2 mois qui suivent la vente. C’est dit.

Donc, 375€, auxquels j’ai malheureusement dû ajouter une quarantaine d’euros de frais de douane (transporteur DHL).  Le paquet ci-dessous est arrivé en une semaine environ :

Evidemment, la machine est à monter soi-même 😉 Tout est très bien rangé : moteur pour la broches, le laser (livré avec des lunettes de protection), moteurs pas-à-pas pour les 3 axes, barres pour le châssis en alu, quelques pièces de support imprimées, d’autres découpées, l’électronique de contrôle etc. A noter qu’aucune documentation n’est livrée avec le colis, on la reçoit par e-mail après la commande (ainsi que les logiciels).

Le paquet comprend également 3 « couteaux » de gravure pour le bois, ce ne sont pas des fraises. L’axe du moteur mesure 3.175 mm et le coupleur accepte des fraises de 3.175 mm également (ce qui est l’un des principaux standards).

A noter que l’alimentation n’est pas au format européen, heureusement, j’avais quelques adaptateurs qui traînaient :

Toutes les petites pièces et la visserie sont dans un boitier en plastic compartimenté à double face, il ne manque rien, il y en a même un peu en plus :

La documentation de montage est un PDF d’une cinquantaine de pages ne contenant pratiquement que des photos. Elle est assez claire, à part une erreur concernant des vis sur l’une des photos (on comprends facilement qu’il y a un problème). J’ai assemblé la machine en 5-6 heures, sans me presser. On commence par le support de l’axe Z ainsi que l’axe X :

On attaque ensuite le plateau de l’axe Y :

A noter que les 2 tiges filetées sont tout juste à la bonne taille, j’ai dû ajuster la profondeur d’enfourchement dans les coupleurs d’axe et les boutons aux extrémités pour que ça passe.

Vient ensuite l’assemblage du châssis, les petites vis en « T » qui s’accrochent au rail ne sont pas forcément faciles à positionner, mais en général, elles se positionnent dans la bonne direction lorsque l’on visse. On fera aussi attention à bien vérifier la perpendicularité des axes pendant le montage à l’aide d’une équerre.

Le tout prend forme…

Et on peut s’atteler à l’électronique et au câblage. Concernant le câblage, justement, il faudra un peu improviser par rapport à la notice :

  • Il n’y a pas assez de gaine fournie, heureusement, j’en avais de côté
  • Les câbles pour les moteurs pas- à-pas sont très longs : je les ai donc repliés à l’intérieur de la gaine.
  • Pour fixer correctement les câbles au châssis, j’ai utilisé du scotch, je les remplacerai peut-être par des colliers de serrage, pour le moment ça va bien.

Le montage est terminé !

Un coup d’œil à la carte de contrôle, constituée d’un Arduino Nano, son shield CNC et 3 pilotes de moteur pas à pas de type A4988 (clones, malheureusement pas les originaux de Pololu, on y reviendra).

On se prépare quelques surfaces de travail en medium, et j’en profite pour tester ma nouvelle scie circulaire fixe (Proxxon FET, vraiment chouette) :

On est paré pour les premiers essais…

… mais pas si vite : il faut d’abord s’occuper de la partie logicielle ! De manière générale, la chaîne logicielle est à peu près la suivante :

Un logiciel pour créer le modèle 3D (Sketchup, Freecad…) ou 2D (Inkscape…) ==> Un logiciel qui va interpréter le modèle (souvent au format STL ou DFX) et qui va générer du GCode (instructions pour la machine CNC) ==> Un logiciel qui enverra au fur et à mesure les instructions au contrôleur de la machine CNC ==> Le contrôleur de la machine CNC contient un micro-programme qui reçoit les instructions et les converties en actions (déplacement des axes, activation de la fraise etc.)

Cette imprimante utilise le micro-programme GRBL, qui est Open Source et qui a l’avantage de se charger sur un Arduino (Uno, Nano, voir Mega). Ce qui en fait une option vraiment pas chère pour piloter une machine CNC 🙂

Revenons à notre machine… Le vendeur fournit donc quelques logiciels : les drivers pour Arduino Nano (CH340) (que je n’ai pas installés, ils ne m’inspiraient pas, et ceux installés par Windows 10 ou l’IDE Arduino font parfaitement l’affaire). Deux autres logiciels sont fournis, l’un pour le laser (pas encore testé) et un second pour envoyer le GCode au contrôleur de la CNC. Ici encore, peu d’info sur le logiciel. Finalement, en fouillant, je me suis aperçu que c’était une vieille version de Candle. J’ai donc récupéré la dernière version de Candle depuis le site officiel. Mais attention, cette dernière est faite pour fonctionner avec GRBL en version 1.1.

Pour envoyer des commandes à l’Arduino et récupérer/modifier la configuration, il faut utiliser un moniteur série, celui de l’IDE Arduino est parfait pour ça, il faut juste penser à régler la vitesse à 115200 bauds et activer « Nouvelle ligne ».

Le Arduino Nano livré est pré-chargé avec GRBL, en dialoguant avec lui via le port série, on apprend qu’il est en version 0.8c (la version 1.1e vient de sortir). J’ai récupéré la configuration livrée (envoyer la commande « $$ » en série suivi d’un saut de ligne pour obtenir la configuration). J’ai mis de côté le Arduino Nano livré et je l’ai remplacé par un autre Arduino que j’ai chargé avec la version 1.1e de GRBL. Les premiers soucis ont commencé : le shield livré (« Laser-Axe ») n’est pas tout a fait compatible avec GRBL 1.1, heureusement, une version modifiée de GRBL 1.1 est dispo pour ce shield, c’est par ici. Je lui ai ensuite fourni la configuration qui était sur le Arduino livré, en ajoutant les nouveaux paramètres pour le moteur de la foreuse (j’ai indiqué 1000 comme valeur pour le paramètre $30 : Max spindle speed, RPM).

Je n’entre pas dans le détail du chargement du firmware GRBL sur le Arduino, ni la configuration, de nombreux sites le proposent déjà.

Dernier élément clé de la chaîne logicielle : l’outil de génération du GCode (qui n’est pas fourni). Là, j’ai opté pour CamBam, il est ultra-complet, très utilisé, a très bonne réputation et permet même de faire un peu de conception directement, sans passer par un outil tiers comme Inkscape ou Sketchup. Le principe de fonctionnement est simple : d’abord on conçoit l’objet, ensuite on définit les passes d’usinage (perçage, gravure, pochage, profilage…) et il ne reste plus qu’à exporter le GCode.

CamBam est un logiciel payant. On dispose de 40 sessions gratuites après l’installation. De ce que j’ai pu lire, les 108€ demandés par l’éditeur se valent vraiment. Je verrai bientôt si j’investis (je suis vraiment tenté).

Ici encore, je n’entre pas dans le détail de l’utilisation de CamBam, de nombreux tutoriaux sont disponibles. Il faut juste retenir que le Gcode généré avec le post-processeur par défaut contient 2 lignes en erreur qu’il faudra penser à supprimer  (en début de fichier) :

G21 G90 G64 G40
T0 M6

Pour le premier essai, j’ai défini un motif 2D :

Auquel j’ai ajouté une passe de « pochage » de 2 mm de profondeur à une vitesse de 100 sur tous les axes. Par défaut, la vitesse du moteur est mise au maximum (1000). Au moment du test, je n’avais pas encore reçu les fraises, j’ai donc utilisé les couteaux à graver fournis en indiquant un diamètre de pointe de 0.5 mm.

On peut maintenant lancer le logiciel de pilotage de la CNC : Candle. J’ai également testé Universal GCode Sender qui fonctionne très bien (à condition de prendre une version « nightlty build », j’avais un bug sur la dernière version stable). Je suis resté sur Candle que je le trouve très simple et intuitif.

La première étape consistera à connecter la CNC et vérifier qu’on arrive bien à la piloter via l’interface. Ne pas oublier de démarrer les moteurs en appuyant sur le bouton du shield. Il faut avant toute chose calibrer les pilotes des moteurs pas-à-pas, via un petit potentiomètre. Ce dernier est très fragile et pivote sur 270°, il ne faut surtout pas forcer. Ce point est totalement absent de la notice et me pose encore des soucis. Il permet de définir la quantité de courant pouvant être envoyée aux moteurs. S’ils sont mal réglés, soit les moteurs n’auront pas assez de courant pour bouger correctement, soit les pilotes surchaufferont et se mettront en protection pour ne pas griller.

Si on dispose des caractéristiques techniques des moteurs et des pilotes, ont peut régler les potentiomètres de manière propre, comme je l’avais fait pour l’imprimante 3D. Sinon, il faut utiliser une méthode plus empirique : régler les potentiomètres au minimum (sens anti-horaire), puis monter progressivement jusqu’à ce que les moteurs tournent correctement lorsqu’on les active via Candle (il faut trouver le juste milieu pour que les moteurs tournent bien, sans les surcharger).

Zoom sur les 3 potentiomètres d’étalonnage des pilotes des moteurs pas-à-pas. J’ai ajouté des radiateurs (non livrés 🙁 ) sur chaque puces pour une meilleure dissipation thermique. Ils ne sont pas encore en place sur la photo suivante.

Et l’interface de Candle, qui permet de piloter la CNC :

Une fois les drivers réglés, on peut tester le pilotage de la CNC manuellement via le logiciel. Pour reproduire les paramètres de la version de Candle livrée, il faut utiliser utiliser un pas (step) de 10 et une accélération (feed rate) de 500. Ne pas hésiter à utiliser un petit pas pour les premiers essais (1,2,5…).

Si tout se comporte comme prévu (déplacements et moteur de la broche), on peut charger le Gcode généré via CamBam dans Candle, puis on positionne la fraise sur ce qui sera l’origine. Ne pas oublié de réinitialiser les axes dans Candle pour lui indiquer que l’imprimante est déjà positionnée sur son origine. Comme il n’y a pas d’interrupteur de fin de course, il faut faire très attention de bien penser à toujours réinitialiser les coordonnées des 3 axes avant de lancer un usinage.  Attention aussi, à l’orientation du logiciel : le haut et le bas sont inversés, ainsi que la gauche et la droite, quand on est face à la machine.

On peut lancer le premier usinage ! La vidéo ci-dessous donne un aperçu de l’opération. On voit que le logiciel permet de suivre l’avancement et le tracé de la tête de gravure.

Et voici le résultat du premier test ! 🙂

Pour aller plus loin, j’ai récupéré un motif dans Inkscape dont j’ai extrait uniquement les lignes de contours. J’ai ensuite, sélectionné l’ensemble du motif et utilisé l’option de jointure pour créer les polylignes (avec une tolérance de 0.1 mm) :

Les cercles intérieur et extérieur ont été définis pour un usinage de type « gravure » (2 mm), alors que les motifs intérieurs ont été associé à un traitement de pochage (2 mm également).

Et voici le résultat, toujours avec un des couteaux livrés (plus le couteau s’enfonce, et plus on perd en précision, du fait de sa forme biseautée). Avec une vraie fraise de petite taille, le résultat serait encore meilleur. Dans ces conditions, le résultat est vraiment bon 🙂

Voilà, je dispose maintenant d’une bonne base, avec un contrôleur à jour, et un logiciel de pilotage récent, à la place des outils livrés (un peu vieux, mal traduits…). Et surtout, je sais vraiment ce que j’installe, car tous les outils sont Open Source, c’est plus rassurant que les setups en chinois… Je ne dépendrai pas non plus du vendeur pour les mises à jour, et c’est une bonne chose vue l’ancienneté des logiciels livrés !

Maintenant, tout n’est pas (encore) rose ! J’ai de vrai problèmes de stabilité, que j’ai cru avoir réglés en ajustant les potentiomètres des pilotes des moteurs pas-à-pas. De manière aléatoire, les moteurs se bloquent, « toussotent » et ratent des pas. La conséquence, ce sont de beaux loupés :

Le réglage empirique des pilotes des moteurs me permet de limiter ces problèmes, mais pas de manière durable, pour le moment, la machine n’est donc pas stable. Je continue à chercher, le vendeur est très réactif et veut vraiment aider, je viens de lui envoyer une vidéo illustrant le souci.

En parallèle, j’ai prévu de remplacer tout l’électronique, y compris les pilotes des moteurs, les moteurs pas-a-pas et l’alimentation :

Maintenant, j’attends que ça arrive, et j’ai bon espoir de la stabiliser rapidement 🙂 Ensuite, je pourrai passer à la suite : gravure de PCB et usinage 3D.

Je pense aussi installer des interrupteurs de fin de course, pour éviter les accidents et une petite ventilation au dessus de l’électronique.

43 thoughts on “Ma petite CNC est arrivée !”