{"id":20779144,"url":"https://github.com/mattdibi/yampad","last_synced_at":"2026-01-25T08:31:04.615Z","repository":{"id":41367811,"uuid":"184048598","full_name":"mattdibi/yampad","owner":"mattdibi","description":"Feature-packed open source macropad","archived":false,"fork":false,"pushed_at":"2024-12-14T09:04:51.000Z","size":13087,"stargazers_count":361,"open_issues_count":6,"forks_count":55,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-11-16T02:14:48.911Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mattdibi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-29T10:16:40.000Z","updated_at":"2025-11-12T17:24:22.000Z","dependencies_parsed_at":"2022-09-16T08:21:39.481Z","dependency_job_id":null,"html_url":"https://github.com/mattdibi/yampad","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mattdibi/yampad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdibi%2Fyampad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdibi%2Fyampad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdibi%2Fyampad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdibi%2Fyampad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattdibi","download_url":"https://codeload.github.com/mattdibi/yampad/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdibi%2Fyampad/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28749284,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T07:58:02.558Z","status":"ssl_error","status_checked_at":"2026-01-25T07:57:57.153Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T13:26:16.372Z","updated_at":"2026-01-25T08:31:04.599Z","avatar_url":"https://github.com/mattdibi.png","language":null,"funding_links":["https://www.paypal.me/MattiaDalBen"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/yampad_logo.png\" alt=\"Yampad logo\" width=\"450\"/\u003e\n\u003cimg src=\"img/qmk-badge-dark.png\" alt=\"QMK\" width=\"145\"/\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eThe Yampad project repository\u003c/h3\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Status](https://img.shields.io/badge/status-active-success.svg)]()\n[![GitHub Issues](https://img.shields.io/github/issues/mattdibi/yampad.svg)](https://github.com/mattdibi/yampad/issues)\n[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/mattdibi/yampad.svg)](https://github.com/mattdibi/yampad/pulls)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)\n\n\u003c/div\u003e\n\n---\n\nThe 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.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/yampad.jpg\" alt=\"Yampad PCB\" width=\"600\"/\u003e\n\u003c/p\u003e\n\n**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\u0026D department for a big IoT and Embedded Computers company.\n\n## Table of contents\n\n- [Rationale](#rationale)\n- [Default Layout](#default-layout)\n- [Bill of materials](#bill-of-materials)\n- [Assembly guide](#assembly-guide)\n- [Firmware](#firmware)\n\n## Rationale\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/yampad2.jpg\" alt=\"Yampad v2\" width=\"600\"/\u003e\n\u003c/p\u003e\n\nThe 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.\n\nThe name comes from the acronym: **Y**et **A**nother **M**echanical num**PAD**, referring to the disruptive and innovative nature of the project.\n\nThe main goal of this project is to have a cheap, easy-to-build, feature-rich numpad which is completely open source.\n\nFeatures:\n\n- Cheap to build: the PCB can be manufactured for less than 1\\$ per piece.\n- Easy to source components.\n- Easy to build.\n- Hot swappable keys using _Kailh PCB sockets_.\n- Arduino Pro Micro powered.\n- QMK compatible.\n- RGB backlighting support (optional).\n- OLED 0.91\" screen (optional).\n- Completely open-source.\n\n#### Useful links\n\n- [YamPAD on Hackaday.io](https://hackaday.io/project/163491-yampad-feature-packed-open-source-macropad)\n\n## Default Layout\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/BL.png\" alt=\"Layer 1 Yampad\" width=\"250\"/\u003e\n\u003cimg src=\"img/NV.png\" alt=\"Layer 2 Yampad\" width=\"250\"/\u003e\n\u003cimg src=\"img/FN.png\" alt=\"Layer 3 Yampad\" width=\"250\"/\u003e\n\u003c/p\u003e\n\n## Bill of materials\n\n| Qty | Item                                  | Notes                                                                                          |\n| --- | ------------------------------------- | ---------------------------------------------------------------------------------------------- |\n| 1   | Arduino Pro Micro (ATmega32u4)        | a.k.a. SparkFun Pro Micro                                                                      |\n| 18  | Cherry MX compatible swtiches         |                                                                                                |\n| 18  | SOD-123 1N4148/1N4148W diodes         |                                                                                                |\n| 18  | Kailh PCB sockets CPG151101S11        |                                                                                                |\n| 9   | WS2812B RGB LEDs                      | Optional                                                                                       |\n| 9   | SMD 0805 100nF capacitors             | Optional (only required if WS2812B are installed)                                              |\n| 1   | I2C 0.91\" 128\\*32 OLED Display Module | The ones using SSD1306 driver IC over I2C                                                      |\n| 1   | 6mm\\*6mm button switch                |                                                                                                |\n| 1   | YamPAD PCB                            | [Order from PCBWay](https://www.pcbway.com/project/shareproject/YamPAD_mechanical_numpad.html) |\n| 5   | M3 screws                             |                                                                                                |\n\n## Assembly guide\n\nThere'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.\n\n1. 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.\n2. Now add the **0805 100nF caps**. Use the same technique as before.\n3. Add the **1N4148 diodes**.\n4. Add the **CPG151101S11 Kailh PCB sockets**.\n5. Add the **reset 6mm button switch**.\n6. Add some electrical tape just to be sure.\n7. Add the **Arduino Pro Micro** bottom side up.\n8. Add the **OLED screen**\n9. Move to the firmware section and you should be set!\n\n### Assembly details\n\n#### Step 1: WS2812 assembly\n\n\u003cp align=\"left\"\u003eThe 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.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/assembly/step1-a.jpg\" alt=\"Step 1-a\" width=\"250\"/\u003e\n\u003cimg src=\"img/assembly/step1-b.jpg\" alt=\"Step 1-b\" width=\"250\"/\u003e\n\u003cimg src=\"img/assembly/step1-c.jpg\" alt=\"Step 1-c\" width=\"250\"/\u003e\n\u003c/p\u003e\n\n#### Step 2: Capacitors assembly\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/assembly/step2-a.jpg\" alt=\"Step 2-a\" width=\"300\"/\u003e\n\u003cimg src=\"img/assembly/step2-b.jpg\" alt=\"Step 2-b\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n#### Step 3: Diodes assembly\n\n\u003cp align=\"left\"\u003eThe 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.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/assembly/step3-a.jpg\" alt=\"Step 3-a\" width=\"250\"/\u003e\n\u003cimg src=\"img/assembly/step3-b.jpg\" alt=\"Step 3-b\" width=\"250\"/\u003e\n\u003cimg src=\"img/assembly/step3-c.jpg\" alt=\"Step 3-c\" width=\"250\"/\u003e\n\u003c/p\u003e\n\n#### Step 4: Kailh PCB sockets assembly\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/assembly/step4-a.jpg\" alt=\"Step 4-a\" width=\"300\"/\u003e\n\u003cimg src=\"img/assembly/step4-b.jpg\" alt=\"Step 4-b\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n#### Step 5: Reset switch\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/assembly/step5.jpg\" alt=\"Step 5\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n#### Step 6: Electrical tape\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/assembly/step6.jpg\" alt=\"Step 6\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n#### Step 7: Arduino assembly\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/assembly/step7-a.jpg\" alt=\"Step 7-a\" width=\"300\"/\u003e\n\u003cimg src=\"img/assembly/step7-b.jpg\" alt=\"Step 7-b\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n## Firmware\n\nThe 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):\n\n```sh\nmake yampad:default\n```\n\nExample of flashing this keyboard:\n\n```sh\nmake yampad:default:flash\n```\n\nSee 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).\n\n#### Pre-built\n\nI also added a pre-built .HEX file in the 'firmware/' folder [here](https://github.com/mattdibi/yampad/tree/master/firmware) to test the electronics.\n\n#### Via Support\n\nI 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.\n\n#### Stacked Acrylic Case\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/acrylic_case/yampad (2 of 10).jpg\" alt=\"Yampad Acrylic Case\" width=\"300\"/\u003e\n\u003cimg src=\"img/acrylic_case/yampad (4 of 10).jpg\" alt=\"Yampad Acrylic Case\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/acrylic_case/yampad (10 of 10).jpg\" alt=\"Yampad Acrylic Case\" width=\"300\"/\u003e\n\u003c/p\u003e\n\nAcrylic case image gallery [here](https://github.com/mattdibi/yampad/tree/master/img/acrylic_case/).\n\n### Donations\n\nIf you've read this far and found something useful, please consider donating to help me maintain and further develop this project.\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.paypal.me/MattiaDalBen\"\u003e\u003cimg src=\"img/donate-button.jpeg\" alt=\"Donate button\" width=300/\u003e\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattdibi%2Fyampad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattdibi%2Fyampad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattdibi%2Fyampad/lists"}