Code Monkey home page Code Monkey logo

yampad's Introduction

Yampad logo QMK

The Yampad project repository

Status GitHub Issues GitHub Pull Requests License


The Yampad project is an open-source, QMK (Quantum Mechanical Keyboard Firmware) powered, hot-swappable, RGB-backlighted, OLED featured, mechanical numpad. This repository will be used to share information about the project and instruction on how to use and assemble the Yampad.

Yampad PCB

Designer's bio: Mattia Dal Ben (aka u/TiaMaT102) obtained a master's degree in Electrical Engineering with a specialization in Computer Science at the University of Udine. Currently works as a Software Engineer in R&D department for a big IoT and Embedded Computers company.

Table of contents

Rationale

Yampad v2

The Yampad is a Macropad/Numpad which uses Cherry MX style mechanical switches laid out in the usual numeric pad layout. The only difference comes from the bottom row, which uses a 4 keys configuration, thus enabling the use of the macropad as a nav cluster.

The name comes from the acronym: Yet Another Mechanical numPAD, referring to the disruptive and innovative nature of the project.

The main goal of this project is to have a cheap, easy-to-build, feature-rich numpad which is completely open source.

Features:

  • Cheap to build: the PCB can be manufactured for less than 1$ per piece.
  • Easy to source components.
  • Easy to build.
  • Hot swappable keys using Kailh PCB sockets.
  • Arduino Pro Micro powered.
  • QMK compatible.
  • RGB backlighting support (optional).
  • OLED 0.91" screen (optional).
  • Completely open-source.

Useful links

Default Layout

Layer 1 Yampad Layer 2 Yampad Layer 3 Yampad

Bill of materials

Qty Item Notes
1 Arduino Pro Micro (ATmega32u4) a.k.a. SparkFun Pro Micro
18 Cherry MX compatible swtiches
18 SOD-123 1N4148/1N4148W diodes
18 Kailh PCB sockets CPG151101S11
9 WS2812B RGB LEDs
9 SMD 0805 100nF capacitors
1 I2C 0.91" 128*32 OLED Display Module The ones using SSD1306 driver IC over I2C
1 6mm*6mm button switch
1 YamPAD PCB Order from PCBWay
5 M3 screws

Assembly guide

There's no wrong order for the YamPAD assembly with the exception of the Arduino/OLED/ResetButton. Here I will suggest an order because I found more comfortable to solder the components this way.

  1. Start with soldering the WS2812 LEDs. Start by applying solder to a pad, then heat it up while adding the component, finally solder the remaining pads.
  2. Now add the 0805 100nF caps. Use the same technique as before.
  3. Add the 1N4148 diodes.
  4. Add the CPG151101S11 Kailh PCB sockets.
  5. Add the reset 6mm button switch.
  6. Add some electrical tape just to be sure.
  7. Add the Arduino Pro Micro bottom side up.
  8. Add the OLED screen
  9. Move to the firmware section and you should be set!

Assembly details

Step 1: WS2812 assembly

The LEDs have a direction, this is indicated by a small cut out corner showing a triangle on the LED itself that must align with a corner indicated on the PCB as a visible corner angle. Top left on images below.

Step 1-a Step 1-b Step 1-c

Step 2: Capacitors assembly

Step 2-a Step 2-b

Step 3: Diodes assembly

The diodes have a direction, the side indicated by the line on the diode must align to the closed side of the shape on the PCB. Left on the three images below.

Step 3-a Step 3-b Step 3-c

Step 4: Kailh PCB sockets assembly

Step 4-a Step 4-b

Step 5: Reset switch

Step 5

Step 6: Electrical tape

Step 6

Step 7: Arduino assembly

Step 7-a Step 7-b

Firmware

For now the firmware is available through mattdibi's QMK firmware repository fork, making sure you checkout the yampad branch.

Make example for this keyboard (after setting up your build environment):

make yampad:default

Example of flashing this keyboard:

make yampad:default:avrdude

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.

Pre-built

I also added a pre-built .HEX file in the 'firmware/' folder here to test the electronics.

Donations

If you've read this far and found something useful, please consider donating to help me maintain and further develop this project.

Donate button

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.