Skip to the content
PCBKitNew board
2 layers160.8 × 95 mmMacroPad, the printed circuit board in 3D

The build is made up of a PCB, a metal frame and 9 MX switches. The electronic components needed are>

Size
160.8 × 95 mm
Copper layers
2
Thickness
1.6 mm
Parts
22
Nets
32
Pads
96
Tracks, vias
89, 0
Pours
51
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
19 Nov 2025
Updated
19 Nov 2025

Overview

MacroPad is an open-source printed circuit board by mmiral04, from the mmiral04/MacroPad repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 160.8 × 95 mm with 22 parts on 32 nets, routed with 89 tracks and 0 vias.

Its parts include 10 ICs, 2 switches, 1 resistor and 1 diode. It belongs with the keyboards and input boards of this library.

README

README.md

Introduction

Custom 3x3 MacroPad built with an ESP32. The purpose of the project is to experiment with PCB design and ESP32 programming. The hardware connects via bluetooth to a desktop app designed in Python.

The build is made up of a PCB, a metal frame and 9 MX switches. The electronic components needed are>

  • ESP32 DevKit V1 board
  • 1 resistor
  • 1 LED
  • 1 sideways 3-pin switch
  • 1 switch
  • 1 9V battery

File structure

  • The C code for the ESP32 is located inside the folder "EspCode". Upload this to ESP32 using Arduino IDE.
  • The KiCad PCB design files are located inside the folder "KicadFiles". They have been developed in KiCad 9.
  • The final PCB schematics, .step file for the metal frame, FreeCad project file for the metal frame and other files used in the design are located in the folder "DesignFiles".
  • The code for the desktop app is located in the folder "Python" and "UI".

Project build

The python app was built into an executable to execute on Windows startup using pyinstaller with the following command:

text
pyinstaller -F --noconsole --icon icon.ico Python\\main.py

The final build should look like:

Build Image

Usage

The desktop app has a GUI to connect to the macro pad via bluetooth and configure the macros. Currently the macros can be of three types:

  • Keyboard shortcut (keys separated by +, e.g. "Ctrl + Shift + Esc" to open the Task Manager)
  • Launch an application
  • Launch a python script

All of the options can be customized with an icon or name.

The configuration of the macros is stored in the file "Python/config.json". When the application is closed it runs in the background and appears in the icon tray, where it can be fully exited.

The connection to the board via bluetooth has the MAC address of the board hardcoded in the python file "Python/main.py" and must be changed to the actual MAC address of the ESP32.

Bugs and limitations

There are some limitations and bugs in the design:

  • The 9V battery is not a viable power source as it drains the battery quickly. I am currently using the macro pad connected directly to the PC with USB.
  • Connecting the macro pad via USB should not use bluetooth to connect, it would be better the use serial communication.
  • If connecting the macro pad via USB with the PC, when another device is connected to the same computer via USB windows refreshes all USB devices and powers off the macro pad, leading to connection issues.

Parts

22
QtyValueFootprintReferences
9~Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBU1, U2, U3, U4, U5, U6, U8, U9, U10
1clipboard:108cbfb9-6861-4f53-83a6-263d15a50d2a
1BatteryCustomSymbols:Battery holderBT1
1LEDCustomSymbols:LED_holesD1
1RCustomSymbols:Resistor_holesR1
1SW_PushButton_Switch_THT:SW_PUSH_6mm_H5mmSW1
1~ESP32_Footprints:ESP32_30pinU11
1~CustomSymbols:Switch conmutadorSW2

The 16 most common of 22 parts.

Questions

How big is the MacroPad PCB?

It measures 160.8 × 95 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MacroPad use?

22 parts. 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 MacroPad KiCad files?

From the mmiral04/MacroPad repository on GitHub, at the commit this page was made from: the board is KicadFiles/MacroPad.kicad_pcb and its schematic KicadFiles/MacroPad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MacroPad design in my own project?

Its repository publishes it under the GPL-3.0 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 layers158 × 11 mmDaylight Matchstick, the printed circuit board in 3D

    Daylight Matchstick

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    22 parts1.1kGPL-3.0
  • 2 layers57 × 65 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    22 parts1kGPL-3.0
  • 2 layers81 × 57.2 mmRP2040-Macropad, the printed circuit board in 3D

    RP2040-Macropad

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    22 parts915
  • 2 layers54.6 × 70.9 mmBeagleLogic Cape, the printed circuit board in 3D

    BeagleLogic Cape

    abhishek-kakkar/BeagleLogic

    A Software Suite that implements a logic analyzer with the PRU on the BeagleBone / BeagleBone Black.

    22 parts479GPL-3.0
  • 2 layers66.4 × 24.5 mmConnecting piece, the printed circuit board in 3D

    Connecting piece

    Chrismettal/flipper-zero-backpacks

    Backpack-style addon boards for the Flipper Zero!

    22 parts456
  • 2 layers51 × 70 mmDMG A04-01, the printed circuit board in 3D

    DMG A04-01

    HDR/NintendoPCBs

    Replacement pcb's for Nintendo games.

    22 parts321
  • 2 layers27.8 × 16 mmSpi 1v8 level shifter, the printed circuit board in 3D

    Spi 1v8 level shifter

    CRImier/MyKiCad

    My KiCad boards. Can't be bothered uploading individually anymore, so here you go.

    22 parts253GPL-3.0