2.8 · Ergogen
28 May 2026
- Por:
- Anton
- Sección:
- Módulo 2 · CAD y diseño paramétrico
- Lectura:
- 7 min
Ergogen: generación de geometría de teclado desde YAML. Placas, outlines, exportación
En el caso del Corne viste lo trabajoso que es colocar a mano cada tecla con su stagger y sus ángulos. Ergogen automatiza justo eso: defines la geometría de un teclado en un archivo YAML (un formato de texto para datos estructurados, legible por humanos, que organiza la información por indentación) y genera las posiciones de las teclas, los contornos (outlines) para la placa y el case, e incluso el PCB con sus footprints (las huellas de cobre sobre las que se suelda cada componente). Es la herramienta de referencia para diseñar teclados ergonómicos paramétricos.
Qué es Ergogen y cómo se usa
Ergogen es un generador declarativo creado por MrZealot (Bán Dénes), nacido del teclado Absolem; su repositorio oficial es ergogen/ergogen. La versión actual es la 4.1.0. Tienes dos formas de usarlo:
- Online: en ergogen.xyz pegas el YAML y ves el resultado al instante. Ideal para empezar.
- Local: lo instalas con Node (Node.js, el entorno que ejecuta JavaScript fuera del navegador) y lo ejecutas por línea de comandos, lo que permite versionarlo con Git (como veremos en el último artículo del módulo).
npm install -g ergogen
ergogen input.yaml -o salida/
Necesitas Node 14.4 o superior. La carpeta de salida contendrá SVG (gráfico vectorial, definido por curvas en vez de píxeles) de los outlines, DXF (el formato de intercambio de dibujo CAD) para corte láser y, si lo configuras, los archivos de PCB.
La estructura del config
Un config de Ergogen es un único YAML con estas secciones de nivel superior:
meta: metadatos (autor, versión, nombre).units: variables y constantes reutilizables.points: el corazón; define las posiciones de las teclas mediante zonas, columnas y filas.outlines: contornos 2D derivados de los points (placa, case, paneles).cases: extrusión de los outlines a 3D.pcbs: generación del PCB con footprints.
Units: define tus medidas
En units declaras constantes que luego reutilizas. La convención de teclado usa u (una unidad de tecla, 19.05 mm). Aquí defines tu espaciado:
units:
kx: 19 # separación horizontal entre teclas
ky: 19 # separación vertical entre teclas
Points: zonas, columnas y filas
La sección points organiza las teclas en zonas (zones). Cada zona tiene columnas (columns) y dentro un bloque de filas (rows). El stagger y el spread se declaran por columna:
points:
zones:
matrix:
columns:
pinky:
key.stagger: 0
ring:
key.stagger: 3
middle:
key.stagger: 11
index:
key.stagger: 8
rows:
bottom:
home:
top:
spreades la distancia horizontal entre columnas.staggeres el desplazamiento vertical de una columna (la ergonomía del Corne que antes calculabas a mano).- Las
rowsse nombran y se apilan verticalmente segúnky.
Con mirror aplicado a la zona, Ergogen genera automáticamente la otra mitad del teclado split, igual que el mirror de OpenSCAD pero a nivel de toda la matriz:
points:
mirror:
ref: matrix_index_home
distance: 250
Outlines: contornos de placa y case
Una vez tienes los points, los outlines dibujan formas 2D a su alrededor. El caso típico es trazar un borde con cierto margen alrededor de todas las teclas:
outlines:
exterior:
- what: rectangle
where: true # todas las teclas
size: [18, 18]
bound: true
plate:
- what: outline
name: exterior
- operation: subtract
what: rectangle
where: true
size: 14 # huecos de switch de 14 mm
where: trueaplica la operación a todos los points; puedes filtrar por columna o fila.sizecontrola el tamaño del elemento en cada tecla.operation: subtractresta, igual que eldifferencede OpenSCAD. Aquí restamos los huecos de 14 mm para los switches, exactamente lo que modelamos a mano en el caso del Corne.
El resultado exterior es el contorno del case; plate es la placa de switches ya agujereada. Ergogen los exporta como SVG y DXF, listos para corte láser o para importar en tu CAD.
Cases: pasar a 3D
La sección cases extruye los outlines a volumen. Esto te da un sólido que puedes exportar a STL o trabajar más:
cases:
plate_3d:
- name: plate
extrude: 1.5 # grosor de placa, en mm
Ergogen genera un JSCAD (similar en espíritu a OpenSCAD) que puedes renderizar y exportar a STL.
PCBs: footprints
La sección pcbs asigna footprints (huellas de componentes) a cada point: el footprint del switch, del diodo, del controlador. Esto genera un PCB que abres en KiCad (el editor de placas de circuito de código abierto) para rutar las pistas, es decir, trazar las conexiones de cobre entre componentes:
pcbs:
board:
outlines:
main:
outline: exterior
footprints:
switches:
what: choc # footprint de switch Kailh Choc
where: true
params:
from: "{{column_net}}"
to: GND
Ergogen frente a OpenSCAD a mano
| Aspecto | Ergogen | OpenSCAD manual |
|---|---|---|
| Colocar teclas con stagger | Automático por config | Bucles y listas a mano |
| Generar PCB | Sí, con footprints | No |
| Mitad espejada | mirror en la zona | mirror() en geometría |
| Curva de aprendizaje | Media (YAML específico) | Media (lenguaje propio) |
| Control fino de geometría | Limitado al modelo de Ergogen | Total |
La regla práctica: para teclados (la matriz, la placa, el PCB) Ergogen te ahorra enormes cantidades de trabajo y errores. Para piezas que no son teclados, o para retoques muy específicos del case, OpenSCAD sigue siendo tu herramienta. Lo habitual es generar la placa y el outline con Ergogen y, si necesitas un case elaborado, exportar el contorno e importarlo en OpenSCAD o FreeCAD.
Flujo recomendado
- Empieza en el editor web con un config mínimo (una zona, pocas columnas).
- Ajusta
spreadystaggerhasta que la ergonomía te convenza. - Añade los outlines de placa y case.
- Cuando estés conforme, pasa a local para versionarlo con Git.
- Genera el PCB y termínalo en KiCad.
En el último artículo del módulo veremos precisamente cómo llevar tanto tus .scad como tus configs de Ergogen a un repositorio Git bien organizado.
Del blog al libro Este post forma parte del temario de OpenSCAD para electrónica. El libro completo incluye la biblioteca completa de cutouts reutilizables y todos los archivos .scad descargables.
Ver el libroMás de Módulo 2 · CAD y diseño paramétrico
Geometría constructiva sólida: union, difference, intersection, hull, minkowski
Texto Anton
Lectura 7 min