Sunday, November 22, 2020

Building a 4x4 mechanical keyboard with RGB and rotary encoder

Introduction ( Part 1 of 4 )

While browsing the local fb mechanical keyboard group, one member was doing a group buy on an interesting qmk firmware numpad called dumbpad from imchipwood. I always wanted a programmable numeric pad and a rotary encoder for multi function use.

SVT RGB dumbpad

Fork of Dumbpad

After doing some searching and looking at the nice pictures of this numpad, I decided to make my own version by forking the dumbpad. Unfortunately, it was designed in EagleCAD, a PCB design software I used to use long ago but switched over to KiCAD for most of my recent PCB designs.

With the KiCAD import tool, I imported the entire design to Kicad and start my journey in designing this simple keyboard.
Here are some initial enhancements I planned add to this 4x4 keyboard :-
  • RGB backlit using WS2812B
  • SMD components for PCB Assembly ( diodes, LEDs, resistors, buttons, caps )
  • Large solder pads so it does not peal off easily

The decision for using SMD components was so that I can send the entire keyboard for a PCB assembly services where you order all your components and PCB and the factory will do everything and send you back the completed PCB with all the components fully soldered. Another reason was because, once you go surface mount devices (SMD), you will NEVER go back to Through-Hole (TH) parts.

3-pin vs 5-pin

As I researched further, I noticed, without a top plates, the cherry mx style switches will need a 5-pins version for stability instead of the more commonly available 3-pins switch version sold locally. Most keyboard have a plate for stability and take some of the stress from the pressing force. Read more here on why use a plate.

3D drawings

I also added 3D models in KiCAD of the Cherry-MX switch and EC11 rotary encoder for matching the holes and visualizing the dimensions.

Large solder pads

Back to the drawing board, I made more and more changes, the only thing remain the same as the original was probably the position of the switch. I also added the 2 x RGB LED Strips using WS2812 LED strips.

I edited all the footprints and made it bigger for all the soldering pads. The above is a cherry-mx + rotary combo switch.

PCB Plates

Once I made the top PCB plates, more design changes are needed :-
  • Pro Micro cannot fit between the PCB and top plates with only 5mm clearance
  • Reset buttons need to be placed at the bottom
  • Experimenting a FR4 only without copper pour and soldermask so the LED at the bottom PCB can shine through it

Had to go research on various PCB face plates design from and reading various post on different types of design for this.

SVT RGB Plates

I finalized with this design and added more mounting point in case I need support from the PCB to the top plates. The Pro Micro, the micro-controller used in this design was swapped to the bottom and all the pins were swapped. I had to re-route everything again.

SVT RGB bottom layer

Just had enough space for two RGB LED strips with 4 x WS2812 each in between middle and bottom row.

I also added an jumper option for the 3rd LED to choose between LED or underglow RGB.

So far, it all schematics and PCB design without knowing will the QMK software even will work with the RGB LED underglow I just added.

Once the PCB was done, I have to do those boring stuff like ordering SMD parts ( 1N4148, Arduino Pro Micro, EC11 Rotary Encoder , knobs and other parts )

I check and re-check several times and held my breath and sent both the PCBs to the Seeed Studio Fusion Services

In summary here are the enhancements I have added to the original dumbpad :-

  • Added 2 x RGB LED strips for LED underglow
  • Switched all components to SMD
  • Large solder pads for switches
  • Flipped the Pro Micro
  • PCB Plates to hold the switches
  • LED shining through PCB plates
  • Enlarge all pads for the Cherry-MX-Encoder footprints
  • A few extra M3 mounting holes

Continue in Part 2 once I received back the PCB and started coding the SVT RGB dumbpad on QMK firmware

Summary Links

No comments:

Post a Comment


Related Posts Plugin for WordPress, Blogger...