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.
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.
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 ?
- 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
- Site officiel de Kicad (523 clics)
- Annonce de sortie de la version 6 (69 clics)
# Très bon !
Posté par Marcel4567 . É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 Pierre Jarillon (site web personnel) . Évalué à 5.
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 cg . É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 gpe . Évalué à 3.
De quelle manière ?
[^] # Re: contribuer aux bibliothèques
Posté par cg . Évalué à 5.
Pour faire court, avec une merge request sur le dépôt idoine, après avoir lu les conventions.
Il est aussi possible d'avoir sa bibliothèque non officielle et de la mettre à dispo ou non.
Kicad sait maintenant récupérer les bibliothèques depuis plusieurs dépôt Git.
[^] # Re: Très bon !
Posté par pulkomandy (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 Olivier LEMAIRE (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 xavier philippon . É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 cg . É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 tao popus . É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 GuieA_7 (site web personnel) . Évalué à 3.
s/Antialising/Antialiasing
[^] # Re: Coquille
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 4.
Corrigé, merci.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
# changement d'outils…
Posté par Gil Cot ✔ (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 Marsupilami . É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 Selso (site web personnel) . Évalué à 1.
pour linux on n'utilise pas la même base de code. C++ compile sous linux ;)
[^] # Re: Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)
Posté par Selso (site web personnel) . Évalué à 1.
Pour linux on n'utilise pas la même base de code ?
C++ compile sous linux !;)
Avec la ponctuation c mieux.
[^] # Re: Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)
Posté par cg . Évalué à 3.
Scandale ! C'est du FUD !
La preuve :
Plus sérieusement, il y a des outils écrits en Python, et le langage pour les extensions/plugins/scripts est en Python aussi.
[^] # Re: Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Et la pléthore d'applications en C++ pour Linux sont des faux mensongers ?
Sachant que je peux apporter la même preuve pour un source C aussi…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)
Posté par cg . Évalué à 2.
Pour C++, j'ai fait la démonstration rigoureuse que ça ne compile pas sous Linux. Concernant le C, chacun sait que c'est en fait de l'assembleur déguisé !
Ne te laisse pas berner par le lobby des BigMalloc ;) !
[^] # Re: Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)
Posté par Selso (site web personnel) . Évalué à 3. Dernière modification le 27 janvier 2022 à 18:45.
Merci pour la réponse je ne savais pas qu'il y avait un systèmes d'extension.
La première fois que j'ai entendu parler de ce logiciel c'était il y a 15-20 ans si mes souvenirs sont bons.
Cela m'avait impressionné : le mec il veut se mettre au C++ et il se fait un soft comme celui-là pour se faire la main. C'était hyper-fluide à l'époque.
Pour ton exemple, je dirais au contraire que tu démontres que ça compile :)
C'est ton code qui n'est pas compilable.
Peut-être que cet exemple serait plus dans l'objectif :
libtool: compile: g++ -DIN_LIBASPRINTF -DHAVE_CONFIG_H -I. -c autosprintf.cc - o .libs/autosprintf.o
./libtool: line 1128: g++: command not found
++
[^] # Re: Migration vers Python 3 et GTK 3 pour la version Linux (toujours à travers WxWidgets)
Posté par Selso (site web personnel) . Évalué à 1.
Désolé pour la ponctuation manquante, "I was multitasking" comme dirait mon manager :D
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.