Creación de PCBs con KiCAD: una guía para principiantes

Te está gustando mucho tu Arduino. Haces luces parpadeantes y pitidos. Has hecho un robot que tenía buena pinta. O quizá no. No importa. Estás preparado para el siguiente paso. Quieres extenderlo. Aunque podrías limitarte a enchufar unos cables, hay cierto atractivo en hacer un shield.
En lugar de un barullo de cables conectados a la protoboard sobre la que has hecho el prototipado, puedes tener un bonito shield con conexiones etiquetadas y ocupando menos espacio. Así que voy a contarte todo lo que debes saber para capturar el esquema del circuito y la distribución de la PCB, para así conseguir un hermoso shield que podrás enchufar directamente encima de tu Arduino.

Nota: antes de nada, quiero dejar claro que no soy un experto en la creación de circuitos impresos, o de la electrónica en general, así que admito de buen grado correcciones (sobre todo en cuanto a terminología), precisiones, e incluso adiciones interesantes al texto. Sin embargo, téngase en cuenta que esto es principalmente una guía para enseñar a usar software como herramienta de creación de una placa; no pretende ser nada más profundo.

Dicho esto y dada la vena cacharrera de este blog y comunidad, pensé que es obvio que en algún momento, alguna persona que haya dado sus primeros pasos y tenga algún circuito funcionando, quiera quitarse de las placas de prototipado, sobre todo por el cablerío e inestabilidad que suelen suponer. Además, un circuito impreso queda de lo más molón, ande vamos a parar...

Hace unas semanas solté en la lista de correo un enlace a una traducción/adaptación de este tutorial escrito por Aaron Eiche. Luego he decidido que sería más conveniente reescribir el trabajo e incorporarlo al blog en forma de serie corta de artículos. Este primer artículo es una mera introducción a la motivación de escribirlo y la elección de herramientas.

Mi intención, al igual que la de Aaron, es sólo mostrar el uso de un programa de diseño para captura de circuitos esquemáticos y el diseño posterior de un circuito impreso que represente el esquema. No teoría de electricidad/electrónica (hay libros para eso). No cómo realizar la placa físicamente, si es que la quisiéramos hacer nosotros mismos. Tampoco cómo montar la placa una vez obtenido el resultado (soldadura, básicamente). Para eso seguro hay "cienes y cienes" de tutoriales en Internet o, en su defecto, seguro que algún otro compañero/a de Canarnova puede ilustrarnos.

La intención real al adaptar el artículo no fue la traducción en sí. El inglés puede o no ser un problema para vd., estimado lector. El objeto real es explicar el uso de KiCAD y me era mucho más sencillo hacerlo partiendo de un ejemplo real y que funciona. Además, el tutorial original cuenta el proceso de creación de una PCB (printed circuit board - un circuito impreso, vamos) haciendo uso de Eagle, software de la casa CadSoft, que yo ya conocía de antes, así que me facilitaba la labor de adaptación.

¿Por qué KiCAD? Eagle es un programa muy popular entre aficionados y se pueden encontrar montones de bibliotecas de componentes para él, de libre acceso y uso. Bastante recomendable, ciertamente, pero es software privativo y hay quien prefiere usar programas libres (como KiCAD). Aparte de esto, está el coste. Eagle se puede usar de forma gratuita, pero con limitaciones en la creación de circuitos impresos: concretamente, al número de capas de la placa (máximo 2); y las dimensiones máximas del producto. Ciertamente, para el uso habitual en una comunidad como Canarnova, esto no debería ser problema, pero si se quiere hacer algo más grande, el sistema de precios de Eagle se queda demasiado corto (pagar por una licencia Light sólo te ofrece una ampliación en el tamaño) o se pasa de largo para el uso casual. Hay una licencia para uso sin ánimo de lucro, eso sí, pero está por encima de los 100€ y habrá quien prefiera gastarse ese dinero en componentes...

Y no hablemos del precio de otros paquetes de software comerciales, porque entonces sí que nos puede entrar la risa tonta.

Por cierto, que aparte de KiCAD hay otros paquetes de software EDA (de Automatización de Diseño Electrónico, por sus siglas en inglés) libres, como gEDA, aunque KiCAD siempre me ha parecido más maduro. Quizá es sólo una impresión, pero...

Importante: la versión de KiCAD que estoy usando era la última disponible en Debian unstable en el momento de escribir el artículo y es la de 14 de marzo de 2010.

Nota para fanáticos: la "K" en KiCAD no tiene nada que ver con KDE. Se basa en wxWidgets.

Especificidades de este tutorial

Hay un par de cosas que deberías saber antes de meterte en esto. Primero, que no te voy a enseñar todo sobre KiCAD. KiCAD es un programa complejo. De ninguna manera voy a cubrir todo su funcionalidad. Segundo, el motivo original de Aaron al escribir el tutorial era atraer a la gente a participar en sus pedidos de PCBs, concentrándose en la generación de ficheros Gerber. Por último por razones de simplicidad, vamos a hacer una placa que use sólo componentes de la SparkFun Library (SFE). Lo haremos así porque no vamos a explicar cómo crear nuevos diseños de componentes aparte de todo lo demás. Es más sencillo de esta manera, créeme. Vale, una cosa más: asumo que sabes usar tu computador. Esto no va a ser un tutorial "cómo usar tu ratón". Voy a centrarme en los aspectos específicos de KiCAD, pero necesitas saber lo básico. Llegados a este punto, me sorprendería encontrar a alguien que no estuviera familiarizado con los computadores pero tenga tanto interés en la electrónica como para plantearse el diseño de su propia PCB.

Un inciso. La biblioteca de componentes SFE está escrita por y para EAGLE, así que no la podemos usar directamente. En su lugar, busqué alguna manera de exportarla y encontré un script "semi-oficial" en la propia web de EAGLE, en el apartado de contribuciones de los usuarios. El script hace parte de su trabajo, pero no me gusta demasiado el resultado, así que decidí retocarlo un poco (y seguiré haciéndolo cuando investigue un poco más). Si te interesa usar el script en el futuro, lo encontrarás aquí. Ni que decir tiene que necesitarás instalar EAGLE para poder usarlo, ya que la idea es exportar bibliotecas desde EAGLE para usarlas en KiCAD.

Si prefieres saltarte este paso, siempre puedes descargar el producto final.

Cosas que necesitarás

Vas a necesitar todas estas cosas antes de empezar:

  • Una idea para tu shield (con eso no puedo ayudarte)
  • Una copia del programa KiCAD (para capturar el circuito)
  • Una copia de la biblioteca EAGLE de SparkFun (para los componentes: ver apartado anterior)
  • Las reglas de diseño (Design Rules) de tu "Fab house" favorita (ya hablaremos de esto).
Si eres usuario de Windows, puedes descargar KiCAD directamente desde su página. Si eres usuario de Linux, hay cierta probabilidad de que tu distribución favorita empaquete KiCAD (uso Debian y ése es el caso: apt-get install kicad ya te basta). Si tu plataforma es OSX, sé que existe una versión experimental, pero no estoy seguro de cómo de bien funciona...

Tras descargar e instalar KiCAD, descarga y extrae (o exporta) la biblioteca de SparkFun. Deberías obtener dos ficheros llamados SparkFun-XX-YY-ZZ, con extensiones .lib y .mod (XX-YY-ZZ hace referencia a la fecha de publicación; puede que quieras obtener algo más moderno). Es una biblioteca hecha por SparkFun Electronics. Me gusta porque tiene una gran variedad de componentes y footprints bastante fiables (el footprint es una representación del componente real e incluye sus medidas, que acaban en tu circuito impreso y es absolutamente crucial que sean correctas). Una ventaja de la biblioteca de SparkFun es que todo está licenciado bajo Creative Commons 3.0 Share-alike. Esto significa que puedes usarla de forma comercial, siempre y cuándo compartas cualquier modificación que hagas a ella. Otra biblioteca que recomiendo mucho (pero no es necesaria para este tutorial) es la Adafruit Industry's EAGLE Library.

Las bibliotecas para EAGLE se componen de un único fichero con extensión .lbr e incluyen todo lo necesario para poder trabajar con un componente, desde su diseño esquemático (número de pins, sus nombres, sus tipos, etc.) para la captura del circuito hasta el footprint (o los, en plural, ya que un mismo componente puede tener varios) que usarás en el diseño de la PCB.

En KiCAD las cosas son diferentes. Por un lado (simplificando) tenemos las bibliotecas de componentes esquemáticos (.lib), de donde los escogeremos durante la captura; mientras que por otro están los footprints, en ficheros .mod. En principio da igual dónde los instalemos. Los míos los guardo bajo ~/.kicadlibs si los voy a compartir entre varios proyectos, aunque puedes poner las bibliotecas junto con el resto de ficheros del proyecto, teniéndolas así localizadas en un lugar relativo al resto del proyecto, facilitando la vida si tienes que compartirlo con alguien. Usaré el "repositorio central" en los ejemplos; cámbialo si lo ves necesario.

(En mi caso, en concreto, los archivos exportados desde EAGLE los instalo bajo ~/.kicadlibs/from_eagle).

En el siguiente artículo empezaremos de verdad, explicando cómo se captura el esquema de un circuito.