Skip to content

andornaut/splinter-keyboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Splinter keyboard

A 62-key split columnar ergonomic keyboard

Versions

Version Description Firmware Layout
v3 62-keys. Symmetrical enclosures. Non-traditional placement of backspace and backslash keys. tags/splinter-v3.0 v3
v2 62-keys. Symmetrical enclosures. Non-traditional placement of backspace and backslash keys. tags/splinter-v2.0 v2
v1 61-keys. Asymetrical enclosures. Traditional layout. tags/splinter-v1.0 v1

Installation

# 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.

Developing

Step 1. Configure the environment

Set the VERSION environment variable in .env to one of v1, v2, or v3

Keyboard Layout preview

  1. Prototype a keyboard layout using Keyboard Layout Editor
  2. 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
  3. Use the prototype as inspiration for creating a production-ready design using Ergogen

Step 3. Ergogen

Ergogen preview

  1. Convert the prototype to a production-ready design using Ergogen, and then save it to ergogen/config.yaml
  2. Run npm run build to generate and save outlines and pcbs to ../dist/v3/ergogen/ then npm run copy-pcbs-to-kicad
    • Alternatively, run npm run watch or npm run watch-and-copy-pcbs-to-kicad

Steps 4. KiCad

KiCad preview

  1. Design the PCBs using KiCad
  2. Run npm run copy-pcbs-to-kicad to copy the ../dist/v3/ergogen/pcbs/*.kicad_pcb files generated by Ergogen to kicad/
  3. Run xdg-open ./v3/kicad/left.kicad_pcb
  4. Route the PCBs in kicad/, and then save them to kicad/routed/
    • Once you're happy with the routing, run npm run copy-pcbs-to-routed to copy the PCBs to kicad/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 in kicad/routed/ back to those of the same name in kicad/. Select File > Revert > Yes to refresh the PCB in Kicad.
  5. 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
  6. Print the PCBs using JLCPCB (or OSH Park or PCBWay)
    • Submit the ../dist/v3/kicad/jlcpcb/*.zip files to JLCPCB

Customize net classes

  1. Navigate to File > Board Setup... > Design Rules > Net Classes
  2. Update the "Default" netclass
  3. Click the "+" button to add a "VCC" net class
  4. 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

Fix error when running npm run build

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

OnShape preview

  1. Model the case using OnShape
  2. Create a new document
  3. Start a new sketch
  4. Select "Insert a DXF or DWG file" > "Import ..." (at the bottom of the dialog) > Select ../dist/v3/ergogen/outlines/full.dxf
  5. Design a keyboard case
  6. Export *.step files to onshape/

Step 6. OrcaSlicer

  1. Print the case using OrcaSlicer
  2. Open or create an OrcaSlicer project file
  3. Import *.step files from onshape/
  4. Print the keyboard case

Step 7. QMK Firmware

  1. Install the custom QMK firmware

About

A 62-key split columnar ergonomic keyboard

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •