Partagez vos projets : automatisations KiCad et jolis rendus

J'ai un assez grand référentiel GitHub, avec toutes mes cartes en open source. Maintenant, je suis enfin confronté à son problème majeur : il peut être inconfortable pour les autres de travailler avec lui. Je ne stocke pas les fichiers Gerber dans le référentiel car cela interférerait avec le fonctionnement de Git – vous êtes censé n'avoir que des fichiers sources dans le référentiel. Pourtant, lorsque quelqu'un a besoin de Gerbers pour mon PCB, ou d'un PDF schématique, ou simplement pour voir à quoi ressemble la carte avant de cloner l'intégralité du référentiel, je n'ai souvent pas de bonne option pour lui.

D'après mon expérience de hacker, pouvoir trouver les PCB des autres sur GitHub est tout simplement merveilleux, mais un référentiel de PCB sans README semble stérile, et un PCB README sans images me rend triste. D’un autre côté, ne pas générer automatiquement ces fichiers est inconfortable – mettre à jour une image à chaque fois est notamment un inconvénient majeur.

Jetons un coup d'œil à quelques intégrations KiCad Git et voyons ce qu'elles ont à offrir.

kicad_cli

Nous avons mentionné kicad_cli lors de la sortie de Kicad 7, et dans le KiCad 8 récemment publié, il est devenu encore plus puissant. Avant, il pouvait effectuer des gerbers et des PDF schématiques, mais maintenant, il peut même effectuer des vérifications DRC, ce qui est idéal si vous souhaitez ajouter un hook pour les demandes d'extraction que vous pourriez rencontrer.

Lorsque vous mettrez à jour vers KiCad 8, vous obtiendrez quelques nouvelles commandes intéressantes dans cette liste !

L'avantage de kicad_cli c'est qu'il est extrêmement simple à ajouter : tout ce que vous avez à faire est d'installer KiCad à partir d'un PPA dans votre flux de travail, puis d'exécuter kicad_cli sur vos fichiers. À quelle vitesse ? Eh bien, voici un makefile KiCad qui vous permet d'exécuter make pcb dans votre ligne de commande – vous n'avez même plus besoin d'ouvrir KiCad si tout ce que vous voulez, c'est Gerbers ! C'est aussi assez rapide.

Il existe cependant des limites. D’une part, il ne peut pas générer d’images – dans KiCAD v8, il a acquis la possibilité d’exporter des modèles 3D, mais ceux-ci n’ont ni cuivre ni sérigraphie. Plus, kicad_cli est assez limité dans les options qu'il prend en charge – si vous souhaitez modifier les paramètres d'exportation du modèle 3D, vous constaterez peut-être que la case à cocher nécessaire n'est pas exportée en tant qu'option de ligne de commande.

Donc, pour mes propres besoins, pur kicad_cli ne le fera pas – je veux que les gens aient des images de tableau, de préférence, de la même manière qu'ils en obtiendraient une s'ils ouvraient une visionneuse 3D. De plus, je souhaite pouvoir personnaliser la sortie. Heureusement, il existe un géant de l'intégration KiCad que nous pouvons utiliser, que vous avez peut-être déjà vu

KiKit

Vous avez peut-être vu KiKit être utilisé pour la panélisation en tant que plugin d'éditeur de PCB avec un joli bouton de barre d'outils, mais saviez-vous qu'il peut également générer des fichiers personnalisés par le fabricant pour vous ? Ou que vous pouvez l'exécuter depuis la ligne de commande ? Ou qu'il peut même vous aider à générer des images de tableau, soit en SVG, soit en exportant des captures d'écran de la visionneuse 3D ?

J'ai réalisé pour la première fois que KiKit pouvait être utilisé pour l'intégration lorsque j'ai je suis tombé sur un tweet montrant comment le projet epdiy rend ses sorties KiCad accessibles sur une page Web générée automatiquement – ​​générant des fichiers Gerber et même exportant le modèle STEP. Cela semblait idéal et j’ai commencé à chercher ce qui se passait. J'ai trouvé des choses géniales et des choses horribles, commençons par les plus belles.

C'est à quel point il est simple de générer automatiquement des éléments pour votre référentiel : il s'agit d'un workflow GitHub prêt à l'emploi. Vous pouvez probablement obtenir les fichiers de flux de travail pertinents de ce dépôt dans votre dépôt dès maintenant et générer automatiquement de belles exportations à chaque validation dans un délai d'une heure. Les Gerbers sont merveilleux, tout comme les PDF et les STEP, mais en particulier, encore une fois, je m'intéresse aux images – celles-ci doivent être présentes, et ce sont les plus difficiles à régénérer.

Dessin de carte PCB

Il existe deux façons de générer des images, toutes deux via un outil Pcbdraw écrit par le créateur de KiKit. L'un d'eux est plus schématique mais nécessite un certain effort de votre part, et une autre méthode crée un rendu jpeg de visionneuse 3D parfait mais nécessite un sacrifice de sang. Commençons par la première, la méthode pcbdraw plot.

Cette méthode de rendu crée un fichier SVG pour votre carte, complet avec sérigraphie, traces et tampons – bien plus agréable que de numériser un modèle 3D à partir de kicad_cli sortir. Cependant, tous les composants auxquels vous pourriez vous attendre seront manquants – vous devez également disposer de SVG pour vos composants, ils ne seront pas seulement présents. Il existe des bibliothèques SVG, mais en général, attendez-vous à devoir travailler dans Inkscape si vous voulez que le diagramme ressemble à la carte la plus nue que vous obtenez en usine.

Cependant, je dois dire que vous ne devez pas vous éloigner du chemin de la lumière et que vous devriez vraiment envisager d'investir des efforts dans la génération de « pcbdraw plot ». D'une part, c'est très sympa : les SVG sont peu encombrants, ils sont faciles à intégrer, à restituer, à modifier et à convertir. Le « pcbdraw plot » a même une commande pour générer un manuel d'assemblage pour vous, n'est-ce pas cool ? Et sûrement, vous pourriez également y ajouter de jolies flèches de diagramme de brochage avec un peu de modification SVG ?

La chose la plus importante, cependant, est que votre autre option est « pcbdraw render », et ce n'est pas très facile. C'est celui qui crée des images 1:1 dans la visionneuse 3D, et étant donné que kicad_cli n'a pas une telle option d'exportation, vous pourriez deviner qu'il s'agit de magie noire – votre indice principal étant que la génération des images prend entre 30 et 150 secondes.

Oui, les barres noires font parfois (au hasard) partie de l'image exportée. Pourtant, j’aime que cette méthode existe.

Il n'y a pas de bonne façon de dire cela – `pcbdraw render` ouvre l'éditeur de PCB KiCad dans une fenêtre d'affichage virtuelle, analyse les en-têtes de fenêtre ouverts pour déterminer si l'éditeur de PCB a déjà chargé le PCB, envoie aveuglément les mouvements du clavier/souris avec xdotoolpuis exporte l'image de la fenêtre de la visionneuse 3D, recadrée avec Pillow Magic.

Si vous rencontrez un problème, j'espère que vous êtes suffisamment fort d'esprit pour le déboguer. Pour moi, c'est le seul moyen viable, car mon référentiel compte environ 200 tableaux et plus, et rester devant Inkscape est un temps que je n'ai pas.

Mon ami et moi, qui est une sorcière Docker, travaillons actuellement à la création d'une intégration monorepo-viable pour générer des fichiers de sortie PCB, et nous espérons la publier bientôt – chaque fois que nous le ferons, vous pourrez également mettre toutes vos cartes dans un seul référentiel et faites apparaître de jolies images comme par magie dans vos README.

En attendant, j'espère que ce résumé ainsi que les liens d'intégration et de script pourront vous aider dans votre propre publication sur forum. Vous savez maintenant ce qu'il faut pour générer automatiquement une image de carte ou un fichier Gerber .zip à chaque fois que vous effectuez une validation dans votre référentiel, et c'est peut-être le meilleur moment pour envisager de rendre votre référentiel de PCB plus accessible.

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.