Configration KiCad pour JLCPCB
KiCad est une suite de logiciel open source permettant de créer des schémas électroniques, mais aussi concevoir des circuits imprimés.
J’utilise cet outil depuis un moment maintenant et en tant que Hobbyist, je n’ai jamais été déçu. Pour mes usages, cet outil remplace sans problème des outils tels que Eagle (que j’ai eu sous licence hobbyist quelque temps).
JLCPB est une société permettant de produire des circuit imprimé de qualité à pris tout à fait raisonnable. Il y a pleins d’options disponibles comme par exemple :
- La couleur du PCB
- La finesse du PCB
- La finition ENIG ou HASL
- La possibilité d’avoir les broches dorées (pour les cartouches NES / SNES par exemple :p)
- La castellation
- Etc.
Ce post référence donc le paramétrage de KiCad pour qu’il soit compatible avec les pre-requis de JLCPCB. Nous allons voir deux configurations :
- La configuration du CRC (pour valider la conception d’un PCB sous KiCAD en conformité avec les contraintes de JLCPCB)
- La configuration à utiliser pour générer les fichiers nécessaire à JLCPCB pour créer vos PCB
Configuration CRC
Tout se pase dans le menu “Fichier” -> “Options CI…”.
Une fois dans ce menu, trois parties sont à traiter :
- Règle de Conception / Contraintes
- Règle de Conception / Classes d’Equipots
- Règle de Conception / Règles Utilisateur
Règle de Conception / Contraintes
Cette section règles les paramètres très généraux de KiCAD.
Voici le paramétrage conforme à JLCPCB :
Règle de Conception / Classes d’Equipots
Cette section règles les paramètres des pistes du schéma.
Voici le paramétrage conforme à JLCPCB pour la classe par défaut :
NOTE : Vous pouvez disposer de plusieurs classes différentes dans votre projet. Les valeurs mentionnées ici sont les valeurs minimale acceptées par JLCPCB.
Règle de Conception / Règles Utilisateur
Cette section permet d’ajouter des règles personnalisées.
Je propose ici un ensemble de règles personnalisées en complément de tout ce qui est déjà paramétré :
Et pour que vous puissiez faire un copier / coller :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
(version 1)
# Custom Design Rules (DRC) for KiCAD 8.0 (Stored in '<project>.kicad_dru' file).
#
# Matching JLCPCB capabilities: https://jlcpcb.com/capabilities/pcb-capabilities
#
# KiCad documentation: https://docs.kicad.org/master/id/pcbnew/pcbnew_advanced.html#custom_design_rules
#
(rule "Track width, outer layer (1oz copper)"
(layer outer)
(condition "A.Type == 'track'")
(constraint track_width (min 0.127mm))
)
(rule "Track spacing, outer layer (1oz copper)"
(layer outer)
(condition "A.Type == 'track' && B.Type == A.Type")
(constraint clearance (min 0.127mm))
)
(rule "Track width, inner layer"
(layer inner)
(condition "A.Type == 'track'")
(constraint track_width (min 0.09mm))
)
(rule "Track spacing, inner layer"
(layer inner)
(condition "A.Type == 'track' && B.Type == A.Type")
(constraint clearance (min 0.09mm))
)
(rule "Silkscreen text"
(layer "?.Silkscreen")
(condition "A.Type == 'Text' || A.Type == 'Text Box'")
(constraint text_thickness (min 0.15mm))
(constraint text_height (min 1mm))
)
(rule "Pad to Silkscreen"
(layer outer)
(condition "A.Type == 'pad' && B.Layer == '?.Silkscreen'")
(constraint silk_clearance (min 0.15mm))
)
(rule "Edge (routed) to track clearance"
(condition "A.Type == 'track'")
(constraint edge_clearance (min 0.3mm))
)
# JLCPCB restrictions ambiguous:
# Illustration: 0.2 mm, 1&2 layer: 0.3 mm, multilayer: "(0.15mm more costly)"
# This rule handles diameter minimum and maximum for ALL holes.
# Other specialized rules handle restrictions (e.g. Via, PTH, NPTH)
(rule "Hole diameter"
(constraint hole_size (min 0.2mm) (max 6.3mm))
)
(rule "Hole (NPTH) diameter"
(layer outer)
(condition "!A.isPlated()")
(constraint hole_size (min 0.5mm))
)
(rule "Hole (castellated) diameter"
(layer outer)
(condition "A.Type == 'pad' && A.Fabrication_Property == 'Castellated pad'")
(constraint hole_size (min 0.6mm))
)
# JLCPCB: "Via diameter should be 0.1mm(0.15mm preferred) larger than Via hole size" (illustration shows diameters for both dimensions)
# JLCPCB: PTH: "The annular ring size will be enlarged to 0.15mm in production."
(rule "Annular ring width (via and PTH)"
(layer outer)
(condition "A.isPlated()")
(constraint annular_width (min 0.075mm))
)
(rule "Clearance: hole to hole (perimeter), different nets"
(layer outer)
(condition "A.Net != B.Net")
(constraint hole_to_hole (min 0.5mm))
)
(rule "Clearance: hole to hole (perimeter), same net"
(layer outer)
(condition "A.Net == B.Net")
(constraint hole_to_hole (min 0.254mm))
)
(rule "Clearance: track to NPTH hole (perimeter)"
# (condition "A.Pad_Type == 'NPTH, mechanical' && B.Type == 'track' && A.Net != B.Net")
(condition "!A.isPlated() && B.Type == 'track' && A.Net != B.Net")
(constraint hole_clearance (min 0.2mm))
)
(rule "Clearance: track to PTH hole perimeter"
(condition "A.isPlated() && B.Type == 'track' && A.Net != B.Net")
(constraint hole_clearance (min 0.33mm))
)
# TODO: try combining with rule "Clearance: PTH to track, different nets"
(rule "Clearance: track to pad"
(condition "A.Type == 'pad' && B.Type == 'track' && A.Net != B.Net")
(constraint clearance (min 0.2mm))
)
(rule "Clearance: pad/via to pad/via"
(layer outer)
# (condition "(A.Type == 'Pad' || A.Type == 'Via') && (B.Type == 'Pad' || B.Type == 'Via') && A.Net != B.Net")
(condition "A.isPlated() && B.isPlated() && A.Net != B.Net")
(constraint clearance (min 0.127mm))
)
Génération des fichiers du PCB pour envoi à JLCPCB
Le fichier d’assistance officiel est ici.
Pour générer les fichiers nécessaire pour JLCPCB, vous pouvez procéder comme suit :
- Générer les fichiers Gerbers
- Générer les fichiers de perçage
- Générer la carte de perçage (optionnel)
- Préparer l’envoi
Générer les fichiers Gerbers
Aller dans “Fichier” -> “Fichiers de fabrication” -> “Gerbers (.grb)…”
Sélectionner le format du tracé à “Gerber” et sélectionner un répertoire de sortie. Ce répertoire sera automatiquement créé s’il n’existe pas. C’est ce répertoire au complet qu’il faudra envoyer à JLCPCB une fois toutes les opérations réalisées.
Dans les couches à inclures, sélectionner les suivantes :
- F.Cu
- B.Cu
- F.Paste
- B.Paste
- F.Silkscreen
- B.Silkscreen
- F.Mask
- B.Mask
- Edge.Cuts
Si vous avez plus de 4 couches, il ne faut pas oublier de sélectionner les couches internes (In1.Cu, In2.Cu…).
Enfin, dans les options générales, il convient de cocher les éléments suivants :
- Tracer les valeurs des empreintes
- Tracer référence schématiques
- Tracer les textes des empreintes
- Vérifier remplissage zones avant tracé
- Couvrir les vias
- Utiliser extensions Gerber Protel
- Soustraire masque de la couche sérigraphie
Options de génération des fichiers Gerbers
Pour générer les fichiers, cliquer sur le bouton “Tracer”.
Générer les fichiers de perçage
Garder la fenêtre précédante ouverte, et cliquer directement sur le bouton “Créer Fichiers de Perçage…”. Ce bouton va ouvrir une nouvelle fenêtre à paramétrer comme suit.
Cocher les éléments suivants :
- Format Excellon
- Utiliser le mode de perçage alternatif
- Format du Fichier du Plan “Gerber X2”
- Unités de Perçage “Millimètres”
- Format des Zéros “Format décimal (recommandé)”
Options de génération des fichiers de perçage
Pour générer les fichiers, cliquer sur le bouton “Créer Fichier de Perçage”.
Générer la carte de perçage (optionnel)
Garder la fenêtre précédante ouverte, et cliquer directement sur le bouton “Créer Plan de Perçage”. Ce bouton créé directement la carte de perçage.
Préparer l’envoi
Une fois tous les fichiers générés, il suffit de zipper le répertoire de sortie “Gerber/” dans mon exemple et de déposer ce fichier zip sur le site de JLCPCB.
Une fois le fichier transmis et analysé par le site (compter une 10ène de secondes), vous aurez accès à tous les paramétrages du PCB. Les tarifs seront automatiquement ajustés en fonctions de vos choix.
Il ne reste plus qu’à valider le devis .