Skip to the content
PCBKitNew board
2 layers96.5 × 35.6 mmMacro microcontroller-2, the printed circuit board in 3D

An RP2040 microcontroller development board with an integrated macropad that lets you control GPIOs with keyboard keys on a single PCB, plus a custom BASIC interpreter and disk operating system.

Size
96.5 × 35.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
51
Nets
66
Pads
204
Tracks, vias
316, 19
Pours
10
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Jun 2026
Updated
3 Oct 2026

Overview

Macro microcontroller-2 is an open-source printed circuit board by Nicholas1023, from the Nicholas1023/macro-microcontroller-2 repository on GitHub, published under the CERN-OHL-W-2.0 licence. It is a 2-layer board of 96.5 × 35.6 mm with 51 parts on 66 nets, routed with 316 tracks and 19 vias.

It is built around the RP2040, W25Q128JVPIQ and TPS76350DBV, with the XC6206P332MR and HMB1206-03 among its other parts. Its parts include 11 capacitors, 9 resistors, 6 switches, 5 ICs and 4 diodes. It belongs with the keyboards and input and microcontroller boards boards and the RP2040 boards of this library.

Main components

5

README

README.md

Macro Microcontroller 2

An RP2040 microcontroller development board with an integrated macropad that lets you control GPIOs with keyboard keys on a single PCB, plus a custom BASIC interpreter and disk operating system.

Documentation page: https://nicholaslim.me/macro-microcontroller-2

Hack Club Stardance Challenge project: https://stardance.hackclub.com/projects/21502

View hardware demonstration at https://nicholaslim.me/macro-microcontroller-2/assets/hardware-demo.mp4!

What's New?

  1. Microcontroller unit directly soldered on board!
  2. More output devices with speed and volume adjustments (Buzzer and motor).
  3. More ways to power the board (Barrel jack, USB, GPIO pins).
  4. Custom BASIC interpreter and a disk operating system.

What Does it Do?

Macro Microcontroller 2 allows you to control GPIO pins using macropad-like keys and from the serial terminal using the built-in Macro Microcontroller BASIC Interpreter or a disk operating system for simple uses. It offers more ways to control GPIOs by having builtin keys that can be programmed to your own needs.

Enclosure

Datasheet

For more details on the hardware, please read the datasheet!

Firmware

Macro Microcontroller BIOS

A basic BIOS-like firmware, which performs basic POST routines and reports information on the device. Source code.

text
 _  _
| \/ | Macro Microcontroller BIOS Version 0.0.2.
|_\/_| Copyright (C) 2025-2026 Nicholas Lim.

Device: Macro Microcontroller 2 (RP2040 @ 125MHz)
Serial Number: ****************
RAM Free: 254K OK
Serial Status: Connected

Press SW1 to enter Macro Microcontroller BASIC.
Press SW2 to enter BOOTSEL mode.

Booting system...

Macro Microcontroller DOS

A simple DOS-like environment that boots from the BIOS. Source code.

Available commands (* denotes optional parameters):

  1. HELP: Launches the help guide.
  2. CALCULATE: Performs basic operations on 2 numbers. Usage: CALCULATE [Number] [+ - * / ^ root] [Number]
  3. ECHO: Echoes text.
  4. PROGLIST: Show program listing.
  5. SYSTEM: Starts another Macro Microcontroller DOS console.
  6. EXIT: Stops all processes for power off.
  7. OUT: Turns on a specified GPIO for 1 second. Usage: OUT [LED# IO# BELL MOTOR]
  8. VERSION: Shows the release version.
  9. BOOT: Reboots the system. Usage: BOOT -m [BASIC BOOTSEL]*
  10. DEVINFO: Displays device and memory information.
  11. UPTIME: Shows device uptime.

Macro Microcontroller BASIC Interpreter

A BASIC interpreter written in C for Macro Microcontroller, providing a simple coding environment via a serial terminal. You may view a demo at Assets/firmware-demo.mp4.

Currently available statements:

  1. PRINT: Outputs text to the serial terminal.
  2. LET: Assigns a value (integer, float or string) to a variable (Only one variable is allowed for now).
  3. INPUT: Assigns a value (integer, float or string) to a variable via user input.
  4. GPIO: Turns on a specified GPIO pin for 1 second.
  5. LSVAR: Outputs variable name and their value to the serial terminal.
  6. END: Clears variable and reset line numbers.
  7. EXIT: Puts the device into sleep/power off mode.
  8. KEY: Pass GPIO controls to the macropad.
  9. REM: Add comments to your program.

For example programs, see Firmware Files/example.bas. Try out the web editor at https://editor.nicholaslim.me/macro-microcontroller!

Schematics

View PCB file at https://kicanvas.org/?repo=https%3A%2F%2Fgithub.com%2FNicholas1023%2Fmacro-microcontroller-2%2Fblob%2Fmain%2FPCB%20Files%2Fmacro-microcontroller-2.kicad_pcb!

Repository Structure

text
main
 ├── /docs ← Documentation website and datasheet files are here
 ├── /Assets ← Images and videos are here
 │     └── /Journal ← Images for JOURNAL.md
 ├── /PCB Files ← .kicad_ files are here
 ├── /Production Files ← Gerber and BOM files are here
 ├── /Printing Files ← STLs are here
 ├── /Firmware Files ← Firmware files are here
 ├── JOURNAL.md ← Devlogs
 ├── README.md ← This file
 ├── LICENSE.txt ← License
 └── schematics.pdf ← Schematics

Bill of Materials (Excluding DNP)

ComponentRef DesignatorQtyFootprint
HMB1206-03BZ11Buzzer_12x9.5RM7.6
Capacitor 0.1uFC1, C2, C3, C4, C5, C6, C7, C10, C1190402
Capacitor 8pFC8, C920402
THT LEDD1, D2, D33LED_D5.0mm
SMD LEDD410603
USB-B Micro PortJ11USB_Micro-B_Molex_47346-0001
Barrel JackJ31BarrelJack_Horizontal
2.54 1x05 PinJ41PinHeader_1x05_P2.54mm_Vertical
2.54 1x02 PinM11PinHeader_1x02_P2.54mm_Vertical
Resistor 27ohmR1, R620402
Resistor 220ohmR2, R4, R5, R740402
Resistor 5kohmR3, R8, R930402
PotentiometerRV1, RV22Potentiometer_Vishay_T73YP_Vertical
Cherry MX KeysSW1, SW2, SW33SW_Cherry_MX_1.00u_PCB
Reset & Boot ButtonSW4, SW62SW_Push_SPST_NO_Alps_SKRK
DIP SwitchSW51SW_DIP_SPSTx02_Slide_9.78x7.26mm_W7.62mm_P2.54mm
RP2040U11QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm
TLV71311PDBVRU21SOT-23-5
XC6206P332MRU31SOT-23-3
W25Q128JVPU41WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm
TPS76350U61SOT-23-5
NX3225SA-12MHzY11Crystal_SMD_3225-4Pin_3.2x2.5mm

Legal

Hardware files ("PCB Files", "Printing Files", "Production Files", "schematics.pdf") are licensed under the terms of the CERN-OHL-W-2.0 License from 9 September 2026 onwards. Versions prior to this date remain available under the terms of the CERN-OHL-P-2.0 License. See LICENSE.txt.

Documentation files ("docs", "Assets", "JOURNAL.md") are licensed under the terms of the MIT License. See docs/LICENSE.txt.

macro-microcontroller-basic.c, macro-microcontroller-bios.c, macro-microcontroller-bios+dos.c are licensed under the terms of the MIT License. firmware-template.c is licensed under the terms of the MIT-0 License. example.bas is marked CC0 1.0.

Macro Microcontroller BIOS, Macro Microcontroller DOS and Macro Microcontroller BASIC compile source code from the following third-party software:

Parts

51
QtyValueFootprintReferences
90.1uFCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C4, C5, C6, C7, C10, C11
4220ohmResistor_SMD:R_0402_1005MetricR2, R4, R5, R7
4MountingHoleMountingHole:MountingHole_2.5mmH1, H2, H3, H4
35kohmResistor_SMD:R_0402_1005MetricR3, R8, R9
3ButtonButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3
227ohmResistor_SMD:R_0402_1005MetricR1, R6
28pFCapacitor_SMD:C_0402_1005MetricC8, C9
2PotPotentiometer_THT:Potentiometer_Vishay_T73YP_VerticalRV1, RV2
1Barrel_Jack_MountingPinConnector_BarrelJack:BarrelJack_HorizontalJ3
1BootButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW6
1ControlsButton_Switch_THT:SW_DIP_SPSTx02_Slide_9.78x7.26mm_W7.62mm_P2.54mmSW5
1GPIOConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ4
1HMB1206-03Buzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1LEDLED_SMD:LED_0603_1608MetricD4
1LED1LED_THT:LED_D5.0mmD1
1LED2LED_THT:LED_D5.0mmD2
1LED3LED_THT:LED_D5.0mmD3
1Motor_DCConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalM1
1NX3225SA-12MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU1
1ResetButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW4
1SWDConnector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ2
1TLV71311PDBVRPackage_TO_SOT_SMD:SOT-23-5U2
1TPS76350Package_TO_SOT_SMD:SOT-23-5U6
1USB_B_MicroConnector_USB:USB_Micro-B_Molex_47346-0001J1
1W25Q128JVPPackage_SON:WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mmU4
1XC6206P332MRPackage_TO_SOT_SMD:SOT-23-3U3

The 48 most common of 51 parts.

Questions

How big is the Macro microcontroller-2 PCB?

It measures 96.5 × 35.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Macro microcontroller-2 use?

51 parts, built around the RP2040, W25Q128JVPIQ, TPS76350DBV and XC6206P332MR. 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 Macro microcontroller-2 KiCad files?

From the Nicholas1023/macro-microcontroller-2 repository on GitHub, at the commit this page was made from: the board is PCB Files/macro-microcontroller-2.kicad_pcb and its schematic PCB Files/macro-microcontroller-2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Macro microcontroller-2 design in my own project?

Its repository publishes it under the CERN-OHL-W-2.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 layers269.9 × 93.1 mmGear40, the printed circuit board in 3D

    Gear40

    cosmosalad/GearSeries

    All Gear series keyboards are being uploaded.

    217 parts6
  • 2 layers160 × 90 mmPower Integrations interface, the printed circuit board in 3D

    Power Integrations interface

    paltatech/VESC-controller

    Made open source with KiCAD, an open source EDA tool.

    1,126 parts356
  • 2 layers58.5 × 25 mmCurrent sensor, the printed circuit board in 3D

    Current sensor

    paltatech/current_sensor

    Isolated delta sigma current sensor for high speed high current application

    47 parts8
  • 2 layers58.4 × 83.2 mmMiniFeedMaster, the printed circuit board in 3D

    MiniFeedMaster

    SG-O/MiniFeedMaster

    Mainboard for automated SMT Feeder system

    141 parts1CC-BY-4.0
  • 4 layers70 × 50 mmFluxdrive g4, the printed circuit board in 3D

    Fluxdrive g4

    alanhpereira/fluxdrive-g4

    Firmware for my graduation thesis

    100 partsMIT
  • 4 layers155.5 × 81.5 mmIo gateway, the printed circuit board in 3D

    Io gateway

    LukiBa/RS485-IO-Extension

    229 partsGPL-3.0
  • 2 layers80 × 50 mmGift tag, the printed circuit board in 3D

    Gift tag

    hackclub/OnBoard

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

    40 parts915
  • 2 layers36.3 × 26.5 mmE Bike, the printed circuit board in 3D

    E Bike

    zachleedogg/E_Bike

    Ebike PAS controller

    40 parts6CC0-1.0