• Stars
    star
    150
  • Rank 245,815 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 2 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Second generation KiCad Libraries of keyboard switch footprints

Warning

This library is in development and has yet to be tested in production.
Please use at your own risk.

Cover Image

MX_V2

Second generation KiCad Libraries of keyboard switch footprints

6 years after the creation of the original MX_Alps_Hybrid library, this library has been created as a successor and replacement.

Features

  • Designed from scratch using official datasheets and accurate measurements
  • Almost every switch size in existence
  • Topside soldermask to prevent solder overflow and improve appearance
  • Various keysizes for all occasions
  • Keysizes are generated via the script generate.py from a single footprint, making the library extensible and maintainable
  • (Will be) used for production PCBs and battle-tested in the real world

Included Footprint Libraries

  • MX_Solderable.pretty - For Cherry MX type switches.
  • MX_Hotswap.pretty - For Cherry MX type switches via hotswap sockets.
  • Alps_Solderable.pretty - For alps SKCM/SKCL, SKBM/SKBL, and clones with same pin structure.
  • MX_Alps_Hybrid.pretty - Hybrid MX/Alps compatible solderable footprints.
  • Switch_Misc.pretty - Misc footprints such as LED footprints.
  • Template.pretty - The template footprints that the script uses to generate footprints automatically. Do not use in production.

Footprint Variants

  • -ReversedStabilizers - Reversed stabilizer direction (north- vs south-facing).

Misc Parts Variants

  • -LED - LEDs that align to each switch footprint. Prefix denotes which type of switch they are applicable to.
  • -Reversed - Inverts pin 1 order (left vs right square pad).
  • -PolarityMarked - Marks pin 1 with a + icon to denote positive polarity (only useful if pin 1 is the higher voltage).

Contributing

Verbal "Please create this" will usually be declined due to lack of time available for maintenance.
Massive overhauls that completely change the structure of the library or code will be declined if made without prior discussion.
When creating PRs, please verify the following:

  • A template footprint is created in Template.pretty if creating a new family type, with the file modified to have "Template" for all script-replaced unit/variant text.
  • Code modifications are done in a sane, clean manner.
  • Footprints are made from datasheets, empirical testing, and/or reasonable expectations.
  • All footprints in a switch library (i.e. not a one-off LED footprint or similar) are generated from the script and are not manually modified.

Todo

  • Script: Make ISO outlines scale by unit width/height parameters
  • Add 3D models of sockets to hotswap footprints
    • Make a 3D model of a socket to begin with
  • Add screenshots of 3D model, footprint
  • Create useful schema symbols

Credits

More Repositories

1

MX_Alps_Hybrid

KiCad Library of custom MX-Alps footprints
341
star
2

Type-C.pretty

KiCad library for various Type-C USB connectors
234
star
3

Contra

Contra - Lowest cost ortholinear keyboard kit possible
157
star
4

ai03-keyboard-pcb-guide

A PCB designed as per the ai03 PCB design guide
141
star
5

random-keyboard-parts.pretty

KiCad Footprint and Schematic modules for various keyboard parts, prepared as necessary
131
star
6

another-keyboard-builder

An exact mechanical keyboard plate creator
Python
88
star
7

Voyager

A family of fully featured open source mechanical keyboard PCBs
85
star
8

Voyager60

A versatile, modern 60% PCB
69
star
9

yet-another-keyboard-builder

An exact, client-side mechanical keyboard plate generator
JavaScript
62
star
10

UT47.2

Hotswappable 40% keyboard based on Gnap
52
star
11

Soyuz

Inexpensive mechanical numpad kit
50
star
12

KBD8X-MKII-PCB

The source for the KBD8X MKII PCB
42
star
13

Voyager97

Compact keyboard PCB with full-size functionality
33
star
14

JP60

GH60-compatible JIS-like hotswap keyboard PCB
23
star
15

Voyager40

Compact, fully featured keyboard PCB
23
star
16

Voyager104

A full-size PCB for the Voyager family
22
star
17

ContraPlates

A basic PCB case for Contra
20
star
18

Celestine

Custom TKL PCB for NMB Hi-Tek 725 (Space Invader) switches
18
star
19

JP65

65% JIS-like hotswap keyboard PCB
15
star
20

Voyager20

A simple numpad PCB
12
star
21

Voyager4

Tiny macropad for the Voyager family
12
star
22

Voyager50

50% addition to the Voyager family
11
star
23

StabilizerShims

MX PCB-mount stabilizer shims for thinner PCBs
11
star
24

Orion

USB 2.0 Hub
9
star
25

Unified-Daughterboard

Redirect repo for old URL
8
star
26

Quasar

Replacement controller for IBM Model M Space Saving Keyboard
7
star
27

Yubikey-5-Sleeve

A simple 3D-printed sleeve for protecting a Yubikey 5 on a keyring
6
star
28

alps-skcm-remover

Tool for removing Alps SKCM switches from the plate
6
star
29

PCB-Keychains

Why not
5
star
30

duet-switch-tester

Switch tester designed for two of each switch for display and testability
4
star
31

v1-webpages

Old copies of ancient sites that were located at ai03.me
HTML
3
star
32

Xbox-XS-Controller-Stand

A simple stand for the Xbox Series X/S controller
3
star
33

UPDI-Hybrid-Adapter

Hybrid UPDI programmer and serial adapter
2
star
34

Keyhawk

A tiny rapid keypad firmware for pro micro-based keypads
Arduino
2
star
35

Summit

Cherry MX switch display unit
2
star
36

kbwiki

Mechanical Keyboard Development Wiki Contents
1
star
37

Aurora

1
star
38

Pluto

Cut-PCB MX switch modding plate
1
star
39

simple-qr-code-generator

A simple web QR code generator
TypeScript
1
star
40

NBA1-24-001.pretty

KiCad library and 3D model for the Pentaconn NBA1-24-001 connector
1
star