Création de PCB avec une CNC (gravure à l’anglaise)

Nous y voilà, ma petite CNC étant maintenant 100% opérationnelle, je peux enfin m’attaquer à la gravure de PCB (circuits imprimés) « à l’anglaise ».

Avant d’entrer dans les détails, voici les grandes étapes du processus :

  • Conception du circuit électronique avec un outil de CAO
  • Modélisation de l’implantation des composants, toujours avec un outil de CAO
  • Export des pistes du circuit au format GERBER et du plan de perçage au format EXCELLON
  • Chargement des fichiers exportés dans FlatCAM, génération des géométries, génération des fichiers pour la CNC
  • Gravure du PCB avec un logiciel de pilotage de CNC (Candle)

Pour commencer, il a fallu choisir un projet, ce sera un logger (enregistreur) de température et d’humidité, avec les composants suivants :

  • Un capteur de température/humidité DHT22
  • Un écran OLED pour afficher le jour, l’heure, la température et l’humidité
  • Un lecteur de carte SD, pour enregistrer les relevés
  • Un module RTC pour garder l’appareil à l’heure
  • Un Arduino Nano pour piloter le tout

Première étape, le prototypage :

Ensuite on passe aux nouveautés (pour moi) : la conception du circuit avec un outil de CAO. Il a fallu en choisir un, ce n’est pas le choix qui manque : Eagle, KiCad, TinyCAD, DesignSpark… Mon choix s’est porté sur DipTrace : il est gratuit (avec une limitation en nombre de broches), dispose d’une communauté assez importante, mais surtout, il semble relativement intuitif pour un logiciel de ce type : le temps d’apprentissage n’est pas trop long.

Après quelques tutoriaux vidéos pour apprendre les bases (voir cette série de 7 vidéos et celle-ci sur la création de composants), je pouvais m’y mettre. J’ai commencé par créer les composants dont j’allais avoir besoin et créer le schéma électronique :

A partir du schéma électronique, DipTrace permet de créer le modèle d’implantation des composants. Théoriquement avec une CNC, on peut faire du double face, mais c’est vraiment délicat, commençons par du simple face. Dans DipTrace, pour désactiver la seconde face, il faut aller dans les réglages « Autorouter Setup », onglet « Settings », cocher « Use Priority Layer Directions » et ne garder que le layer « Top » (autre méthode ici).

Pour ce premier essai, j’ai utilisé des pistes de 0.8 mm de largeur. L’autorouter permet de faciliter l’agencement des composants. Mais il ne fait pas de miracles, en simple face, il faudra faire plusieurs essais et terminer les ajustements manuellement (ajout de straps…).

Une fois le schéma du PCB terminé, on peut l’exporter : un premier export du top layer en pouces, au format GERBER et un second export « N/C Drill » (Excellon) pour le perçage, toujours en pouces (on y reviendra dans la suite). Bien penser à exporter avec l’option « Miroir » (le « top » sera en fait le « bottom » de notre PCB).

Gerber View est un petit outil qui permet de vérifier les exports, histoire de s’assurer que les exports se superposent bien.

On peut maintenant passer à FlatCAM. Ce formidable petit logiciel Open Source permet de générer les fichiers G-Code pour la CNC à partir des exports de DipTrace. J’ai eu un bug lors de l’import des exports en millimètres avec le fichier de perçage. Pour le contourner, j’ai fait les exports en pouces, je les ai importés en pouces dans FlatCAM et enfin j’ai converti le fichier en millimètres.

J’ai suivi ce rapide tutorial pour comprendre les bases du logiciel. Les grandes étapes sont les suivantes :

  • On importe les fichiers Gerber et Excellon
  • Pour chaque modèle importé, on génère la géométrie correspondante, ce qui en gros, consiste à générer le contour des pistes et trous que la CNC devra tracer
  • A partir de chaque géométrie, on peut générer la couche pour la CNC
  • Enfin, on exporte les couches CNC en G-Code

Vu que c’est mon premier essai, j’ai utilisé des paramètres assez lents (ne connaissant pas vraiment les limites de ma machine). Voici les principaux paramètres utilisés (après avoir converti les unités du projet en millimètres) :

  • Pour générer la géométrie des contours : option « Isolation routing » choisir 0.2 mm pour le diamètre de l’outil (taille de ma fraise), nombre de passes = 1
  • Pour la géométrie des trous : dans « Create CNC job » indiquer Cut Z = -2.5 mm, Travel Z = 2.54 mm (hauteur pour les déplacements de la fraise), « Feed rate » = 10 mm/min. Puis dans « Mill holes », indiquer 0.8 mm pour le diamètre de l’outil (taille de ma fraise pour les trous). Sélectionner tous les trous et cliquer sur « Generate Geometry », ça permet de faire tous les trous avec le même foret.
  • Pour générer la couche CNC des contours : dans « Create CNC Job » indiquer pour « Cut Z » = -0.3 mm, « Travel Z »  = 2.54 mm, « Feedrate » = 50 mm/min, « Tool dia » = 0.2 mm, « Spindle speed » = 10000.
  • Pour les trous : dans « Create CNC job », indiquer « Cut Z » = 2.5 mm, « Travel Z » = 2.54 mm, « Feedrate » = 10 mm/min,  « Tool Dia » = 0.8 mm, « Spindle speed » = 10000.

Il ne reste plus qu’à générer les fichiers G-Code pour la CNC !

On a tout ce qu’il faut pour lancer la gravure 🙂 J’ai fixé le PCB avec du scotch double face (fin) :

Le PCB est bien calé, la gravure va pouvoir commencer !

Quand la machine a fini de graver le contour des pistes, j’ai remplacé le couteau de 0.2 mm par une fraise de 0.8 mm pour faire les trous. Ici pas d’astuce particulière : on n’éteint surtout pas la CNC (pour garder ses coordonnées), on remplace la fraise qu’on repositionne sur l’origine des coordonnées (X0 Y0 Z0) et on peut lancer le fichier suivant (pour le perçage des trous).

Et voilà ! C’est pas trop mal. Je suis très content de la qualité de la gravure, mais la prochaine fois, je ferai quelques ajustements dans mes réglages.

Je n’ai pas prévu d’étamage sur ce coup-là, mais j’ai mis une couche de vernis électronique en bombe.

Et… ça marche ! 😀

Le code source pour l’Arduino Nano est disponible ici.

Il y a un peu d’optimisation à faire pour être au top :

  • Mes pinces de serrage posent problème : les poignées sont trop grosses et bloquent le passage de l’axe Z (comme on le voit sur les photos, je les ai remplacées par des écrous). Il faut que je pense à des designs différents.
  • J’augmenterai un peu la taille des pastilles pour faciliter les soudures
  • Mais surtout j’augmenterai la largeur des contours avec une fraise plus large (l’autre option est de faire plusieurs passes, mais c’est plus long)
  • La fraise utilisée avait un angle de 45° et 0.2 mm de large à la pointe. Or avec un tel angle, et un usinage de 0.3 mm millimètres de profondeur, la largeur augmente trop. Conséquences : les pistes sont un peu plus étroites et leurs contours un peu plus larges. Pour faire des contours fins, il faut privilégier un angle plus petit (20°…).
  • En concevant mes composants, je leur ai assignés des trous de 0.8 mm alors que la plupart étaient en fait de 1 mm. J’ai pu rattraper ça rapidement avec une petite perceuse colonne.

Pour terminer, une courte vidéo de la CNC au travail :

4 réflexions au sujet de « Création de PCB avec une CNC (gravure à l’anglaise) »

  1. Ping : Logger de température et d’humidité | Le Labo : impression 3D, robotique et autres projets DIY (Arduino…)

  2. Steph

    Salut, tu obtiendras de bien meilleurs résultats avec une profondeur de gravure de 0.05mm et un outil javelot de 45° 0.1mm. le tout avec un peu de glycérine sur le PCB (cela ne coûte presque rien en pharmacie).

    Par contre le PCB doit être bien plaqué à la table, et cette dernière bien « plate » et horizontale. Le mieux étant qu’elle soit surfacée (La table) sur la machine elle même 🙂

    Puis avant de procéder à la gravure, procéder à un « auto nivelage avec ton soft de gestion CNC.

    Si possible, commencer par la gravure avec le tracé des perçages intégrés. Ainsi, lors du perçage le forêt attaque ra directement l’époxy et non le cuivre.

    Steph

    cnc-amateurs.fr

    Répondre
    1. LordGG Auteur de l’article

      Salut Steph,

      Merci pour ces conseils ! Effectivement, si je peux passer à 0.05mm de profondeur, je pourrai aller bcp plus vite et m’épargner bien des soucis 🙂 Je note aussi l’astuce de la glycérine !

      Mon plan de travail a bien été surfacé par la machine elle-même mais je n’ai malheureusement pas d’auto-leveling sur cette mini-machine. Il faudrait que je prenne le temps d’en ajouter un, ainsi que des end stop 🙂

      Merci!

      Répondre

Laisser un commentaire

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