Skip to content
/ jb3x3 Public

A dirt cheap cheap, open-source 3x3 DIY macropad.

Notifications You must be signed in to change notification settings

jakebox/jb3x3

Repository files navigation

JB3x3

JB3x3

./Photos/jb3x3_irl.jpg

Overview

The jb3x3 is a cheap, dead simple 3x3 macropad powered by an Arduino Pro Micro, chosen for its slim profile, HID capability, and low cost.

The PCB files for production can be found in jb3x3_pcb_files.zip where they can be uploaded to a service such as JLCPCB. The bottom plate is stored in the 3x3pcb.dxf file.

Originally designed for use with Zoom, the keypad has infinite uses – Discord shortcuts, convenient macro keys, or control a livestream with ease.

For a batch of 10 PCBs the cost came out to less than $15 per unit, not including labor/solder/tools.

Parts

The keypad is designed for a Cherry MX-compatible switch, meaning many common, cheap switches can be used. I used “Otemu” switches - very cheap but functional. The controller is designed to be an Arduino Pro Micro, ideally flashed with QMK (but manual programming is of course possible).

Programming the keypad

Links

https://beta.docs.qmk.fm/

General Steps

  1. Setup QMK environment
  2. Make jb3x3 keyboard: qmk new-keymap -kb jb3x3
  3. Make new folder in jb3x3/keymaps (if it gets created from the above step just transfer files)
  4. Make new keymap.c file
  5. Edit/configure keymap (written in C obviously)
    • Reference section Notes re: Programming
  6. Compile: qmk compile -kb jb3x3 -km <keymap>
  7. Flash the .hex file to keyboard, I recommend the GUI tool but I’m sure you’ll figure it out
    • When flashing you need to put the Arduino into the proper mode, I think just short GND/RST, then plug in the keyboard, then disconnect
    • It’ll show up in the software a bit differently
    • Let me know if you have issues with this, haven’t done it in a while

Notes re: Programming

  • jakebox/keymap.c is a good reference
  • https://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes
  • Modifier keys are keys wrapped in, for example, LCTRL(kc)
    • These can of course be stacked
  • Can use MO(#) to shift to a mod layer easily (this is my preferred method)
    • While they key is held shift to another layer
    • Corresponding key on the layer you’re shifting to needs to have KC_TRNS
    • See teacher_mac/keymap.c

About

A dirt cheap cheap, open-source 3x3 DIY macropad.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published