Sortie de Kicad 6, la référence libre pour la CAO électronique

Posté par  . Édité par pulkomandy, martoni, palm123, vmagnin, Yves Bourguignon, cg, Ysabeau 🧶 🧦, BAud, M5oul et TheBreton. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
Étiquettes :
68
13
jan.
2022
Do It Yourself

Kicad est une suite logicielle de conception de cartes électroniques assistée par ordinateur. Le projet Kicad a été initié en 1992 par Jean-Pierre CHARRAS, un professeur d’IUT à Saint-Martin-d'Hères (Grenoble) et chercheur au feu LIS (Laboratoire des Images et des Signaux de Grenoble).
À l’origine, c’était un projet pour que l’auteur puisse apprendre le langage C++. Et comme il le disait sur l’ancien site de Kicad : maintenant il connaît le C++ :).

La suite logicielle comporte tout ce qui est nécessaire pour concevoir le PCB d’une carte électronique :

  • la saisie de schéma avec Eeschema,
  • le placement et le routage des composants avec PcbNew,
  • la génération des fichiers nécessaires à la production, à l’assemblage et au test des circuits : fichiers de fabrication Gerber, liste de composants, « netlist » indiquant comment ils sont connectés,
  • et même un logiciel de visualisation 3D des cartes nommé 3D viewer qui exporte dans des formats industriels de 3D pour l’intégration de la carte dans le produit.

Sommaire

Les images et captures d’écran de cette dépêche proviennent de la note de version de Kicad 6 et sont sous licence Creative Commons CC-BY 3.0 ou GPL 3.0 au choix

Pendant très longtemps, Kicad a eu la réputation d’un logiciel complet pour concevoir des cartes électroniques simples, mais réservé à un public de bidouilleurs ou de simples passionnés. La partie routage devait être réalisée entièrement « à la main », ce qui rendait la conception de cartes complexes vraiment fastidieuse. Sans compter les crashs réguliers du logiciel.

L'éditeur de schématiques de Kicad

Jusqu’en 2006, le projet était développé uniquement par Jean-Pierre Charras et ses étudiants, avec les sources diffusées sous forme d’une archive tar, sans gestionnaire de versions (on en parlait déjà chez Linuxfr en 2005). Ce n’est qu’à partir de 2007 que certains utilisateurs l’ont convaincu de créer un projet SourceForge pour pouvoir gérer les contributions externes. Par la suite, le code a été retravaillé pour harmoniser le formatage, traduire les commentaires du français vers l’anglais, mettre en place un système de compilation basé sur CMake, mettre en place Doxygen

Les premières versions de Kicad n’avaient pas de routeur automatique et il fallait positionner toutes les pistes à la main. Par la suite, le service en ligne Freeroute a été intégré dans Kicad, mais il a ensuite disparu suite à des problèmes de licence.

Depuis 2012, le CERN s’est intéressé à ce logiciel, et a mis des employés à disposition pour l’améliorer.

Le CERN a adapté Kicad pour ses propres besoins, en particulier en ajoutant des outils pour router des pistes en paires différentielles. Il s’agit de pistes qui doivent avoir la même longueur et respecter d’autres règles, pour transporter des signaux résistant mieux aux interférences. Les paires différentielles sont utilisées par exemple pour l’USB, l’Ethernet, et de nombreux autres protocoles nécessitant des signaux à haute fréquence. Ces changements ont été publiés dans la version 4 (et on en parlait encore chez Linuxfr) avec un gros travail sur l’éditeur de PCB : nouveaux modes d’affichage utilisant Cairo ou OpenGL, routage des pistes push and shove qui permet de déplacer automatiquement plusieurs pistes pour faire de la place pour en router une supplémentaire, etc.

Après la publication de cette version, en 2017, Eagle (un logiciel concurrent très populaire chez les amateurs, car il existait une version gratuite limitée) a été racheté par Autodesk qui a mis en place un système de licence par abonnement (avec durée limitée, et connexion obligatoire au serveur de licence au moins tous les 15 jours). Cela a poussé de nombreux utilisateurs de Eagle à migrer vers Kicad, et la version 5 de Kicad permet d’importer directement les projets Eagle pour faciliter cette migration.

Au même moment, Digi-Key (un revendeur de composants électroniques) a commencé à soutenir financièrement Kicad, d’abord avec le rachat du nom de domaine kicad.org (qui appartenait auparavant à un cybersquatteur), puis avec un sponsoring du projet.

Aujourd’hui, Kicad permet la réalisation de circuits complexes (jusqu’à 64 couches superposées) et la plupart des fabricants de composants électroniques fournissent directement les empreintes de leurs composants dans le format utilisé par Kicad, facilitant ainsi l’utilisation de ces composants.

Un exemple de projet assez complexe : certaines cartes électroniques des ordinateurs Thelio de System76 sont conçues avec Kicad (les fichiers sont publiés sur leur compte GitHub). Il est possible que d’autres entreprises conçoivent leurs cartes mères avec, mais sans le crier sur tous les toits.

La visionneuse 3D de Kicad en mode raytracing (observez le reflet des composants sur le PCB)

Nouveautés de la version 5

Il n’y a pas eu de dépêche sur Kicad 5, alors faisons un petit rattrapage des nouveautés :

  • Migration de bazaar vers git pour la gestion des sources. Utilisation de Github pour les dépôts Git d’empreintes de composants et de symboles (mais pas pour le code source)
  • Intégration avec ngspice pour la simulation électrique des schémas.
  • Nombreuses améliorations dans l’éditeur de schémas (recherche par regexp dans la bibliothèque de composants, alignement automatique des labels avec les composants correspondants, possibilité de tracer des lignes avec différentes couleurs et motifs…)
  • Mise à jour directe de l’éditeur de PCB à partir du schéma, sans passer par un fichier netlist intermédiaire.
  • Mise en surbrillance d’un net avec tous les composants connectés, synchronisé entre l’éditeur de schémas et l’éditeur de circuit imprimé.
  • Réécriture du visualiseur 3D avec support du ray-tracing pour des rendus plus réalistes, et aussi avec l’import et l’export de modèles 3D au format STEP. Le format STEP permet par exemple d’importer le modèle 3D du circuit (avec les composants) dans FreeCAD pour concevoir le boîtier qui ira autour.
  • Réécriture de l’éditeur de bibliothèques de symboles qui permet plus facilement de copier un composant d’une bibliothèque vers une autre, renommer un symbole, et éditer sa représentation graphique.
  • Pads rectangles avec des coins arrondis.
  • Étalement automatique des composants lors de la création d’un nouveau PCB.
  • Vue en miroir dans l’éditeur de PCB (pour voir le dos de la carte à l’endroit).
  • Antialasing du rendu OpenGL et possibilité d’afficher des couches du circuit imprimé de façon partiellement transparente (pour voir les autres couches en dessous).
  • Export des PCB en GERBER X2.
  • Affichage des clearances lors du routage push and shove.
  • Amélioration des bibliothèques de symboles, d’empreintes de composants, et de modèles 3D.
  • Migration du visionneur de fichiers GERBER (fichiers de production de circuits imprimés) vers OpenGL.

La version 6

Cette version est finalement sortie en avance pour noël. Après la version 6, la date de sortie sera calée sur le salon du FOSDEM. L’idée est de sortir la version majeure le 31 janvier et d’ouvrir la fenêtre des nouvelles fonctionnalités (feature merge window) pour la version suivante le 1ᵉʳ février.

Quelles sont donc ces nouvelles caractéristiques intégrées dans la version 6 ?

Exemple de pistes en arc de cercle et de zone hachurée

  • Migration de Github et Launchpad vers Gitlab pour avoir tous les dépôts Git au même endroit et pouvoir accepter les contributions par "merge requests" (ce n’est pas possible sur Launchpad)
  • Changement des icônes et harmonisation de l’interface des différents outils.
  • Refonte du format des fichiers schématique (cela avait déjà été fait pour les fichiers PCB). Le nouveau format permet d’inclure les symboles de composants utilisés directement dans le fichier, évitant les problèmes si la bibliothèque de symboles utilisée n’est plus disponible.
  • Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets).
  • Amélioration de l’impression (en utilisant Cairo).
  • Suppression de l’ancien moteur de rendu graphique (il y avait deux moteurs utilisables en parallèle dans Kicad dans les versions précédentes, le nouveau étant plus rapide, mais il manquait certaines fonctionnalités). Utilisation du nouveau moteur pour l’éditeur de schématique permettant de nouvelles fonctionnalités: attribuer une couleur à un net (ensemble de fils connectés ensemble), groupement de signaux dans un bus
  • Dans l’éditeur de PCB: colorisation de chaque piste avec une couleur différente, masquage de parties du ratsnest (marqueurs indiquant les parties du circuit qui n’ont pas encore été connectées), sauvegarde de presets de l’éditeur (pour se rendre facilement dans une zone spécifique du PCB), configuration de l’opacité de l’affichage pour les pistes, vias et pads séparément.
  • Possibilité d’avoir des pistes en arc de cercle et pas seulement en ligne droite, des zones de remplissage hachurées.
  • Amélioration et optimisation du routeur push and shove
  • Dans la visionneuse 3D, mise en surbrillance en temps réel des éléments sélectionnés dans l’éditeur de PCB
  • Un nouveau système pour définir les contraintes à vérifier pour le DRC (Design Rules Check) permettant d’avoir des règles s’appliquant à seulement certaines zones ou certains nets.

Kicad est désormais un logiciel de CAO « qui compte » dans le paysage de la conception électronique. Ce logiciel est pris en charge par la plupart des fabricants de PCB et de cartes électroniques. Soutenue par la fondation Linux depuis 2019, l’équipe de développement peut également compter sur des entreprises sponsors pour assurer sa pérennité et ses futurs développement.

Grâce au support des services de fabrication de PCB en ligne, c’est également devenu l’outil de prédilection de tous les bidouilleurs d’électronique. Il est aujourd’hui beaucoup plus facile et moins cher de faire une carte en quatre couches de qualité industrielle en la commandant sur internet que de faire soi-même un deux couches au perchlorure de fer et à la mini perceuse dans sa cave.

Aller plus loin

  • # Très bon !

    Posté par  . Évalué à 7.

    C'est effectivement un excellent outil que j'ai utilisé plusieurs fois et pas si compliqué à prendre en mains.
    Les deux points noirs qui le freine par rapport à la concurrence propriétaire sont le routage automatique (il faut passer par Freerouter externe en Java) et la bibliothèque de composants, il manque toujours celui qu'on cherche. C'est d’ailleurs le gros point for d'EasyEDA qui fournit la bibliothèque des composants qu'ils vendent.

    Je testerai cette nouvelle version pour voir s'ils ont bien amélioré ces points.

    • [^] # Re: Très bon !

      Posté par  (site web personnel) . Évalué à 5.

      … bibliothèque de composants, il manque toujours celui qu'on cherche.

      C'est un peu vrai, heureusement, kicad permet de créer ses propres composants.
      Est-il possible de fournir les composants que l'on a créés à la communauté ?

      • [^] # Re: Très bon !

        Posté par  . Évalué à 6. Dernière modification le 13 janvier 2022 à 20:58.

        Oh que oui, on peut !

        Le fait que le symbole d'un composant (pour le schématique) soit distinct du footprint (pour le circuit imprimé) permet de recombiner des variantes, et d'ajouter très simplement des composants qui utilisent des footprints courants.

        Par contre il faut faire attention à certains footprints, je me souviens être tombé sur des composants SOT-23 qui étaient à la mauvaise échelle. Bien sûr je m'en suis rendu compte au moment de souder les composants.

        En pratique, au fil des ans je me suis refait tous les composants que j'utilisais.

        • [^] # Re: Très bon !

          Posté par  . Évalué à 3.

          Oh que oui, on peut !

          De quelle manière ?

      • [^] # Re: Très bon !

        Posté par  (site web personnel, Mastodon) . Évalué à 5.

        Certains fabricants de circuits intégrés (par exemple microchip-atmel) fournissent maintenant les fichiers nécessaires pour leurs composants, dans plusieurs formats dont celui de kicad.

        Dans mon cas j'ai très rarement eu besoin de faire mes propres symboles et empreintes (mais je n'utilise pas des composants très exotiques).

    • [^] # Re: Très bon !

      Posté par  (site web personnel) . Évalué à 2. Dernière modification le 21 février 2022 à 09:52.

      Salut,
      tu utilises beaucoup le routage auto ?? Plus généralement, est-ce que c'est vraiment quelque chose qui est beaucoup utilisé le routage automatique dans le monde du pcb ?

      Les logiciels de traitement de texte sont à la rédaction ce que la 2CV est à l'automobile, une vieille voiture dont on se souvient avec nostalgie mais technologiquement dépassée

  • # Un super cadeau de Noël pour les makers

    Posté par  . Évalué à 5.

    J'utilise régulièrement Kicad depuis la version 4.0. Il n'a pas cessé de s'améliorer au fil des versions.
    Comme le dit l'auteur de l'article, au prix du PCB 2 couches trous métallisés sur internet, autant router proprement toutes ses bidouilles.
    J'ai juste un regret, la simulation est toujours aussi malaisée à utiliser :-(

  • # Potard à 11

    Posté par  . Évalué à 5.

    Pour avoir débuté l'électronique sur Eagle (par facilité via l'écosystème Sparkfun/Adafruit/Arduino à l'époque), puis migré sur Kicad 4 (par choix politique), je ne peux que percevoir les progrès énormes de version en version ! Bravo à toute l'équipe !

    Au passage, je remarque que l'AOP qui gère les dons est réglé sur un gain de 2 pour les dons faits avant le 15 janvier : https://donate.kicad.org/ .

  • # Erreur sur le dépôt des codes sources

    Posté par  . Évalué à 4.

    L'article montré concertant le git date de 2016. D'après le site, dans la section contribution, il faut utiliser l'instance Gitlab de Gitlab. Mais le git de Launchpad reste synchronisé.

    C'est un peu dommage, le site Gitlab est bloqué dans différents pays, dont celui de l'auteur de Harfbuzz qui nous permet à tous d'avoir des belles fontes, l'Iran, en raison des restrictions d'export US ajoutés par Trump. Ne pas oublier que c'est un Persan du IXe siècle, Al-Khuwārīzmī, qui à inventé les algorithmes, et que ce sont les Persans qui ont transmis les chiffres indiens (que l'on appelle arabes) aux Arabes et qui ont, avec les arabes modernisés les mathématiques avant de nous les transmettre. Un Framagit ou autre instance d'une forge comme Gitlab, Sourcehut, Gitea ou Pagure auraient sans doute été mieux.

    Les États-Unis sont en train de se tirer une balle dans le pied avec ces restrictions. Les pays restreints ne leurs fournissent plus de matières premières. De plus leur produits ne sont plus prioritaires dans les chaînes de production, maintenant que l'énergie devient rare, depuis le passage du pic pétrolier en 2008… Du coup plus de production chute complète des exportations (la restriction des exportations fonctionne doublement du coup ).

  • # Coquille

    Posté par  (site web personnel) . Évalué à 3.

    s/Antialising/Antialiasing

  • # changement d'outils…

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    Si une des parties prenantes est présente ici (quoique ça peut se faire sur un autre site aussi, auquel cas je prends volontiers le lien), j'aimerais bien un retour du passage de Bazaar vers Git.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # Pour débutants aussi

    Posté par  . Évalué à 10.

    Bonjour,

    Un mot pour partager mon expérience avec Kicad. J'ai débuté mes œuvres (un bien grand mot !) avec Fritzing pour jouer avec l'Arduino. Rapidement ses limites ont été un problème. Kicad s'est imposé comme l'alternative Open Source disponible sur ma distri (Mint).
    Je ne suis pas du tout électronicien et crée mes PCB à partir d'informations récupérées sur le web et compilées dans un projet. En résumé : je ne maîtrise pas tout ;-) Il m'a fallu suivre les tutoriels d'un professeur d'IUT sur Youtube pour appréhender les concepts et me débrouiller dans Kicad. Cela a pris quelques heures. L'apprentissage est donc assez simple. Connaissant FreeCAD j'ai aussi créé quelques vues de composants pour ma bibliothèque personnelle, ça se fait facilement aussi.
    Un grand merci aux personnes qui ont créé et maintiennent ce projet.

  • # Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)

    Posté par  (site web personnel) . Évalué à 1.

    Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)
    pas pigé !

    pour linux on n'utilise pas la même base de code. C++ compile sous linux ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.