diff --git a/README.md b/README.md
index 7013014..bf28f6e 100644
--- a/README.md
+++ b/README.md
@@ -150,6 +150,19 @@ Implemented interfaces:
+### Adafruit MacroPad RP2040
+
+
+Implemented interfaces:
+ - GPIO
+ - PWM
+ - UART1
+ - I2C0
+ - SPI1
+ - WS2812B
+
+
+
### Adafruit Trinkey QT2040
diff --git a/firmware/README.md b/firmware/README.md
index 56007d0..eeff809 100644
--- a/firmware/README.md
+++ b/firmware/README.md
@@ -35,6 +35,8 @@ KERNEL=="hidraw*", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4005", TAG+="uacc
KERNEL=="hidraw*", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="00f1", TAG+="uaccess", GROUP="plugdev", MODE="0660"
# Adafruit ItsyBitsy
KERNEL=="hidraw*", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="00fd", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+# Adafruit MacroPad
+KERNEL=="hidraw*", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="0107", TAG+="uaccess", GROUP="plugdev", MODE="0660"
# Adafruit QT2040 Trinkey
KERNEL=="hidraw*", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="0109", TAG+="uaccess", GROUP="plugdev", MODE="0660"
# Adafruit QTPY
@@ -65,6 +67,7 @@ Compatible board can be:
- PICO
- FEATHER
- ITSYBITSY
+ - MACROPAD
- QTPY
- QT2040_TRINKEY
diff --git a/firmware/build-all.sh b/firmware/build-all.sh
index 9dc0864..4282be9 100755
--- a/firmware/build-all.sh
+++ b/firmware/build-all.sh
@@ -26,8 +26,9 @@ function build {
mkdir -p $RELEASE_DIR
build pico_i2s PICO 1 1 1000 0
build pico_hub75 PICO 0 1 1000 1
-build feather FEATHER 0 0 1000 0
-build itsybitsy ITSYBITSY 0 0 1000 0
-build qtpy QTPY 0 0 1000 0
+build feather FEATHER 0 1 1000 0
+build itsybitsy ITSYBITSY 0 1 1000 0
+build qtpy QTPY 0 1 1000 0
build qt2040_trinkey QT2040_TRINKEY 0 0 1000 0
+build macropad MACROPAD 0 1 12 0
diff --git a/firmware/source/CMakeLists.txt b/firmware/source/CMakeLists.txt
index f6219bb..59af8be 100644
--- a/firmware/source/CMakeLists.txt
+++ b/firmware/source/CMakeLists.txt
@@ -14,7 +14,7 @@ pico_sdk_init()
set(BOARD "PICO" CACHE STRING "BaseName chosen by the user at CMake configure time")
-set_property(CACHE BOARD PROPERTY STRINGS PICO FEATHER ITSYBITSY QTPY QT2040_TRINKEY)
+set_property(CACHE BOARD PROPERTY STRINGS PICO FEATHER ITSYBITSY QTPY QT2040_TRINKEY MACROPAD)
message(STATUS "Selected board:'${BOARD}'")
# might help for feather?
diff --git a/firmware/source/board_config.h.in b/firmware/source/board_config.h.in
index ed450d2..5328a13 100644
--- a/firmware/source/board_config.h.in
+++ b/firmware/source/board_config.h.in
@@ -13,6 +13,7 @@
#define ITSYBITSY 3
#define QTPY 4
#define QT2040_TRINKEY 5
+#define MACROPAD 6
#define BOARD ${BOARD}
@@ -132,6 +133,23 @@
#define U2IF_UART0_RX 2
//---------------------------------------------------------
+// MacroPad
+//---------------------------------------------------------
+#elif BOARD == MACROPAD
+ // I2C0
+ #define I2C0_ENABLED 1
+ #define U2IF_I2C0_SDA 20
+ #define U2IF_I2C0_SCL 21
+ // SPI1
+ #define SPI1_ENABLED 1
+ #define U2IF_SPI1_CK 26
+ #define U2IF_SPI1_MOSI 27
+ #define U2IF_SPI1_MISO 28
+ // UART1
+ #define UART1_ENABLED 1
+ #define U2IF_UART1_TX 20
+ #define U2IF_UART1_RX 21
+//---------------------------------------------------------
// Pico (default)
//---------------------------------------------------------
#elif BOARD == PICO
diff --git a/firmware/source/usb_descriptors.c b/firmware/source/usb_descriptors.c
index ffcb772..09bfe27 100644
--- a/firmware/source/usb_descriptors.c
+++ b/firmware/source/usb_descriptors.c
@@ -59,6 +59,11 @@
#define USB_PRD "QT2040 Trinkey U2IF"
#define USB_VID 0x239A
#define USB_PID 0x0109
+#elif BOARD == MACROPAD
+ #define USB_MFG "Adafruit"
+ #define USB_PRD "MacroPad RP2040 U2IF"
+ #define USB_VID 0x239A
+ #define USB_PID 0x0107
#elif BOARD == PICO
#define USB_MFG "Pico"
#define USB_PRD "U2IF"
diff --git a/source/machine/u2if.py b/source/machine/u2if.py
index 7344050..082bba1 100644
--- a/source/machine/u2if.py
+++ b/source/machine/u2if.py
@@ -9,6 +9,7 @@
(0xcafe, 0x4005), # pico
(0x239a, 0x00f1), # Adafruit Feather
(0x239a, 0x00fd), # Adafruit ItsyBitsy
+ (0x239a, 0x0107), # Adafruit MacroPad
(0x239a, 0x0109), # Adafruit QT2040 Trinket
(0x239a, 0x00f7), # Adafruit QTPY
]