Giter VIP home page Giter VIP logo

macrokeeb's Introduction

macrokeeb

Simple 10-key Arduino-based macropad with OLED screen and rotary encoder I did for my high school final project.

macrokeeb

Features

  • 10 programmable keys
  • 5 layers/modes (General, Windows, Linux, VSCode, Other) which can be switched by pressing the button on the rotary encoder
  • Rotary encoder knob changes the audio volume
  • OLED screen shows current layer and its predefined macros

Parts

  • 1x Arduino Pro Micro
  • 1x I2C OLED display, 128x64, 0.96 inch
  • 1x Rotary encoder KY-040
  • 10x Mechanical switches, red (any Cherry MX compatible will do)
  • 10x Keycaps (any Cherry MX compatible will do)
  • 10x Standard signal diodes 1N4148
  • 10x LED lights, red, 3mm
  • Wires (reused from old Christmas lights)
  • 3D printed case

Tools

  • 3D printer
  • Soldering iron and solder
  • Wire cutters
  • Hot glue gun
  • Sandpaper

Case

I used the following and modified it a bit (removed the logo, added hex mesh on the side, added hole...): CODEK - Configurable OLED Display Extension Keyboard

case

๐Ÿ’ก Pro tip:

Use sandpaper to smoothen rough edges, read more here on how to do it.

Assembly

diagram1

diagram2

๐Ÿ’ก Pro tip:

Before putting it all together, test all of your components separately to ensure they all work.

Steps:

  1. Slide the OLED display holder into the top plate. Install the switches into the top plate. Both can be a tight fit, but that shouldn't be a problem. In that case, apply more pressure or sand down the tight parts.

step1

  1. For wiring, refer to the diagrams. Basically, you have to wire the keys in a matrix. For soldering, you can do the following: cut the wires in smaller ones, long enough to wire up one switch with the next one; use one wire per row/column and remove the coating where needed; use one wire per row/column and solder through the coating. I suggest that you use your own technique.

step2

  1. Add signal diodes on all the keys, it will ensure that the microcotroller doesn't read key presses wrong when pressing several keys at once.

step3

  1. Adding LEDs is purely for aesthetics.

step4

  1. Solder wires to the OLED display and rotary encoder too.

step5

  1. Solder everything to the Pro Micro.

step6

  1. Now is the time to load the firmware onto the Pro Micro and test it out and make adjustments as needed before closing the case. I used Arduino IDE 2.0.

step7

  1. At last, put hot glue on the LEDs, between the base plate and rotary encoder (make sure it will later fit through the hole), between OLED display and OLED display holder, between the Pro Micro and its holder. Basically, put hot glue on every component/piece that you don't want to hear rattling in the case later.

step8

  1. That's it! Now take a step back and admire your work.

step9

Suggestions, improvements, ideas:

  • Add layer with keys F13-F22 and map them with a key mapper software like AutoHotKey
  • Add simple games like tetris or pong on the screen and control it with the keys
  • Add "gaming" layer where the keys can be w, a, s, d, space etc. and add multi-key press, key press and hold etc.

Links

macrokeeb's People

Contributors

mihaelsegulja avatar

Watchers

 avatar

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.