Skip to content

j6n47

Background

This document will outline the process I went through in building my very own hand-wired keyboard from scratch.

Goals

  • Smaller form-factor (<60%)
  • Hotswap
  • OLED Screen?
  • QMK/VIA support
  • Ortholinear

Parts & Cost

Part Cost (CAD)
RPi Pico 12.95
Copper Wiring 11.99
Diodes 14.68
Soldering Kit 19.99
Switches (KTT Kang V3) 25.87
Kaihl Hotswap Sockets 17.29
Keycaps
3D Printing
Total Cost (WIP) 56.11

Layout

I initially found keyboard-layout-editor, where I viewed existing layouts and played around with creating my own layouts. For this project, my goal was to create a smaller form factor keyboard than my current 60%.


https://res.cloudinary.com/drwjkxxud/image/upload/v1721597844/rpi_pico_pinout_k7qsms.webp
Pinout for the RPi Pico microcontroller

Working with QMK

Setup

Setup of qmk was fairly straight-forward, following the available documentation.

pip3 install --user qmk
echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.zshrc && source $HOME/.zshrc
qmk setup
qmk compile -kb clueboard/66/rev3 -km default

QMK Configuration

I realized I would not be able to reuse the raw data I created earlier in keyboard-layout-editor, so I looked to port over my layout to qmk configuration.

I forked the qmk_firmware repo to include my new layout & created a keyboard profile for myself, adding respective pins based on the rpi pico's pinout diagram.


https://github.com/j6nca/keyboard/blob/main/qmk/j6n55/diagrams/rpi_pico_pinout.webp
rpi pico pinout diagram

qmk new-keyboard
...
qmk compile -kb handwired/j6n47 -km default

The changes I made can be viewed here.

Worklog

Update: 2023/06/28
Designed the layout for the keyboard using keyboard-layout-editor.


https://res.cloudinary.com/drwjkxxud/image/upload/v1721595259/layoutj6n47_ngccyp.png
The designed layout

I then tried a few different options to take this layout and generate a 3D-printable .stl file:

I ended up using keebio's plate generator, though it seems the three options have quite similar feature sets.

Update: 2023/06/30
Went to the library to print the pcb plate! Had to tinker with the fill (make it much less dense than before) to get the print to fit the timeslot I had booked (we are only allotted max 2 hrs for a print). View a short clip of the print here


https://res.cloudinary.com/drwjkxxud/image/upload/v1721595259/j6n47plate_s2ptuk.png
3D printing the plate to hold all the key switches

Additionally did a test fitting with some spare switches I had lying around.


https://github.com/j6nca/keyboard/blob/main/qmk/j6n55/diagrams/fitting.jpg
Fitting switches into plate


https://github.com/j6nca/keyboard/blob/main/qmk/j6n55/diagrams/pre-handwiring.jpg
Pre-handwiring

Update: 2023/07/04
After flashing the
I wanted the keyboard to also support VIA configuration (that way I won't need to reflash the mcu everytime I want to make changes), enabling support for VIA was surprisingly simple following a guide from youtuber Joe Scotto.


https://res.cloudinary.com/drwjkxxud/image/upload/v1721089169/j6n43via_jr26df.png
VIA config

Update: 2023/07/07
Completed the soldering for the keyboard matrix and microcontroller


https://github.com/j6nca/keyboard/blob/main/qmk/j6n55/diagrams/handwiring.jpg
Handwiring diagram


https://res.cloudinary.com/drwjkxxud/image/upload/v1721089169/IMG_3082_tkfrx2.jpg
Finished soldering

Media

References