Skip to the content
2 layers118.4 × 129.7 mmNifty Numpad, the printed circuit board in 3D

Full sized numpad with an extra row and two extra columns of macro keys. It was created as a companion to my TKL keyboard for CAD design.

Size
118.4 × 129.7 mm
Copper layers
2
Thickness
1.63 mm
Parts
176
Nets
124
Pads
675
Tracks, vias
998, 854
Pours
19
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
7 Aug 2024
Updated
7 Aug 2024

Overview

Nifty Numpad is an open-source printed circuit board by Acliad, from the Acliad/Nifty-Numpad repository on GitHub. It is a 2-layer board of 118.4 × 129.7 mm with 176 parts on 124 nets, routed with 998 tracks and 854 vias.

It is built around the RP2040, W25Q40CLSNIG and SN74LVC1T45DCK, with the SK6812MINI-E and ABLS-12.000MHZ-B4-T among its other parts. Its parts include 66 diodes, 52 capacitors, 35 switches, 8 resistors and 5 ICs. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

5

README

readme.md

Nifty Numpad is a full sized numpad with an extra row and two extra columns of macro keys. It was created because I wanted a companion to my TKL keyboard for work. My main workflow involves heavy use of ECAD programs, so the design was tailored for that, but it is generic enough to be nice for many workflows!

The main features are:

  • Full sized numpad with row of macro/function keys on the top
  • Two extra columns of macro keys
  • Cherry MX style socketed switches
  • Backlit keys
  • 3D printable case (FDM or resin)

render

Contents

Building One

All of the files needed to build this numpad are in this repo (with software as a submodule and in the main QMK repo). The total BOM cost will be somewhere around $65-$85 shipped, but depends heavily on where and how you source things like switches, keycaps, plate, etc. For example, I bought 120x switches, but if you could get 33 switches for cheaper, you might save ~$10.

1. PCB Assembly

The most difficult part of the build is soldering the RP2040 (microcontroller used) and associated components. It is highly recommended that you have the PCBs assembled. The files are in this repo for getting the PCB assembled through JLC PCB. You may save some money by soldering some of the components yourself (especially the sockets and LEDs). However, if you just love to solder this can be done with a stencil and plenty of time. I should know 🥲

You can choose to omit the LEDs if you're not into that sort of thing. It'll save you a few bucks.

Parts marked as (DNF) in the BOM are not meant to be populated. If you want easy debugging for software development, you can populate R103, SW101, and SW102.

To have the PCB assembled:

  1. Upload the gerber files from PCB/Main PCB/production/Nifty_Numpad.zip to JLC PCB.
  2. Check the PCB Assembly toggle on the JLC PCB order page.
    1. Choose the PCBA Type. If you want JLC to solder the LEDs and sockets for you, you need to choose Standard. Otherwise, choose economy. Economy is a bit cheaper.
  3. On the PCB Assembly page, you will need to upload the bom.csv and positions.csv file from PCB/Main PCB/production/
  4. On the Components Placements page, make sure all of the ICs are orientated correctly. They usually aren't by default since JLC's library orientation is generally different from KiCad's.

To Solder the PCB assembly yourself:

  1. Order PCBs (I use JLC, you can use whomever you like).
  2. Order a stencil (you can usually do this at the same time as the PCB).
  3. Order parts (I have DigiKey PNs in the electrical BOM, but again feel free to substitute)
    • The switch sockets are not available on DigiKey. I bought mine on Amazon, but you can source them from most keyboard suppliers.
    • The LEDs come in packs of 10. You can get them from DigiKey or Adafruit, but note if you upload the BOM directly to DigiKey it will put in a quantity of 33, which is actually 330.
  4. Solder it!
    • I recommend a reflow oven, but a hot air station or hot plate works too.

2. 3D Printed Case

This case was initially designed to be 3D printed on a resin printer, but it actually prints best on an FDM printer. There are not special instructions here. You can either print the case yourself or have it printed using a service. JLC offers printing of many varieties. This might be a good choice if you're already ordering the PCB from them.

All the screw holes are designed to be tapped by a self-tapping screw. The BOM has some recommendations for some plastic-threading screws.

I have added a "shadow line" to the case outline. There's a top-case print option with and without this line. I think it helps the look a bit for FDM prints, but it's up to you.

It helps the sound profile considerably to fill up the case with some kind of dampening material. You could use foam or pour castable silicone into the case (I used this one). You can (and probably should) pour the silicone directly into the case. However, I've also included a mold for this in the Mechanical folder.

3. Switch Mounting Plate

I used plate-mount switches on this design. You can either make your own plate or have one made for you. There's a model of the plate as well as a DXF file in the Mechanical folder. Here is some information about some options:

  1. Order a plate out of FR-4 when you order the PCB
    • This is a good option if you're already ordering the PCB from JLC. You can order the plate at the same time and save on shipping.
    • This plate is quite rigid and I've found it to work well.
  2. Order or make a custom plate out of your preferred material.
    • If you have a laser cutter or CNC, you can use the DXF or step file to make a plate out of whatever material you like! Many people use plexilgass, but you could use wood or metal.
  3. Use the provided 3D model of the plate to 3D print a plate.
    • The plate works, but it's quite flimsy and makes taking all the switches off the PCB tedious

Whatever you choose to do, you should find appropriate files in the Mechanical folder.

4. Switches/Keycaps

The fun part! Choose your favorite Cherry MX compatible switches and pop them in. If you're using LEDs, make sure you get switches with a clear top.

I found it difficult to source backlit keycaps that fit this build well. You might be better off using non-backlit keycaps. There are some AliExpress sellers who will sell portions of a keyboard at a time so you can mix and match colors. This is what I ended up doing, but I couldn't find any in a uniform profile like XDA or DSA. If you find a good source of keycaps, please share!

If you're feeling plush, I think the numpad + icono kits of these keycaps would be really nice.

You'll also need 3x 2u plate-mount stabilizers. You can source these from most keyboard part suppliers or Ali Express.

5. Software

I've used QMK for this build. Theere are builds for the VIA GUI configurator, a basic default usage, and an example for how to use the "fancy" RGB Idle mode and some tap-dance features. VIA is probably the easiest way to configure the keymap since you can configure it over a GUI, but if you're comfortable with QMK, you can do some cool customizations.

The Nifty Numpad has been merged into the main QMK repo, which you can find here. My personal fork for developing the keyboard software is a submodule of this repo. You can find it here.

QMK and the build/flash process is pretty well document, so I'll leave that to the QMK community. If you have specific issues with the Nifty Numpad, feel free to message me.

TODO

Software

  • Implement VIAL for GUI remapping of buttons
  • Add other keymaps (an actual default and rename current to Cadence is a good start)
  • Create visual legend for RGB settings layer

Changelog

PCB

Rev 1

  • Changed footprint for W25Q40CLSNIG from wide to narrow footprint to match DigiKey PN
  • Changed standoff holes to 6.0mm (from 4.6mm)
  • Update LED footprint
  • Add WASD graphic

Software

  • Added additional keymaps: default, VIA, and example. Old default moved to "Cadence" keymap
  • Cleaned up code and file structure to align with QMK standards

Mechanical

  • Updated plate to use pan head screws
  • Added clearance to top piece for pan head plate mount screws
  • Moved "Designed By" tag to inside numpad
  • Added a silicone sound dampening mold
  • Added a "shadow line" model

Parts

176
QtyValueFootprintReferences
45100nFCapacitor_SMD:C_0603_1608MetricC104, C105, C106, C107, C108, C109, C110, C111, C112, C113, C114, C117, C201, C202, C203, C204 +29
331N4148Diode_SMD:D_SOD-123D301, D302, D303, D304, D305, D306, D307, D308, D309, D310, D311, D312, D313, D314, D315, D316 +17
33SK6812MINI-Eirex_LED_SMD:LED_SK6812MINI-E_3.2x2.8mmD201, D202, D203, D204, D205, D206, D207, D208, D209, D210, D211, D212, D213, D214, D215, D216 +17
30PG1511PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_1.00uSW301, SW302, SW303, SW304, SW305, SW306, SW307, SW308, SW309, SW310, SW311, SW312, SW313, SW314, SW315, SW316 +14
56.00mmirex_MountingHole:MountingHole_6.0mm_ReducedCourtyardH101, H102, H103, H104, H105
41uFCapacitor_SMD:C_0603_1608MetricC102, C103, C115, C116
21kResistor_SMD:R_0603_1608MetricR103, R108
227Resistor_SMD:R_0603_1608MetricR105, R106
227pFCapacitor_SMD:C_0603_1608MetricC118, C119
25.1kResistor_SMD:R_0603_1608MetricR101, R102
2PG1511PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_2.00u_90degSW318, SW329
2PTS636 SL43 SMTR LFSirex_Button_Switch_SMD:SW-PUSH-6x3.5mm_CK-PTS636SL43x_HandSolderSW101, SW102
110kResistor_SMD:R_0603_1608MetricR107
110uFCapacitor_SMD:C_0603_1608MetricC101
13.3VPackage_TO_SOT_SMD:SOT-353_SC-70-5U101
1330Resistor_SMD:R_0603_1608MetricR104
1ABLS-12.000MHZ-B4-TCrystal:Crystal_SMD_HC49-SDY101
1CM1213A−02SxPackage_TO_SOT_SMD:SOT-143U102
1IREX_LOGOirex_Aesthetic:Logo_irex_10.0x11.1mm_MaskG***
1PG1511PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_2.00uSW332
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU104
1SN74LVC1T45DCKPackage_TO_SOT_SMD:SOT-363_SC-70-6U103
1SWDConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ101
1UARTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ103
1USB-Cirex_Connector_USB:USB_C_Receptacle_GCT_USB4105-GF-A-060J102
1W25Q40CLSNIGPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU105

More from Acliad/Nifty-Numpad

1
  • 4 layers118.4 × 131 mmNifty Numpad before sockets, the printed circuit board in 3D

    Nifty Numpad before sockets

    Acliad/Nifty-Numpad

    Full sized numpad with an extra row and two extra columns of macro keys. It was created as a companion to my TKL keyboard for CAD design.

    175 parts

Similar boards

  • 4 layers49.7 × 30 mmControl Board, the printed circuit board in 3D

    Control Board

    Acliad/XBOX-Sign

    A "weekend" project converting a vanity Xbox sign to the OG Xbox style

    82 parts
  • 4 layers89.7 × 82.9 mmICE40UP5K logic analyzer rev2, the printed circuit board in 3D

    ICE40UP5K logic analyzer rev2

    hack-a-tack/FPGA_Logic_Analyzer

    (Info applies to rev. 1, update for later revisions (only final rev. matters in the README)) FPGA-based 8-channel logic analyzer implemented on iCE40UP5K.

    170 parts
  • 2 layers285.7 × 123.8 mmEagleV1, the printed circuit board in 3D

    EagleV1

    extinct00/EagleV1

    Low-cost low-profile split column-staggered ergonomic keyboard

    231 parts
  • 2 layers407.7 × 143.4 mmZeKeyboard, the printed circuit board in 3D

    ZeKeyboard

    malcx95/ZeKeyboard

    Custom RGB-backlit 3D-printed mechanical keyboards with custom firmware

    432 parts9GPL-2.0
  • 2 layers233.7 × 127.3 mmOrthoTest, the printed circuit board in 3D

    OrthoTest

    extinct00/OrthoTest

    My introduction into purely ortho-keebs.

    250 parts
  • 4 layers50 × 84 mmLoguwu, the printed circuit board in 3D

    Loguwu

    SirBramble/Loguwu

    A slightly modified version of the firmware found in the LogicAnalyzer repository can be found in 03Firmware.

    105 parts

Questions

How big is the Nifty Numpad PCB?

It measures 118.4 × 129.7 mm and has 2 copper layers, 1.63 mm thick.

What parts does the Nifty Numpad use?

176 parts, built around the RP2040, W25Q40CLSNIG, SN74LVC1T45DCK and SK6812MINI-E. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Nifty Numpad KiCad files?

From the Acliad/Nifty-Numpad repository on GitHub, at the commit this page was made from: the board is PCB/Main PCB/Nifty Numpad.kicad_pcb and its schematic PCB/Main PCB/Nifty Numpad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Nifty Numpad design in my own project?

Its repository states no licence, so its author keeps all rights: ask Acliad before reusing the design.