A inicios de julio Seeed Studio lanzó el Seeed Fusion DIY XIAO Mechanical Keyboard Contest, el objetivo del concurso es que las personas puedan diseñar y construir su propio teclado mecánico usando el servicio de fabricación y ensamble de PCBs que ofrece Seeed Studio, además de usar como controlador alguna de las tarjetas de su línea XIAO (SAMD21, RP2040, nRF52840 y ESP32C3). Sin dudarlo comencé a colectar información sobre los teclados y cuál era el controlador más adecuado, también comencé a plantear algunos diseños para el teclado y tenía claro que no iba a ser un teclado alfanumérico complejo, sino algo pequeño con pocas teclas que funcionaran como macros o combinaciones de teclas.
El diseño final es una PCB que usa el XIAO RP2040 basado en el microcontrolador de Raspberry Pi; el circuito tiene nueve teclas del estilo Cherry MX, las teclas están configuradas como una matriz de 3 x 3 y esto permite ahorrar pines IO para conectar las demás funciones del teclado. El diseño también tiene un encoder rotativo con el que se podría controlar el volumen, y cada tecla está retroiluminada por un LED RGB tipo WS2812. Al ver que hay diferentes versiones de los switches y que cada uno tiene recorridos y tactos diferentes, decidí usar unos zócalos que permiten intercambiar los switches a voluntad, evitando tener que soldarlos y tener que decidirse por un sólo tipo de pulsador al hacer el ensamble. Al final agregué el diseño de unas Truchet tiles.
De acuerdo con las instrucciones del concurso, se debían generar los archivos Gerber para la fabricación del circuito, así como los archivos para el ensamble y la lista de materiales del circuito. Luego de generar los archivos los cargué en la página de Seeed Studio Fusion en la sección PCB Assembly; al confirmar la carga y la revisión de los archivos me contacté con el soporte de Seeed Studio y les informé que había agregado la orden al carro de compras, luego ellos generaron un cupón de descuento de modo que la fabricación y ensamble de la PCB para mí fue gratuito. Al usar el servicio de ensamble, Seeed Studio recomienda usar las piezas que se encuentran en su Open Parts Library ya que estas están catalogadas y se pueden conseguir con más facilidad, en el caso particular de mi PCB, el catálogo no tenía los LEDs SK6812 MINI-E para montaje reverso, pero con el número de parte y el PDF de referencia la gente de Seeed Studio pudo encontrarlos y agregarlos al ensamble.
Mientras esperaba que las PCBs fueran fabricadas, ensambladas y llegaran a mi casa; comencé a pedir las demás partes esperando que llegaran a tiempo para terminar de ensamblar el teclado. Fue algo complicado conseguir los switches, las teclas y los zócalos en pequeñas cantidades así que dejo un par de enlaces que podrían ser útiles.
Durante ese tiempo también trabajé en el diseño de la carcasa para el teclado. Aprovechando que Eagle permite generar el modelo 3D del circuito y lo exporta directamente a Fusion 360, usé este programa para modelar la carcasa alrededor de la PCB. La carcasa tiene dos partes, una que podría definirse como la base y es donde se fija la PCB usando tornillos M2.5, esta base también tiene el orificio para el puerto USB C del XIAO RP2040 del que se alimenta el teclado, y otros dos orificios pequeños para pulsar los botones de RESET y BOOT. La otra parte de la carcasa sería la tapa, que tiene los espacios para insertar a presión los switches y evitar que al teclado le entre polvo u otros objetos que lo puedan dañar. Las partes fueron impresas en resina lo que les da una mejor resolución y acabado, aparte de que se pueden hacer carcasas transparentes con las que se notan más el circuito y los LEDs RGB.
Afortunadamente las PCBs, los switches y las piezas impresas no tardaron mucho tiempo en llegar. Luego de revisar las PCBs ensambladas y sorprenderme por el detalle y la calidad, comencé a soldar los zócalos y el encoder. Después verifiqué el funcionamiento del teclado conectándolo al computador y descargando un programa básico en MicroPython para encender los LEDs y detectar las activaciones de los switches individualmente.
Después de ver que todo funcionaba bien en el circuito lo instalé en la base y lo fijé con los tornillos, teniendo mucho cuidado de no dañar el plástico; luego puse la tapa y comencé a insertar los switches hasta que escuchaba el sonido de estos asegurándose al borde de los agujeros. La base y la tapa de la carcasa no están conectadas entre ellas con tornillos o algo por el estilo, se mantienen conectados por la presión en los bordes y por la conexión de los switches. Ahora sólo queda pendiente instalar el programa definitivo en el XIAO RP2040 y configurar la función de cada una de las teclas.
Los esquemas, modelos 3D, firmware y demás archivos del proyecto se pueden encontrar en el repositorio de GitHub.
GitHub: MacroBoard
Más información:
Seeed Fusion DIY XIAO Mechanical Keyboard Contest
Seeed Studio XIAO Series
Seeed XIAO RP2040
Seeed Studio XIAO RP2040 – Wiki
Si tienes alguna inquietud no dudes en comentar.
📢 Esta entrada participa en el Seeed Fusion DIY XIAO Mechanical Keyboard Contest y está patrocinada parcialmente por Seeed Studio.
Pingback: MacroBoard – Configuración – palmacas
Pingback: Sorteo PCBs – palmacas