

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.
- 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
5RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)W25Q128JVPIQ
WSON-8-EP(5x6)-40℃~+85℃ 100,000 cycles 10uA 120ms@(32KB) 128Mbit 133MHz 2.7V~3.6V 20 Years Power-on reset、Hardware write protection、Software write protection、Write enable latch、Absolute write protection、Power lock protection SPI WSON-8-EP(5x6) NOR FLASH ROHSWinbond ElecNOR FLASHTPS76350DBV
SOT-23-5-40℃~+125℃@(Tj) 1 10V 140uA 140uV 150mA 300mV@(150mA) 5V 60dB@(1kHz) Fixed Over Current Protection、Thermal shutdown Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsXC6206P332MR
SOT-23-40℃~+85℃@(Ta) 1 1uA 200mA 3.3V 6V Fixed Over Current Protection Positive SOT-23-3L Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTorex SemiconductorVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsHMB1206-03
插件,D=12mm-20℃~+70℃ 1.5V~4V 12mm 2.3kHz 30mA 3V 6.7mm 85dB Active Buzzer (Built-in Driving Circuit) Electromagnetic 插件,D=12mm Buzzers ROHSJiangsu Huaneng ElecBuzzers
README
README.mdMacro 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?
- Microcontroller unit directly soldered on board!
- More output devices with speed and volume adjustments (Buzzer and motor).
- More ways to power the board (Barrel jack, USB, GPIO pins).
- 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.
_ _
| \/ | 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):
HELP: Launches the help guide.CALCULATE: Performs basic operations on 2 numbers. Usage:CALCULATE [Number] [+ - * / ^ root] [Number]ECHO: Echoes text.PROGLIST: Show program listing.SYSTEM: Starts another Macro Microcontroller DOS console.EXIT: Stops all processes for power off.OUT: Turns on a specified GPIO for 1 second. Usage:OUT [LED# IO# BELL MOTOR]VERSION: Shows the release version.BOOT: Reboots the system. Usage:BOOT -m [BASIC BOOTSEL]*DEVINFO: Displays device and memory information.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:
PRINT: Outputs text to the serial terminal.LET: Assigns a value (integer, float or string) to a variable (Only one variable is allowed for now).INPUT: Assigns a value (integer, float or string) to a variable via user input.GPIO: Turns on a specified GPIO pin for 1 second.LSVAR: Outputs variable name and their value to the serial terminal.END: Clears variable and reset line numbers.EXIT: Puts the device into sleep/power off mode.KEY: Pass GPIO controls to the macropad.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
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 ← SchematicsBill of Materials (Excluding DNP)
| Component | Ref Designator | Qty | Footprint |
|---|---|---|---|
| HMB1206-03 | BZ1 | 1 | Buzzer_12x9.5RM7.6 |
| Capacitor 0.1uF | C1, C2, C3, C4, C5, C6, C7, C10, C11 | 9 | 0402 |
| Capacitor 8pF | C8, C9 | 2 | 0402 |
| THT LED | D1, D2, D3 | 3 | LED_D5.0mm |
| SMD LED | D4 | 1 | 0603 |
| USB-B Micro Port | J1 | 1 | USB_Micro-B_Molex_47346-0001 |
| Barrel Jack | J3 | 1 | BarrelJack_Horizontal |
| 2.54 1x05 Pin | J4 | 1 | PinHeader_1x05_P2.54mm_Vertical |
| 2.54 1x02 Pin | M1 | 1 | PinHeader_1x02_P2.54mm_Vertical |
| Resistor 27ohm | R1, R6 | 2 | 0402 |
| Resistor 220ohm | R2, R4, R5, R7 | 4 | 0402 |
| Resistor 5kohm | R3, R8, R9 | 3 | 0402 |
| Potentiometer | RV1, RV2 | 2 | Potentiometer_Vishay_T73YP_Vertical |
| Cherry MX Keys | SW1, SW2, SW3 | 3 | SW_Cherry_MX_1.00u_PCB |
| Reset & Boot Button | SW4, SW6 | 2 | SW_Push_SPST_NO_Alps_SKRK |
| DIP Switch | SW5 | 1 | SW_DIP_SPSTx02_Slide_9.78x7.26mm_W7.62mm_P2.54mm |
| RP2040 | U1 | 1 | QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm |
| TLV71311PDBVR | U2 | 1 | SOT-23-5 |
| XC6206P332MR | U3 | 1 | SOT-23-3 |
| W25Q128JVP | U4 | 1 | WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm |
| TPS76350 | U6 | 1 | SOT-23-5 |
| NX3225SA-12MHz | Y1 | 1 | Crystal_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:
- Pico SDK: See Firmware Files/pico_sdk_import.cmake for the Pico SDK license and copyright notice.
Parts
51| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C1, C2, C3, C4, C5, C6, C7, C10, C11 |
| 4 | 220ohm | Resistor_SMD:R_0402_1005Metric | R2, R4, R5, R7 |
| 4 | MountingHole | MountingHole:MountingHole_2.5mm | H1, H2, H3, H4 |
| 3 | 5kohm | Resistor_SMD:R_0402_1005Metric | R3, R8, R9 |
| 3 | Button | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW3 |
| 2 | 27ohm | Resistor_SMD:R_0402_1005Metric | R1, R6 |
| 2 | 8pF | Capacitor_SMD:C_0402_1005Metric | C8, C9 |
| 2 | Pot | Potentiometer_THT:Potentiometer_Vishay_T73YP_Vertical | RV1, RV2 |
| 1 | Barrel_Jack_MountingPin | Connector_BarrelJack:BarrelJack_Horizontal | J3 |
| 1 | Boot | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW6 |
| 1 | Controls | Button_Switch_THT:SW_DIP_SPSTx02_Slide_9.78x7.26mm_W7.62mm_P2.54mm | SW5 |
| 1 | GPIO | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J4 |
| 1 | HMB1206-03 | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | LED | LED_SMD:LED_0603_1608Metric | D4 |
| 1 | LED1 | LED_THT:LED_D5.0mm | D1 |
| 1 | LED2 | LED_THT:LED_D5.0mm | D2 |
| 1 | LED3 | LED_THT:LED_D5.0mm | D3 |
| 1 | Motor_DC | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | M1 |
| 1 | NX3225SA-12MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U1 |
| 1 | Reset | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW4 |
| 1 | SWD | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | J2 |
| 1 | TLV71311PDBVR | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | TPS76350 | Package_TO_SOT_SMD:SOT-23-5 | U6 |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_Molex_47346-0001 | J1 |
| 1 | W25Q128JVP | Package_SON:WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm | U4 |
| 1 | XC6206P332MR | Package_TO_SOT_SMD:SOT-23-3 | U3 |
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 mm

- 2 layers160 × 90 mm

Power Integrations interface
paltatech/VESC-controller
Made open source with KiCAD, an open source EDA tool.
1,126 parts356 - 2 layers58.5 × 25 mm

Current sensor
paltatech/current_sensor
Isolated delta sigma current sensor for high speed high current application
47 parts8 - 2 layers58.4 × 83.2 mm

- 4 layers70 × 50 mm

- 4 layers155.5 × 81.5 mm

- 2 layers80 × 50 mm

Gift tag
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
40 parts915 - 2 layers36.3 × 26.5 mm
