An open API service indexing awesome lists of open source software.

https://github.com/mattdibi/yampad

Feature-packed open source macropad
https://github.com/mattdibi/yampad

Last synced: 6 months ago
JSON representation

Feature-packed open source macropad

Awesome Lists containing this project

README

          


Yampad logo
QMK

The Yampad project repository

[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[![GitHub Issues](https://img.shields.io/github/issues/mattdibi/yampad.svg)](https://github.com/mattdibi/yampad/issues)
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/mattdibi/yampad.svg)](https://github.com/mattdibi/yampad/pulls)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)

---

The Yampad project is an open-source, [QMK (Quantum Mechanical Keyboard Firmware)](https://github.com/qmk/qmk_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)](mailto:matthewdibi@gmail.com) 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](#rationale)
- [Default Layout](#default-layout)
- [Bill of materials](#bill-of-materials)
- [Assembly guide](#assembly-guide)
- [Firmware](#firmware)

## 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: **Y**et **A**nother **M**echanical num**PAD**, 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

- [YamPAD on Hackaday.io](https://hackaday.io/project/163491-yampad-feature-packed-open-source-macropad)

## 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 | Optional |
| 9 | SMD 0805 100nF capacitors | Optional (only required if WS2812B are installed) |
| 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](https://www.pcbway.com/project/shareproject/YamPAD_mechanical_numpad.html) |
| 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

The firmware is available through [QMK firmware repository](https://github.com/qmk/qmk_firmware/tree/master/keyboards/yampad). Make example for this keyboard (after setting up your build environment):

```sh
make yampad:default
```

Example of flashing this keyboard:

```sh
make yampad:default:flash
```

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

#### Pre-built

I also added a pre-built .HEX file in the 'firmware/' folder [here](https://github.com/mattdibi/yampad/tree/master/firmware) to test the electronics.

#### Via Support

I also added a porting to via .HEX file in the 'firmware/via_support' folder [here](https://github.com/mattdibi/yampad/tree/master/firmware/via_support) to load use .json file in via apps.

#### Stacked Acrylic Case


Yampad Acrylic Case
Yampad Acrylic Case


Yampad Acrylic Case

Acrylic case image gallery [here](https://github.com/mattdibi/yampad/tree/master/img/acrylic_case/).

### 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