2.8 · Ergogen

28 May 2026

Por:
Anton
Sección:
Módulo 2 · CAD y diseño paramétrico
Lectura:
7 min
Infografía: 2.8 · Ergogen

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:
  • spread es la distancia horizontal entre columnas.
  • stagger es el desplazamiento vertical de una columna (la ergonomía del Corne que antes calculabas a mano).
  • Las rows se nombran y se apilan verticalmente según ky.

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: true aplica la operación a todos los points; puedes filtrar por columna o fila.
  • size controla el tamaño del elemento en cada tecla.
  • operation: subtract resta, igual que el difference de 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

AspectoErgogenOpenSCAD manual
Colocar teclas con staggerAutomático por configBucles y listas a mano
Generar PCBSí, con footprintsNo
Mitad espejadamirror en la zonamirror() en geometría
Curva de aprendizajeMedia (YAML específico)Media (lenguaje propio)
Control fino de geometríaLimitado al modelo de ErgogenTotal

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

  1. Empieza en el editor web con un config mínimo (una zona, pocas columnas).
  2. Ajusta spread y stagger hasta que la ergonomía te convenza.
  3. Añade los outlines de placa y case.
  4. Cuando estés conforme, pasa a local para versionarlo con Git.
  5. 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 libro

En construcción

Estamos preparando algo. Vuelve pronto.

Newsletter gratis

Novedades y montajes.

Directo a tu correo.

Sin spam.

Sin anuncios.

Al suscribirte aceptas recibir correos del taller. Puedes darte de baja cuando quieras.

Síguenos