Saltar a contenido

KiCad

Enlaces

Gestión de librerías

  1. 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
    
  2. 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 -cache del nombre, es decir quedando lib_sch/mi_proyecto.lib.

  3. En el editor del esquemático abrir el comando de menú Preferencias > Administrar librerías de símbolos..., seleccionar la pestaña Librerías específicas del proyecto y 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):

    lib_sch

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:

  1. Inicializar un repositorio git para el proyecto:

    $ cd mi_proyecto
    $ git init
    
  2. Instalar la librería como un submódulo git en un directorio llamado lib:

    $ git submodule add git@github.com:eduardofilo/kicad_footprints.git lib
    
  3. Añadir la librería de símbolos desde Preferences > Manage Symbol Libraries... > Project Specific Libraries:

    lib_kicad_symbols

  4. Y la librería de footprints desde Preferences > Manage Footprint Libraries... > Project Specific Libraries:

    lib_kicad_footprints

Workflow

En general KiCad se utiliza con atajos de teclado. Para obtener los atajos de teclado que sirven en una de las aplicaciones, pulsar Ctrl+F1.

  1. Crear proyecto:
    1. Desde la ventana principal del programa, File > FNew > Project...
  2. Diseñar símbolo:
    1. Abrir el programa Symbol Editor.
    2. Para mantener los ficheros del nuevo símbolo, escoger uno de estos caminos en función de si se quiere mantener el símbolo exclusivamente dentro del proyecto o de forma global:
      • Crear una nueva librería con el comando File > New Library... en el directorio lib_sch. En el popup Add To Library Table que aparece seleccionar la opción Project.
      • Instalar a nivel global (Preferences > Manage Symbol Libraries...) las que se mantienen en este repositorio.
    3. Seleccionar la librería recien creada o importada y pulsar el botón Create new symbol.
    4. Se nos preguntará por la librería donde incorporarlo. Seleccionar la que acabamos de crear (aparecerá al final).
    5. Rellenar el cuadro Symbol Properties. Fundamentalmente tenemos que dar un nombre para el componente.
    6. Crear el símbolo del componente utilizando fundamentalmente los siguientes atajos de teclado:
      • M: Mover objeto.
      • P: Crear pin. El círculo al final de la línea representa el punto donde se hará la conexión.
      • Supr: Eliminar objeto.
    7. Decorar el símbolo con las herramientas de dibujo.
    8. Guardar los cambios.
  3. Diseñar esquemático:
    1. Abrir el programa Schematic Layout Editor (eeschema).
    2. Añadir los símbolos que van a componer el esquemático con la ayuda de los siguientes atajos:
      • A: Añadir símbolo.
      • P: Añadir fuente de alimentación o masa.
      • C: Copiar símbolo.
    3. Una vez que tengamos todos los símbolos a la vista los reorganizaremos y cablearemos con los siguientes atajos de teclado:
      • M: Mover objeto (rompe las conexiones).
      • G: Arrastrar objeto (mantiene las conexiones).
      • R: Rotar objeto.
      • E: Editar propiedades del objeto como Referencia (U), Valor (V) o Footprint (F).
      • W: Conexión entre símbolos.
      • K: Terminar el trazado de una conexión.
      • Q: Añadir no conexión.
      • L: Añadir etiqueta de red.
      • I: Añadir polilínea.
      • T: Añadir texto.
    4. Dar valores a los componentes que lo necesiten (Resistencias, Condesadores, Diodos, etc.) con el atajo V o E.
    5. Dar nombre a los componentes. Se puede hacer automáticamente con la herramienta de anotación a la que se accede con el botón de la barra superior.
  4. Asociar símbolos del esquemático con huellas PCB ejecutando CvPCB. . Aprovechar los botones de filtrado, sobre todo Filter footprint list using a partial name or a pattern.
  5. Diseñar las huellas que no se encuentren en la librería:
    1. Abrir el programa Footprint Editor.
    2. Para mantener los ficheros de la nueva huella, escoger uno de estos caminos en función de si se quiere mantener exclusivamente dentro del proyecto o de forma global:
      • Crear una nueva librería con el comando File > New Library... en el directorio lib_fp.pretty. En el popup Select Library Table que aparece seleccionar la opción Project.
      • Instalar a nivel global (Preferences > Manage Footprint Libraries...) las que se mantienen en este repositorio en el directorio eduardofilo_footprints.pretty.
    3. Seleccionar en la lista de librerías la que acabamos de crear o incorporar en el paso anterior. De esta forma la nueva huella que vamos a crear se creará dentro de esta librería.
    4. Pulsar el botón New footprint.
    5. Darle nombre en el popup que aparece.
    6. Crear la huella utilizando fundamentalmente los siguientes atajos de teclado:
      • M: Mover objeto.
      • R: Rotar objeto.
      • Add pad:
      • E: Editar propiedad de objeto. Cuando se aplica sobre los pads es importante asignar correctamente el valor del Pad number ya que es como se enlazan los símbolos con las huellas.
    7. Decorar la huella con las herramientas de dibujo.
    8. Guardar los cambios.
  6. Diseñar la PCB:
    1. En Schematic Layout Editor (eeschema) pulsar el botón Generate netlist.
    2. En el popup que aparece pulsar el botón Generate Netlist.
    3. Guardar el fichero que genera en la raíz del proyecto.
    4. Abrir el programa PCB Layout Editor (pcbnew).
    5. Importar el netlist utilizando el botón Load netlist.
    6. En el popup que aparece seleccionar el fichero que hemos generado en el punto 3 anterior.
    7. Pulsar el botón Update PCB.
    8. Cerrar el popup y hacer clic sobre la PCB para colocar las huellas.
    9. Utilizando los atajos M y R recolocar todos los componentes como más convenga.
    10. Ocultar las etiquetas que no interesen, pulsando E sobre ellas y desmarcando el check Visible.
    11. Dibujar el perfil de la PCB con las herramientas de dibujo en la capa Edge.Cuts.
    12. Rutear haciendo uso de los siguientes atajos de teclado:
      • X: Añadir pista.
      • V: Añadir vía.
      • M: Mover componente.
      • R: Rotar componente.
      • D: Arrastrar pista.
    13. Crear las zonas rellenas de cobre (normalmente para las nets +5V y GND):
      1. Seleccionar la capa donde queremos crear la zona rellena de cobre (F.Cu o B.Cu normalmente).
      2. Seleccionar la herramienta Add filled zones.
      3. Delimitar una superficie que englobe la parte de la PCB que queremos rellenar de cobre. Al pinchar el primer vértice aparecerá una ventana en la que tendremos que indicar las propiedades de la zona a rellenar donde indicaremos la net y la capa de cobre.
      4. En caso de modificar las pistas más adelante, pulsar B para recalcular las zonas rellenas de cobre.
    14. Ejecutar las DRC pulsando el botón Perform design rules check.
  7. Exportar Gerber:
    1. Pulsar el botón Plot (HPGL, Postscript, or GERBER format).
    2. En la ventana que aparece, seleccionar las capas que queremos incluir y las opciones que se ven a continuación e indicar el directorio gerber del proyecto (en esta página se muestran las opciones más recomendables para JLCPCB). plot
    3. Pulsar el botón Plot.
    4. Pulsar el botón Generate Drill Files y en la nueva ventana que aparece encima pulsar el botón Generate Drill File.
  8. Exportar BOM:
    1. Pulsar el botón Generate bill of materials.
    2. De la lista BOM plugins que aparece seleccionar bom2grouped_csv y pulsar Generate.
  9. Cambios en esquemático y propagación:
    1. Hacer el cambio en Schematic Layout Editor (eeschema).
    2. Dar nombre a los nuevos componentes. Se puede hacer automáticamente con la herramienta de anotación a la que se accede con el botón de la barra superior.
    3. Volver a PCB Layout Editor (pcbnew) y pulsar el botón Update PCB from schematic.
    4. En el popup que aparece pulsar el botón Update PCB. Nos hará un informe de los cambios. En caso de que los cambios impliquen componentes nuevos, cuando lo cerremos se nos cargarán en el cursor para incorporarlos al PCB.

Las capas más importantes son:

  • F.Cu: Capa superior de cobre. Atajo de teclado: RePag.
  • B.Cu: Capa inferior de cobre. Atajo de teclado: AvPag.
  • Edge.Cuts: Perfil de corte de la PCB.
  • F.SilkS: Silkscreen superior o capa donde se representan los símbolos y textos de los componentes habitualmente en blanco.
  • B.SilkS: Silkscreen inferior.
  • F.Mask: Máscara de soldado superior, habitualmente en verde.
  • B.Mask: Máscara de soldado 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:

$ sudo apt install --install-recommends kicad

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:

  1. Bajar el repositorio con los modelos de los componentes:

    cd ~/git
    git clone git@gitlab.com:kicad/libraries/kicad-packages3D.git
    
  2. Abrir el menú `Preferencias > Configure Paths...".

  3. Configurar el repositorio recien bajado como la nueva ruta de la librería KISYS3DMOD (originalmente la ruta es /usr/share/kicad/modules/packages3d/):

    KISYS3DMOD path)

  4. En Pcbnew editar las propiedades de las huellas y en la solapa Opciones 3D añadir la ruta del modelo 3D o ajustarla si es que existe.

    Opciones 3D propiedades huella)

  5. Abrir el menú Ver > Visor 3D.

Designación de componentes

Fuente

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

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

SPDT vs DPDT

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).

lib_sch

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:

$ pip3 install git+https://github.com/yaqwsx/KiKit@master
$ kikit-plugin enable --all
$ kikit-plugin registerlib

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:

kikit panelize \
    --layout 'rows: 1; cols: 2; rotation: 180deg; alternation: cols;' \
    --source 'tolerance: 50mm;' \
    --post 'millradius: 0.5mm' \
    --cuts vcuts \
    --tabs 'type: fixed; hcount: 2; hwidth: 3mm;' \
    vibrabot.kicad_pcb panel.kicad_pcb