You are browsing as a guest. Sign up (or log in) to start making projects!

14h 48m 22s logged

DEVLOG #001

3x4 key hack pad with 2 rotary encoders

Overview

This is a macro pad with 12 keys (3x4 key matrix) and two rotary encoders. It also an RGB under-glow for a clean aesthetic. The reason I started this project was to get a functional, cheap macro pad and to get started with hardware and 3d design. The main use for this macro pad will just regular software development tasks like Git commands, client side build and production commands, starting up API endpoints, etc.

Tools Used

  • KiCad
  • Onshape

Progress

As of now, I have almost finalized the PCB layout. To give context, I have went through about 4 different iterations of this PCB.

PCB Iteration #001

For the first iteration, I was just getting started out so it took me quite a while even get started on the schematic. The original design started as one rotary encoder instead of two and the same 3x4 key matrix. After hours of research, I had came up with these specs:

  • Seeed Studio XIAO RP2040 (1x) - I chose this MCU because it was compact, supported SMD mounting, and it had the perfect amount of pins I needed.
  • Cherry MX switches (12x) - This choice was pretty much a no brainer as the Cherry MX switches are well-known as being top-tier mechanical switches.
  • Bourns PEC11R rotary encoder (1x) - I chose this unit mainly because i found a lot of documentation for its firmware and there were many 3d knob models for it.
  • WS2812B LEDs (4x) - I picked these LEDs because I was already familiar with them and they are versatile it terms of color selection.
  • 0402 0.1 µF Capacitors (4x) - These capacitors were chosen because of their small form factor and ability to decouple our LEDs.
  • SOD-123 1N4148W Diodes (12x) - Perfect for preventing ghosting in key matrixes and has a clean SMD physical package.

Result

Unfortunately, after designing the PCB, the design turned out to be too large. I also realized that I needed another rotary encoder for functionality.

PCB Iteration #002

For this next iteration, I wanted to make the PCB shape compact and add an extra rotary encoder. The main aspect of the PCB that this change was the MCU. The Seeed Studio XIAO RP2040 had an insufficient amount of pins to supply all of the previous plus this new encoder. Thats how we landed with the WaveShare RP2040-Zero.

  • WaveShare RP2040-Zero: This was the perfect fit as it exposed 20 GPIO pins and it was also SMD compatible (supposedly…).

Result

Soon after finalizing the new design, I realized that to mount the RP2040-Zero flat on the PCB like a SMD, I would have to create a cutout in PCB as the MCU actually has components on its back side as well.

Now lets start talking about the actual case design.

3D Case Design

This case design really took way more work than I though in the beginning. I had realized the complex of just building a simple case around a PCB. Overall, Through these case iterations, I’ve learned a lot about using Onshape and how create unique design without just Googling with tools to use. Thankfully though, I already had a bit of a head start because I had learned a bit of how to CAD on Onshape for VEX V5 robots.

Since I had throughly documented each iteration the case as I was grinding, I can only really give the description of the semi-finished product. I tried to go for a very a geometrically simple aesthetic. Basically, I want it look like a really bored box but I didn’t want to spend all my time create a really fancy design.

By the way, the case’s inspiration comes for a macropad that I found online called Ocreeb.

Next Steps

Now, here’s the things I need to complete:

  • Figure whether to use new MCU or make a cutout in the PCB for the RP2040-Zero
  • Add finishing touches to the 3D design

Please comment below what I should do for my MCU problem!

0
207

Comments 1

@neilm

pls comment abt ideas i can use