Skip to content

ejmarine/Keyboards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keyboards (WIP)

Mechanical Keyboard & Keypad Designs & my process iterating them

Overview

Since June 2024, I have been designing and prototyping mechanical keypads in order to learn more about PCB Design, electronics, firmware, 3D Modeling, and design for manufacturing. Since then, I have gone through 3 main iterations, improving on price, footprint/profile, and usability. I hope to end up with a fully polished design that passes as an actual product available from a manufacturer.

Tools:

  • 3D Modeling: OnShape
    • Online
    • Free
    • Well documented
  • PCB Design: EasyEDA
    • Free
    • Integraded with JLC PCB
  • PCB Provider: JLCPCB
    • Extremely Cheap
    • Relatively Fast
    • Supports a wide range of devices for assembly
  • Firmware: QMK
    • Open Source
    • Widely used & well documented


Rev 4 (60% Keyboard)

Notes

The PCB shares most of the same properties as the previous ones, just with much, much more switches. Same RP2040 as the latest keypad, etc. Only difference is I made the PCB white, which was a bit of a mistake because it reflects too much light and you can see past the keycaps. Other than that, no issues so far.

3D Modeled the case via OnShape and 3D printed it on my Ender 3.

Finally, once I was satisfied with the design, I had it milled out of 6061 Aluminum via JLCCNC.

While I made some slight modifications to the measurements, the design stayed largely the same (see below).

Due to tariffs, this was greatly delayed and much more expensive. Was toying with the idea of selling these until the prices of importing everything doubled, while the price of making it all in the States is still even more. Regardless, I'm super happy with how it turned out.

Images

drawing

drawing

drawing

drawing

PCB Schematic

drawing

Rev 3 (Current Version)

Images

drawingdrawing
drawing

PCB Schematic

drawing

Red traces are top level and blue traces are bottom level.

This is the maximum resolution that EasyEDA will output ._.

Notes

This latest revision features a reduction in price and footprint and improvements in case and PCB design.

A change to the RP2040 chip cuts prices from ~$5 (ATMEGA32U4) to just $1.02 per microcontroller. Also, changes to components that JLCPCB can easily source provided additional price drops.

A change to RP2040 microcontrollers, improved design rules, and a sleeker form factor required significant board redesigns. While the ATMega32U4 contains in-built flash memory, the RP2040 requires external flash memory, leading to an additonal 2MB flash chip. Design rules entailed increased width on data and VCC traces, and smaller traces for the keyboard matrix. A smaller form factor led to moving all components to the back of the PCB, directly under the keyboard switches (see PCB Schematic).

Having gotten better at 3D modeling during this time, the case is more asthetic than previous revisions and the fitment on the USB port and PCB allows for a sleek look.


Rev 2

Images

drawingdrawing

USB Port on Rev2 (Left) vs Rev1 (Right)

drawingdrawing

Notes

The PCB features a change to SMT components, mainly an ATMega32U4 microcontroller, rather than a breakout board such as the previous rev's Arduino Pro Micro.

Because I was using an on-board microcontroller, I made a switch from developing firmware in the Arduino IDE to QMK Firmware, a robust and open source keyboard firmware.

Due to a lack of forsight and understanding of PCB assembly, I ordered the parts and boards without having them attached. As such, I hand-soldered the microcontroller and additional components. Not only was this extremely tedious, I risked damaging or incorrectly installing these components.

Although my PCB design worked for this revision, I used an auto-routing feature and did not adjust trace widths for power and data lines.

While the redesigned case with an improved USB port (see above) was sleek, I wanted to improve the footprint and design.

Improvements Needed:

Price - ATMEGA32U4 chips are relatively expensive (~$5) Footprint - A large section of PCB is used solely for components (Left portion) Design - While the case looks better, I want a sleeker look. PCB Design - Use best practices for trace widths and decoupling capacitor placement; Order pre-assembled boards.


Rev 1

Images

drawingdrawing

Notes

This iteration was mainly to get an understanding of the PCB design and order process through JLCPCB.

The design features 12 keys, a rotary encoder, and an Arduino Pro Micro.

Programming was developed and flashed through the Arduino IDE.

Improvements needed:

SMT Microcontroller
Improve asthetics with black board
Streamline case design


About

Mechanical Keyboard & Keypad Design

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors