Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/crides/kleeb

Collection of Kicad 6.0 symbols, footprints and 3D models useful in keyboard creation
https://github.com/crides/kleeb

kicad

Last synced: 4 months ago
JSON representation

Collection of Kicad 6.0 symbols, footprints and 3D models useful in keyboard creation

Awesome Lists containing this project

README

        

# Kleeb

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!

## License

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.

## Symbols

### `ic`

- `MCP23S08`: From [@petejohanson](https://github.com/petejohanson), converted to 6.0. 8-bit SPI bidirectional I/O expander, missing from Kicad libray
- `CMM4030D`: I2S microphone
- `TMP117`: I2C high accuracy temperature sensor
- `IS31FL3729`: 16x8 or 15x9 I2C LED matrix driver
- `IS31FL3741`: 39x9 I2C LED matrix driver
- `MAX98357A`: I2S DAC amplifier

### `display`

- `eink-128x80`: created by me. [128x80 Eink from waveshare](https://www.waveshare.com/product/displays/1.02inch-e-paper-module.htm)
- `ILI9341`: created by me. ILI9341 module
- `LCD2.2"`: created by me. [2.2 in TFT LCD module from Adafruit](https://www.adafruit.com/product/1480)
- `OLED-128x32`: created by me. Classic 128x32 OLED module [Example](https://www.littlekeyboards.com/collections/oled-screens/products/oled-screen)
- `OLED-128x64`: created by me. 128x64 OLED module [Example](https://www.littlekeyboards.com/collections/oled-screens/products/128x64-oled-screen)
- `adafruit-sharp-memory-display`: created by me. [Adafruit 1.3in SHARP memory display module](https://www.adafruit.com/product/3502)
- `adafruit-sharp-memory-display-no-useless`: created by me. Same as above but without non-necessary pins
- `TM022HDH26`: created by me. [2.2in raw SPI TFT LCD module](https://www.aliexpress.com/item/32417585937.html)

### `ic`

- `CMM4030D`, `eTQFP-32_7x7mm_P0.8mm`: created by me from datasheet
- `QFN-60-1EP_7x7mm_P0.4mm_EP5.4x5.4mm`: created by me from datasheet, for IS31FL3741; thermal pad patterns copied from kicad builtin footprints

### `switch`

- `SKRHA`: created by me. [5-way joystick from Alps](https://www.mouser.com/ProductDetail/Alps-Alpine/SKRHAAE010?qs=6EGMNY9ZYDQQG43X8RE8sg%3D%3D)
- `diode-choc`: created by me. Originally taken from [@PJE66](https://github.com/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.

### `mcu`

- `holyiot-18010`: From someone else on Discord, but modified by me. [Holyiot 18010 nRF52840 BLE module](https://www.aliexpress.com/i/32868002366.html)
- `holyiot-18010-no-underside`: Same as above, but without underside pads
- `xiao`: created by me, merged from the `xiao` repo. The [Xiao controller](https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html) from Seeed Studio.
- `xiao-ble`: Same as above. The [Xiao BLE controller](https://www.seeedstudio.com/Seeed-XIAO-BLE-nRF52840-p-5201.html) from Seeed Studio.
- `rp2040-zero`: created by me. The [RP2040 Zero controller](https://www.waveshare.com/rp2040-zero.htm) by WaveShare.
- `ms88sf3-nrf52840`, `ms88sf3-nrf52840-split`: From [@Kurtis](https://github.com/kurtis-lew) 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 the `holyiot-18010` footprints, and with the pad sizes slightly shrunken. [E73-2G4M08S1C nRF52840 BLE module](https://jlcpcb.com/partdetail/Chengdu_Ebyte_ElecTech-E732G4M08S1C/C356849)

### `sensor`

- `PMW3610`: created by me according to the datasheet. Low power mouse sensor from PixArt.

## Footprints

### `display`

- `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 Discord
- `OLED-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 data
- `TM022HDH26_back`: Same as above, but pads are on the different side of PCB
- `adafruit-sharp-memory-display-1.3in`: From someone on Discord, modified by me
- `adafruit-sharp-memory-display-1.3in-no-mounting`: Same as above
- `adafruit-sharp-memory-display-1.3in-no-mounting-no-useless`: Same as above

### `mcu`

- `holyiot-18010`, `holyiot-18010-no-underside`: Probably from someone on Discord, modified by me. [Holyiot 18010 nRF52840 BLE module](https://www.aliexpress.com/i/32868002366.html)
- `xiao-smd`: created by me, merged from the `xiao` 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` and `rp2040-zero-tht-pads`: ___Experimental!___ Same as above, plus throughole pads to solder underside pads.
- `rp2040-zero-smd-pads-cutout` and `rp2040-zero-tht-pads-cutout`: ___Experimental!___ Same as above, but the pads can be made into castellated ones by cutting through the pads?

### `misc`

- `BA1AAAPC`: [From Digikey](https://www.digikey.com/en/products/detail/mpd-memory-protection-devices/BA1AAAPC/8119216). Low profile AAA battery holder
- `auklet-cover-mount`: created by me. Cover mounting positions for the Auklet steno board
- `auklet-mount`: created by me. Bottom screw hole mounting positions for the Auklet steno board
- `batwings`: created by me. The original batwings logo converted from some picture on the web
- `crides-pos`: created by me. The logo for `crides`
- `crides-neg`: Same as above, but inverted
- `debug-port`: created by me. For use with pogo pin clamp for SWD debug
- `debug-port-single-side`: Same as above, but only top side has solder mask
- `embedded`: created by me. The embedded steno logo
- `hirose-df30fb-20ds-0.4v(82)`: probably from Digikey
- `CMS1609`: created by me from datasheet
- `molex-503182-1852`: probably from DigiKey
- `KXBG25-05X3F`: created by me from datasheet, for [a small solar cell](https://www.digikey.com/en/products/detail/anysolar-ltd/KXOB25-05X3F-TR/9990478)
- `nothing`: Literal nothing. Mainly for placing 3D models

### `switch`

- `SKRHA-boss`, `SKRHA-no-boss`: created by me, following datasheet from Alps
- `switch-MSK-12C02-smd`: Not sure where from
- `EVQWGD001`: Fetched from [@darryldh](https://github.com/Darryldh) on Discord, not sure of origin
- `SKRHA-boss`: created by me, following datasheet from Alps

### `sensor`

- `PMW3610`: created by [@ufan](https://github.com/ufan), from [their breakout board](https://github.com/ufan/pmw3610_breakout)

### `pg1350`, `pg1232` and `pg1425`

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](https://github.com/crides/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](https://github.com/keebio/Keebio-Parts.pretty), the pg1232 ones from [here](https://github.com/tamanishi/Kailh_PG1232), and the pg1425 ones from [Kailh documentation](https://github.com/keyboardio/keyswitch_documentation/blob/master/datasheets/Kailh/CPG142501D02.pdf). 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](https://github.com/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 off
- `L` & `R`: only when used with `SS`; 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 with `SS`; as narrow as possible (14.5mm; or is the intersection of the `L` and `R` variants)

## Models

- `adafruit-sharp-memory-display`: Obtained from [@petejohanson](https://github.com/petejohanson) on Discord, not sure of creator
- `adafruit-sharp-memory-display-no-mounting`: As above, but edited to cut off mounting screw holes
- `BA1AAAPC`: [From Digikey](https://www.digikey.com/en/products/detail/mpd-memory-protection-devices/BA1AAAPC/8119216). Low profile AAA battery holder
- `holyiot-18010`: From [@darryldh](https://github.com/Darryldh) on Discord
- `hro-type-c-31-m-12`: Not sure of source; I probably got it on Discord
- `MBK-1u`: [From @darryldh on Thingiverse](https://www.thingiverse.com/thing:4564253) ([@darryldh](https://github.com/Darryldh))
- `SKRHAD`: [From Alps](https://tech.alpsalpine.com/prod/e/html/multicontrol/switch/skrh/skrhace010.html)
- `OLED-128x32`: Not sure from where. Model for the 128x32 OLED displays
- `TF31-12S-0.5SH`: Not sure from where exactly, should be a manufactorer model. 0.5mm pitched 12pin FPC ZIF socket
- `JST-PH-S2B-R`: [From SnapEDA on Digikey](https://www.digikey.com/short/p1d9b87m). JST PH SMD 2pin connector, commonly used for batteries. [Product on Adafruit](https://www.adafruit.com/product/1769)
- `pg1350`, `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](https://grabcad.com/library/kailh-choc-low-profile-switch-1) but with the PCB and LED removed, and the MBK model from [here](https://www.thingiverse.com/thing:4564253/files). 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 . Doesn't seem to match footprint
- `TM035035`: From [@freznel](https://github.com/freznel10) on Discord, originated from Cirque.
- `pmw3360`: A copy of . Used for PMW3610 as well
- `EC10E`: From [Mouser](https://www.mouser.com/ProductDetail/Alps-Alpine/EC10E1220503?qs=6EGMNY9ZYDR3V6AJfd9I6g%3D%3D).