qmk_firmware/keyboards/dumbpad/v1x_dualencoder
imchipwood d7aa245c33
dumbpad refactor - adding support for various PCB revisions (#9259)
* Placeholder commit - Refactored to support different PCB revisions

Individual revision folders still need:
-  info.json
-  readme.md

all v0x folders support up to two LEDs for layer indication

all v1x folders support up to two LEDs for layer indication
plus one extra LED for numlock indication

v0x - supports single-encoder v0.x PCB revisions

v0x_right - supports reversible, single-encoder v0.x PCB revisions

v0x_dualencoder - supports dual-encoder v0.x PCB revisions

v1x - supports single-encoder v1.x PCB revisiions

v1x_right - supports reversible, single-encoder v1.x PCB revisions

* Added info.json and readme.md files for all dumbpad revisions

* More refactoring, adding shared config.h and rules.mk

Removed config.h from default keymap folders - defining TAPPING_TOGGLE in config.h

* Minor formatting fix

* MATRIX_COL_PINS for v1x_right was not reversed - changed to match v0x_right

* adding support for v1x dual encoder PCB

* adding alt-f2 tapdance routine for personal keymaps

* adding dumbpad build using teensy 2.0 instead of Pro Micro

* matched v1x dumbpad encoder and led pins to latest PCB revisions

* updated readme, removed v1x_teensy until someone requests it

* changed device name to match tmk udev rules, removed unnecessary ifdef

* removed user keymaps and folders

* missed hotdox keymap - removing

* fixing info.json keyboard_names for all versions

* Changed biton32 to get_highest_layer in keyboards/dumbpad/v0x/v0x.c

* keyboards/dumbpad/v0x/v0x.c - remove matrix_scan_kb, process_record_kb

* /dumbpad/v0x/keymaps/default/keymap.c - remove empty functions

* /dumbpad/v0x/keymaps/default/keymap.c - changed biton32 to get_highest_layer

* keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c - remove empty functions

* keyboards/dumbpad/v0x_right/readme.md - smaller board layout image

* keyboards/dumbpad/v1x_dualencoder/readme.md - smaller board image

* keyboards/dumbpad/v1x/readme.md - smaller board image

* keyboards/dumbpad/v1x_right/readme.md - smaller board image

* Update keyboards/dumbpad/rules.mk

* Apply suggestions from code review

Batch applying suggestions from review

* fixed removal of led_set_kb

* Implementing requested changes from old pull request 9259

* removing unused rules

* removed rules.mk from dumbpad base folder

* adding templates for each layout

* testing default keymap json

* Testing applying default keymap for dumbpad

* Layout correction: v1.x are 17 position pcb's

* Update keyboards/dumbpad/v0x/rules.mk

* Update keyboards/dumbpad/v0x/rules.mk

* Update keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c

* Update keyboards/dumbpad/v0x_dualencoder/rules.mk

* Update keyboards/dumbpad/v0x_dualencoder/rules.mk

* Update keyboards/dumbpad/v1x_dualencoder/rules.mk

* Update keyboards/dumbpad/v1x_dualencoder/templates/keymap.c

* Update keyboards/dumbpad/v1x_right/rules.mk

* Update keyboards/dumbpad/v1x_right/rules.mk

* Update keyboards/dumbpad/rules.mk

* Update keyboards/dumbpad/v0x_dualencoder/templates/keymap.c

* Update keyboards/dumbpad/v0x_right/rules.mk

* Update keyboards/dumbpad/v1x/rules.mk

* Update keyboards/dumbpad/v1x/rules.mk

* Update keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c

* Update keyboards/dumbpad/v1x_dualencoder/rules.mk

* Update keyboards/dumbpad/v0x_right/rules.mk

* Removing binary files
2021-03-04 20:25:19 -08:00
..
keymaps/default dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00
templates dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00
config.h dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00
info.json dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00
readme.md dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00
rules.mk dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00
v1x_dualencoder.c dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00
v1x_dualencoder.h dumbpad refactor - adding support for various PCB revisions (#9259) 2021-03-04 20:25:19 -08:00

dumbpad v1.x dual-encoder

dumbpad

Single- vs Dual-Encoder Support

The combined Cherry MX/encoder sockets allow single- and dual-encoder configurations.

The only rule when using two encoders is that there cannot be two encoders on the left side at once, or two on the right side. This table shows where the encoders are in the switch grid ("X" for encoder, "s" for switch):

C0 C1 C2 C3 C4
X s s X
s s s s
s s s s
X X s s X
  • The three encoders in columns C0 and C1 are connected to each other
  • The two encoders in column C4 are connected to each other

So, if doing dual encoders, one must be in column C4 and the other in either C0 or C1. Three or more encoders will not work.

The following sections describe the configurations that the default keymaps in QMK are designed for.

Single-Encoder (Default Configuration)

In the default configuration, the encoder is in column 0, the bottom left corner below the Pro Micro. All other sockets are filled with switches.

C0 C1 C2 C3 C4
s s s s
s s s s
s s s s
X s s s s

single encoder

Dual-Encoder Bottom

One dual-encoder configuration has encoders in the bottom two corners of the 4x4 grid, and switches in the rest of the grid. The socket in column 0 is left empty.

C0 C1 C2 C3 C4
s s s s
s s s s
s s s s
X s s X

dual-encoder bottom

Dual-Encoder Top

Another dual-encoder configuration has encoders in the top two corners of the 4x4 grid, and switches in the rest of the grid. The socket in column 0 is left empty.

C0 C1 C2 C3 C4
X s s X
s s s s
s s s s
s s s s

dual-encoder top

No-Encoder

You may also choose not to use any rotary encoders if you like!

Bill Of Materials

  • Cherry-style mechanical switches
  • EC11 rotary encoder with pushbutton (7-pin) - one or two depending on your desired configuration
  • 1n4148 diodes (thru hole) - one per switch and rotary encoder (if using clickable encoder(s))
  • 1x Arduino Pro Micro or pin-compatible ATmega32u4-based MCU
  • (optional) 3x 3mm LEDs
  • (optional) 3x 330 ohm resistors (for limiting current in LEDs)
  • (optional) 6mm SPST switch for resetting MCU

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

make dumbpad/v1x_dualencoder:default

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