Blueprint

Kev's Macropad

This is my custom 10-key (8 MX, 2 encoder) mechanical macropad that has dual rotary encoders, per-key RGB lighting, and an OLED status screen. It is powered by the XIAO RP2040 and an MCP23008 I/O expander to make sure that I can do as much as I can on this board with such a small footprint.

Created by Kev Kev

Hackpad

2 views

0 followers

Kev Kev added to the journal ago

Did some coding

I did some coding.

I made the boot code only mount the USB drive when pins A0 and A1 were bridged on the Xiao, so that I don't have to deal with a CIRCUITPY drive every time I turned the thing on.
image

And for the main code, it's basically just a neat little macropad with some shortcuts I needed to use.

But there's a catch, like there always is.

The LEDs were placed wrong on my footprint :(
I spent HOURS trying to figure out why they weren't working in my code. But silly me just put them completely wrong on the PCB so the pins were not going to what they needed to go to.

The only way the LEDs would really work is if I had them shining down.. into the bottom of the case, so I tried to unsolder one. Ripped the contact right off. And then I just decided that it wouldn't be worth my time to do this. So now I have LEDs just sitting there not doing anything at all.

Oh well. The things you learn.

But now if I do decide to do anything again for Blueprint I will know what to look at more carefully. Maybe check the traces before soldering everything onto the PCB.

Kev Kev added to the journal ago

Soldered the components

It's been a bit since I've last journaled, been SO busy. So let's do this.

Here are my fully soldered components: F6B13CDE-31BF-433B-B645-C22DCEAA97F3_1_105_c

You might have noticed that in the image above, I had to run a wire between GND on my Xiao and the RESET pin on my I/O expander. Silly me, I forgot to run this in my PCB.

And here's the front of it:
A8318DB6-BFB3-4D3A-A059-23BFFB17D40C_1_105_c

And here's it in the case, with some janky firmware that doesn't work:
88C185C4-B5B0-4415-8A26-7A9CFA4AF735_1_105_c

Kev Kev added to the journal ago

Soldered XIAO and OLED pin headers, checked i2c

I finished the soldering of the pin headers for my Xiao RP2040 and the OLED display!!!!!!!!

This process was damn hard due to a defective soldering iron I got which suffered from poor thermals and oxidation. I had to troubleshoot by setting the temp on the iron to 350ºC (yeah, ridiculous) to compensate.

Anywho, got that done. Not my finest soldering work but it worked :))

IMG_1745 IMG_1746

When I did this all I verified the connections by running some test code on a breadboard with the OLED display in Circuitpython, confirming that everything worked!

To the reviewer: yes, this sadly took 4 hours :(((

CAN CAN ⚡🚀 approved Kev's Macropad ago

Nice hackpad

Kev Kev submitted Kev's Macropad for ship review ago

Shaurya Bisht Shaurya Bisht requested changes for Kev's Macropad ago

please put your funding to 0 ... we give a auto grant for hackpads and a kit to build

Kev Kev submitted Kev's Macropad for ship review ago

Kev Kev started Kev's Macropad ago

1/15/2026 - Soldered XIAO and OLED pin headers, checked i2c

I finished the soldering of the pin headers for my Xiao RP2040 and the OLED display!!!!!!!!

This process was damn hard due to a defective soldering iron I got which suffered from poor thermals and oxidation. I had to troubleshoot by setting the temp on the iron to 350ºC (yeah, ridiculous) to compensate.

Anywho, got that done. Not my finest soldering work but it worked :))

IMG_1745 IMG_1746

When I did this all I verified the connections by running some test code on a breadboard with the OLED display in Circuitpython, confirming that everything worked!

To the reviewer: yes, this sadly took 4 hours :(((

2/28/2026 1:39 PM - Soldered the components

It's been a bit since I've last journaled, been SO busy. So let's do this.

Here are my fully soldered components: F6B13CDE-31BF-433B-B645-C22DCEAA97F3_1_105_c

You might have noticed that in the image above, I had to run a wire between GND on my Xiao and the RESET pin on my I/O expander. Silly me, I forgot to run this in my PCB.

And here's the front of it:
A8318DB6-BFB3-4D3A-A059-23BFFB17D40C_1_105_c

And here's it in the case, with some janky firmware that doesn't work:
88C185C4-B5B0-4415-8A26-7A9CFA4AF735_1_105_c

2/28/2026 1:48 PM - Did some coding

I did some coding.

I made the boot code only mount the USB drive when pins A0 and A1 were bridged on the Xiao, so that I don't have to deal with a CIRCUITPY drive every time I turned the thing on.
image

And for the main code, it's basically just a neat little macropad with some shortcuts I needed to use.

But there's a catch, like there always is.

The LEDs were placed wrong on my footprint :(
I spent HOURS trying to figure out why they weren't working in my code. But silly me just put them completely wrong on the PCB so the pins were not going to what they needed to go to.

The only way the LEDs would really work is if I had them shining down.. into the bottom of the case, so I tried to unsolder one. Ripped the contact right off. And then I just decided that it wouldn't be worth my time to do this. So now I have LEDs just sitting there not doing anything at all.

Oh well. The things you learn.

But now if I do decide to do anything again for Blueprint I will know what to look at more carefully. Maybe check the traces before soldering everything onto the PCB.