Voici mon retour d’expérience sur la fabrication de PCB avec une CNC très abordable et des logiciels gratuits.

KiCad

Je ne vais pas m’étendre sur KiCad. Un article à lui seul ne permettrait que d’effleurer le sujet. L’objectif ici est de partager mes astuces pour un PCB réussi ! Au delà de tracer les pistes, la CNC va pouvoir effectuer les perçages et même découper le PCB à la forme et aux dimensions souhaitées. Le rêve quoi 🙂

Conception du PCB

Taille des pistes et des pastilles

Inutile de faire dans la dentelle. La CNC n’est pas un outil de précision pour des découpes de piste de 0.2mm ! Elle ne va pas créer des pistes mais plutôt les délimiter. Puisqu’elle ne fait qu’enlever de la matière et qu’on ne maîtrise pas toujours parfaitement la quantité de matière enlevée : il faut y aller bourrin. Perso je fais des pistes de :

  • 2mm de large pour un circuit normal
  • 1.6mm de large si j’ai des composants SMD à intégrer

Pour cela : avant de commencer, aller dans le menu Fichiers > Options CI > Règles de conception > Contraintes.
Définir les paramètres:

  • Largeur minimum de piste : 2mm (ou 1.6mm)
  • Diamètre minimum pour via : 2mm

Note : je repasse aussi sur chaque composant de mon circuit afin que ses Pad soient les plus grosses possibles. Dans la mesure du possible je configure : 2mm pour le Pad avec un trou de 0.8mm.

Sens des composants

La CNC va découper la face cuivre vers le haut. En conséquence, vous allez tracer les pistes de la face cuivre. Si vous n’utiliser pas de composants SMD, n’oubliez pas de les changer de face avant de faire le routage sinon ils seront à l’envers !

Sélectionner les composants un par un, faire un clic-droit : Changer côté / Retourner

Forme du PCB

Si vous prévoyez de découper le PCB avec la CNC, utiliser la couche Edge.Cuts pour tracer le contour du PCB. C’est très important car cela va générer un fichier séparé dédié à la découpe.

Point de départ

Il faut aussi définir dès la conception le point de départ de la CNC. Pour cela, utiliser l’option : Placer le point origine pour fichier de perçage et placement des composants. Personnellement, je le place dans un coin, sur l’angle du trait de découpe du PCB :

Vérification des empreintes

Cela peut paraître évident, mais je vous invite à imprimer votre PCB afin de vérifier que vous avez mis les composants dans le bon sens et que vous avez choisi les bonnes empreintes pour vos composants. J’ai déjà eu de mauvaises surprises avec des nodeMcu 😉

Export des Fichiers

Maintenant on peut exporter nos fichiers. On va dans Fichiers > Fichiers de fabrication > Gerbers (.gbr)

Il faut s’assurer d’avoir coché les couches qui nous intéressent :

  • F.Cu
  • Edge.Cuts

Ainsi que cocher “Utiliser origine de perçage/placement” (très important pour Flatcam)

Puis on peut cliquer sur : Tracer

Ensuite, on clique sur : Créer Fichiers de Perçage.
Ici, on coche les paramètres:

  • Format du fichier de perçage : Excellon
    • Mode de perçage des trous ovale : Utiliser commande de fraisage
  • Utiliser origine de perçage/placement (très important pour Flatcam)
  • Format de fichier de plan : Gerber X2
  • Unités de perçage : mm

Et on finit en cliquant sur : Créer fichier de perçage

Et voilà. On a tout ce qu’il nous faut pour préparer la fabrication !

FlatCam

C’est un outil hyper complet pour créer des PCB. Pour son utilisation, j’ai commencé en suivant les instructions de cet article que je recommande : Milling Printed Circuit Boards (PCBs) on a Cheap CNC Machine : 19 Steps (with Pictures) – Instructables

On va procéder par étape. Chacune des 4 étapes va nous permettre de créer les fichiers GCODE que nous exécuterons:

  • Tracé des pistes
  • Perçage des trous de composants : un fichier par taille de trou (afin de changer de mèche)
  • Perçage des trous de support (mounting holes)
  • Découpage du PCB au dimensions

Mais avant de commencer, on va importer tous nos fichiers dans Flatcam.

On va dans le menu File > Open > Open Gerber

On sélectionne nos fichier F_Cu.gbr et Edge.Cuts.gbr. Les pistes s’affichent.
Ensuite, on va dans le menu File > Open > Open Excellon

On sélectionne nos fichiers PTH.drl et NPTH.drl. Les trous apparaissent à l’écran.

Tracé des pistes

On sélectionne le fichier F_Cu et on va dans l’onglet Properties > Isolation Routing

Ici on va utiliser une pointe en V. On laisse donc tous les paramètres par défaut sauf qu’on fera 3 passes :

  • Diamètre : 0.1
  • TT : V
  • Passes : 3
  • Overlap : 10%

Et on valide avec le bouton : Generate Geometry

Ici on définit les paramètres:

  • Spindle speed : 10000 (pour faire tourner le moteur au max)
  • End move Z : 20 (pour remonter la fraise afin d’avoir du jeu pour la changer)
  • End move X,Y : 0,0 (pour revenir au point de départ afin que le fichier suivant puisse profiter du même étalonnage / homing)
  • Preprocessor : default_no_M6

Et on valide en cliquant sur : Generate CNCJob Object

On termine le tout en cliquant sur Save CNC Code (qui va générer le GCODE)

Perçage des trous de composants : un fichier par taille de trou

Je vais faire percer les trous de composants par la CNC, sauf que tous les composants n’ont pas la même dimension de trous. On va donc générer un fichier GCODE par diamètre de trou. Vous allez voir, ce n’est pas plus compliqué 😉

Dans l’onglet projet, on sélectionne le fichier PTH.drl, puis on va dans l’onglet Proerties. Dans mon cas, on voit bien que j’ai plusieurs tailles à gérer (3).

Commençons par la première taille :

  • Cliquer sur Drilling Tool
  • Sélectionner les lignes en 0.8
  • Définir
    • Cut Z : 1.8 (épaisseur du PCB + 0.1mm)
    • Spindle Speed : 10000
    • Tool Z Change : 25
    • End move Z : 25
    • End move X,Y : 0,0
    • Preprocessor : Default_no_M6
  • Cliquer sur Generate CNCJobObject puis Save CNC Code. Donner un nom contenant la taille afin de le repérer : PTH_0-8

Revenir sur l’onglet Drilling Tool et recommencer l’opération pour chaque diamètre de trou souhaité. Au besoin, vous pouvez sélectionner plusieurs lignes afin qu’elles soient traitées en même temps

Perçage des trous de support (mounting holes)

Ici on adopte la même méthode que pout les autres trous. On va juste travailler avec le fichier NPTH.drl.

Découpage du PCB au dimensions

On sélectionne le fichier Edget_Cuts et on va dans l’onglet Properties. On clique sur Cutout Tool.

Renseigner les champs selons vos besoins:

  • Tool Dia : diamètre de la fraise utilisée pour la découpe. Dans mon cas : 2.4mm
  • Cut Z : épaisseur du PCB à découper + 0.1mm
  • Multi-depth : sert à découper le PCB en plusieurs passes. Et oui, ce n’est pas non plus une CNC professionnelle 🙂 Dans mon cas : coché avec une valeur de 0.6mm (ça fait 3 passes)
  • Automatic Bridge Gaps : L’idée ici est de laisser des pattes non découpées afin que le PCB ne bouge pas. La plupart des gens n’en utilisent pas car ils préfèrent scotcher le PCB sur la plan martyr. Personnellement j’utilise toujours les Gaps, mais je créé des Gap manuels quand mes PCB ne sont pas rectangulaires. Dans mon exemple : None (je vais créer les Gaps manuellement)

Ensuite je clique sur Generate Manual Geometry. Cela créé le tracé de découpe. Puis je clique sur Manual Add Bridge Gaps. Cela créé un rectangle sur l’écran qui me permet de cliquer le long de la ligne de découpe afin d’y placer mes Gaps.

Pour finir, je retourne sur l’onglet Properties pour finaliser les paramétrages:

  • Multi-depth : coché (0.3mm)
  • Spindle Speed : 10000
  • End move Z : 20
  • End move X,Y : 0,0
  • Preprocessor : Default_no_M6 (attention, si vous finissez par ce paramètre, reconfigurer le multi-depth qui vient d’être effacé)

On clique ensuite sur Generate CNCJob object

Puis sur Save CNC Code pour avoir notre GCODE.

Conclusion

On doit alors finir avec une comme celle-ci.

Il ne reste plus qu’à copier les fichier sur la CNC et se lancer.

Attention cependant :

  • Ne pas oublier où est le point d’origine que l’on a définit et configurer le homing de la machine au bon emplacement avant de commencer
  • Ne jamais changer les position X et Y entre les différents GCODE
  • Recalibrer le Z à chaque changement d’outil

Et maintenant : have fun 🙂

By Kevin

Leave a Reply

Your email address will not be published. Required fields are marked *