Voici l'article qui boucle la boucle, et que je voulais écrire depuis longtemps! Nous allons fabriquer le circuit imprimé dessiné sous KiCAD lors des dernières sessions.

Voici les étapes qui vont nous mener à un circuit opérationnel:

  1. Export du circuit au format Gerber (isolation, perçage et découpe)
  2. Importation des fichiers Gerber dans FlatCAM
  3. Traitement dans FlatCAM (miroir, manipulation de géométrie et export en G-Code)
  4. Ouverture des fichiers G-Code dans bCNC, mise à zéro, mise à niveau automatique.(Hum, désolé, ça c'est pour plus tard)
  5. Usinage

1. Export au format Gerber depuis KiCAD

Nous partirons de ce schéma:

image

Le format Gerber est le standard utilisé dans la production de circuits imprimés. Il contient la description des pistes, des textes, des perçages, et toutes les informations nécessaires à la fabrication du circuit.

Pour notre projet, nous allons exporter 3 fichier Gerber:

  • Contour des pistes
  • Perçages
  • Contour du circuit (pour la découpe)

Cliquons sur le bouton image

image

Comme je disais, nous n'exporterons que les pistes de la couche de cuivre (rouge, F.Cu) et les découpes (jaune, Edge.Cuts).

En haut, choisissons le répertoire de sortie, relatif au projet KiCAD (ici, gerber/), et cliquons sur le bouton [Plot] en bas de la fenêtre. Normalement, KiCAD nous a généré deux fichiers d'extension gbr.

Il ne nous reste plus que le fichier de perçage. Cliquons sur le bouton [Generate Drill File].

image

On va choisir le format Gerber, et les millimètres comme unité. Attention, ne pas cocher [Mirror Y Axis] !

Une fois que tout est prêt, cliquer sur [Drill File]

KiCAD a généré un fichier .drl dans notre répertoire, et c'est tout ce qu'il nous manquait! Nous pouvons passer à l'étape suivante :)

2. Import des fichiers Gerber dans FlatCAM

Si vous ne connaissez pas encore FlatCAM, c'est le bon moment! C'est un programme très puissant, même s'il est parfois un peu buggé lorsqu'il s'agit de manipuler les géométries. Mais pas de panique, je vais vous expliquer.

image
FlatCAM, brut de décoffrage

Nous allons importer nos trois fichiers (deux gbr et un drl):

  • File>Open Gerber, et sélectionner les deux fichiers gbr.
  • File>Open Excellon, et sélectionner le fichier drl.

Et voici où nous en sommes:

image

Ok donc là, FlatCAM affiche nos fichiers Gerber. Nous allons maintenant les manipuler pour pouvoir générer du G-Code (oui, c'est le but, faut pas l'oublier)

La première chose à faire, c'est de tout retourner, car le circuit sera gravé par en-dessous. FlatCAM a une fonction pour ça, qui s'appelle mirror. Alors nous allons déjà renommer les 3 fichiers dans FlatCAM, et vous comprendrez pourquoi.

Double-cliquons sur le 1er fichier, et changeons son nom par quelque chose de plus court, comme cuivre par exemple. Pareil pour les deux autres (decoupe, percage).

image

Si j'ai voulu donner des noms plus courts aux fichiers gerber, c'est parce que nous allons devoir effectuer une symétrie (miroir selon l'axe Y). Bah oui, nous devons graver le circuit à l'envers...

Pour appliquer la symétrie à nos 3 fichiers, malheureusement, pas de solution "cliquer ici". Nous allons utiliser la console de FlatCAM. Si elle n'est pas déjà visible en bas de l'écran, aller dans le menu Tool>Command Line.

Il y a une tapée de commandes disponibles (help pour avoir la liste).

> help mirror
Mirror a layer.
> mirror <name> -axis <X|Y> [-box <nameOfBox> | -dist <number>]
   name: Name of the object (Gerber or Excellon) to mirror.
   box: Name of object which act as box (cutout for example.)
   axis: Mirror axis parallel to the X or Y axis.
   dist: Distance of the mirror axis to the X or Y axis.

Nous allons symétriser nos 3 fichiers gerber avec la commande suivante:

mirror cuivre -axis Y
mirror decoupe -axis Y
mirror percage -axis Y

image

Ok, on a symétrisé nos objets, mais vous avez vu où ils sont maintenant?? On va repositionner tout ça aux alentours de (0,0) pour une question de... maniaquerie. Et de volonté de ne pas péter les outils au moment de l'usinage avec un retour à (0,0) aléatoire. Allez, +146 en X, et +108 en Y:

offset cuivre 146 108
offset decoupe 146 108
offset percage 146 108

Il ne se passe rien? cliquons sur le bouton [Replot] de la barre d'outils, et FlatCAM va redessiner l'affichage. Je parlais de bugs, c'en est un.

2.1 Génération de G-Code pour la gravure d'isolation

Superbe! Nous n'avons maintenant plus qu'à générer le G-Code pour fabriquer notre circuit imprimé.

Double cliquons sur l'objet cuivre dans la liste de gauche.

Les détails s'affichent.

image

Je ne vais malheureusement pas tout détailler car je suis une grosse feignasse. Les blocs qui nous intéresseront sont essentiellement Isolation Routing et Board Cutout.

Dans notre cas précis, nous allons ignorer Board Cutout, car nous avons une découpe assez tarabiscotée pour ce circuit. Mais sachez que cette commande permet de générer un tracé de découpe rectangulaire autour du circuit. C'est souvent suffisant.

Nous devons définir le diamètre de notre outil (ici, c'est une pointe de 0.4mm), et le nombre de passes d'isolation (en général je laisse une seule passe).

Une fois ces paramètres définis, cliquons sur [Generate Geometry] (le premier bouton, en bas du bloc Isolation Routing. Vous allez voir les pistes s'entourer de lignes rouges, éloignées de 0.2mm (le rayon de notre outil).

Retournons dans l'onglet Project. FlatCAM a créé un nouvel objet, cuivre_iso. Dans la terminologie de FlatCAM, c'est un objet de type géométrie. Il contient les lignes rouges en question.

image

Vous voyez le panneau de détails? On se rapproche du G-Code :)

Il faut indiquer la profondeur de gravure (Cut Z), la hauteur lors des déplacements rapides (Travel Z), la vitesse d'avance pour la gravure (Feed rate), et le diamètre de l'outil (Tool Dia.) On clique sur [Generate], et hop! Apparaissent des lignes bleues, qui représentent les traces réelles de l'outil.

Retournons sur l'onglet Project, et ô surprise, FlatCAM nous a généré un objet de type cnc : cuivre_iso_cnc.

image
On arrive au bout!

S'il n'y a rien à ajouter au début ou à la fin du fichier G-Code, il n'y a plus qu'à cliquer sur [Export G-Code], en bas, et enregistrer le fichier où bon vous semble.

2.2 Génération de G-Code pour le perçage

Wouuuhou! Bon, d'accord ça a l'air un peu long comme ça, mais c'était décrit en profondeur.

Passons au perçage. Z'allez voir, c'est plus rapide. On va revenir sur l'onglet Projet, et double cliquer sur notre objet percage.

image

FlatCAM nous affiche la liste des différents diamètres de trous utilisés dans le circuit (0.8mm, 1.0mm et 1.32mm).

Si vous vous en foutez et que pour vous, un trou c'est un trou, avec une taille unique, laissez les 3 lignes sélectionnées. Sinon, si vous voulez distinguer les diamètres et changer d'outil entre chaque série de perçage, il faudra sélectionner successivement les 3 lignes, et générer 3 objets cnc.

Pour la démo, on ne va pas se casser la nénette (oui, je suis toujours aussi peu courageux), et générer un seul objet cnc. Donc laissons les 3 tailles d'outils sélectionnées. Ajustons la profondeur de perçage (Cut Z, la hauteur pour les déplacements rapides (Travel Z) et la vitesse d'avance verticale (Feed rate), puis cliquons sur [Generate].

J'ai spoilé, je suis désolé. FlatCAM a généré un nouvel objet cnc: percage_cnc.

image
Et c'est kiki va générer un G-Code pour le perçage?

2.3 Une découpe un poil compliquée - manipulation de géométrie

Alors bon, cette partie, c'est seulement si on veut une découpe un peu tordue, comme celle de mon exemple. Sinon, passez votre chemin.

Parmi les fichiers Gerber, il y en a un qui s'appelle decoupe. Sélectionnons-le.

Disons qu'on veut l'attaquer avec une fraise de 1.5mm. On va précéder exactement comme pour générer la géométrie de l'isolation des pistes, sauf que le diamètre de l'outil sera de 1.5mm

image

J'avais prévenu que ce serait la merde... FlatCAM génère deux lignes: une à l'extérieur, et une à l'intérieur. Nous devons nous débarrasser de cette dernière.

Il faut pour cela sélectionner l'objet Géométrie créé (dans notre cas, decoupe_iso), et passer en mode Edit Geometry avec le bouton image. Les lignes rouges changent alors de couleur.

Le but de la manœuvre, c'est de dessiner un polygone entre les deux lignes rouges, et d'effectuer une union booléenne entre les 2 lignes rouges d'origine et ce polygone, pour ne conserver que l'extérieur. Oui, c'est un peu lourdingue, mais c'est la seule façon que j'ai trouvée pour arriver à mes fins. Si vous en avez une autre, je suis preneur!

Donc, une fois en édition de géométrie, cliquons sur le bouton image. Il s'agit ensuite de dessiner notre polygone entre les deux lignes de contour. Pour terminer le polygone, taper [Espace].

image

Une fois le polygone terminé, cliquer sur le bouton image pour rafraîchir la géométrie et quitter le mode édition. Mais pas de panique, on y retourne tout de suite.

Allez! Rebelote : image

La manip qui va suivre est un peu délicate pour cause de petit bug de sélection. On va zoomer à mort dans un coin de notre circuit, et cliquer sur le polygone que nous avons tracé précédemment. Il doit devenir noir.

image

Ensuite, appuyer sur Ctrl et cliquer sur le contour restant. Le reste devient noir.

image

Cliquer ensuite sur le bouton Polygon Union : image

Les deux lignes intérieures devient rouges.

image

Valider en cliquant sur image.

Notre géométrie est maintenant correcte!

image

Encore une étape et nous pourrons sauter au point 2.1 pour la génération du G-Code... Il faut créer des petits points d'attache (tenons, ou tabs en anglais), sinon notre circuit va voler à la fin de la découpe.

L'article est long hein... Je suis éreinté. Je voulais enchaîner sur bCNC mais je le ferai dans un prochain article.

Allez, on y va pour les tenons, dedieu dedieu!

Pour créer des tenons, il faut modifier encore un peu la géométrie précédente, en coupant la ligne à deux endroits.

Nous allons de nouveau éditer la géométrie decoupe_iso, et dessiner deux rectangles de 5mm sur la ligne, un en haut et un en bas.

image

On va revalider en cliquant sur le bouton OK en haut, puis retourner en mode édition. Maintenant, on va sélectionner le tracé du contour, puis le rectangle avec Ctrl. Les deux sont noirs? Ok. Allons dans le menu Drawing>Cut Path. Boum. FlatCAM a coupé notre contour. Il n'y a plus qu'à sélectionner le rectangle et l'effacer (touche - du clavier). Et pareil pour le tenon du bas.

image

Il suffit maintenant de refaire le point 2.1, en ajustant le diamètre d'outil, la profondeur, et en cochant éventuellement la case Multi Depth pour faire plusieurs passes de découpe (dans ce cas, indiquer la profondeur de chaque passe juste en-dessous).

Ouf! On a enfin fini!

Nous avons donc maintenant nos trois fichiers G-Code (gravure, perçage et découpe), et il n'y a plus qu'à les envoyer dans la machine avec bCNC. Mais ça, c'est pour un prochain article, parce que là, cet article est déjà trèèèès long et je suis au bout de mes forces :D

Article précédent Article suivant