Skip to the content
PCBKitNew board
2 layers403.8 × 137.1 mmMacroBoard, the printed circuit board in 3D
Size
403.8 × 137.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
236
Nets
155
Pads
1,241
Tracks, vias
1,129, 23
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
9 Jun 2025
Updated
3 Aug 2025

Overview

MacroBoard is an open-source printed circuit board by NoxAevi, from the NoxAevi/MacroBoard repository on GitHub, published under the MIT licence. It is a 2-layer board of 403.8 × 137.1 mm with 236 parts on 155 nets, routed with 1,129 tracks and 23 vias.

Its parts include 36 diodes, 35 switches, 17 capacitors, 4 resistors and 1 connector.

README

README.md

MacroBoard

Assembly

image

What is it?

  • The MacroBoard is an extension of a much smaller "macropad" featuring a full TKL layout with a rotary encoder for volume and a whopping total of 22 macro keys (10 macrokeys physically and 12 more due to the fn keys being on another layer), and it is all coded with KMK firmware.
  • Worried about the amount of power it will take? No need to worry! The MacroBoard has a Pi Pico as its brain, which is pretty efficient on energy.
  • Dislike the microUSB connector on the Pi Pico? Again, don't worry! Through the use of a USB Type-C breakout board, most of the cables that you already use should work, as the keyboard has the necessary 5.1K ohm resistors to allow for type-C to type-C communication
  • Case looking too big? Every model is split in half to allow for printing on a consumer-sized printer.

DEMO

https://youtube.com/shorts/OhP7P0TbwBU?feature=share

Why did I make it?

  • One of my first hardware projects in my life was a macropad, and since I didn't have that much experience, I thought that a keyboard would be an appropriate step up in difficulty while still challenging myself, especially because I decided to use a bare rp2040 chip and had to include everything that it needs, including differential pair routing with 90 ohm impedence (for the USB-C connection).
  • For the form-factor, I decided to add macrokeys as having additional components like a macroboard on my desk would feel like clutter, so incorporating these keys into the keyboard itself would fix this issue
  • Finally, I just never used a mechanical keyboard before, and I honestly just wanted to know how it felt compared to the laptop keyboards and the ones based on rubber.

image

Challenges

  • There were two points in this project that were quite soul-crushing and made me actually consider if I should just stop trying to complete the project, which is why I want to highlight them here.

  • Initially, I decided that I would forgo hotswap switches for the keyboard, but after finishing routing the PCB, I chose that it would probably be better if I decided to include them. When I changed the footprints from Cherry MX to Kailh hotswap switches, there were over 1300 errors in the DRC.

  • This meant that I would have to completely restart the wiring, which was pretty difficult for me to accept, but luckily, it took around 25% of the time it took before with my gained knowledge, proving to me how far I have come in this month alone.

image

  • The next challenge happened right at the end of my project, or as I was almost ready to be done. When I uploaded the PCB gerber files to JLCPCB and completed the parts selection, I found out that no matter what I did, the bare board would come out to be over 1.5 KG, making it ineligible for Global Direct Shipping.
  • This meant that the shipping for just the PCB would come out to be about 40 dollars with the cheapest option, completely breaking the $150 budget I had for this project.
  • I asked around on the Hackclub Slack for some help, and I there seemed to be nothing that I could really do.
  • As a last resort, I DMed Ayo (you should check out his Github), who I had seen complete a keyboard. After discussing about ways to optimize the price, he brought up the idea of hand-wiring a keyboard, which was something I had never thought of before.
  • I initially still felt discouraged, but with more conversation, I slowly became more confident in myself and my abilities. Now, rejuvinated, I updated the models to be able to work without a PCB and quickly finished my project

image

Credits

PCB

  • As previously stated, I will be handwiring this keyboard, but here is my wiring diagram for the keyboard and the PCB that I did design (which ended up being too expensive)

image image image

CAD

  • This took me a pretty long time since I'm relatively new to designing things, but I feel that it turned out really well.

image

BOM

VENDERITEMPRICE (USD)SHIPPINGPCSCOUNTCOMMENTCOMMENT
ALIEXPRESS
FEET1.690101
KEYCAPS20.2201041BLUE
STABS7.690(1) 6.25u, (4) 2u1
ROTARY1.42010EXCLUDED
HEADERS1.441.99100EXCLUDED
STANDOFFS3.08010016mm M3
SCREWS2.12050114mm M3
SCREWS (same as above)1.8105018mm M3
WIRE5.04010m222 AWGPRICE IS FOR BOTH
SOLDER5.36050G1LEAD-FREE
BRASS SPONGE3.67011(so hackclub doesn't have to pay for tips in the future)
DIODES1.4601001
TOTAL52.14
AMAZON
GLUE7.49011
PICO7.48021
USBC BREAKOUT5.99051
WIRE STRIPPER8.99011
SWITCHES32.9901081gateron yellow
TOTAL62.94
SHIPPING20(reserved for printing legion shipping)
TAXES(Have more than enough for my state sales tax)
TOTAL135.08

Parts

236
QtyValueFootprintReferences
11C100nCapacitor_SMD:C_0402_1005MetricC4, C6, C7, C8, C9, C12, C13, C14, C15, C16, C17
8MountingHoleMountingHole:MountingHole_3.5mmH1, H2, H3, H4, H5, H6, H7, H8
2C10uCapacitor_SMD:C_1206_3216MetricC1, C2
2C15pCapacitor_SMD:C_0402_1005MetricC10, C11
2C1uCapacitor_SMD:C_0402_1005MetricC3, C5
2R27.4Resistor_SMD:R_0402_1005MetricR6, R7
2R5.1kResistor_SMD:R_0603_1608MetricR1, R2
1BKSPPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_2.00uSW31
1BKSPDiode_SMD:D_SOD-323D31
1CAPSPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.75uSW56
1CAPSDiode_SMD:D_SOD-323D56
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1Crystal_GND24Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1DDiode_SMD:D_SOD-323D17
1DelDiode_SMD:D_SOD-323D51
1DelPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW51
1Down ArrowDiode_SMD:D_SOD-323D95
1Down ArrowPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW95
1ENTERDiode_SMD:D_SOD-323D68
1ENTERPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_2.25uSW68
1EndDiode_SMD:D_SOD-323D52
1EndPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW52
1EscDiode_SMD:D_SOD-323D1
1EscPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW2
1F1Diode_SMD:D_SOD-323D2
1F1PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW3
1F10Diode_SMD:D_SOD-323D11
1F10PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW12
1F11PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW13
1F11Diode_SMD:D_SOD-323D12
1F12PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW14
1F12Diode_SMD:D_SOD-323D13
1F2PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW4
1F2Diode_SMD:D_SOD-323D3
1F3PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW5
1F3Diode_SMD:D_SOD-323D4
1F4PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW6
1F4Diode_SMD:D_SOD-323D5
1F5Diode_SMD:D_SOD-323D6
1F5PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW7
1F6PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW8
1F6Diode_SMD:D_SOD-323D7
1F7PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW9
1F7Diode_SMD:D_SOD-323D8
1F8Diode_SMD:D_SOD-323D9
1F8PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW10
1F9Diode_SMD:D_SOD-323D10
1F9PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW11
1FNDiode_SMD:D_SOD-323D92
1FNPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.25uSW92
1HomePCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW33
1HomeDiode_SMD:D_SOD-323D33
1InsDiode_SMD:D_SOD-323D32
1InsPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW32
1KEY"Diode_SMD:D_SOD-323D67
1KEY"PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW67
1KEY,Diode_SMD:D_SOD-323D79
1KEY,PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW79
1KEY-PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW29
1KEY-Diode_SMD:D_SOD-323D29
1KEY.Diode_SMD:D_SOD-323D80
1KEY.PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW80
1KEY/PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW81
1KEY/Diode_SMD:D_SOD-323D81
1KEY0Diode_SMD:D_SOD-323D28
1KEY0PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW28
1KEY1PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW19
1KEY1Diode_SMD:D_SOD-323D19
1KEY2Diode_SMD:D_SOD-323D20
1KEY2PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW20
1KEY3Diode_SMD:D_SOD-323D21
1KEY3PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW21
1KEY4PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW22
1KEY4Diode_SMD:D_SOD-323D22
1KEY5PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW23
1KEY5Diode_SMD:D_SOD-323D23
1KEY6PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW24
1KEY6Diode_SMD:D_SOD-323D24
1KEY7PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW25
1KEY7Diode_SMD:D_SOD-323D25

The 102 most common of 236 parts.

Questions

How big is the MacroBoard PCB?

It measures 403.8 × 137.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MacroBoard use?

236 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 MacroBoard KiCad files?

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

Can I use the MacroBoard 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 layers232.3 × 84.8 mmQazikat, the printed circuit board in 3D

    Qazikat

    weteor/Qazikat

    qaz-like keyboard with offset space, arrow cluster and ISO-enter

    236 parts88CERN-OHL-P-2.0
  • 2 layers156.2 × 168.9 mmLPC176x MultiFunction, the printed circuit board in 3D

    LPC176x MultiFunction

    RobertPHeller/RPi-RRCircuits

    A collection of circuit designs for various MCUs, not just Raspberry Pis relating to Model Railroading

    236 parts24
  • 2 layers130 × 180 mmNotebook, the printed circuit board in 3D

    Notebook

    Sirawit7205/stm32-notebook

    An STM32 dev board that is also a notebook cover.

    236 parts17
  • 2 layers442.7 × 208.3 mmEurope ergo, the printed circuit board in 3D

    Europe ergo

    Supermagnum/Europe-ergo

    A 94 key ergonomic, split keyboard suitable for European countries.

    236 parts8GPL-3.0
  • 2 layers242.9 × 95.3 mmVootington V4N, the printed circuit board in 3D

    Vootington V4N

    calvin-mcd/vootington

    analog V4N pcb

    236 parts6GPL-3.0
  • 2 layers404.9 × 128.2 mmApplejack AT, the printed circuit board in 3D

    Applejack AT

    exe0xexe/Applejack-AT-PCB

    PCB for converting AT layout keyboards to MX

    236 parts4GPL-3.0
  • 2 layers310.5 × 118.4 mm75% keyboard, the printed circuit board in 3D

    75% keyboard

    aaravs-s/70-_keyboard

    236 parts1