Skip to the content
PCBKitNew board
2 layers90.3 × 79.8 mmArnav hackpad, the printed circuit board in 3D

The arnav-hackpad is a mini-keyboard (or macropad) designed to act as an external number pad with navigation and mouse capabilities, too!

Size
90.3 × 79.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
27
Nets
32
Pads
120
Tracks, vias
250, 18
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 Jul 2026
Updated
24 Oct 2026

Overview

Arnav hackpad is an open-source printed circuit board by arnavshah100, from the arnavshah100/arnav-hackpad repository on GitHub, published under the MIT licence. It is a 2-layer board of 90.3 × 79.8 mm with 27 parts on 32 nets, routed with 250 tracks and 18 vias.

It is built around the PCF8574AT. Its parts include 12 switches, 10 diodes, 2 resistors, 2 ICs and 1 capacitor. It belongs with the keyboards and input boards of this library.

Main components

1

README

README.md

arnav-hackpad

The arnav-hackpad is a mini-keyboard (or macropad) designed to act as an external number pad with navigation and mouse capabilities, too!

Inspiration

In my essential technology class at school, two of my favorite modules were coding and 3D printing. When I joined the Stardance summer program and started looking at the recommended projects, I saw hackpad, and saw it as a great way to combine my love for those two subjects.

Features

  • 2 EC11 Rotary Encoders with Switches
  • 10 MX-Style Key Switches
  • 3-Part Case (Top Mount style macropad)
  • 2 Layers (When a layer is activated, all the keymaps change to that layer's configuration.)

CAD Model

View Assembly on Autodesk Fusion's web version
This is my assembled macropad. Click on it to interact with the assembled macropad in Autodesk Fusion's web version.
Note: The assembled macropad CAD model is just a quick visual. Some of the dimensions have been edited to optimize its usability. The links of the individual parts below have the correct dimensions.

There are 3 parts to the case: the top, the bottom, and the plate. The arnav-hackpad is top-mounted, meaning that the plate is attached to the top part. The design gives an ≈0.3mm printing tolerance. Also, there are 2 knobs I have put on top of the rotary encoders, called Hack Club Knurled Knobs. To personalize it, I added a cool design with my name on the plate, which you can see in the plate demo below!

Click here to interact with the Plate.
Click here to interact with the Top part.
Click here to interact with the Bottom part.
Click here to interact with the Hack Club Knurled Knob.

PCB

View Schematic on KiCanvas

This is my PCB's schematic design. Click on it to interact with the schematic in KiCanvas.

I used a PCF8574AT I/O expander because all of the pins would not fit on the microchip.

View PCB on KiCanvas

This is my PCB board. Click on it to interact with the PCB Board in KiCanvas.

I know it's very messy, but everything works out in the end!

Firmware Overview

The macropad is coded using KMK firmware. Layer 0 is made to take the place of a number pad, and Layer 1 is made to take the place of a mouse and the arrow keys. For the rotary encoders, clockwise is up, and counterclockwise is down.

  • On Layer 0 (Default),
    • The rotary encoder on the left changes volume, and its switch works as the mute key.
    • The rotary encoder on the right changes brightness, and its switch turns on layer 1.
    • The key switches are arranged in the same way as the numbers are in a number pad.
  • On Layer 1,
    • The rotary encoder on the left acts as a scroll wheel.
    • The rotary encoder on the right also acts as a scroll wheel, and its switch turns on layer 0.
    • The keyswitches are arranged as follows(refer to the PCB image):
      • SW1 is Left Click
      • SW2 is Up Arrow
      • SW3 is Right Click
      • SW4 is Left Arrow
      • SW5 is Down Arrow
      • SW6 is Right Arrow

Note: All of the key arrangements can be customized by simply editing the code.

How to make it

If you need help for any part of this tutorial, Google can teach you!

Bill of Materials

To make this macropad, you will need the following:

  • 10x Cherry MX Switches
  • 10x 1N4148 DO-35 Diodes
  • 10x DSA Keycaps
  • 2x EC11 Rotary Encoder
  • 2x Hack Club Knurled Knob (Replaceable with another knob for EC11 Rotary Encoder)
  • 1x Seeed Studio XIAO RP2040
  • 1x PCF8574AT
  • 1x 0805 SMD Ceramic Capacitor - 100 nF, 50 V, ±10%
  • 2x 0805 SMD Pull-Up Resistors - 4.7 kΩ
  • 4x M3 x D5mm x L4mm Heatset Inserts
  • 4x M2 x D4mm x L3mm Heatset Inserts
  • 4x M3 x 16mm screws
  • 4x M2 x 4mm screws
  • 1x Case (3 printed parts)
  • 1x USB-C cable
  • 1x Soldering Iron

Installing the Firmware

Download the Production folder onto your computer. This guide, from Seeed Studio, is great to help you import the firmware. Drag the files out of the folder and into the drive. Make sure every file and folder is in the drive when you're done. The code can still be edited after you put it in the drive!

PCB

Use the Gerbers.zip file to print the PCB from whatever company you want. Make sure you choose the 2-layer PCB option. When you solder the components together, make sure to refer to the online PCB image often. I recommend soldering the components in this order:

  1. Diodes
  2. Microcontroller and I/O Expander (XIAO RP2040 and PCF8574AT)
  3. Ceramic Capacitors and Pull-Up Resistors
  4. Rotary encoders
  5. Mount keyswitches on plate in direction shown on PCB FIRST, and THEN solder them on.

3D Printing

Use the Plate.step file, Top.step file, Bottom.step file, and Hack Club Knurled Knob.step file in case you are using it. If you are printing it yourself, I suggest using google to figure out how to print on your specific 3D printer. Otherwise, just give the files above to whoever is printing it. Make sure you use either PLA, ABS, PETG, or Nylon, because certain plastics don't work with heatset inserts.

Assembly

Finally, it's time to do the assembly! Put the M3 x D5mm x L4mm heatset inserts on the outer holes of the top part, and put the M2 x D4mm x L3mm heatset inserts on the inner holes of the top part. You can use this image to help you.

Next, carefully solder the keyswitches onto the PCB.

For the last step, use the M2x4mm screws to screw the plate onto the top part's M2 heatset insert. The top part of the screw should be touching the plate. I recommend plugging in the PCB into your device and trying using the macropad to check that it works. If your device doesn't register any of the keypresses, reread all the steps in the guide. Use the M3x16mm screws to screw the bottom part onto the top part's M3 heatset insert. The top part of the screw should be touching the bottom part. The labeled image showing where the screws should be is here.

Now, put the knobs on the rotary encoders, and you're DONE!

CELEBRATE!

Final Product

After over 3 months of dedication, I have built the arnav-hackpad.
arnav-hackpad image This is the image of the hackpad.
arnav-hackpad video
This is a video demoing the hackpad. Click on it to watch it!

License

The code is under an MIT License. For more info, see LICENSE.

Credits

  • Huge thanks to @ashah80 (my brother!), who helped me in every step of the way, even though he has never made anything hardware-related.
  • I was motivated by the Stardance summer program, which both inspired and incentivized me to make this project. I had never even considered making anything related to hardware before Stardance provided me with a great platform to do so.
  • The people in the hackpad slack page from Hack Club helped answer all my questions.
  • I used Claude to help me learn how to code in KMK, specifically for the PCF8574AT scanner. It also gave me next steps for what to do when my hackpad didn't work. Gemini helped me with my general questions for how to use a software.

Resources I used

Thank you for reading me!

Parts

27
QtyValueFootprintReferences
101N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9, D10
10SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10
24.7kResistor_SMD:R_0805_2012MetricR1, R2
2RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW13, SW14
1C_PolarizedCapacitor_SMD:C_0805_2012MetricC1
1MOUDLE-SEEEDUINO-XIAOfootprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1
1PCF8574ATPackage_SO:SOIC-16W_7.5x10.3mm_P1.27mmU2

Questions

How big is the Arnav hackpad PCB?

It measures 90.3 × 79.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Arnav hackpad use?

27 parts, built around the PCF8574AT. 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 Arnav hackpad KiCad files?

From the arnavshah100/arnav-hackpad repository on GitHub, at the commit this page was made from: the board is PCB/KiCad file.kicad_pcb and its schematic PCB/KiCad file.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Arnav hackpad design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers137 × 63 mmKickad, the printed circuit board in 3D

    Kickad

    eljotx/SDR-TRX-on-ESP32-A1S

    This repository describes an SDR transceiver based on the ESP32 A1S processor, using an ILI9341 color touchscreen display, and a Si5351 oscillator.

    172 parts2
  • 2 layers32 × 30 mmNav3, the printed circuit board in 3D

    Nav3

    peterus/OpenDriveHub

    Open-source modular control platform for functional model vehicles, featuring bidirectional communication, telemetry, and plug-in hardware modules.

    12 parts1GPL-3.0
  • 2 layers113 × 86 mmMacroPad, the printed circuit board in 3D

    MacroPad

    Shuri-101/MacroPad

    Macro Pad for use in CAD and general productivity + convenience, mainly for use in CAD...

    57 parts1
  • 2 layers82 × 47.5 mmMechanical Pomodoro Timer, the printed circuit board in 3D

    Mechanical Pomodoro Timer

    CedricL1u/Chronos

    Chronos is a fully mechanical 7‑segment Pomodoro timer and clock that uses cams, servos, and a custom ESP32‑C3 PCB to create a kinetic, alarm‑equipped display that makes focus sessions more engaging.

    41 partsMIT
  • 2 layers153.5 × 112.6 mmESP8266 Wi Fi 16 channel relay module, the printed circuit board in 3D

    ESP8266 Wi Fi 16 channel relay module

    Hirusha785/esp8266-16-channel-relay-module

    ⚡ ESP8266-based 16-channel Wi-Fi relay controller designed in KiCad for IoT, automation, and remote switching applications.

    85 partsMIT
  • 2 layers75 × 55 mmSolar pannel wash controller sub modules, the printed circuit board in 3D

    Solar pannel wash controller sub modules

    koko69420/Solar-Panel-Wash-Controller

    Automated scheduled solar panel washing controller PCB with RTC timing and pump relay actuation in KiCad

    14 parts
  • 2 layers92.1 × 99.4 mmPower Gauge PCB, the printed circuit board in 3D

    Power Gauge PCB

    oct-karim/Mini-Power-Gauge

    A mini power gauge that mesures current and voltage.

    54 parts
  • 2 layers149.5 × 45 mmRadioduino, the printed circuit board in 3D

    Radioduino

    YO3DBZ/Radioduino

    some ardruino code for a reciver based on the SI5351

    58 parts