Skip to the content
PCBKitNew board
2 layers111.9 × 77.8 mmMacropad, the printed circuit board in 3D

A custom macropad utilizing the Raspberry Pi Pico

Size
111.9 × 77.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
36
Nets
59
Pads
272
Tracks, vias
158, 0
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
7 May 2024
Updated
7 May 2024

Overview

Macropad is an open-source printed circuit board by vlinGit, from the vlinGit/Macropad repository on GitHub. It is a 2-layer board of 111.9 × 77.8 mm with 36 parts on 59 nets, routed with 158 tracks and 0 vias.

Its parts include 16 diodes, 1 resistor and 1 IC. It belongs with the keyboards and input boards and the RP2040 boards of this library.

README

README.md

Macropad

Table of Contents


Introduction

Greetings, It seems you've stubbled upon my macropad project :)! Utilizing everything provided from this repo (with a few exceptions) you should be able to make this simple 4x4 macropad using a Pi Pico:

Now I must set some ground rules and mentions those exceptions from the previous text. This repo assumes you have knowledge of:

The next two sections will discuss what the two folders, Macropad and Firmware, in this project do.


Macropad

All the project files (schematic, pcb, and fingerprints) should be in this folder. When opening this within Kicad, you will most likely need to reassign the location of the fingerprints.

Schematic:

PCB:

Parts:
  • 16 Kahlil hotswap sockets
  • 1 Raspberry Pi Pico
  • 16 SMD Diodes
  • Header pins for the pico (optional)
  • Micro usb wire
  • Soldering kit

Here's a spreadsheet containing all the items I used. This spreadsheet doesn't include headers, switches, and keys as I already had these lying around.

Sidenote, I left a place for a reset button for convinence, however, this proved to be the complete opposite. The small button got in the way more often than not so the final build doesn't include it.


Firmware

You will find a lib folder as well as a code.py file in here. The lib folder contains the necessary adafruit library needed for the python file code.py which contains the actual firmware code. These files should be dragged into your Pi Pico after you've installed CircuitPython.

The macropad is designed in a 4x4 matrix with the following pins:

  • Rows: GP21, GP20, GP19, GP18
  • Columns: GP6, GP7, GP8, GP9

The current python file provides you with two modes:

  1. Default mode - for media controls
  2. Function mode - for general purpose binds using F13-F21 keys, mainly for binding macros in software (blender, kritia, etc.)

The modes will be presented in tables, each cell being a key. Every cell labeled null means the key is unassigned. Within the actual code this is represented with a -1.

Default Mode:
VOLUME DECREMENTVOLUME INCREMENTMUTE VOLUMECHANGE MODE
PREVIOUS TRACKPLAY/PAUSE MEDIANEXT TRACKnull
nullnullnullnull
nullnullnullnull
Function Mode:
LEFT SHIFTF14F15CHANGE MODE
F13F17F18F19
F16F21F22F23
LEFT CONTROLF20nullSPACE

Future plans

So, whats planned for the future? I've been using this macropad for a couple days now and here's the following things I plan on implementing soon:

  1. Proper case - I've created the model, but now just need to get a 3D printer and do some troubleshooting
  2. Rotary Encoders - Will be great for volume control and zooming in
  3. Standalone LED + Mode button - Just for mode switching
  4. IR Sensors - Really looking forward to this one! Plan on adding AC and table height controls using this.

As to what I will remove:

  1. The reset button - Honestly made it less comfortable to use
  2. Micro usb- Looking to replace this with a USB-C port

Parts

36
QtyValueFootprintReferences
16D_SmallDiode_SMD:D_SOD-123D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16
16MX_SW_HSmarbastlib-mx:SW_MX_HS_CPG151101S11_1uMX1, MX2, MX3, MX4, MX5, MX6, MX7, MX8, MX9, MX10, MX11, MX12, MX13, MX14, MX15, MX16
15.1kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
1LOGOLOGO42
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU1
1SW_PushButton_Switch_SMD:SW_SPST_PTS645RESET

Questions

How big is the Macropad PCB?

It measures 111.9 × 77.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Macropad use?

36 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 vlinGit/Macropad repository on GitHub, at the commit this page was made from: the board is MacroPad/MacroPad.kicad_pcb and its schematic MacroPad/KiCad-RP-Pico-main/KiCad-RP-Pico-main/Test/Test.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 states no licence, so its author keeps all rights: ask vlinGit before reusing the design.

Similar boards

  • 2 layers65 × 30 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

    36 parts1kGPL-3.0
  • 2 layers55 × 70 mmArduino v1, the printed circuit board in 3D

    Arduino v1

    hackclub/OnBoard

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

    36 parts915
  • 2 layers50.4 × 24.8 mmLEDboardRev3, the printed circuit board in 3D

    LEDboardRev3

    Architeuthis-Flux/Jumperless

    A jumperless breadboard

    36 parts914
  • 2 layers45.7 × 31.8 mmLEDx16 board, the printed circuit board in 3D

    LEDx16 board

    tardate/LittleArduinoProjects

    a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!

    36 parts803MIT
  • 2 layers32 × 24 mmEsp onelayer3, the printed circuit board in 3D

    Esp onelayer3

    cnlohr/colorchord

    Chromatic Sound to Light Conversion System

    36 parts712
  • 2 layers69 × 53.8 mmTUSS4470 shield, the printed circuit board in 3D

    TUSS4470 shield

    Neumi/open_echo

    Open Source echo sounder / depth sounder / SONAR for bathymetry and research. Arduino based and compatible.

    36 parts530
  • 2 layers99.1 × 53.3 mmABSIS Mega, the printed circuit board in 3D

    ABSIS Mega

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    36 parts431
  • 2 layers16.1 × 119 mmConnectorL, the printed circuit board in 3D

    ConnectorL

    thpoll83/PolyKybd

    PolyKybd

    36 parts411CERN-OHL-W-2.0