This is a work in progress for now!
The pin-check is a printed circuit board (PCB) for hand-wired keyboards that uses all through-hole components, and supports QMK firmware, MX or Alps keyswitches, and split layouts. The keyswitch spacing is 19.05 mm and the USB connector is USB-C.
It is inspired by the Plaid, Discipline, and Postage Board. It's called the pin-check because pin check is a smaller pattern than plaid and Gingham. It will stick up above your case or plate, both to show off the components 😎 and because through-hole components can't fit under the keyswitches on the back side of the PCB like the surface-mount device (SMD) components of something like Postage Board can.
It looks something like this (before any of the components are added).
There is a PDF of the schematic here.
Kits that include the PCB and all components (except for keyswitches) may be for sale at some point.
If you purchased a kit you can skip to building the kit!
To get a PCB, you can submit the files in this repository to any PCB manufacturer. OSH Park lets you upload .kicad_pcb
files directly, or you can generate Gerber and drill files and submit them to your preferred PCB manufacturer (the manufacturer should have instructions to do this using KiCad).
All of the required electrical components and quantities are listed in the bill of materials (BOM). You can purchase these components (or equivalent components) from DigiKey, Mouser, or anywhere else you can find them. The BOM does not include parts like keyswitches or keycaps.
To flash new QMK keyboard layouts onto the keyboard (without using an AVR programmer or the ISP pins), the bootloader on the ATmega328P microcontroller unit (MCU) needs to support USB. USBaspLoader is a bootloader for AVR MCUs that uses V-USB for USB support.
TODO: Add instructions to use avrdude with either an AVR programmer or Raspberry Pi GPIO pins to flash the bootloader onto a fresh chip/MCU.
If you want to mount a clear acrylic window above the exposed portion of the PCB, you can upload the assets/window.svg
file in this repository to your preferred laser cutting service or use it to cut a piece of clear acrylic yourself (something around 3mm thick should be good). To mount the window, you need four M2 female-female standoffs that are at least 10 mm long, and eight M2 screws to secure the standoffs to the window and the PCB.
There may be instructions here for assembling the kit (soldering components onto the PCB) at some point. It should be fairly straightforward if you know how to solder. The hardest part to solder is the USB-C jack. It's helpful to apply some flux (with a flux pen) to the smaller pins, get some solder on your iron, and drag it across the pins. It's also helpful to use some sort of magnifier to make sure all of the pins are soldered correctly.
Once all components are soldered onto the PCB (and before soldering the PCB onto your keyswitches) you should connect it with USB and press the RESET
button while holding down the BOOT
button. This should boot the chip into the USBaspLoader bootloader, which should be recognized by QMK Toolbox or avrdude. If it is not recognized, try the button combination again or check your solder joints.
If you already have a plate, case, and keyswitches, and are familiar with hand-wiring, you can skip to the QMK section.
TODO: Add information about limitations of the number of I/O pins on the ATmega328P (and implications for layouts).
TODO: Add example instructions of designing and purchasing a plate (probably using Keyboard Layout Editor, swillkb, and OSH Cut or another laser cutting service.
TODO: Add information about standoffs and screws for a sandwich-style case.
TODO: Add information about hand-wiring and required parts (more diodes!).
TODO: Add instructions about creating a keymap in QMK and flashing it onto the keyboard. Mention that H11 and H12 are not available to use for rows or columns if you're setting up a split keyboard!
FYI: The pin-check board alone has 18 I/O pins. If you use the TRRS jack (for a split keyboard) or I2C headers (to attach another device), pins C4
and C5
are used for I2C and are unavailable for I/O.
- Thank you to coseyfannitutti who designed the Discipline PCB for the footprints
D_DO-35_SOD27_P5.08mm_Horizontal.kicad_mod
andUSB_C_GCT_USB4085.kicad_mod
! The Creative Commons license for these is included here. - Thanks to ai03-2725 for the symbol
MX-NoLED
(which I slightly modified to swap theROW
andCOL
labels) and footprintMX-1U-NoLED.kicad_mod
from the MX_Alps_Hybrid repository. The footprint is also slightly modified (I added F.Mask to the technical layers of pads 1 and 2, so it would show up accurately in Pcbnew's 3D viewer) from the version in dsanchezseco's pull request. The MIT license for these is included here. - The symbol
SJ-43514
and footprintCUI_SJ-43514.kicad_mod
are from CUI Devices (with minor modifications to the footprint to move some weird edge cuts to the Cmts.User layer). These files are not licensed by CUI Devices and are free to use. - Lastly, I have to shout out the plaid PCB by hsgw one more time, because it was my first through-hole kit, it inspired me to learn more about circuit and PCB design, and it has been a great resource to learn from since it's open source.