KiCad¶
Enlaces¶
- Creating A PCB In Everything: KiCad: Part 1, Part 2 y Part 3
- KiCad Best Practices: Library Management
- Desing Rules recomendadas para minimizar problemas en fabricación PCB's
- KiCad Templates for new projects: Plantillas con ajustes adecuados para distintos fabricantes de PCBs.
- Sizing Logos in KiCAD
- Librería de componentes de JLCPCB para Assembly Service
- Calculadoras de conversión en línea por DigiKey
- Svg2Shenzhen: Inkscape extension for exporting drawings into a KiCad PCB.
- Descarga de footprints y modelos 3D:
- Interactive HTML BOM plugin for KiCad
- Herramientas de Jan Mrázek:
- KiKit: Automation for KiCAD: panelization, automatic DRC check, generating assembly data.
- PcbDraw, Pinion: Making nice pinout diagrams for your boards
- JLCPars: Parametric search for electronics components
- YSpurGear, YBevelGear: Parametric generators for gears in Fusion 360 which allow you to edit the gear parameters in history.
- Uso de etiquetas en KiCad para la conexión de componentes
- Best practices and considerations when designing your PCB
- Solder-stencil.me: Aplicación/servicio para generar STLs a partir de los Gerber para imprimir stencils con una impresora 3D.
Gestión de librerías¶
-
Crear la siguiente estructura de directorios al crear un nuevo proyecto:
1 2 3 4 5 6 7 8
mi_proyecto ↳3d_models // .STEP and .WRL model files for all footprints ↳datasheets // data sheets for components used ↳gerber // final production files ↳images // SVG images and 3D board renders ↳lib_sch // schematic symbols ↳lib_fp.pretty // footprints ↳pdf // schematics, board layouts, dimension drawings -
Conforme se va editando un esquemático, KiCad va incorporando todos los símbolos utilizados (procedentes de las librerías de la aplicación y de las creadas para el proyecto) a una librería de backup llamada "mi_proyecto-cache.lib". Una vez que el esquemático esté completo, copiar dicha librería al directorio
lib_sch, renombrándola para quitar el sufijo-cachedel nombre, es decir quedandolib_sch/mi_proyecto.lib. -
En el editor del esquemático abrir el comando de menú
Preferencias > Administrar librerías de símbolos..., seleccionar la pestañaLibrerías específicas del proyectoy añadir la librería que hemos copiado en el paso anterior por medio del botón con forma de carpeta (Add existing library to table). De esta forma nunca perderemos los símbolos utilizados durante la creación del esquema (se podrían modificar al actualizar las librerías del programa):
Una alternativa a la forma de trabajar anterior es recoger todos los símbolos y footprints generados en una librería independiente que se pueda añadir a todos los proyectos, una especie de repositorio personal. La incorporaremos como un submódulo git. Para ello seguir estos pasos:
-
Inicializar un repositorio git para el proyecto:
1 2
$ cd mi_proyecto $ git init -
Instalar la librería como un submódulo git en un directorio llamado
lib:1$ git submodule add git@github.com:eduardofilo/kicad_footprints.git lib -
Añadir la librería de símbolos desde
Preferences > Manage Symbol Libraries... > Project Specific Libraries:
-
Y la librería de footprints desde
Preferences > Manage Footprint Libraries... > Project Specific Libraries:
Workflow¶
Note
Este workflow está actualizado para KiCad 10. Muchos de los pasos se pueden contrastar con el tutorial oficial Getting Started in KiCad.
KiCad se utiliza fundamentalmente con atajos de teclado. Para listar todos los atajos disponibles en cualquiera de los editores, ir a Help > List Hotkeys.... Hay que tener en cuenta que algunos botones de las barras de herramientas tienen un pequeño triángulo en la esquina inferior derecha: manteniéndolos pulsados se despliega una paleta con herramientas relacionadas (por ejemplo, los distintos tipos de etiquetas).
- Crear el proyecto:
- Desde el KiCad Project Manager,
File > New Project..., elegir la plantillaDefault, dar un nombre y marcarCreate a new folder for the project. Esto crea los ficheros.kicad_pro(proyecto),.kicad_sch(esquemático) y.kicad_pcb(placa), que ahora forman un diseño integrado único.
- Desde el KiCad Project Manager,
- Diseñar un símbolo (solo necesario para componentes que no estén ya en las librerías):
- Abrir el
Symbol Editordesde el Project Manager. - Para guardar el nuevo símbolo, escoger uno de estos caminos según se quiera mantener exclusivamente dentro del proyecto o de forma global:
- Crear una nueva librería con
File > New Library.... En el diálogo que aparece elegirProject(la librería se añade a la tabla de librerías del proyecto; las librerías de símbolos son ahora ficheros.kicad_sym, así que guardarla comolib_sch/mi_proyecto.kicad_sym). - Instalar a nivel global (
Preferences > Manage Symbol Libraries...) las que se mantienen en este repositorio.
- Crear una nueva librería con
- Seleccionar la librería recién creada o importada en el panel
Libraries(para que el nuevo símbolo se cree dentro de ella) y ejecutarFile > New Symbol.... - Rellenar el diálogo
New Symbol: como mínimo darle un nombre y un reference designator por defecto. - Dibujar el símbolo utilizando fundamentalmente los siguientes atajos de teclado:
M: Mover objeto.P/ botónAdd a pin: Crear un pin. El círculo al final de la línea marca el punto de conexión. PulsarInsertpara repetir el último pin, autoincrementando su número.Del: Eliminar objeto.
- Decorar el símbolo con las herramientas de dibujo.
- Guardar los cambios.
- Abrir el
- Diseñar el esquemático:
- Abrir el
Schematic Editordesde el Project Manager. - Opcionalmente, configurar primero la hoja con
File > Page Settings...(título, fecha, tamaño de papel). - Añadir los símbolos que van a componer el esquemático con la ayuda de estos atajos:
A: Añadir símbolo.P: Añadir un símbolo de alimentación o masa.C: Copiar el símbolo seleccionado.
- Una vez colocados todos los símbolos, reorganizarlos y cablearlos con estos atajos de teclado:
M: Mover objeto (rompe las conexiones).G: Arrastrar objeto (mantiene las conexiones).R: Rotar objeto.E: Editar las propiedades del objeto. También se pueden editar campos concretos directamente: Reference (U), Value (V) o Footprint (F).W: Trazar una conexión entre símbolos. Terminar la conexión haciendo clic sobre un pin o con doble clic; pulsarEscpara cancelar.Q: Añadir una marca de no conexión.L: Añadir una etiqueta de red.I: Añadir una polilínea gráfica.T: Añadir texto.
- Dar valores a los componentes que lo necesiten (resistencias, condensadores, diodos, etc.) con
VoE. - Anotar los componentes (asignar reference designators). Ahora los símbolos se anotan automáticamente al colocarlos; se puede activar/desactivar con el botón de anotación de la barra de herramientas izquierda, o reanotar manualmente con el botón
Fill in schematic symbol reference designatorsde la barra superior.
- Abrir el
- Asociar las huellas (footprints) PCB a los símbolos del esquemático:
- Abrir la footprint assignment tool (el antiguo CvPCB) con su botón en la barra superior.
- En el panel central seleccionar un símbolo y en el panel derecho hacer doble clic sobre la huella a asignar. Aprovechar los botones de filtrado (filtrar por los filtros del símbolo, por número de pines, por librería seleccionada) y la caja de texto para acotar la lista. Pulsar
OKal terminar. Las huellas también se pueden asignar desde las propiedades del símbolo (campoFootprint).
- Abrir la footprint assignment tool (el antiguo CvPCB) con su botón en la barra superior.
- Comprobar el esquemático con el Electrical Rules Check (ERC):
- En el
Schematic Editor, ejecutar el ERC desdeInspect > Electrical Rules Checker(o el botónERCde la barra superior) y pulsarRun ERC. - Revisar y corregir las violaciones reportadas. Una muy habitual es "Input Power pin not driven by any Output Power pins": añadir un símbolo
PWR_FLAG(de la libreríaPower) a las redes de alimentación y masa para indicarle a KiCad que esas redes están excitadas, y volver a ejecutar el ERC hasta que pase sin errores.
- En el
- Exportar la BOM:
- Ejecutar
Tools > Generate Bill of Materials.... - KiCad cuenta ahora con una GUI integrada para la BOM: configurar los campos exportados y la agrupación en la pestaña
Edity el formato en la pestañaExport, indicar un fichero de salida y pulsarExport.
- Ejecutar
- Diseñar las huellas que no se encuentren en las librerías:
- Abrir el
Footprint Editordesde el Project Manager. - Para guardar la nueva huella, escoger uno de estos caminos según se quiera mantener exclusivamente dentro del proyecto o de forma global:
- Crear una nueva librería con
File > New Library.... En el diálogo que aparece elegirProject(las librerías de huellas son carpetas terminadas en.pretty, p. ej.lib_fp.pretty). - Instalar a nivel global (
Preferences > Manage Footprint Libraries...) las que se mantienen en este repositorio en el directorioeduardofilo_footprints.pretty.
- Crear una nueva librería con
- Seleccionar la librería recién creada o importada en el panel
Libraries, para que la nueva huella se cree dentro de ella. - Ejecutar
File > New Footprint. - Editar las propiedades de la huella (botón de la barra superior) para asignarle su nombre y el component type (Through hole / SMD).
- Dibujar la huella utilizando fundamentalmente estos atajos de teclado:
M: Mover objeto.R: Rotar objeto.- Herramienta
Add a pad: E: Editar las propiedades del objeto. Sobre los pads es importante asignar correctamente elPad number, ya que es como se enlazan los símbolos con las huellas. PulsarInsertpara repetir el último pad, autoincrementando su número.
- Decorar la huella con las herramientas de dibujo (capas fab, silkscreen y courtyard).
- Guardar los cambios.
- Abrir el
- Diseñar la PCB. Con el esquemático terminado, ya no hace falta generar/importar el netlist manualmente; la placa se actualiza directamente desde el esquemático:
- Abrir el
PCB Editordesde el Project Manager. - Configurar la placa con
File > Board Setup...: el physical stackup (número de capas de cobre y espesores), las design rules enDesign Rules > Constraintsy lasNet Classes(ancho de pista y clearance por grupo de redes). Ajustarlo a las capacidades del fabricante. - Importar el diseño desde el esquemático con
Tools > Update PCB from Schematic...(F8) o su botón en la barra superior. - En el diálogo
Changes To Be AppliedpulsarUpdate PCB, cerrarlo y hacer clic sobre el lienzo para soltar las huellas. - Recolocar los componentes con
M(mover),R(rotar) yF(voltear a la otra cara). Apoyarse en las líneas del ratsnest para buscar una disposición fácil de rutear. - Ocultar las etiquetas que no interesen pulsando
Esobre ellas y desmarcandoVisible. - Dibujar el perfil de la placa en la capa
Edge.Cutscon las herramientas de dibujo (p. ej. la herramienta de rectángulo). Debe ser una única forma cerrada. - Rutear utilizando estos atajos de teclado:
X: Trazar una pista.V: Añadir una vía (mientras se rutea).M: Mover componente.R: Rotar componente.D: Arrastrar una pista (manteniéndola conectada).
- Crear las zonas rellenas de cobre (normalmente para las nets +5V/VCC y GND):
- Seleccionar la capa donde irá la zona (
F.CuoB.Cuhabitualmente) en la pestaña Layers del panel Appearance. - Seleccionar la herramienta
Add a filled zone. - Delimitar la superficie a rellenar de cobre. Al pinchar el primer vértice aparece un diálogo donde se indican las propiedades de la zona (net y capa de cobre).
- Las zonas no se rellenan automáticamente: rellenarlas con
Edit > Fill All Zones(B), y volver a rellenar (B) cada vez que se modifiquen las pistas.
- Seleccionar la capa donde irá la zona (
- Ejecutar el Design Rules Check (DRC) con
Inspect > Design Rules Checker(o su botón en la barra superior) y pulsarRun DRC. Corregir todos los errores antes de generar los ficheros de fabricación.
- Abrir el
- Exportar los Gerber:
- Abrir
File > Plot.... - En el diálogo, seleccionar las capas a incluir y las opciones que se ven a continuación, e indicar como directorio de salida la carpeta
gerberdel proyecto (en esta página se muestran las opciones más recomendables para JLCPCB).
- Pulsar
Plot. - Pulsar
Generate Drill Files...y, en la nueva ventana, pulsarGenerate Drill File.
- Abrir
- Cambios en el esquemático y su propagación:
- Hacer el cambio en el
Schematic Editor. - Asegurarse de que los nuevos componentes están anotados (la anotación automática lo gestiona al colocar los símbolos; si no, usar el botón
Fill in schematic symbol reference designatorsde la barra superior).
- Volver al
PCB Editory pulsarUpdate PCB from Schematic(F8). - En el diálogo pulsar
Update PCB. Mostrará un informe de los cambios; si hay componentes nuevos, quedarán enganchados al cursor al cerrarlo para poder colocarlos en la placa.
- Hacer el cambio en el
Las capas más importantes son:
F.Cu: Capa superior de cobre. Atajo de teclado:PgUp.B.Cu: Capa inferior de cobre. Atajo de teclado:PgDn.Edge.Cuts: Perfil de corte de la placa.F.Silkscreen: Silkscreen superior, donde se representan los símbolos y textos de los componentes, habitualmente en blanco.B.Silkscreen: Silkscreen inferior.F.Mask: Máscara de soldadura superior, habitualmente en verde.B.Mask: Máscara de soldadura inferior.
Generación modelo 3D de la placa¶
Es recomendable instalar los paquetes recomendados con apt cuando se instala KiCad. Se puede hacer con la siguiente opción en el comando de instalación:
1 | |
En caso de no tener las librerías de paquetes 3D o querer forzar el tener la última versión de Github, se puede proceder como sigue:
-
Bajar el repositorio con los modelos de los componentes:
1 2
cd ~/git git clone git@gitlab.com:kicad/libraries/kicad-packages3D.git -
Abrir el menú `Preferencias > Configure Paths...".
-
Configurar el repositorio recien bajado como la nueva ruta de la librería
KISYS3DMOD(originalmente la ruta es/usr/share/kicad/modules/packages3d/):
) -
En Pcbnew editar las propiedades de las huellas y en la solapa
Opciones 3Dañadir la ruta del modelo 3D o ajustarla si es que existe.
) -
Abrir el menú
Ver > Visor 3D.
Designación de componentes¶
| Referencia | Tipo de componente |
|---|---|
| A | Separable assembly or sub-assembly (e.g. printed circuit assembly) |
| AT | Attenuator or isolator |
| BR | Bridge Rectifier |
| BT | Battery |
| C | Capacitor |
| CN | Capacitor network |
| D | Diode (including zeners, thyristors and LEDs) |
| DL | Delay line |
| DS | Display |
| F | Fuse |
| FB or FEB | Ferrite bead |
| FD | Fiducial |
| FL | Filter |
| G | Generator or oscillator |
| GN | General network |
| H | Hardware |
| HY | Circulator or directional coupler |
| J | Jack (least-movable connector of a connector pair) | Jack connector (connector may have "male" pin contacts and/or "female" socket contacts) |
| JP | Link (Jumper) |
| K | Relay or contactor |
| L | Inductor or coil or ferrite bead |
| LS | Loudspeaker or buzzer |
| M | Motor |
| MK | Microphone |
| MP | Mechanical part (including screws and fasteners) |
| P | Plug (most-movable connector of a connector pair) | Plug connector (connector may have "male" pin contacts and/or "female" socket contacts) |
| PS | Power supply |
| Q | Transistor (all types) |
| R | Resistor |
| RN | Resistor network |
| RT | Thermistor |
| RV | Varistor |
| S | Switch (all types, including push-buttons) |
| T | Transformer |
| TC | Thermocouple |
| TUN | Tuner |
| TP | Test point |
| U | Inseparable assembly (e.g., integrated circuit) |
| V | Vacuum Tube |
| VR | Variable Resistor (potentiometer or rheostat) |
| X | Socket connector for another item not P or J, paired with the letter symbol for that item (XV for vacuum tube socket, XF for fuse holder, XA for printed circuit assembly connector, XU for integrated circuit connector, XDS for light socket, etc.) |
| Y | Crystal or oscillator |
| Z | Zener Diode |
Componentes¶
Tiendas¶
- LCSC
- Viinko Electronics HK Ltd: Acepta pedidos BOM.
Componentes interesantes, Símbolos y footprints propios KiCad¶
En este repositorio.
Antes de crear los símbolos o los footprints, tratar de buscarlos en sitios como SnapEDA.
| Componente | Symbol | Footprint | Compra | Observaciones |
|---|---|---|---|---|
| Resistencia 1/4W P=10,16mm | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal |
Resistencia convencional | ||
| Condensador cerámico 100nF P=2,54mm | Capacitors_ThroughHole:C_Disc_D3.0mm_W1.6mm_P2.50mm |
Bypass capacitor convencional | ||
| LED D=5mm | LED_THT:LED_D5.0mm |
LED convencional 5mm | ||
| USB micro-B | Connect:USB_Micro-B |
LCSC | Conector microUSB con terminales SMD y 4 agujeros para chasis | |
| Lector microSD | Connector_Card:microSD_HC_Hirose_DM3AT-SD-PEJMS |
LCSC | Ranura microSD inserción lateral | |
| Lector microSD | Connector_Card:microSD_HC_Wuerth_693072010801 |
LCSC | Ranura microSD inserción con portezuela superior | |
| Lector microSD | LCSC | Ranura microSD inserción deslizante para interior | ||
| Transistor TO-92 | Package_TO_SOT_THT:TO-92L_Inline_Wide o Package_TO_SOT_THT:TO-92L_HandSolder |
Transistor convencional, como NPN 2N3904 | ||
| Tactile button 6mm | Buttons_Switches_ThroughHole:SW_PUSH_6mm |
LCSC | Tactile switch 6mm convencional | |
| AY-8760 | eduardofilo_symbols.kicad_sym/AY-3-8760 | Package_DIP:DIP-28_W15.24mm_Socket_LongPads |
||
| Portapilas 2xAA | eduardofilo_symbols.kicad_sym/Battery_Holder | eduardofilo_footprints.pretty/BatteryHolder_Keystone_1013.kicad_mod | LCSC | Keystone 1013 |
| Portapilas CR2032 | eduardofilo_symbols.kicad_sym/BS-7 | eduardofilo_footprints.pretty/BAT_BS-7.kicad_mod | LCSC | |
| Portapilas LR44 | Device:Battery_Cell |
eduardofilo_footprints.pretty/BatteryHolder_Keystone_2997_1x12mm.kicad_mod | Digikey | Keystone 2997 |
| Cargador batería Li y regulador de tensión | eduardofilo_symbols.kicad_sym/DD05CVSA | eduardofilo_footprints.pretty/DD05CVSA.kicad_mod | Aliexpress | |
| MicroSD holder | eduardofilo_symbols.kicad_sym/Micro_SD_Cd | eduardofilo_footprints.pretty/Micro_SD_Cd.kicad_mod | Aliexpress; LCSC | |
| Pantalla OLED SSD1306-I2C | eduardofilo_symbols.kicad_sym/OLED-SSD1306-I2C | eduardofilo_footprints.pretty/OLED-SSD1306-I2C.kicad_mod | Aliexpress | |
| Pantalla OLED SSD1306-SPI | eduardofilo_symbols.kicad_sym/OLED-SSD1306-SPI | eduardofilo_footprints.pretty/OLED-SSD1306-SPI.kicad_mod | Aliexpress 0,96"; Aliexpress 1,54" | |
| Potenciómetro | Device:R_POT |
eduardofilo_footprints.pretty/Potentiometer_Alpha_RD901F-40-00D_Single_Vertical_mod.kicad_mod | LCSC | |
| Raspberry Pi Pico | eduardofilo_symbols.kicad_sym/raspberrypi-pico-module | eduardofilo_footprints.pretty/raspberrypi-pico-module.kicad_mod | ||
| Raspberry Pi Pico | Símbolo de ncarandini | Footprint de ncarandini | ||
| SCART conector | Connector:SCART-F |
eduardofilo_symbols.kicad_sym/SCART.kicad_mod | Aliexpress | |
| SNES conector | eduardofilo_symbols.kicad_sym/SNES_Connector | eduardofilo_symbols.kicad_sym/SNES.kicad_mod | Aliexpress | |
| Switch horizontal | eduardofilo_symbols.kicad_sym/SK12D07VG4 | Button_Switch_THT:SW_CuK_OS102011MA1QN1_SPDT_Angled |
LCSC | Interruptor horizontal SPDT con 2mm de pitch |
| Switch horizontal | eduardofilo_symbols.kicad_sym/SS-12F44-G5 | eduardofilo_footprints.pretty/SS-12F44-G5.kicad_mod | LCSC | Interruptor vertical SPDT con 3mm de pitch |
| Switch horizontal | Switch:SW_SPDT |
eduardofilo_footprints.pretty/SW_SPDT_Angled.kicad_mod | LCSC | Interruptor horizontal SPDT con 2,5mm de pitch sin terminales de chasis |
| Switch horizontal | Switch:SW_DPDT_x2 |
Button_Switch_THT:SW_E-Switch_EG1271_DPDT |
Digikey, Digikey, Digikey, Digikey | Interruptor horizontal DPDT con 2,5 de pitch sin terminales de chasis |
| Switch tactile goma 8mm | Switch:SW_Push |
eduardofilo_footprints.pretty/SW_PUSH_8mm_2pin.kicad_mod | Aliexpress | |
| Logo Niubit | eduardofilo_footprints.pretty/NiubitLogo.kicad_mod | |||
| Vibrador | Motor:Motor_DC |
eduardofilo_footprints.pretty/Vibrator_Seeed_316040005.kicad_mod | Digikey | |
| Barrel jack 2.3mm | Connector:Jack-DC |
eduardofilo_footprints.pretty/Barrel_jack_PJ1-023.kicad_mod | Digikey | También compatible con PJ1-022 |
| Barrel jack 5.5mm | Connector:Jack-DC |
Connector_BarrelJack:BarrelJack_Wuerth_6941xx301002 |
LCSC | |
| Zócalo 8 pin (ATtiny85) | Housings_DIP:DIP-8_W7.62mm |
Zócalo DIP-8 convencional |

Valores habituales de resistencias¶
A pesar de que se fabrican resistencias de prácticamente cualquier valor, como tienen una tolerancia de fabricación amplia (lo normal es utilizar resistencias de en torno al 1-5% de tolerancia), lo habitual es utilizar valores nominales que comiencen con los siguientes valores: 1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2
Aquí puede verse una tabla donde se ven los valores normalizados en función de la tolerancia (a menor tolerancia mayor número de valores normalizados).

Panelización¶
Después de una mala experiencia con GerberTools descrita en este post, se encuentra el pack de utilidades KiKit que funciona mucho mejor.
En cuanto a la instalación, sobre la versión 1.7.10 de KiCad, no aparecia el plugin panelize en el menú Tools > External Plugins..., por lo que instalo la versión unstable:
1 2 3 | |
Aunque se puede parametrizar desde la utilidad que hay en el menú mencionado antes, es mejor utilizar directamente la utilidad de línea de comando, para lo que conviene consultar los siguientes documentos:
Un ejemplo sería:
1 2 3 4 5 6 7 | |