Loading files…
An open-source, column-staggered ergonomic keyboard. This repo contains everything to generate the PCBs, plates, renders/gerbers, and a simple printable bottom case tray.
It includes two PCB variants defined in ergogen/config.yaml:
knuckles: wired variant (TRRS, small display)knuckles_wireless: wireless-ready variant (power switch, battery connector, e-paper display)Both variants use reversible footprints and support per-key LEDs (SK6812mini-E) plus a small underglow chain. FR4 front/back plates and a controller overlay are also generated.
Images
images/frontplate-top.png, images/frontplate-bottom.pngimages/backplate-top.png, images/backplate-bottom.pngimages/controller_overlay-top.png, images/controller_overlay-bottom.pngfswatch for watch.sh live-regenerationClone with submodules:
git clone --recursive <repo-url>
Install JS deps:
npm install
There are two ways to build, depending on how much automation you want.
Ergogen-only (local, fast):
npm run build → generates PCBs/plates from ergogen/config.yaml and the case STL.npm run debug → same as build but with Ergogen debug output.npm run watch:build / npm run watch:debug → rebuild on YAML/JS changes.Full pipeline (Docker, KiCad + Freerouting):
./build.sh →
pcbs/, outlines/, ergogen/output/images, ergogen/output/gerbers./rebuild.sh → re-export/autoroute existing boards in pcbs/ without regenerating from Ergogen../watch.sh (macOS) → regenerates PCB on config change and opens the result.Notes:
package.json (cases/knuckles_bottom_tray.jscad) vs the file in cases/.pcbs/ — KiCad 8 .kicad_pcb files for boards and plates.outlines/ — DXF/SVG outlines used by the PCBs and case.cases/ — JSCAD source and generated STL for a bottom tray.ergogen/output/images — board renders (from KiBot/PCBDraw).ergogen/output/gerbers/<board> — JLCPCB-ready Gerbers and drills (zipped by KiBot).images/ — reference renders checked into the repo.Edit ergogen/config.yaml:
points.zones.* (spacing, splay, stagger).meta.footprint and optionally switch presets (mx, choc_v1, choc_v2, or the provided low-profile/reversible footprints).mcu footprint section.cases/ and the outlines under outlines/_bottom_case* to adapt walls and cutouts.After changes, rebuild via Ergogen (npm run build) or run the full pipeline (./build.sh).
A GitHub Actions workflow (.github/workflows/build.yaml) reproduces the full pipeline in containers:
cases, gerbers, images, outlines, pcbsUse the KiBot-produced ZIP under ergogen/output/gerbers/<board> for JLCPCB. The KiBot configs (kibot/default.kibot.yaml, kibot/boards.kibot.yaml) are tuned for JLCPCB and include common filters for autorouted boards.
ergogen/ — main Ergogen project (config.yaml, footprints, generated output)pcbs/ — KiCad boards (unrouted and autorouted variants)kibot/ — KiBot configs and helper scripts (DSN export / SES import)freerouting/ — rules, JARs, and logging for autoroutingcases/ — JSCAD for the printed bottom trayimages/ — reference images of platesbuild.sh, rebuild.sh, watch.sh — automation scriptsMIT © 2024 Felipe Coury (see LICENSE).
ergogen/footprints/ceoloide (submodule) and related authors.
No comments yet. Be the first to ask about this board.