This is a collection of the Kicad symbols, footprints and 3D models useful in keyboard creation other than normal mechanical switches and the ones included in Kicad's standard library, all in 6.0 format. I didn't create all of them, and some come from either other people on Discord, or from other online resources that isn't in a Git tree. Putting them in a centralized place means it's easier for people to use, distribute*, and compare, and changes can be made in a clearer way. I'll try to list the sources down below, but due to the nature of the sources they maybe incorrect/missing. If you have a problem with how I'm using/distributing them please let me know.
Some of the symbols and/or footprints included here may be untested. If you have made a board with those, whether successful or unsuccessful (hopefully the former), please let me know either privately or through issues/PRs. Thanks!
Those directly created by me is licensed under MIT. Those came from Discord are technically in a grey zone, as they are shared without a (explicit) license. For those that came from other sources, the original license should be used. I do not intend to claim ownership over them, and they are here so they can be easily included in future projects.
MCP23S08
: From @petejohanson, converted to 6.0. 8-bit SPI bidirectional I/O expander, missing from Kicad librayCMM4030D
: I2S microphoneTMP117
: I2C high accuracy temperature sensorIS31FL3729
: 16x8 or 15x9 I2C LED matrix driverIS31FL3741
: 39x9 I2C LED matrix driverMAX98357A
: I2S DAC amplifier
eink-128x80
: created by me. 128x80 Eink from waveshareILI9341
: created by me. ILI9341 moduleLCD2.2"
: created by me. 2.2 in TFT LCD module from AdafruitOLED-128x32
: created by me. Classic 128x32 OLED module ExampleOLED-128x64
: created by me. 128x64 OLED module Exampleadafruit-sharp-memory-display
: created by me. Adafruit 1.3in SHARP memory display moduleadafruit-sharp-memory-display-no-useless
: created by me. Same as above but without non-necessary pinsTM022HDH26
: created by me. 2.2in raw SPI TFT LCD module
CMM4030D
,eTQFP-32_7x7mm_P0.8mm
: created by me from datasheetQFN-60-1EP_7x7mm_P0.4mm_EP5.4x5.4mm
: created by me from datasheet, for IS31FL3741; thermal pad patterns copied from kicad builtin footprints
SKRHA
: created by me. 5-way joystick from Alpsdiode-choc
: created by me. Originally taken from @PJE66, but with some of the pins hidden as they are not needed for external connections. Even though they are still 2 pin "components", the diode is included for clarity in the schematics, and should be used with the autogenerated choc footprints.
holyiot-18010
: From someone else on Discord, but modified by me. Holyiot 18010 nRF52840 BLE moduleholyiot-18010-no-underside
: Same as above, but without underside padsxiao
: created by me, merged from thexiao
repo. The Xiao controller from Seeed Studio.xiao-ble
: Same as above. The Xiao BLE controller from Seeed Studio.rp2040-zero
: created by me. The RP2040 Zero controller by WaveShare.ms88sf3-nrf52840
,ms88sf3-nrf52840-split
: From @Kurtis on Discord, who used a split symbol. I merged the ground pins and merged the units for the symbols, and corrected the footprint according to the datasheet, also making the keepout 5mm wide.e73-2g4m08s1c
,e73-2g4m08s1c-no-underside
: [fetched from SnapEDA)[https://www.snapeda.com/parts/E73-2G4M08S1C/EBYTE/view-part/], but modified by me, in the same style of theholyiot-18010
footprints, and with the pad sizes slightly shrunken. E73-2G4M08S1C nRF52840 BLE module
PMW3610
: created by me according to the datasheet. Low power mouse sensor from PixArt.
LCD2.2in
: created by me.OLED-128x32
: created by me.OLED-128x32-cutout
: Same as above, but show the display area. Data came from@rain
on DiscordOLED-128x32-double-sided
: Same as above, but has jumpers on both sides allowing the OLED to be installed on both sides. The jumpers on the reverse side of the display are to be soldered.OLED-128x64
: created by me.TM022HDH26
: created by me. Holes follow the positions on datasheet, pads are measured dataTM022HDH26_back
: Same as above, but pads are on the different side of PCBadafruit-sharp-memory-display-1.3in
: From someone on Discord, modified by meadafruit-sharp-memory-display-1.3in-no-mounting
: Same as aboveadafruit-sharp-memory-display-1.3in-no-mounting-no-useless
: Same as above
holyiot-18010
,holyiot-18010-no-underside
: Probably from someone on Discord, modified by me. Holyiot 18010 nRF52840 BLE modulexiao-smd
: created by me, merged from thexiao
repo. The Xiao controller with SMD pads, with throughole pads for the 4 underside pads.xiao-tht
: Same as above. The Xiao controller with THT pads, with throughole pads for the 4 underside pads.xiao-ble-smd
: Same as above. The Xiao BLE controller with SMD pads, with throughole pads for the 4 pads under USB-C connector, 2 battery pads, and 2 NFC pads.xiao-ble-tht
: Same as above. The Xiao BLE controller with THT pads, with throughole pads for the 4 pads under USB-C connector, 2 battery pads, and 2 NFC pads.xiao-ble-tht-cutout
: Same as above. The Xiao BLE controller with THT pads, with throughole pads for the 4 pads under USB-C connector, 2 battery pads, and 2 NFC pads, except there are cutouts around the underside pads, so that one can cut around the pads making it easier to solder those pads.rp2040-zero-smd
: created by me. The RP2040 Zero controller by WaveShare, with SMD pads and a cutout for the MCU itself.rp2040-zero-tht
: Same as above. The RP2040 Zero controller, with THT pads and a cutout for the MCU itself.rp2040-zero-smd-pads
andrp2040-zero-tht-pads
: Experimental! Same as above, plus throughole pads to solder underside pads.rp2040-zero-smd-pads-cutout
andrp2040-zero-tht-pads-cutout
: Experimental! Same as above, but the pads can be made into castellated ones by cutting through the pads?
BA1AAAPC
: From Digikey. Low profile AAA battery holderauklet-cover-mount
: created by me. Cover mounting positions for the Auklet steno boardauklet-mount
: created by me. Bottom screw hole mounting positions for the Auklet steno boardbatwings
: created by me. The original batwings logo converted from some picture on the webcrides-pos
: created by me. The logo forcrides
crides-neg
: Same as above, but inverteddebug-port
: created by me. For use with pogo pin clamp for SWD debugdebug-port-single-side
: Same as above, but only top side has solder maskembedded
: created by me. The embedded steno logohirose-df30fb-20ds-0.4v(82)
: probably from DigikeyCMS1609
: created by me from datasheetmolex-503182-1852
: probably from DigiKeyKXBG25-05X3F
: created by me from datasheet, for a small solar cellnothing
: Literal nothing. Mainly for placing 3D models
SKRHA-boss
,SKRHA-no-boss
: created by me, following datasheet from Alpsswitch-MSK-12C02-smd
: Not sure where fromEVQWGD001
: Fetched from @darryldh on Discord, not sure of originSKRHA-boss
: created by me, following datasheet from Alps
PMW3610
: created by @ufan, from their breakout board
These footprints are autogenerated with python scripts cuz I hate hand making all the variants I need for choc. It uses my fork of kicad-footprint-generator. The changes in the generator are basically usability changes for myself, and you'll see why in the diff.
The pg1350 footprint dimensions (i.e. pin sizes & locations) is originally taken from Keebio, the pg1232 ones from here, and the pg1425 ones from Kailh documentation. They are converted to Python and modifications are added.
The outline on User.Comments
is the outline of the side tabs, and the one on User.Drawings
is slightly outside of the outline of the keycap, reflecting the spacing.
All of the footprints are auto generated now. Different letters signify different variations.
D
: includes diode in the footprint. It uses choc LED hole for (optional) SOD-123 diode placement, and the internal connections are already made. The center of the footprint is placed on the center of the diode to help with PCBA, and it's meant to be used with the custom symbol signifying that it has a builtin diode;R
: footprint is reversible. Througholes are included for both sides, another pad is used to connect the duplicated hole, and vias are used inside of the diode pads to connect the diodes on both sides, and silkscreens are duplicated on both sides;H
: Hotswap footprint. Currently only supports pg1350 chocs and pg1232 choc minis, using the PCB itself as the socket. Pad shape and idea borrowed from @davidphilipbarr. Untested!B
: Hotswap and soldered footprint. Only available for pg1350.
All the following variants are spacing variants, which is useless for most people and I keep it here for my own sake.
S
: shorter spacing, only affects the cap outline. To be used with 15mm vertical spacing. This as close vertical as chocs gets without modding the switch itself;SS
: "Super Short": even shorter spacing, only affects the cap outline. To be used with 13.5mm vertical spacing. This as close vertical as choc minis (pg1232) gets without modding the switch itself;C
: "compact"/"cut": for pg1232 & pg1350, with the side tabs chopped offL
&R
: only when used withSS
; off centered spacing for use with same finger double column (e.g. most commonly the 2 columns for index finger, or columns for pinky).N
: only when used withSS
; as narrow as possible (14.5mm; or is the intersection of theL
andR
variants)
adafruit-sharp-memory-display
: Obtained from @petejohanson on Discord, not sure of creatoradafruit-sharp-memory-display-no-mounting
: As above, but edited to cut off mounting screw holesBA1AAAPC
: From Digikey. Low profile AAA battery holderholyiot-18010
: From @darryldh on Discordhro-type-c-31-m-12
: Not sure of source; I probably got it on DiscordMBK-1u
: From @darryldh on Thingiverse (@darryldh)SKRHAD
: From AlpsOLED-128x32
: Not sure from where. Model for the 128x32 OLED displaysTF31-12S-0.5SH
: Not sure from where exactly, should be a manufactorer model. 0.5mm pitched 12pin FPC ZIF socketJST-PH-S2B-R
: From SnapEDA on Digikey. JST PH SMD 2pin connector, commonly used for batteries. Product on Adafruitpg1350
,pg1350-mbk
,pg1232
,pg1232-mbk
: created by me. pg1350 and pg1232 choc switch models with MBK 1u keycaps. The pg1350 model is taken from here but with the PCB and LED removed, and the MBK model from here. The pg1232 model is made by me through cutting and rejoining pieces of the pg1350 model, which should immitate the general model but is otherwise very janky. The joint choc and MBK models are simply the combinations of the switch models and the MBK model.rp2040-zero
: From the low pro Discord from@gerrycave
from WaveShare. Giant model of the RP2040-Zero, recentered by me through FreeCAD.EVQWGD001
: A copy of https://grabcad.com/library/panasonic-evqwgd001-encoder-1#!. Doesn't seem to match footprintTM035035
: From @freznel on Discord, originated from Cirque.pmw3360
: A copy of https://grabcad.com/library/pmw3360dm-mouse-sensor-1. Used for PMW3610 as wellEC10E
: From Mouser.