This submodule is for generating the hardware of my keyboard.
For the generating the files we need for the hardware we’ll be using ergogen. Ergogen is a program that allows you to build keyboards from a YAML config file.
We use ergogen to build the PCBs, outlines, cases, and points for us. I made a nix wrapper to build the results from ergogen see the contributing guide as ergogen does not generate STL files
So there is one thing I discovered with Ergogen, to have an exact location that is the same on the outlines, cases, and PCBs, it needs to be a point. Points are originally used for key switches, but they work fine for other things. For this reason I added the following points:
points:
zones:
...
# Microcontroller
microcontroller:
...
# mounting holes
mounting_hole_top_right:
...
mounting_hole_bottom_right:
...
mounting_hole_bottom_middle:
...
mounting_hole_top_left:
...
mounting_hole_bottom_left:
...
# Nix logo
nix_logo:
...
The next step is to create an outline
There is just one problem: Ergogen does not natively support the pro micro I want to use for my keyboard. So to solve this we have to use footprints. Footprints is a way to extend ergogen’s functionality beyond it’s native capabilities.
To use footprints we have to use the following structure: there has to be a directory called footprints
and a file called config.yaml
. The config.yaml
is where we’ll describe our keyboard to ergogen, and in the footprints
folder we’ll put our missing footprints. Thanks to @Narkoleptika’s hard work (or who ever he got it from) there is a footprint for the pro micro.
If you need any footprint that this repository is missing, you can find it’s JavaScript file, and add it to the ./src/footprints/
directory. There are a lot of footprints you can use. Just make sure it’s well tested, because a bad footprint could technically destroy your microcontroller.
Here are the components I used for my keyboard:
pro micro
microcontroller;