Skip to content

lambdakb/keyboard-lk23m

Repository files navigation

LK23 Numpad / Macropad

Documentation GitHub Release License KiCad

Layout

Layout

Keyboard Layout Editor

Variations

This keyboard has been designed as a standalone numpad with an extra top row to be used as a macro pad or media pad, as such, it can be configured in different ways when building it.

Here is the list of supported variations:

  • Optional encoder on the top left key
  • Optional encoder on the top right key
  • The top two center keys can be replaced by a 0.91" OLED screen

This allows for a number of configuration on the extra top row that can be used for a number of things. Each of these variations are supported in the Vial firmware under the Layout tab. See Vial Layout Options for more details.

Example #1 Example #2 Example #3 Example #4
Example Macropad Example Media Keys Example OLED + Volume Example OLED + 2 Encoders

This PCB can also be built as a wireless keyboard using a nice!nano microcontroller. See Wireless Support for more details on how to achieve this.

PCB

Front Back
PCB Front PCB Back

The PCB has been designed in KiCad EDA 8.0 using the kicad-lkbd libraries and kbplacer.

You can preview the project files using KiCanvas directly in your browser and download the latest fabrication files for JLCPCB from the latest release.

The exported schematic is also available under output/schematics.

PCB Order

Parameters Value
Base Material FR4
Layers 2
Dimensions 76.2 × 119.06 mm
PCB Thickness 1.6 mm
PCB Color 1 Black
Silkscreen White
Surface Finish 2 Lead Free HASL or ENIG
Copper Weight 1 oz
Via Covering Tented
Min Via Hole Size 0.3 mm
Board Outline Tolerance ± 0.2 mm

JLCPCB Specific Options

Mark on PCB

The following JCLPCB specific options are used to serialize PCBs on order. An 8 × 8 mm silkscreen square was added to the PCB to allow for a 2D barcode to be added.

Parameters Value
Mark on PCB 2D barcode (Serial Number)
- Printing 2D barcode & Number
- Code Type Data Matrix Code
- Prefix LKBD_LK23M_v100
- Unique Number Remove
- Incrementing Number YYMM01 (e.g.: 250300)
- 2D Barcode Size 8 × 8 mm
- 2D Barcode Position Specify Position

Serial numbers are based on the current date using the YYMM01 format for its incrementing numbers. Orders in February 2025 would start then start it at 250300, making the final serial LKBD_LK23M_v100_250300.

Cases

FR4

Plate (Silk) Bottom (Silk) Plate (ENIG) Bottom (ENIG)
FR4 Plate FR4 Bottom ENIG Plate ENIG Bottom

The FR4 case has also been designed in KiCad EDA 8.0 and consist of two PCBs, one for the switch plate and one for the bottom plate. It is available in two variations: silk and enig. The only difference between the two is how the decorative pattern is shown, the silk variant sets it up as part of the silkscreen while the enig variant shows it as solder mask.

The enig version is only suitable when using an immersion based surface finish such as "ENIG" and shouldn't be ordered with any "HASL" surface finish, use the silk variant instead. Otherwise, use the same parameters present in PCB Order to order the plate and bottom PCB. For JLCPCB orders, you can select "Remove Mark" for the "Mark on PCB" option as there is no need to serialize the case itself. You can find their respective fabrication files in output/case/silk/fabrication/jlcpcb and output/case/enig/fabrication/jlcpcb.

If you prefer to fabricate them by any other mean (such as laser cut acrylic), you can download their board outlines as DXF in output/case/dxf.

BOM

Part Ref. Quantity Optional Remarks
PCB LK23M PCB 1 See PCB section on how to order it.
Top Plate FR4 Top Plate 1 Optional if using an alternative case.
Bottom Plate FR4 Bottom Plate 1 Optional if using an alternative case.
Case Screws M2 × 4 mm Low Profile Socket Head Screw (Hex) 8 Optional if using an alternative case. Low profile hex head screws are recommended, but any head type should be compatible. Screws up to 8 mm in length should work.
Case Standoffs M2 × 12 mm Brass Hex Standoff 4 Optional if using an alternative case. Longer / shorter standoff could work depending on how the controller is mounted and if using a battery.
Pro Micro Controller Arduino Pro Micro 5V, Adafruit KB2040 or nice!nano 1 Supports various Pro Micro style controller (including RP2040 based ones) as well as the nice!nano for wireless builds. 3
MCU Socket DIP-24 Round Socket (Wide, 15.24 mm) 1 Recommended to socket the controller, can be omitted if soldered directly. Compatibles pins are required such as dismantled LED strip male adapters.
Reset Push Button DIP 2pin Momentary Push Button (6 × 3.5 mm) (THT) 1 Used as a reset switch, can be omitted if you flash the controller before installing it or if the controller can be put in bootloader mode from any other means.
1N418 Diodes 1N4148W T4 SOD-323 (SMD) or 1N4148 DO-35 (THT) 21-23 Only 21 diodes are needed if the OLED screen is installed.
Kailh Hot-Swap Sockets CPG151101S11-16 (SMD) 19 The top 4 keys can not be made hot-swappable due to size constraint and need to be soldered directly. All switches can be soldered directly to the PCB if preferred.
Key Switches Any Cherry MX Compatible Switch 19-23 Amount depends on the variant built, a two encoder OLED setup would require 2 EC12 encoder and 19 MX switches, while the key switches only variant needs 23.
2U Stabilizer Any standard 2U PCB mounted MX stabilizer 1 Recommended for Enter key stability.
Rotary Encoder(s) Any EC11 / EC12 style 5-pin Encoder 0-2 Optional, can be installed in place of the top left and/or top right most switches.
100nF Capacitor(s) 1206 SMD Ceramic Capacitor (SMD) or 104 Ceramic Disk Capacitor (5 × 2.5mm) (THT) 0-4 Two recommended per encoder for noise filtering.
0.91" OLED Display SSD1306 0.91" 128X32 OLED I²C Display Module 0-1 Optional, replace the top middle two switches.
Power Slide Switch PCM12SMTR (SMD) or MSK-12C02 (SMD) 1 Only required for battery powered wireless builds. 3
Battery Connector JST-PH 2pin right-angle Male Connector 1 Only needed for battery powered wireless builds if the battery is not soldered directly to the board (recommended). 3
3.7V Li-Po Battery 603449 (1100 mAh) or 503450 (1000 mAh) 3.7V Li-Po Battery 1 Only required for battery powered wireless builds, any 3.7 V (1 Cell) Li-Po battery slimmer than 8 mm with a JST-PH connector should work. 3

Firmware

Firmware has been built using the vial fork of QMK.

Vial Layout Options

Default Disable Left Encoder Disable Right Encoder OLED Screen in Center
Layout Default Layout Disable Left Encoder Layout Disable Right Encoder Layout OLED Screen in Center

Each of these options can be combined to match the physical layout of your build.

Wireless Support

To add wireless support to this keyboard, you will need a controller that provides power input and a charging circuit between the top RAW and GND such as the nice!nano.

The PCB itself provides a way to attach a JST-PH connector as well as a slide switch for power management. This slide switch must be set to ON for the charging circuit to work.

This hasn't been extensively tested yet and should be considered experimental (no wireless firmware will be provided for now). The feature was added to the PCB as way for us to prototype a potential wireless keyboard.

License

This design is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).

You are free to use, share, and adapt the design for non-commercial purposes, provided that:

  • Attribution: Proper credit must be given, a link to the license provided, and any changes indicated.
  • NonCommercial: The material cannot be used for commercial purposes without prior approval.
  • ShareAlike: Any derivative works must be distributed under the same license.

If you are a retailer or business interested in selling this design or products derived from it, I am open to granting commercial licenses on a case-by-case basis. Please feel free to contact me to discuss terms.

Footnotes

  1. You can select any PCB color you want but some manufacturers such as JLCPCB may charge you more for uncommon combos (such as Blue PCB + ENIG Surface Finish).

  2. The "HASL (with lead)" option is extremely discouraged due to the risk of lead poisoning. We strongly recommend paying the premium for the "Lead Free HASL" option.

  3. See Wireless Support for more details. 2 3 4