A 62-key split columnar ergonomic keyboard
Version | Description | Firmware | Layout |
---|---|---|---|
v3 | 62-keys. Symmetrical enclosures. Non-traditional placement of backspace and backslash keys. | tags/splinter-v3.0 | ![]() |
v2 | 62-keys. Symmetrical enclosures. Non-traditional placement of backspace and backslash keys. | tags/splinter-v2.0 | ![]() |
v1 | 61-keys. Asymetrical enclosures. Traditional layout. | tags/splinter-v1.0 | ![]() |
# Include submodules when cloning
git clone --recursive [email protected]:andornaut/splinter-keyboard.git
cd splinter-keyboard
# Install dependencies, including Ergogen
nvm use
npm install
# Install KiCad
sudo add-apt-repository ppa:kicad/kicad-8.0-releases
sudo apt install kicad
# Install KiKit
# Must use the same Python interpreter as KiCad (will not work in a venv)
sudo pip install kikit --break-system-packages
# Update submodules
git submodule update --recursive --remote
Alternatively, you can install OrcaSlicer and Kicad using these Ansible tasks.
Set the VERSION
environment variable in .env
to one of v1, v2, or v3
Step 2. Keyboard Layout Editor
- Prototype a keyboard layout using Keyboard Layout Editor
- Export the layout configuration to
keyboard-layout-editor/keyboard-layout-editor.json
, so that you can import it and iterate on it in the future - Use the prototype as inspiration for creating a production-ready design using Ergogen
Step 3. Ergogen
- Convert the prototype to a production-ready design using Ergogen, and then save it to
ergogen/config.yaml
- If prototyping using this online Ergogen editor, then click the gear icon, then add the sod-123w footprint
- Run
npm run build
to generate and save outlines and pcbs to../dist/v3/ergogen/
thennpm run copy-pcbs-to-kicad
- Alternatively, run
npm run watch
ornpm run watch-and-copy-pcbs-to-kicad
- Alternatively, run
Steps 4. KiCad
- Design the PCBs using KiCad
- Run
npm run copy-pcbs-to-kicad
to copy the../dist/v3/ergogen/pcbs/*.kicad_pcb
files generated by Ergogen tokicad/
- Run
xdg-open ./v3/kicad/left.kicad_pcb
- Route the PCBs in
kicad/
, and then save them tokicad/routed/
- Once you're happy with the routing, run
npm run copy-pcbs-to-routed
to copy the PCBs tokicad/routed/
- If you've generated new PCB files using Ergogen, then you can run
npm run copy-traces-from-routed
to copy traces from the PCBs inkicad/routed/
back to those of the same name inkicad/
. Select File > Revert > Yes to refresh the PCB in Kicad.
- Once you're happy with the routing, run
- Run
npm run copy-pcbs-to-routed && npm run fab-jlcpcb
to generate and save gerber and drill files to../dist/v3/kicad/jlcpcb/*.zip
- Print the PCBs using JLCPCB (or OSH Park or PCBWay)
- Submit the
../dist/v3/kicad/jlcpcb/*.zip
files to JLCPCB
- Submit the
- Navigate to File > Board Setup... > Design Rules > Net Classes
- Update the "Default" netclass
- Click the "+" button to add a "VCC" net class
- Configure a pattern to match nets with the text "VCC" to the VCC net class
Configuration | Description |
---|---|
Default | Clearance: 0.20mm, Track width: 0.20mm |
VCC | Clearance: 0.25mm, Track width: 0.25mm |
The pcbnew
Python library, which is packaged with Kicad,
may fail if it cannot find libTKBO, eg.:
$ python3
Python 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pcbnew
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/pcbnew.py", line 12, in <module>
import _pcbnew
ImportError: libTKBO.so.7: cannot open shared object file: No such file or directory
Workaround this issue by installing the missing library:
sudo apt install libocct-modeling-algorithms-7.6t64
Step 5. OnShape
- Model the case using OnShape
- Create a new document
- Start a new sketch
- Select "Insert a DXF or DWG file" > "Import ..." (at the bottom of the dialog) > Select
../dist/v3/ergogen/outlines/full.dxf
- Design a keyboard case
- Export
*.step
files toonshape/
Step 6. OrcaSlicer
- Print the case using OrcaSlicer
- Open or create an OrcaSlicer project file
- Import
*.step
files fromonshape/
- Print the keyboard case
Step 7. QMK Firmware
- Install the custom QMK firmware