CNC et PCB, volume 2 !

Après plus d’un an sans article, j’ai remis en service ma CNC pour graver un circuit électronique dans le cadre d’un petit projet de Dongle USB pour RX ELRS, Crossfire ou Tracer.

Concrètement, ça permet de connecter une radio équipée d’un TX ELRS, Crossfire ou Tracer à un PC pour pouvoir faire du simulateur, sans s’embarrasser d’un fil entre la radio et l’ordinateur.
Dans cet article, seule et unique utilisation de ma CNC pour graver un PCB jusqu’ici, j’avais obtenu un résultat correct et fonctionnel, mais loin d’être parfait.

Cette nouvelle tentative est l’occasion de pousser cette technique un peu plus loin afin obtenir le meilleur résultat possible avec cette CNC, remettre à plat le process complet et identifier toutes les astuces et bonnes pratiques.

Cet article sera donc beaucoup plus long que le précédent, qui était assez minimaliste car je n’avais pas creusé davantage le sujet, je tâtonnais encore.

Les principaux axes d’optimisation mis en œuvre :

  • Graver beaucoup moins en profondeur (0.05 mm au lieu de 0.3 mm) afin d’avoir un résultat plus propre, plus rapide et de moins abîmer les embouts de découpe.
  • Utiliser une sonde pour l’axe Z afin de calibrer très précisément la hauteur
  • Faire un mapping de la surface de travail pour compenser les défauts de planéité
  • Utilisation d’une pointe javelot de qualité, dédié à la gravure de PCB
  • Calcul précis de la largeur des découpes, en fonction de l’outil, ses dimensions, angle et profondeur nécessaire
  • Utilisation d’huile de vaseline
  • Optimisation des versions des différents logiciels pour éviter les versions buggées
  • Ajout de libellés sur le PCB avec FlatCam (édition de géométrie, clic-droit…)
  • Tailles des trous et distinction usinage versus perçage
  • Vérifications
  • Liens tutos Youtube

La profondeur de gravure

Lors de mon premier essai, j’avais opté pour une profondeur de gravure de 0.3 mm. Ca fonctionne, mais graver une telle profondeur avec une petite CNC oblige à réduire drastiquement la vitesse, produit des gravures moins précises et provoque une usure prématurée des embouts. Avec des embouts de type pointe javelot, plus on va en profondeur, et plus le tracé de gravure est large (et on perd donc en résolution).

En général, sur les plaques époxy cuivrées, la couche de cuivre ne fait que 35 microns, soit 0.035 mm. Au lieu de graver à 0.3 mm, j’ai donc visé une profondeur de 0.05 mm, c’est suffisant pour retirer tout le cuivre en conservant une marge de 15 microns. Soit une division par 6 de la profondeur anciennement utilisée.

Evidemment pour atteindre une telle précision, il faudra régler parfaitement la CNC, c’est ce que nous verrons dans les parties suivantes.

Etalonnage de l’axe Z

Pour obtenir une profondeur précise au centième de millimètre, hors de question de déterminer le 0 de l’axe Z à l’œil nu ou à l’aide d’une feuille de papier comme j’avais pu le faire par le passé. Il va falloir utiliser une sonde.

Heureusement, c’est extrêmement simple ! La plupart des cartes de pilotage de CNC dispose d’un connecteur dédié à cette effet. C’est tout simplement une borne + et un GND. A l’aide d’une pince on connectera une de ces bornes à la plaque cuivrée (on pourra souder un bout de fil qui dépassera sur le côté pour se faciliter la vie), et une seconde pince, connectée à l’autre borne, viendra s’accrocher à l’embout de la fraiseuse (qui est conducteur).
Il ne reste plus qu’à lancer une instruction de « palpage » et la CNC va faire descendre lentement l’axe Z jusqu’à ce que le contact se fasse et soit détecté (le courant passant entre l’embout et la plaque cuivrée). Elle s’y prend à 2 fois, la seconde plus lentement, pour plus de précision. Il ne reste plus qu’à indiquer qu’il s’agit de la position 0 de l’axe Z.

Cartographie de la surface de travail

Mais avoir un « 0 » de l’axe Z bien étalonné au niveau de l’origine X,Y n’est pas une garantie suffisante : l’ensemble de la surface de travail peut présenter de légères variations, et quand 10 microns peuvent faire la différence entre une gravure réussi et une autre ratée, ça laisse peu de marge. Malgré un usinage du plateau de ma CNC pour obtenir une surface plane, je constate quand même des variations pouvant approcher le dixième de millimètre .

Une fois encore, le principe de sonde vient à notre rescousse, ainsi que le logiciel de pilotage de la CNC, en l’occurrence : Candle. Il propose une fonctionnalité de « Palpage surfacique » ou « surface mapping » : on indique le nombre de relevés que l’on souhaite faire sur l’axe X et sur l’axe Y, et il va construire une grille virtuelle sur notre surface de travail (un fichier doit donc avoir été chargé dans Candle, pour qu’il ait connaissance de la surface de travail à analyser). Une fois la résolution du palpage déterminée, on clique sur le bouton « Palper », et pendant quelques secondes/minutes, la CNC va faire des mesures aux différents points indiqués, ce qui permettra à Candle de construire une carte du relief de la surface de travail. On peut alors la sauvegarder sous la forme d’un fichier de paramètres de palpage.

Maintenant, avant de lancer un usinage, on prendra soin d’ouvrir ce fichier et lorsque l’on cliquera sur la case « Utiliser palpage surfacique », alors l’ensemble des instructions d’usinage sera modifié pour compenser les subtiles variations de hauteur de notre plan de travail. Petite astuce : il n’y a pas de bouton « Sauvegarder les paramétrages de palpage », en fait, il suffit de cliquer sur le bouton « Ouvrir » et automatiquement, Candle nous propose de sauvegarder les paramètres en cours (qu’on pourra rouvrir aussitôt).

Evidemment, plus on mettra de colonnes et de lignes pour notre grille de mapping, et plus la compensation des variations sera efficace. J’ai obtenu de très bons résultats en plaçant un point tous les 8 mm sur chaque axe.

Choisir des embouts adaptés et de qualité

Le premier point consiste à utiliser les embouts adaptés aux usinages que l’on souhaite faire :

  • Pointes javelot : il s’agit de pointes en forme de ‘V’, caractérisées par une largeur de bout de pointe ainsi qu’un angle. C’est l’outil idéal pour les gravures fines et précises, c’est celui qu’on utilise pour détourer les pistes sur nos PCB. Pour ce PCB, j’ai utilisé une pointe javelot de 0.1 mm à 30°.
  • Forêts : ils sont dédiés au perçage et seront utilisé pour traiter les plans de perçage qu’on souhaite appliquer sur nos PCB. La taille du forêt doit être adaptée à la taille des trous : si le PCB contient des trous de tailles variables, il faudra soit prévoir des fichiers de plans de perçage différents, soit intégrés des instructions de changement d’outil en cours de traitement.
  • Fraises : elles sont dédiées à l’usinage de la matière et ont un diamètre beaucoup plus important que les pointes javelot. On peut les utiliser pour découper nos PCB de leur plaque, mais on peut aussi s’en servir pour les perçages : plutôt que de devoir changer de forêt en fonction de la taille des trous, on peut opter de traiter le plan de perçage comme un usinage : une fraise du diamètre des plus petits trous permettra alors de traiter tous les trous du PCB. Les trous ne seront donc plus percés mais découpés.

Le second point concerne la qualité des embouts, tout particulièrement pour les pointes javelot. Suivant les conseils glanés sur différents tutos Youtube, j’ai opté pour les pointes javelot EVOMAX distribuées notamment par CNCFraises. Elles ont une excellente réputation, mais elles sont aussi nettement plus chères que les pointes « chinoises » que l’on trouve chez Amazon par exemple.

Calcul du diamètre des embouts

Dans FlatCam, lors du calcul des géométries, il faut fournir le diamètre de l’outil utilisé. Pour les forêt et les fraises, pas de subtilité, on connait le diamètre de l’outil. Mais pour les pointes javelot, c’est plus subtil.

Les versions récentes de FlatCam (>8.9) mettent à disposition, dans le menu « Outil/Calculators » un formulaire permettant de calculer facilement le diamètre de l’outil, en fonction des paramètres fournis :
Dans cet exemple, on voit que pour ma pointe javelot avec un embout de 0.1 mm et un angle de 30°, une gravure de 0.05 mm de profondeur équivaudra à un diamètre d’outil de 0.1268 mm.

A noter que que ce calculateur est également directement disponible depuis l’onglet « Isolation Tool » quand on générer la géométrie :
On peut aussi directement saisir à la main le diamètre de l’outil, sans même préciser qu’il s’agit d’une pointe en V, si on a fait le calcul au préalable.

Utilisation d’huile de vaseline

L’utilisation de lubrifiant permettra également d’obtenir un meilleur résultat, moins d’éjection de copeaux et moins de chauffe. J’utilise cette huile à base de vaseline, elle est assez visqueuse, aucun problème donc à l’étaler sur la surface de travail, elle ne coulera pas sur les bords.

Logiciels : FlatCam et Candle, la jungle des versions

Dans mon précédent article, j’avais utilisé des versions assez anciennes, en particulier de FlatCam (qui était encore très basique). J’ai fait pas mal de tests avec les dernières versions du moment, qu’il s’agisse de Candle comme de FlatCam, et je suis tombé sur quelques bugs très gênants.

La version 8.994 de FlatCam insère des instructions de changement d’outil (M6)… même quand aucun changement n’est nécessaire ! Les anciennes versions Candle ne supportent pas cette instruction. On pourra choisir le préprocesseur « GRBL_11_no_M6 » au moment de faire l’export du code CNC, mais ça continue de provoquer une pause côté Candle.

Attention également, dans les récentes versions de FlatCam, le changement d’outil est associé (par défaut) à une montée de l’axe Z de 30 mm (2 x 15 mm) ! Ca m’a provoqué des dépassements en force sur l’axe Z… Pour modifier ça, il faut cocher « Tool change Z » pour pouvoir modifier la valeur de 15 par une autre (0 ou 5 par exemple).

Pour ces raisons, je recommande de rester sur la version 8.993, en attendant la version 8.995 qui corrigera ce bug connu.

Côté Candle, c’est un peu le même souci ! La dernière version (1.2b) apporte son lot de nouveautés, et en particulier la gestion de l’instruction M6 pour le changement d’outil. Malheureusement, elle introduit aussi un bug : après un palpage de surface, si on clique sur la flèche permettant de monter l’axe Z (réglage Pas : « Continuously »), ce dernier se met à monter à l’infini (jusqu’à 30 cm par défaut il me semble). Une solution pourrait être d’insérer un micro déplacement après une instruction de palpage. Mais j’ai préféré rester sur la version 1.1.7 qui fonctionne très bien et ne pose aucun problème avec FlatCam en version 8.993.

Côté GRBL, je n’ai pas retouché au firmware de ma CNC, il est bien configuré, je ne touche plus à rien 😉 Je suis toujours en version 1.1f. Depuis, une version 1.1h est sortie, mais ne propose rien d’utile pour moi (essentiellement des corrections de bugs mineurs).

Gravure de libellés avec FlatCam

FlatCam permet d’insérer du texte sur nos PCB. La fonctionnalité est très peu ergonomique, et uniquement accessible en mode Edition d’une géométrie. L’insertion de texte ne fonctionne que via un clic droit sur le plan de travail. Ensuite, son déplacement/réorientation ne semble fonctionner qu’avec les boutons de la barre de menu.

Il ne faut pas trop en attendre, mais ça fonctionne.Je n’ai pas contre pu créer que des contours de texte, et non graver des textes.

Personnalisation des réglages FlatCam

L’utilisation de ce genre de logiciel nécessite d’entrer une quantité énorme de paramètres (vitesses, profondeurs, diamètres…). FlatCam permet de modifier toutes les valeurs par défaut de l’application, pour se faciliter la vie et ne pas être obligé de toute modifier à chaque fois. Il faut passer par le menu « Edit » et cliquer sur « Preferences ».

Voici des captures de mes réglages par défaut pour les préférences Générales, GERBER, EXCELLON, GEOMETRY, CNC-JOB, TOOLS, TOOLS2.

Globalement, ce qu’il faut en retenir :

  • Pour les pistes, je m’y reprends entre 3 à 5 passes (selon la largeur de contour souhaitée), avec un overlap de 40%, sur une profondeur de 0.05 mm et à une vitesse de 100 mm/s sur les axes X et Y, et 25 mm/s sur l’axe Z. Un dégagement de 2 mm  sur l’axe Z, pour les déplacements « travel ». J’ai limité à 5 mm les valeurs pour le Toolchange Z et le End move Z, pour éviter que l’axe Z ne remonte au delà de sa limite. Vitesse moteur à 10 000 tr/min.
  • Pour les découpes à la fraise, je m’y prends en plusieurs passes de 0.5 mm (de profondeur) avec une vitesse de 50 mm/s sur les axes X et Y, le reste des paramètres est identique. Pour couper une plaque époxy de 1.6 mm, il faut donc compter 4 passes.

Récapitulatif du process

Récapitulatif des principales étapes suivies pour aboutir au PCB affiché en début d’article :

  1. Création des composants électroniques nécessaires dans DipTrace
  2. Conception du schéma électronique dans DipTrace
  3. Création de l’agencement du PCB dans DipTrace
  4. Export au format GERBER des pistes et des pads, en millimètres. Attention à bien définir le même origine pour tous les exports ! On cochera le mode « miroir », pour inverser le PCB.
  5. Eventuellement exporter au format GERBER le contour de la carte.
  6. Export au format EXCELLON du plan de perçage, toujours en millimètres, avec le même origine et le mode miroir.
  7. Importation dans FlatCam des fichiers GERBER et EXCELLON (s’assurer de toujours être en millimètres)
  8. Dans FlatCam, création des objets de géométrie pour les contours de pistes, perçage des trous et découpe du PCB
  9. A partir des objets de géométrie, créer les jobs CNC
  10. A partir des jobs CNC, exporter les fichiers d’instructions pour la machine CNC
  11. On allume la CNC, on la connecte et on peut lancer Candle. On aura au préalable bien fixé la plaque époxy sur un plan de travail aussi plat que possible. En plus des 4 vis pour tenir la plaque, je mets du scotch double-faces fin sous la plaque époxy. On aura également installé la pointe javelot.
  12. On déplace la pointe sur les axes X et Y vers l’origine de notre plan de travail que l’on souhaite définir et on valide ce point comme l’origine (0) de ces axes. Cet origine X,Y est gardé en mémoire pendant toute la durée de la gravure, il ne faudra en aucun cas redémarrer la CNC ou Candle.
  13. On installe les fils de sonde : l’un sur la pointe javelot, l’autre sur la plaque de cuivrée.
  14. On peut lancer le « probing ». Une fois la hauteur de la plaque détectée sur l’axe Z, on définit ce point comme étant l’origine (0) de notre axe Z.
  15. On ouvre le premier fichier d’instructions CNC (les contours de pistes) dans Candle
  16. On réalise le mapping de la surface de travail (palpage surfacique) et on sauvegarde ce fichier (il nous servira pour toutes les passes à venir).
  17. On ouvre à nouveau le fichier de palpage surfacique et on coche bien la case pour l’appliquer sur les instructions chargées dans Candle (les corrections sont appliquées en une fraction de seconde).
  18. On badigeonne la plaque époxy cuivrée avec de l’huile de vaseline
  19. On lance la gravure des pistes !
  20. Quand cette première étape est terminée, on ouvre le fichier correspondant aux perçages des trous.
  21. On remplace la pointe javelot par un forêt ou une fraise.
  22. La hauteur de l’outil ayant changé, on remet l’embout de perçage à l’origine des axes X et Y, et on refait un probing de la hauteur pour redéfinir le 0 de l’axe Z.
  23. On ouvre à nouveau de fichier de palpage surfacique et on l’applique aux instructions en cours en cochant la case. Puis on lance le traitement de perçage
  24. Quand cette étape est terminée, on ouvre le fichier correspondant à la découpe du PCB.
  25. On remplace l’embout par la fraise appropriée (si elle est différente de celle utilisée pour le perçage).
  26. Si la fraise est différente, on procède à nouveau au calibrage de l’axe Z.
  27. On ouvre à nouveau le fichier de paramètre du palpage surfacique et on l’applique aux instructions en cours en cochant la case. Puis on lance le traitement de la découpe.
  28. Le PCB est terminé, on le nettoie d’abord sous l’eau, puis on le frotte avec une brosse à dents et de l’alcool isopropylique.
  29. Uniquement si nécessaire, on peut passer un petit coup de papier de verre très fin, si la gravure n’est pas parfaitement propre (et renettoyer dans la foulée).
  30. On vérifie la qualité des pistes, à l’œil dans un premier temps, puis au multimètre en faisant tous les tests de continuité possibles, pour s’assurer qu’il n’y a aucun pont entre 2 surfaces cuivrées.
  31. Un bain de 2-3 minutes dans une solution d’étain chimique à froid permettra d’obtenir un étamage propre et rapide facilement.
  32. On peut maintenant souder nos composants et éventuellement passer un coup de vernis de tropicalisation pour assurer une plus grande durabilité à notre PCB.

Vérifications et finitions

Comme indiqué dans le récapitulatif, l’étape de vérification est très importante. Avant d’utiliser le PCB, il faut s’assurer que toutes les pistes/pastilles sont correctement isolées, le plus simple est d’utiliser un multimètre en faisant des tests de continuité.

Pour un résultat plus propre et durable, on peut procéder à un étamage du circuit (étamage chimique à froid par exemple) puis à une tropicalisation de l’ensemble, une fois tous les composants soudés.

Tutos Youtube

J’ajoute quelques tutos de qualité glanés sur Youtube :

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *