~ruther/qmk_firmware

7e0299117b389b1c7fcdfa2f20891ba2287ea771 — Ryan 2 years ago 314f6c1
Move encoder config to data driven (#19923)

Co-authored-by: Nick Brassel <nick@tzarc.org>
972 files changed, 2898 insertions(+), 2569 deletions(-)

M keyboards/0xcb/1337/config.h
M keyboards/0xcb/1337/info.json
M keyboards/0xcb/static/config.h
M keyboards/0xcb/static/info.json
M keyboards/10bleoledhub/config.h
M keyboards/10bleoledhub/info.json
M keyboards/1upkeyboards/pi40/config.h
M keyboards/1upkeyboards/pi40/info.json
M keyboards/1upkeyboards/super16v2/config.h
M keyboards/1upkeyboards/super16v2/info.json
M keyboards/25keys/aleth42/rev0/config.h
M keyboards/25keys/aleth42/rev0/info.json
M keyboards/25keys/aleth42/rev1/config.h
M keyboards/25keys/aleth42/rev1/info.json
M keyboards/25keys/cassette42/config.h
M keyboards/25keys/cassette42/info.json
M keyboards/2key2crawl/config.h
M keyboards/2key2crawl/info.json
M keyboards/45_ats/config.h
M keyboards/45_ats/info.json
M keyboards/7c8/framework/config.h
M keyboards/7c8/framework/info.json
M keyboards/abacus/config.h
M keyboards/abacus/info.json
M keyboards/abstract/ellipse/rev1/config.h
M keyboards/abstract/ellipse/rev1/info.json
M keyboards/acheron/shark/alpha/config.h
M keyboards/acheron/shark/alpha/info.json
M keyboards/acheron/shark/beta/config.h
M keyboards/acheron/shark/beta/info.json
M keyboards/adafruit/macropad/config.h
M keyboards/adafruit/macropad/info.json
M keyboards/adpenrose/akemipad/config.h
M keyboards/adpenrose/akemipad/info.json
M keyboards/adpenrose/kintsugi/config.h
M keyboards/adpenrose/kintsugi/info.json
M keyboards/adpenrose/obi/config.h
M keyboards/adpenrose/obi/info.json
M keyboards/aidansmithdotdev/fine40/config.h
M keyboards/aidansmithdotdev/fine40/info.json
M keyboards/aleblazer/zodiark/config.h
M keyboards/aleblazer/zodiark/info.json
M keyboards/ano/config.h
M keyboards/ano/info.json
M keyboards/aplyard/aplx6/rev2/config.h
M keyboards/aplyard/aplx6/rev2/info.json
D keyboards/arrayperipherals/1x4p1/config.h
M keyboards/arrayperipherals/1x4p1/info.json
M keyboards/atlantis/ak81_ve/config.h
M keyboards/atlantis/ak81_ve/info.json
M keyboards/atlantis/encoder_actions.c
M keyboards/atreyu/rev1/config.h
M keyboards/atreyu/rev1/info.json
M keyboards/atreyu/rev2/config.h
M keyboards/atreyu/rev2/info.json
M keyboards/avalanche/v2/config.h
M keyboards/avalanche/v2/info.json
M keyboards/avalanche/v3/config.h
M keyboards/avalanche/v3/info.json
M keyboards/avalanche/v4/config.h
M keyboards/avalanche/v4/info.json
M keyboards/bandominedoni/config.h
M keyboards/bandominedoni/info.json
M keyboards/basekeys/trifecta/config.h
M keyboards/basekeys/trifecta/info.json
M keyboards/basketweave/config.h
M keyboards/basketweave/info.json
M keyboards/bbrfkr/dynamis/config.h
M keyboards/bbrfkr/dynamis/info.json
M keyboards/bluebell/swoop/config.h
M keyboards/bluebell/swoop/info.json
M keyboards/bobpad/config.h
M keyboards/bobpad/info.json
M keyboards/bolsa/damapad/config.h
M keyboards/bolsa/damapad/info.json
M keyboards/boston/config.h
M keyboards/boston/info.json
M keyboards/boston_meetup/2019/config.h
M keyboards/boston_meetup/2019/info.json
M keyboards/cannonkeys/balance/config.h
M keyboards/cannonkeys/balance/info.json
M keyboards/cannonkeys/ortho75/config.h
M keyboards/cannonkeys/ortho75/info.json
M keyboards/cannonkeys/satisfaction75/config.h
M keyboards/cannonkeys/satisfaction75/info.json
M keyboards/capsunlocked/cu7/config.h
M keyboards/capsunlocked/cu7/info.json
M keyboards/checkerboards/phoenix45_ortho/config.h
M keyboards/checkerboards/phoenix45_ortho/info.json
M keyboards/checkerboards/quark/config.h
M keyboards/checkerboards/quark/info.json
M keyboards/checkerboards/quark_plus/config.h
M keyboards/checkerboards/quark_plus/info.json
M keyboards/checkerboards/quark_squared/config.h
M keyboards/checkerboards/quark_squared/info.json
M keyboards/checkerboards/snop60/config.h
M keyboards/checkerboards/snop60/info.json
M keyboards/cherrybstudio/cb65/config.h
M keyboards/chocofly/v1/config.h
M keyboards/chocofly/v1/info.json
M keyboards/chromatonemini/info.json
M keyboards/ck60i/config.h
M keyboards/ck60i/info.json
M keyboards/ckeys/thedora/config.h
M keyboards/ckeys/thedora/info.json
M keyboards/ckeys/washington/config.h
M keyboards/ckeys/washington/info.json
M keyboards/clickety_split/leeloo/info.json
M keyboards/clickety_split/leeloo/rev1/config.h
M keyboards/clueboard/2x1800/2019/config.h
M keyboards/clueboard/2x1800/2019/info.json
M keyboards/clueboard/2x1800/2021/config.h
M keyboards/clueboard/2x1800/2021/info.json
M keyboards/crbn/config.h
M keyboards/crbn/info.json
M keyboards/custommk/evo70/config.h
M keyboards/custommk/evo70/info.json
M keyboards/custommk/genesis/rev1/config.h
M keyboards/custommk/genesis/rev1/info.json
M keyboards/custommk/genesis/rev2/config.h
M keyboards/custommk/genesis/rev2/info.json
M keyboards/dailycraft/owl8/config.h
M keyboards/dailycraft/owl8/info.json
M keyboards/dailycraft/stickey4/config.h
M keyboards/dailycraft/stickey4/info.json
M keyboards/delikeeb/vaguettelite/config.h
M keyboards/delikeeb/vaguettelite/info.json
M keyboards/delikeeb/vanana/rev1/config.h
M keyboards/delikeeb/vanana/rev1/info.json
M keyboards/delikeeb/vanana/rev2/config.h
M keyboards/delikeeb/vanana/rev2/info.json
M keyboards/delikeeb/waaffle/rev3/config.h
M keyboards/delikeeb/waaffle/rev3/info.json
M keyboards/dmqdesign/spin/config.h
M keyboards/dmqdesign/spin/info.json
M keyboards/doio/kb16/rev1/config.h
M keyboards/doio/kb16/rev1/info.json
M keyboards/doio/kb16/rev2/config.h
M keyboards/doio/kb16/rev2/info.json
M keyboards/doio/kb30/config.h
M keyboards/doio/kb30/info.json
M keyboards/doio/kb38/config.h
M keyboards/doio/kb38/info.json
M keyboards/doodboard/duckboard/config.h
M keyboards/doodboard/duckboard/info.json
M keyboards/doodboard/duckboard_r2/config.h
M keyboards/doodboard/duckboard_r2/info.json
M keyboards/draculad/config.h
M keyboards/draculad/info.json
M keyboards/draytronics/daisy/config.h
M keyboards/draytronics/daisy/info.json
M keyboards/drhigsby/bkf/config.h
M keyboards/drhigsby/bkf/info.json
M keyboards/drhigsby/packrat/config.h
M keyboards/drhigsby/packrat/info.json
M keyboards/dumbo/config.h
M keyboards/dumbo/info.json
M keyboards/dumbpad/v0x/config.h
M keyboards/dumbpad/v0x/info.json
M keyboards/dumbpad/v0x_dualencoder/config.h
M keyboards/dumbpad/v0x_dualencoder/info.json
M keyboards/dumbpad/v0x_right/config.h
M keyboards/dumbpad/v0x_right/info.json
M keyboards/dumbpad/v1x/config.h
M keyboards/dumbpad/v1x/info.json
M keyboards/dumbpad/v1x_dualencoder/config.h
M keyboards/dumbpad/v1x_dualencoder/info.json
M keyboards/dumbpad/v1x_oled/config.h
M keyboards/dumbpad/v1x_oled/info.json
M keyboards/dumbpad/v1x_right/config.h
M keyboards/dumbpad/v1x_right/info.json
M keyboards/dumbpad/v3x/config.h
M keyboards/dumbpad/v3x/info.json
M keyboards/dyz/dyz40/config.h
M keyboards/dyz/dyz40/info.json
M keyboards/dyz/dyz60/config.h
M keyboards/dyz/dyz60/info.json
M keyboards/dyz/selka40/config.h
M keyboards/dyz/selka40/info.json
M keyboards/ealdin/quadrant/config.h
M keyboards/ealdin/quadrant/info.json
M keyboards/ebastler/isometria_75/rev1/config.h
M keyboards/ebastler/isometria_75/rev1/info.json
M keyboards/ein_60/config.h
M keyboards/ein_60/info.json
M keyboards/evolv/config.h
M keyboards/evolv/info.json
M keyboards/evyd13/atom47/rev4/config.h
M keyboards/evyd13/atom47/rev4/info.json
M keyboards/evyd13/eon40/config.h
M keyboards/evyd13/eon40/info.json
M keyboards/evyd13/gh80_3700/config.h
M keyboards/evyd13/gh80_3700/info.json
M keyboards/evyd13/ta65/config.h
M keyboards/evyd13/ta65/info.json
M keyboards/eyeohdesigns/sprh/config.h
M keyboards/eyeohdesigns/sprh/info.json
M keyboards/eyeohdesigns/theboulevard/config.h
M keyboards/eyeohdesigns/theboulevard/info.json
M keyboards/feker/ik75/config.h
M keyboards/feker/ik75/info.json
M keyboards/ffkeebs/puca/config.h
M keyboards/ffkeebs/puca/info.json
M keyboards/ffkeebs/siris/config.h
M keyboards/ffkeebs/siris/info.json
M keyboards/flxlb/zplit/config.h
M keyboards/flxlb/zplit/info.json
M keyboards/giabalanai/config.h
M keyboards/giabalanai/info.json
M keyboards/gl516/n51gl/config.h
M keyboards/gl516/n51gl/info.json
M keyboards/gmmk/pro/config.h
M keyboards/gmmk/pro/rev1/ansi/info.json
M keyboards/gmmk/pro/rev1/iso/info.json
M keyboards/gmmk/pro/rev2/ansi/info.json
M keyboards/gmmk/pro/rev2/iso/info.json
M keyboards/gorthage_truck/config.h
M keyboards/gorthage_truck/info.json
M keyboards/h0oni/deskpad/config.h
M keyboards/h0oni/deskpad/info.json
M keyboards/hadron/ver3/config.h
M keyboards/hadron/ver3/info.json
M keyboards/halfcliff/config.h
M keyboards/halfcliff/info.json
M keyboards/halokeys/elemental75/config.h
M keyboards/halokeys/elemental75/info.json
M keyboards/handwired/amigopunk/config.h
M keyboards/handwired/amigopunk/info.json
M keyboards/handwired/bento/rev1/config.h
M keyboards/handwired/bento/rev1/info.json
M keyboards/handwired/d48/config.h
M keyboards/handwired/d48/info.json
M keyboards/handwired/dactylmacropad/config.h
M keyboards/handwired/dactylmacropad/info.json
M keyboards/handwired/daishi/config.h
M keyboards/handwired/daishi/info.json
M keyboards/handwired/daskeyboard/daskeyboard4/info.json
M keyboards/handwired/dc/mc/001/config.h
M keyboards/handwired/dc/mc/001/info.json
M keyboards/handwired/ddg_56/config.h
M keyboards/handwired/ddg_56/info.json
M keyboards/handwired/frankie_macropad/config.h
M keyboards/handwired/frankie_macropad/info.json
M keyboards/handwired/hnah108/config.h
M keyboards/handwired/hnah108/info.json
M keyboards/handwired/mutepad/config.h
M keyboards/handwired/mutepad/info.json
M keyboards/handwired/obuwunkunubi/spaget/config.h
M keyboards/handwired/obuwunkunubi/spaget/info.json
M keyboards/handwired/pill60/config.h
M keyboards/handwired/pill60/info.json
M keyboards/handwired/prkl30/feather/config.h
A keyboards/handwired/prkl30/feather/info.json
M keyboards/handwired/prkl30/promicro/config.h
A keyboards/handwired/prkl30/promicro/info.json
M keyboards/handwired/snatchpad/config.h
M keyboards/handwired/snatchpad/info.json
M keyboards/handwired/swiftrax/bumblebee/config.h
M keyboards/handwired/swiftrax/bumblebee/info.json
M keyboards/handwired/swiftrax/digicarp65/config.h
M keyboards/handwired/swiftrax/digicarp65/info.json
M keyboards/handwired/swiftrax/joypad/config.h
M keyboards/handwired/swiftrax/joypad/info.json
M keyboards/handwired/swiftrax/pandamic/config.h
M keyboards/handwired/swiftrax/pandamic/info.json
M keyboards/handwired/swiftrax/walter/config.h
M keyboards/handwired/swiftrax/walter/info.json
M keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h
M keyboards/handwired/tractyl_manuform/5x6_right/elite_c/info.json
M keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h
M keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json
M keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
M keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json
M keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h
M keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/info.json
M keyboards/handwired/uthol/rev3/config.h
M keyboards/handwired/uthol/rev3/info.json
M keyboards/helix/rev3_4rows/config.h
M keyboards/helix/rev3_4rows/info.json
M keyboards/helix/rev3_5rows/config.h
M keyboards/helix/rev3_5rows/info.json
M keyboards/hillside/46/0_1/config.h
M keyboards/hillside/46/0_1/info.json
M keyboards/hillside/48/0_1/config.h
M keyboards/hillside/48/0_1/info.json
M keyboards/hillside/52/0_1/config.h
M keyboards/hillside/52/0_1/info.json
M keyboards/hnahkb/vn66/config.h
M keyboards/hnahkb/vn66/info.json
M keyboards/hub16/config.h
M keyboards/hub16/info.json
M keyboards/hub20/config.h
M keyboards/hub20/info.json
M keyboards/io_mini1800/config.h
M keyboards/io_mini1800/info.json
M keyboards/jagdpietr/drakon/config.h
M keyboards/jagdpietr/drakon/info.json
M keyboards/jkeys_design/gentleman65/config.h
M keyboards/jkeys_design/gentleman65/info.json
M keyboards/jkeys_design/gentleman65_se_s/config.h
M keyboards/jkeys_design/gentleman65_se_s/info.json
M keyboards/jones/v03/config.h
M keyboards/jones/v03/info.json
M keyboards/jones/v03_1/config.h
M keyboards/jones/v03_1/info.json
M keyboards/jones/v1/config.h
M keyboards/jones/v1/info.json
M keyboards/jones/v1/keymaps/via/config.h
M keyboards/jones/v1/keymaps/via/keymap.c
M keyboards/kabedon/kabedon98e/config.h
M keyboards/kabedon/kabedon98e/info.json
M keyboards/kabedon/kabedon98e/kabedon98e.c
M keyboards/kapcave/arya/config.h
M keyboards/kapcave/arya/info.json
M keyboards/keebio/bamfk1/config.h
M keyboards/keebio/bamfk1/info.json
M keyboards/keebio/bdn9/rev1/config.h
M keyboards/keebio/bdn9/rev1/info.json
M keyboards/keebio/bdn9/rev2/config.h
M keyboards/keebio/bdn9/rev2/info.json
M keyboards/keebio/dsp40/rev1/config.h
M keyboards/keebio/dsp40/rev1/info.json
M keyboards/keebio/encoder_actions.c
M keyboards/keebio/foldkb/rev1/config.h
M keyboards/keebio/foldkb/rev1/info.json
M keyboards/keebio/iris/rev3/config.h
M keyboards/keebio/iris/rev3/info.json
M keyboards/keebio/iris/rev4/config.h
M keyboards/keebio/iris/rev4/info.json
M keyboards/keebio/iris/rev5/config.h
M keyboards/keebio/iris/rev5/info.json
M keyboards/keebio/iris/rev6/config.h
M keyboards/keebio/iris/rev6/info.json
M keyboards/keebio/iris/rev6a/config.h
M keyboards/keebio/iris/rev6a/info.json
M keyboards/keebio/iris/rev6b/config.h
M keyboards/keebio/iris/rev6b/info.json
M keyboards/keebio/iris/rev7/config.h
M keyboards/keebio/iris/rev7/info.json
M keyboards/keebio/kbo5000/rev1/config.h
M keyboards/keebio/kbo5000/rev1/info.json
M keyboards/keebio/quefrency/rev2/config.h
M keyboards/keebio/quefrency/rev2/info.json
M keyboards/keebio/quefrency/rev3/config.h
M keyboards/keebio/quefrency/rev3/info.json
M keyboards/keebio/quefrency/rev4/config.h
M keyboards/keebio/quefrency/rev4/info.json
M keyboards/keebio/quefrency/rev5/config.h
M keyboards/keebio/quefrency/rev5/info.json
M keyboards/keebio/stick/config.h
M keyboards/keebio/stick/info.json
M keyboards/keebsforall/coarse60/config.h
M keyboards/keebsforall/coarse60/info.json
M keyboards/keebsforall/freebirdnp/pro/config.h
M keyboards/keebsforall/freebirdnp/pro/info.json
M keyboards/keybage/radpad/config.h
M keyboards/keybage/radpad/info.json
M keyboards/keycapsss/kimiko/rev1/config.h
M keyboards/keycapsss/kimiko/rev1/info.json
M keyboards/keycapsss/plaid_pad/config.h
M keyboards/keycapsss/plaid_pad/rev1/config.h
M keyboards/keycapsss/plaid_pad/rev1/info.json
M keyboards/keycapsss/plaid_pad/rev2/config.h
M keyboards/keycapsss/plaid_pad/rev2/info.json
D keyboards/keycapsss/plaid_pad/rev3/config.h
M keyboards/keycapsss/plaid_pad/rev3/info.json
M keyboards/keychron/q0/rev_0131/config.h
M keyboards/keychron/q0/rev_0131/info.json
M keyboards/keychron/q1/ansi_encoder/config.h
M keyboards/keychron/q1/ansi_encoder/info.json
M keyboards/keychron/q1/iso_encoder/config.h
M keyboards/keychron/q1/iso_encoder/info.json
M keyboards/keychron/q10/ansi_encoder/config.h
M keyboards/keychron/q10/ansi_encoder/info.json
M keyboards/keychron/q10/iso_encoder/config.h
M keyboards/keychron/q10/iso_encoder/info.json
M keyboards/keychron/q2/ansi_encoder/config.h
M keyboards/keychron/q2/ansi_encoder/info.json
M keyboards/keychron/q2/iso_encoder/config.h
M keyboards/keychron/q2/iso_encoder/info.json
M keyboards/keychron/q2/jis_encoder/config.h
M keyboards/keychron/q2/jis_encoder/info.json
M keyboards/keychron/q3/ansi_encoder/config.h
M keyboards/keychron/q3/ansi_encoder/info.json
M keyboards/keychron/q3/iso_encoder/config.h
M keyboards/keychron/q3/iso_encoder/info.json
M keyboards/keychron/q3/jis_encoder/config.h
M keyboards/keychron/q3/jis_encoder/info.json
M keyboards/keychron/q5/ansi_encoder/config.h
M keyboards/keychron/q5/ansi_encoder/info.json
M keyboards/keychron/q5/iso_encoder/config.h
M keyboards/keychron/q5/iso_encoder/info.json
M keyboards/keychron/q6/ansi_encoder/config.h
M keyboards/keychron/q6/ansi_encoder/info.json
M keyboards/keychron/q6/iso_encoder/config.h
M keyboards/keychron/q6/iso_encoder/info.json
M keyboards/keychron/q65/ansi_encoder/config.h
M keyboards/keychron/q65/ansi_encoder/info.json
M keyboards/keychron/q8/ansi_encoder/config.h
M keyboards/keychron/q8/ansi_encoder/info.json
M keyboards/keychron/q8/iso_encoder/config.h
M keyboards/keychron/q8/iso_encoder/info.json
M keyboards/keychron/q9/ansi_encoder/config.h
M keyboards/keychron/q9/ansi_encoder/info.json
M keyboards/keychron/q9/iso_encoder/config.h
M keyboards/keychron/q9/iso_encoder/info.json
M keyboards/keychron/v1/ansi_encoder/config.h
M keyboards/keychron/v1/ansi_encoder/info.json
M keyboards/keychron/v1/iso_encoder/config.h
M keyboards/keychron/v1/iso_encoder/info.json
M keyboards/keychron/v1/jis_encoder/config.h
M keyboards/keychron/v1/jis_encoder/info.json
M keyboards/keychron/v10/ansi_encoder/config.h
M keyboards/keychron/v10/ansi_encoder/info.json
M keyboards/keychron/v10/iso_encoder/config.h
M keyboards/keychron/v10/iso_encoder/info.json
M keyboards/keychron/v2/ansi_encoder/config.h
M keyboards/keychron/v2/ansi_encoder/info.json
M keyboards/keychron/v2/iso_encoder/config.h
M keyboards/keychron/v2/iso_encoder/info.json
M keyboards/keychron/v2/jis_encoder/config.h
M keyboards/keychron/v2/jis_encoder/info.json
M keyboards/keychron/v3/ansi_encoder/config.h
M keyboards/keychron/v3/ansi_encoder/info.json
M keyboards/keychron/v3/iso_encoder/config.h
M keyboards/keychron/v3/iso_encoder/info.json
M keyboards/keychron/v3/jis_encoder/config.h
M keyboards/keychron/v3/jis_encoder/info.json
M keyboards/keychron/v5/ansi_encoder/config.h
M keyboards/keychron/v5/ansi_encoder/info.json
M keyboards/keychron/v5/iso_encoder/config.h
M keyboards/keychron/v5/iso_encoder/info.json
M keyboards/keychron/v6/ansi_encoder/config.h
M keyboards/keychron/v6/ansi_encoder/info.json
M keyboards/keychron/v6/iso_encoder/config.h
M keyboards/keychron/v6/iso_encoder/info.json
M keyboards/keychron/v8/ansi_encoder/config.h
M keyboards/keychron/v8/ansi_encoder/info.json
M keyboards/keychron/v8/iso_encoder/config.h
M keyboards/keychron/v8/iso_encoder/info.json
M keyboards/keyhive/absinthe/config.h
M keyboards/keyhive/absinthe/info.json
M keyboards/keyhive/uno/rev2/config.h
M keyboards/keyhive/uno/rev2/info.json
M keyboards/keyprez/bison/config.h
M keyboards/keyprez/bison/info.json
M keyboards/keyprez/corgi/config.h
M keyboards/keyprez/corgi/info.json
M keyboards/keyprez/rhino/config.h
M keyboards/keyprez/rhino/info.json
M keyboards/keyprez/unicorn/config.h
M keyboards/keyprez/unicorn/info.json
M keyboards/keysofkings/twokey/config.h
M keyboards/keysofkings/twokey/info.json
M keyboards/keystonecaps/gameroyadvance/config.h
M keyboards/keystonecaps/gameroyadvance/info.json
M keyboards/kikoslab/ellora65/config.h
M keyboards/kikoslab/ellora65/info.json
M keyboards/kikoslab/kl90/config.h
M keyboards/kikoslab/kl90/info.json
M keyboards/kingly_keys/ave/config.h
M keyboards/kingly_keys/ave/ortho/info.json
M keyboards/kingly_keys/ave/staggered/info.json
M keyboards/kingly_keys/romac_plus/config.h
M keyboards/kingly_keys/romac_plus/info.json
M keyboards/kingly_keys/ropro/config.h
M keyboards/kingly_keys/ropro/info.json
M keyboards/kingly_keys/soap/config.h
M keyboards/kingly_keys/soap/info.json
M keyboards/kiwikeebs/macro/config.h
M keyboards/kiwikeebs/macro/info.json
M keyboards/kiwikeebs/macro_v2/config.h
M keyboards/kiwikeebs/macro_v2/info.json
M keyboards/kiwikey/borderland/config.h
M keyboards/kiwikey/borderland/info.json
M keyboards/knobgoblin/config.h
M keyboards/knobgoblin/info.json
M keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h
M keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json
M keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h
M keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json
M keyboards/latincompass/latinpad/config.h
M keyboards/latincompass/latinpad/info.json
M keyboards/latincompass/latinpadble/config.h
M keyboards/latincompass/latinpadble/info.json
M keyboards/leafcutterlabs/bigknob/config.h
M keyboards/leafcutterlabs/bigknob/info.json
M keyboards/lily58/glow_enc/config.h
M keyboards/lily58/glow_enc/info.json
M keyboards/lily58/light/config.h
M keyboards/lily58/light/info.json
M keyboards/lime/rev1/config.h
M keyboards/lime/rev1/info.json
M keyboards/linworks/whale75/config.h
M keyboards/linworks/whale75/info.json
M keyboards/lizard_trick/tenkey_plusplus/config.h
M keyboards/lizard_trick/tenkey_plusplus/info.json
M keyboards/ll3macorn/bongopad/config.h
M keyboards/ll3macorn/bongopad/info.json
M keyboards/lw67/config.h
M keyboards/lw67/info.json
M keyboards/lw75/config.h
M keyboards/lw75/info.json
M keyboards/lyso1/lck75/config.h
M keyboards/lyso1/lck75/info.json
M keyboards/macro1/config.h
M keyboards/macro1/info.json
D keyboards/macro3/config.h
M keyboards/macro3/info.json
M keyboards/macrocat/config.h
M keyboards/macrocat/info.json
M keyboards/makrosu/config.h
M keyboards/makrosu/info.json
M keyboards/manyboard/macro/config.h
M keyboards/manyboard/macro/info.json
M keyboards/marksard/leftover30/config.h
M keyboards/marksard/leftover30/info.json
M keyboards/matthewdias/m3n3van/config.h
M keyboards/matthewdias/m3n3van/info.json
M keyboards/maxr1998/pulse4k/config.h
M keyboards/maxr1998/pulse4k/info.json
M keyboards/mb44/config.h
M keyboards/mb44/info.json
M keyboards/mechanickeys/undead60m/config.h
M keyboards/mechanickeys/undead60m/info.json
M keyboards/mechlovin/adelais/rgb_led/rev2/config.h
M keyboards/mechlovin/adelais/rgb_led/rev2/info.json
M keyboards/mechlovin/adelais/rgb_led/rev3/config.h
M keyboards/mechlovin/adelais/rgb_led/rev3/info.json
M keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h
M keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json
M keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h
M keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json
M keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h
M keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json
M keyboards/mechlovin/foundation/config.h
M keyboards/mechlovin/foundation/info.json
M keyboards/mechlovin/hex6c/config.h
M keyboards/mechlovin/hex6c/info.json
M keyboards/mechlovin/zed65/no_backlight/retro66/config.h
M keyboards/mechlovin/zed65/no_backlight/retro66/info.json
M keyboards/mechwild/bde/rev2/config.h
M keyboards/mechwild/bde/rev2/info.json
M keyboards/mechwild/clunker/config.h
M keyboards/mechwild/clunker/info.json
M keyboards/mechwild/mercutio/config.h
M keyboards/mechwild/mercutio/info.json
M keyboards/mechwild/mokulua/mirrored/config.h
M keyboards/mechwild/mokulua/mirrored/info.json
M keyboards/mechwild/mokulua/standard/config.h
M keyboards/mechwild/mokulua/standard/info.json
M keyboards/mechwild/murphpad/config.h
M keyboards/mechwild/murphpad/info.json
M keyboards/mechwild/obe/config.h
M keyboards/mechwild/obe/info.json
M keyboards/mechwild/puckbuddy/config.h
M keyboards/mechwild/puckbuddy/info.json
M keyboards/mechwild/waka60/config.h
M keyboards/mechwild/waka60/info.json
M keyboards/meletrix/zoom65/config.h
M keyboards/meletrix/zoom65/info.json
M keyboards/meletrix/zoom65/zoom65.c
M keyboards/meletrix/zoom65_lite/config.h
M keyboards/meletrix/zoom65_lite/info.json
M keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c
M keyboards/merge/iso_macro/config.h
M keyboards/merge/iso_macro/info.json
M keyboards/merge/uc1/config.h
M keyboards/merge/uc1/info.json
M keyboards/merge/um70/config.h
M keyboards/merge/um70/info.json
M keyboards/merge/um80/config.h
M keyboards/merge/um80/info.json
M keyboards/merge/uma/config.h
M keyboards/merge/uma/info.json
M keyboards/metamechs/timberwolf/config.h
M keyboards/metamechs/timberwolf/info.json
M keyboards/mexsistor/ludmila/config.h
M keyboards/mexsistor/ludmila/info.json
M keyboards/millipad/config.h
M keyboards/millipad/info.json
M keyboards/mincedshon/ecila/config.h
M keyboards/mini_elixivy/config.h
M keyboards/mini_elixivy/info.json
M keyboards/mini_ten_key_plus/config.h
M keyboards/mini_ten_key_plus/info.json
M keyboards/minimacro5/config.h
M keyboards/minimacro5/info.json
M keyboards/misonoworks/karina/config.h
M keyboards/misonoworks/karina/info.json
M keyboards/mixi/config.h
M keyboards/mixi/info.json
M keyboards/mk65/config.h
M keyboards/mk65/info.json
M keyboards/ml/gas75/config.h
M keyboards/ml/gas75/info.json
M keyboards/ml/gas75/keymaps/via/keymap.c
M keyboards/mlego/m48/rev1/config.h
M keyboards/mlego/m48/rev1/info.json
M keyboards/mlego/m60/rev1/config.h
M keyboards/mlego/m60/rev1/info.json
M keyboards/mlego/m60_split/rev1/config.h
M keyboards/mlego/m60_split/rev1/info.json
M keyboards/mlego/m60_split/rev2/config.h
M keyboards/mlego/m60_split/rev2/info.json
M keyboards/mlego/m65/rev1/config.h
M keyboards/mlego/m65/rev1/info.json
M keyboards/mlego/m65/rev2/config.h
M keyboards/mlego/m65/rev2/info.json
M keyboards/mlego/m65/rev3/config.h
M keyboards/mlego/m65/rev3/info.json
M keyboards/mlego/m65/rev4/config.h
M keyboards/mlego/m65/rev4/info.json
M keyboards/monarch/config.h
M keyboards/monarch/info.json
M keyboards/montsinger/rebound/rev2/config.h
M keyboards/montsinger/rebound/rev2/info.json
M keyboards/montsinger/rebound/rev3/config.h
M keyboards/montsinger/rebound/rev3/info.json
M keyboards/montsinger/rebound/rev4/config.h
M keyboards/montsinger/rebound/rev4/info.json
M keyboards/murcielago/info.json
M keyboards/murcielago/rev1/config.h
M keyboards/mwstudio/alicekk/config.h
M keyboards/mwstudio/alicekk/info.json
M keyboards/mwstudio/alicekk/keymaps/via/keymap.c
M keyboards/mwstudio/mw65_black/config.h
M keyboards/mwstudio/mw65_black/info.json
M keyboards/mwstudio/mw65_rgb/config.h
M keyboards/mwstudio/mw65_rgb/info.json
M keyboards/mwstudio/mw75/config.h
M keyboards/mwstudio/mw75/info.json
M keyboards/mwstudio/mw75r2/config.h
M keyboards/mwstudio/mw75r2/info.json
M keyboards/mwstudio/mw75r2/keymaps/via/keymap.c
M keyboards/ncc1701kb/config.h
M keyboards/ncc1701kb/info.json
M keyboards/neito/config.h
M keyboards/neito/info.json
M keyboards/neopad/rev1/config.h
M keyboards/neopad/rev1/info.json
M keyboards/nightingale_studios/hailey/config.h
M keyboards/nightingale_studios/hailey/info.json
M keyboards/nightly_boards/adellein/config.h
M keyboards/nightly_boards/adellein/encoder_action.c
M keyboards/nightly_boards/adellein/info.json
M keyboards/nightly_boards/n40_o/config.h
M keyboards/nightly_boards/n40_o/encoder_action.c
M keyboards/nightly_boards/n40_o/info.json
M keyboards/nightly_boards/n60_s/config.h
M keyboards/nightly_boards/n60_s/encoder_action.c
M keyboards/nightly_boards/n60_s/info.json
M keyboards/nightly_boards/octopad/config.h
M keyboards/nightly_boards/octopad/encoder_action.c
M keyboards/nightly_boards/octopad/info.json
M keyboards/nightly_boards/octopadplus/config.h
M keyboards/nightly_boards/octopadplus/info.json
M keyboards/nixkeyboards/day_off/config.h
M keyboards/nixkeyboards/day_off/info.json
M keyboards/nopunin10did/kastenwagen1840/config.h
M keyboards/nopunin10did/kastenwagen1840/info.json
M keyboards/nopunin10did/kastenwagen48/config.h
M keyboards/nopunin10did/kastenwagen48/info.json
M keyboards/np12/config.h
M keyboards/np12/info.json
M keyboards/nullbitsco/nibble/config.h
M keyboards/nullbitsco/nibble/info.json
M keyboards/nullbitsco/scramble/v1/config.h
M keyboards/nullbitsco/scramble/v1/info.json
M keyboards/nullbitsco/scramble/v2/config.h
M keyboards/nullbitsco/scramble/v2/info.json
M keyboards/nullbitsco/tidbit/config.h
M keyboards/nullbitsco/tidbit/info.json
M keyboards/om60/config.h
M keyboards/om60/info.json
M keyboards/onekeyco/dango40/config.h
M keyboards/onekeyco/dango40/info.json
M keyboards/orthocode/config.h
M keyboards/orthocode/info.json
M keyboards/owlab/voice65/hotswap/config.h
M keyboards/owlab/voice65/hotswap/info.json
M keyboards/owlab/voice65/soldered/config.h
M keyboards/owlab/voice65/soldered/info.json
M keyboards/p3d/glitch/config.h
M keyboards/p3d/glitch/info.json
M keyboards/pabile/p18/config.h
M keyboards/pabile/p18/info.json
M keyboards/pabile/p20/ver1/config.h
M keyboards/pabile/p20/ver1/info.json
M keyboards/palette1202/config.h
M keyboards/palette1202/info.json
M keyboards/pauperboards/brick/info.json
M keyboards/pearlboards/atlas/config.h
M keyboards/pearlboards/atlas/info.json
M keyboards/pearlboards/pandora/config.h
M keyboards/pearlboards/pandora/info.json
M keyboards/pearlboards/zeus/config.h
M keyboards/pearlboards/zeus/info.json
M keyboards/pearlboards/zeuspad/config.h
M keyboards/pearlboards/zeuspad/info.json
M keyboards/pegasus/config.h
M keyboards/pegasus/info.json
M keyboards/peranekofactory/tone/rev1/config.h
M keyboards/peranekofactory/tone/rev1/info.json
M keyboards/peranekofactory/tone/rev2/config.h
M keyboards/peranekofactory/tone/rev2/info.json
M keyboards/percent/canoe_gen2/config.h
M keyboards/pica40/rev2/info.json
M keyboards/pica40/rev2/rev2.h
M keyboards/planck/ez/config.h
M keyboards/planck/ez/info.json
M keyboards/planck/rev6/config.h
M keyboards/planck/rev6/info.json
M keyboards/planck/rev6_drop/config.h
M keyboards/planck/rev6_drop/info.json
M keyboards/planck/thk/config.h
M keyboards/planck/thk/info.json
M keyboards/pluckey/config.h
M keyboards/pluckey/info.json
M keyboards/pohjolaworks/louhi/config.h
M keyboards/pohjolaworks/louhi/info.json
M keyboards/preonic/rev3/config.h
M keyboards/preonic/rev3/info.json
M keyboards/preonic/rev3_drop/config.h
M keyboards/preonic/rev3_drop/info.json
M keyboards/program_yoink/config.h
M keyboards/program_yoink/ortho/info.json
M keyboards/program_yoink/staggered/info.json
M keyboards/projectcain/relic/config.h
M keyboards/projectcain/relic/info.json
M keyboards/projectcain/vault35/config.h
M keyboards/projectcain/vault35/info.json
M keyboards/projectcain/vault45/config.h
M keyboards/projectcain/vault45/info.json
M keyboards/protozoa/p01/config.h
M keyboards/protozoa/p01/info.json
M keyboards/psuieee/pluto12/config.h
M keyboards/psuieee/pluto12/info.json
M keyboards/pteron36/config.h
M keyboards/pteron36/info.json
M keyboards/punk75/config.h
M keyboards/punk75/info.json
M keyboards/qpockets/eggman/config.h
M keyboards/qpockets/eggman/info.json
M keyboards/qpockets/space_space/rev1/config.h
M keyboards/qpockets/space_space/rev1/info.json
M keyboards/qpockets/space_space/rev2/config.h
M keyboards/qpockets/space_space/rev2/info.json
M keyboards/qpockets/wanten/config.h
M keyboards/qpockets/wanten/info.json
M keyboards/qvex/lynepad/config.h
M keyboards/qvex/lynepad/info.json
M keyboards/qwertlekeys/calice/config.h
M keyboards/qwertlekeys/calice/info.json
M keyboards/rainkeebs/rainkeeb/config.h
M keyboards/rainkeebs/rainkeeb/info.json
M keyboards/rart/rart4x4/config.h
M keyboards/rart/rart4x4/info.json
M keyboards/rart/rart75/config.h
M keyboards/rart/rart75/info.json
M keyboards/rart/rart75hs/config.h
M keyboards/rart/rart75hs/info.json
M keyboards/rart/rart75m/config.h
M keyboards/rart/rart75m/info.json
M keyboards/rart/rartland/config.h
M keyboards/rart/rartland/info.json
M keyboards/rart/rartpad/config.h
M keyboards/rart/rartpad/info.json
M keyboards/rate/pistachio_mp/config.h
M keyboards/rate/pistachio_mp/info.json
M keyboards/rate/pistachio_pro/config.h
M keyboards/rate/pistachio_pro/info.json
M keyboards/redox_media/config.h
M keyboards/redox_media/info.json
M keyboards/reedskeebs/alish40/info.json
M keyboards/reviung/reviung5/config.h
M keyboards/reviung/reviung5/info.json
M keyboards/rgbkb/mun/config.h
M keyboards/rgbkb/mun/rev1/info.json
M keyboards/rgbkb/pan/config.h
M keyboards/rgbkb/pan/rev1/32a/config.h
M keyboards/rgbkb/pan/rev1/32a/info.json
M keyboards/rgbkb/pan/rev1/proton_c/config.h
M keyboards/rgbkb/pan/rev1/proton_c/info.json
M keyboards/rgbkb/sol/rev1/config.h
M keyboards/rgbkb/sol/rev1/info.json
M keyboards/rgbkb/sol3/config.h
M keyboards/rgbkb/sol3/rev1/info.json
M keyboards/rgbkb/zen/rev2/config.h
M keyboards/rgbkb/zen/rev2/info.json
M keyboards/rgbkb/zygomorph/rev1/config.h
M keyboards/rgbkb/zygomorph/rev1/info.json
M keyboards/ristretto/config.h
M keyboards/ristretto/info.json
M keyboards/rmi_kb/chevron/config.h
M keyboards/rmi_kb/chevron/info.json
M keyboards/rmi_kb/herringbone/pro/config.h
M keyboards/rmi_kb/herringbone/pro/info.json
M keyboards/rmi_kb/squishytkl/config.h
M keyboards/rmi_kb/squishytkl/info.json
M keyboards/rmi_kb/wete/v2/config.h
M keyboards/rmi_kb/wete/v2/info.json
M keyboards/rmkeebs/rm_numpad/config.h
M keyboards/rmkeebs/rm_numpad/info.json
M keyboards/rocketboard_16/config.h
M keyboards/rocketboard_16/info.json
M keyboards/rotr/config.h
M keyboards/rotr/info.json
M keyboards/rubi/config.h
M keyboards/rubi/info.json
M keyboards/rura66/rev1/config.h
M keyboards/sawnsprojects/krush/krush65/hotswap/config.h
M keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c
M keyboards/sawnsprojects/krush/krush65/hotswap/info.json
M keyboards/sawnsprojects/krush/krush65/solder/config.h
D keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c
D keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h
M keyboards/sawnsprojects/krush/krush65/solder/info.json
M keyboards/sawnsprojects/krush/krush65/solder/solder.c
M keyboards/sck/gtm/config.h
M keyboards/sck/gtm/info.json
M keyboards/sendyyeah/pix/config.h
M keyboards/sendyyeah/pix/info.json
M keyboards/sergiopoverony/creator_pro/config.h
M keyboards/sergiopoverony/creator_pro/info.json
M keyboards/sidderskb/majbritt/rev2/config.h
M keyboards/sidderskb/majbritt/rev2/info.json
M keyboards/sneakbox/aliceclone/config.h
M keyboards/sneakbox/aliceclone/info.json
M keyboards/sneakbox/aliceclonergb/config.h
M keyboards/sneakbox/aliceclonergb/info.json
M keyboards/sneakbox/ava/config.h
M keyboards/sneakbox/ava/info.json
M keyboards/sneakbox/disarray/ortho/config.h
M keyboards/sneakbox/disarray/ortho/info.json
M keyboards/sneakbox/disarray/staggered/config.h
M keyboards/sneakbox/disarray/staggered/info.json
M keyboards/sofle/keyhive/config.h
M keyboards/sofle/keyhive/info.json
M keyboards/sofle/rev1/config.h
M keyboards/sofle/rev1/info.json
M keyboards/spacey/config.h
M keyboards/spacey/info.json
M keyboards/splitkb/kyria/rev1/config.h
M keyboards/splitkb/kyria/rev1/info.json
M keyboards/splitkb/kyria/rev2/config.h
M keyboards/splitkb/kyria/rev2/info.json
M keyboards/splitkb/zima/config.h
M keyboards/splitkb/zima/info.json
M keyboards/star75/config.h
M keyboards/star75/info.json
M keyboards/stello65/beta/config.h
M keyboards/stello65/beta/encoder_actions.c
M keyboards/stello65/beta/info.json
M keyboards/sthlmkb/lagom/info.json
M keyboards/sthlmkb/litl/info.json
M keyboards/swiftrax/retropad/config.h
M keyboards/swiftrax/retropad/info.json
M keyboards/synapse/config.h
M keyboards/synapse/info.json
M keyboards/synthlabs/solo/config.h
M keyboards/synthlabs/solo/info.json
M keyboards/synthlabs/solo/keymaps/via/keymap.c
M keyboards/takashicompany/center_enter/config.h
M keyboards/takashicompany/center_enter/info.json
M keyboards/takashicompany/compacx/config.h
M keyboards/takashicompany/compacx/info.json
M keyboards/takashicompany/dogtag/config.h
M keyboards/takashicompany/dogtag/info.json
M keyboards/takashicompany/qoolee/config.h
M keyboards/takashicompany/qoolee/info.json
D keyboards/takashicompany/spreadwriter/config.h
M keyboards/takashicompany/spreadwriter/info.json
M keyboards/takashicompany/spreadwriter/keymaps/via/config.h
M keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c
M keyboards/taleguers/taleguers75/config.h
M keyboards/taleguers/taleguers75/info.json
M keyboards/terrazzo/config.h
M keyboards/terrazzo/info.json
M keyboards/tetris/config.h
M keyboards/tetris/info.json
M keyboards/themadnoodle/ncc1701kb/v2/config.h
M keyboards/themadnoodle/ncc1701kb/v2/info.json
M keyboards/themadnoodle/noodlepad/config.h
M keyboards/themadnoodle/noodlepad/info.json
M keyboards/thepanduuh/degenpad/config.h
M keyboards/thepanduuh/degenpad/info.json
M keyboards/tkc/portico75/config.h
M keyboards/tkc/portico75/info.json
M keyboards/tkw/grandiceps/config.h
M keyboards/tkw/grandiceps/info.json
M keyboards/tkw/stoutgat/v1/config.h
M keyboards/tkw/stoutgat/v1/info.json
M keyboards/tkw/stoutgat/v2/config.h
M keyboards/tkw/stoutgat/v2/info.json
M keyboards/tominabox1/bigboy/config.h
M keyboards/tominabox1/bigboy/info.json
M keyboards/tominabox1/le_chiffre/he/config.h
M keyboards/tominabox1/le_chiffre/he/info.json
M keyboards/tominabox1/le_chiffre/rev1/config.h
M keyboards/tominabox1/le_chiffre/rev1/info.json
M keyboards/tominabox1/le_chiffre/rev2/config.h
M keyboards/tominabox1/le_chiffre/rev2/info.json
M keyboards/torn/config.h
M keyboards/torn/info.json
M keyboards/tunks/ergo33/config.h
M keyboards/tunks/ergo33/info.json
M keyboards/tzarc/djinn/config.h
M keyboards/tzarc/djinn/info.json
M keyboards/ungodly/launch_pad/config.h
M keyboards/ungodly/launch_pad/info.json
M keyboards/ungodly/nines/config.h
M keyboards/ungodly/nines/info.json
M keyboards/unison/v04/config.h
M keyboards/unison/v04/info.json
M keyboards/viendi8l/config.h
M keyboards/viendi8l/info.json
M keyboards/viktus/smolka/config.h
M keyboards/viktus/smolka/info.json
M keyboards/viktus/sp_mini/config.h
M keyboards/viktus/sp_mini/info.json
M keyboards/walletburner/cajal/config.h
M keyboards/walletburner/cajal/info.json
M keyboards/waterfowl/config.h
M keyboards/waterfowl/info.json
M keyboards/wekey/we27/config.h
M keyboards/wekey/we27/encoder_actions.c
M keyboards/wekey/we27/info.json
M keyboards/winry/winry315/config.h
M keyboards/winry/winry315/info.json
M keyboards/winry/winry315/keymaps/via/encoder_actions.c
M keyboards/work_louder/loop/config.h
M keyboards/work_louder/loop/info.json
M keyboards/work_louder/micro/config.h
M keyboards/work_louder/micro/info.json
M keyboards/work_louder/nano/config.h
M keyboards/work_louder/nano/info.json
M keyboards/work_louder/work_board/config.h
M keyboards/work_louder/work_board/info.json
M keyboards/wren/config.h
M keyboards/wren/info.json
M keyboards/wuque/mammoth20x/config.h
M keyboards/wuque/mammoth20x/info.json
M keyboards/wuque/mammoth20x/mammoth20x.c
M keyboards/wuque/mammoth75x/config.h
M keyboards/wuque/mammoth75x/info.json
M keyboards/wuque/mammoth75x/mammoth75x.c
M keyboards/wuque/serneity65/config.h
M keyboards/wuque/serneity65/info.json
M keyboards/wuque/serneity65/serneity65.c
M keyboards/xenon/config.h
M keyboards/xenon/info.json
M keyboards/yandrstudio/nz67v2/config.h
M keyboards/yandrstudio/nz67v2/info.json
M keyboards/yanghu/unicorne/config.h
M keyboards/yanghu/unicorne/info.json
M keyboards/yeehaw/config.h
M keyboards/yeehaw/info.json
M keyboards/yushakobo/navpad/10/config.h
M keyboards/yushakobo/navpad/10/info.json
M keyboards/yushakobo/navpad/10_helix_r/config.h
M keyboards/yushakobo/navpad/10_helix_r/info.json
M keyboards/yushakobo/quick17/config.h
M keyboards/yushakobo/quick17/info.json
M keyboards/yushakobo/quick7/config.h
M keyboards/yushakobo/quick7/info.json
M keyboards/z12/config.h
M keyboards/z12/info.json
M keyboards/ztboards/after/config.h
M keyboards/ztboards/after/info.json
M keyboards/zvecr/zv48/config.h
M keyboards/zvecr/zv48/info.json
M keyboards/0xcb/1337/config.h => keyboards/0xcb/1337/config.h +0 -3
@@ 19,9 19,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// clang-format off

#define TAP_CODE_DELAY 10
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN

M keyboards/0xcb/1337/info.json => keyboards/0xcb/1337/info.json +5 -0
@@ 13,6 13,11 @@
    "levels": 7,
    "breathing": true
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F6", "pin_b": "F5"}
    ]
  },
  "qmk_lufa_bootloader": {
    "led": "B0"
  },

M keyboards/0xcb/static/config.h => keyboards/0xcb/static/config.h +0 -3
@@ 35,9 35,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW

#define TAP_CODE_DELAY 10
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }
// clang-format on

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */

M keyboards/0xcb/static/info.json => keyboards/0xcb/static/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0xA455",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D0", "pin_b": "D1"}
    ]
  },
  "processor": "atmega328p",
  "bootloader": "usbasploader",
  "layout_aliases": {

M keyboards/10bleoledhub/config.h => keyboards/10bleoledhub/config.h +0 -5
@@ 40,8 40,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.*/


#define OLED_FONT_H "./lib/glcdfont.c"

#define ENCODERS_PAD_A { C7 }
#define ENCODERS_PAD_B { F7 }

#define ENCODER_RESOLUTION 4

M keyboards/10bleoledhub/info.json => keyboards/10bleoledhub/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7C99",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C7", "pin_b": "F7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/1upkeyboards/pi40/config.h => keyboards/1upkeyboards/pi40/config.h +0 -3
@@ 20,9 20,6 @@
#define MATRIX_ROW_PINS { GP21, GP20, GP19, GP18 }
#define MATRIX_COL_PINS { GP1, GP2, GP3, GP4, GP5, GP6, GP7, GP8, GP9, GP10, GP11, GP12 }

#define ENCODERS_PAD_A { GP14 }
#define ENCODERS_PAD_B { GP13 }

#define RGB_DI_PIN GP0
#define RGB_MATRIX_LED_COUNT 47
#define RGBLED_NUM 47

M keyboards/1upkeyboards/pi40/info.json => keyboards/1upkeyboards/pi40/info.json +5 -0
@@ 6,6 6,11 @@
        "pid": "0x5600",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "GP14", "pin_b": "GP13"}
        ]
    },
    "processor": "RP2040",
    "bootloader": "rp2040",
    "board": "GENERIC_RP_RP2040",

M keyboards/1upkeyboards/super16v2/config.h => keyboards/1upkeyboards/super16v2/config.h +0 -4
@@ 34,10 34,6 @@
#define MATRIX_ROW_PINS { D1, D2, D3, D4 }
#define MATRIX_COL_PINS { D5, D6, C2, D0 }

#define ENCODERS_PAD_A { B1, B3 }
#define ENCODERS_PAD_B { B2, B4 }


/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/1upkeyboards/super16v2/info.json => keyboards/1upkeyboards/super16v2/info.json +6 -0
@@ 8,6 8,12 @@
      "pid": "0x5517",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "B1", "pin_b": "B2"},
        {"pin_a": "B3", "pin_b": "B4"}
      ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/25keys/aleth42/rev0/config.h => keyboards/25keys/aleth42/rev0/config.h +0 -3
@@ 25,9 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B6, B5 }  // located @ upper left
#define ENCODERS_PAD_B { B7, B4 }  // located @ bottom left

#define RGB_DI_PIN C7
#ifdef RGB_DI_PIN
   #define RGBLED_NUM 6

M keyboards/25keys/aleth42/rev0/info.json => keyboards/25keys/aleth42/rev0/info.json +6 -0
@@ 2,6 2,12 @@
    "usb": {
        "device_version": "0.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B7"},
            {"pin_a": "B5", "pin_b": "B4"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu"
}

M keyboards/25keys/aleth42/rev1/config.h => keyboards/25keys/aleth42/rev1/config.h +0 -3
@@ 25,9 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B5, F5 }
#define ENCODERS_PAD_B { B6, F6 }

#define RGB_DI_PIN B3
#ifdef RGB_DI_PIN
   #define RGBLED_NUM 8

M keyboards/25keys/aleth42/rev1/info.json => keyboards/25keys/aleth42/rev1/info.json +6 -0
@@ 2,6 2,12 @@
    "usb": {
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B6"},
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "backlight": {
        "pin": "C6",
        "levels": 8,

M keyboards/25keys/cassette42/config.h => keyboards/25keys/cassette42/config.h +0 -4
@@ 17,10 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#define ENCODERS_PAD_A { B6, B3 }
#define ENCODERS_PAD_B { B2, B1 }
#define ENCODER_RESOLUTION 4

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 5

M keyboards/25keys/cassette42/info.json => keyboards/25keys/cassette42/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0xCA42",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B2"},
            {"pin_a": "B3", "pin_b": "B1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/2key2crawl/config.h => keyboards/2key2crawl/config.h +0 -5
@@ 5,11 5,6 @@
#define MATRIX_ROW_PINS { C4, C5 }
#define MATRIX_COL_PINS { B3, B4, B5, B6, B7, C7, B2 }


#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }
#define ENCODER_RESOLUTION 1

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/2key2crawl/info.json => keyboards/2key2crawl/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6090",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1", "resolution": 1}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/45_ats/config.h => keyboards/45_ats/config.h +0 -4
@@ 18,10 18,6 @@

#pragma once


#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }

/* key matrix pins */
#define MATRIX_ROW_PINS { D3, D5, D7, D6 }
#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, B7, F6, F5, F4, C7, F7, C6, B6, D4 }

M keyboards/45_ats/info.json => keyboards/45_ats/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x4511",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "B4", "pin_b": "B5"}
      ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/7c8/framework/config.h => keyboards/7c8/framework/config.h +0 -3
@@ 18,10 18,7 @@

#define MATRIX_ROW_PINS { B0, B1, D7, B2, D6, B3, D5, B4, D4, B5 }
#define MATRIX_COL_PINS { C0, C1, C2, C3, C4, C5 }
#define ENCODERS_PAD_A  { D0 }
#define ENCODERS_PAD_B  { D1 }

#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 16
#define DIODE_DIRECTION COL2ROW


M keyboards/7c8/framework/info.json => keyboards/7c8/framework/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "processor": "atmega328p",
    "bootloader": "usbasploader",
    "layouts": {

M keyboards/abacus/config.h => keyboards/abacus/config.h +0 -4
@@ 33,10 33,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DIP_SWITCH_PINS { D0 }

#define ENCODERS_PAD_A { F1 }
#define ENCODERS_PAD_B { F0 }
#define ENCODER_RESOLUTION 4

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define RGB_DI_PIN D1

M keyboards/abacus/info.json => keyboards/abacus/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F1", "pin_b": "F0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/abstract/ellipse/rev1/config.h => keyboards/abstract/ellipse/rev1/config.h +0 -4
@@ 64,7 64,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { B2, B3, D5 }
#define ENCODERS_PAD_B { B1, B7, B4 }
#define ENCODER_RESOLUTION 2

M keyboards/abstract/ellipse/rev1/info.json => keyboards/abstract/ellipse/rev1/info.json +10 -3
@@ 1,13 1,20 @@
{
    "keyboard_name": "Ellipse", 
    "keyboard_name": "Ellipse",
    "manufacturer": "AbstractKB",
    "url": "https://abstractkb.tk/product/ellipse-rev1", 
    "maintainer": "AbstractKB", 
    "url": "https://abstractkb.tk/product/ellipse-rev1",
    "maintainer": "AbstractKB",
    "usb": {
        "vid": "0xFEED",
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B1", "resolution": 2},
            {"pin_a": "B3", "pin_b": "B7", "resolution": 2},
            {"pin_a": "D5", "pin_b": "B4", "resolution": 2}
        ]
    },
    "backlight": {
        "pin": "C6",
        "levels": 15

M keyboards/acheron/shark/alpha/config.h => keyboards/acheron/shark/alpha/config.h +0 -5
@@ 17,11 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


/* encoder pads */
#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B7 }

/*
 * Keyboard Matrix Assignments
 *

M keyboards/acheron/shark/alpha/info.json => keyboards/acheron/shark/alpha/info.json +5 -0
@@ 6,6 6,11 @@
    "pid": "0x5368",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B6", "pin_b": "B7"}
    ]
  },
  "backlight": {
    "pin": "B0"
  },

M keyboards/acheron/shark/beta/config.h => keyboards/acheron/shark/beta/config.h +0 -3
@@ 49,7 49,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6

#define ENCODERS_PAD_A { C15 }
#define ENCODERS_PAD_B { C14 }

#define EEPROM_I2C_24LC256

M keyboards/acheron/shark/beta/info.json => keyboards/acheron/shark/beta/info.json +5 -0
@@ 4,6 4,11 @@
        "pid": "0x5369",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C15", "pin_b": "C14"}
        ]
    },
    "backlight": {
        "pin": "A6",
        "levels": 20,

M keyboards/adafruit/macropad/config.h => keyboards/adafruit/macropad/config.h +0 -4
@@ 37,10 37,6 @@
#define SPI_MOSI_PIN GP27
#define SPI_MISO_PIN GP28

/* Encoders */
#define ENCODERS_PAD_A { GP18 }
#define ENCODERS_PAD_B { GP17 }

/* Double tap the side button to enter bootloader */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP13

M keyboards/adafruit/macropad/info.json => keyboards/adafruit/macropad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0108",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "GP18", "pin_b": "GP17"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 2]
    },

M keyboards/adpenrose/akemipad/config.h => keyboards/adpenrose/akemipad/config.h +0 -6
@@ 20,12 20,6 @@
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/*Rotary encoder - set the resolution fitting your encoder.
Most will need a value of 4. If 1 encoder click results in 2 keycodes sent
increase the value. If you need 2 clicks for 1 keycode, decrease*/
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B3 }
#define TAP_CODE_DELAY 10

/* Audio functionality */

M keyboards/adpenrose/akemipad/info.json => keyboards/adpenrose/akemipad/info.json +5 -0
@@ 7,6 7,11 @@
        "pid": "0x0004",
        "vid": "0x4450"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/adpenrose/kintsugi/config.h => keyboards/adpenrose/kintsugi/config.h +0 -6
@@ 34,12 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/*Rotary encoder - set the resolution fitting your encoder.
Most will need a value of 4. If 1 encoder click results in 2 keycodes sent
increase the value. If you need 2 clicks for 1 keycode, decrease*/
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { B7 }
#define ENCODERS_PAD_B { D5 }
#define TAP_CODE_DELAY 10

/* Underglow options: */

M keyboards/adpenrose/kintsugi/info.json => keyboards/adpenrose/kintsugi/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B7", "pin_b": "D5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/adpenrose/obi/config.h => keyboards/adpenrose/obi/config.h +0 -6
@@ 20,12 20,6 @@
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/*Rotary encoder - set the resolution fitting your encoder.
Most will need a value of 4. If 1 encoder click results in 2 keycodes sent
increase the value. If you need 2 clicks for 1 keycode, decrease*/
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { F1 }
#define ENCODERS_PAD_B { F0 }
#define TAP_CODE_DELAY 10

/* Underglow options: */

M keyboards/adpenrose/obi/info.json => keyboards/adpenrose/obi/info.json +5 -0
@@ 7,6 7,11 @@
        "pid": "0x0002",
        "vid": "0x4450"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F1", "pin_b": "F0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/aidansmithdotdev/fine40/config.h => keyboards/aidansmithdotdev/fine40/config.h +0 -5
@@ 3,9 3,4 @@

#pragma once


#define ENCODER_RESOLUTION 2
#define ENCODERS_PAD_A { D5 }
#define ENCODERS_PAD_B { B7 }

#define OLED_DISPLAY_128X64 //Comment this out to change the screen size

M keyboards/aidansmithdotdev/fine40/info.json => keyboards/aidansmithdotdev/fine40/info.json +5 -0
@@ 25,6 25,11 @@
        "pid": "0x4564",
        "vid": "0xA059"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "B7", "resolution": 2}
        ]
    },
    "layouts": {
        "LAYOUT_2u_single_space": {
            "layout": [

M keyboards/aleblazer/zodiark/config.h => keyboards/aleblazer/zodiark/config.h +0 -6
@@ 20,12 20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D4 }
#define ENCODERS_PAD_A_RIGHT { D4 }
#define ENCODERS_PAD_B_RIGHT { D2 }
#define ENCODER_RESOLUTION 3

/* key matrix pins */
#define MATRIX_ROW_PINS { C6, D7, E6, B4, F4 }
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }

M keyboards/aleblazer/zodiark/info.json => keyboards/aleblazer/zodiark/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0xF902",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D4", "resolution": 3}
        ]
    },
    "split": {
        "soft_serial_pin": "D3"
        "soft_serial_pin": "D3",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "D4", "pin_b": "D2", "resolution": 3}
                ]
            }
        },
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/ano/config.h => keyboards/ano/config.h +0 -5
@@ 19,11 19,6 @@
#define MATRIX_ROW_PINS { A4, B14, B15, B9, B10, B11 }
#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7, A5, A6, A7, A8, A15, A2, A1, A0, B8, B13 }


#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { A14 }
#define ENCODER_RESOLUTION 2

#define DIODE_DIRECTION COL2ROW

#define TAP_CODE_DELAY 10

M keyboards/ano/info.json => keyboards/ano/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0651",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B12", "pin_b": "A14", "resolution": 2}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/aplyard/aplx6/rev2/config.h => keyboards/aplyard/aplx6/rev2/config.h +0 -5
@@ 27,9 27,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define TAPPING_TERM 200

/* Encoder */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODER_RESOLUTION 4

#define TAP_CODE_DELAY 50

M keyboards/aplyard/aplx6/rev2/info.json => keyboards/aplyard/aplx6/rev2/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x0040",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina"
}

D keyboards/arrayperipherals/1x4p1/config.h => keyboards/arrayperipherals/1x4p1/config.h +0 -22
@@ 1,22 0,0 @@
/*
Copyright 2020 David Doan

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

/* rotary encoder*/
#define ENCODERS_PAD_A {F0}
#define ENCODERS_PAD_B {F1}

M keyboards/arrayperipherals/1x4p1/info.json => keyboards/arrayperipherals/1x4p1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4F46",
        "device_version": "0.0.1"
    },
  "encoder": {
    "rotary": [
      {"pin_a": "F0", "pin_b": "F1"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "matrix_pins": {

M keyboards/atlantis/ak81_ve/config.h => keyboards/atlantis/ak81_ve/config.h +0 -5
@@ 21,11 21,6 @@
#define MATRIX_ROW_PINS { F1, F7, F6, F5, F4, D5 }
#define MATRIX_COL_PINS { F0, C7, C6, B6, B5, B4, D7, D6, B2, B7, D3, D2, D1, D0, B3 }

/* Encoder pins */
#define ENCODERS_PAD_A { E6 }
#define ENCODERS_PAD_B { B0 }
#define ENCODER_RESOLUTION 4
#define ENCODERS 1
#define ENCODERS_CCW_KEY { { 4, 5 } } // Note:  array is { col, row )
#define ENCODERS_CW_KEY  { { 3, 5 } } // Note:  array is { col, row )


M keyboards/atlantis/ak81_ve/info.json => keyboards/atlantis/ak81_ve/info.json +5 -0
@@ 7,6 7,11 @@
        "pid": "0x0081",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B0"}
        ]
    },
    "indicators": {
        "caps_lock": "D4",
        "on_state": 0

M keyboards/atlantis/encoder_actions.c => keyboards/atlantis/encoder_actions.c +4 -11
@@ 18,16 18,12 @@
#include "encoder_actions.h"

#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)

#    ifdef ENCODERS
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
#    endif
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#    ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 38,11 34,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#    endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#    ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 50,7 44,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#    endif
}

void matrix_scan_kb(void) {

M keyboards/atreyu/rev1/config.h => keyboards/atreyu/rev1/config.h +0 -7
@@ 30,13 30,6 @@
#define MATRIX_ROW_PINS { D7, E6, B4, B5, F6, F7, B1, B3, B6, B2 }
#define MATRIX_COL_PINS { C6, D4, D0, D1, D2, D3 }

/* encoder support */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }
#define ENCODER_RESOLUTION 4

/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
#define DIODE_DIRECTION COL2ROW
 

M keyboards/atreyu/rev1/info.json => keyboards/atreyu/rev1/info.json +14 -0
@@ 8,6 8,20 @@
      "pid": "0x0001",
      "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },
    "split": {
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/atreyu/rev2/config.h => keyboards/atreyu/rev2/config.h +0 -5
@@ 30,11 30,6 @@
#define MATRIX_ROW_PINS { D7, E6, B4, B5, F6, F7, B1, B3, B6, B2 }
#define MATRIX_COL_PINS { F4, F5, C6, D4, D2, D3 }

/* encoder support */
#define ENCODERS_PAD_A { D5, D5 }
#define ENCODERS_PAD_B { B7, C7 }
#define ENCODER_RESOLUTION 4

/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
#define DIODE_DIRECTION COL2ROW
 

M keyboards/atreyu/rev2/info.json => keyboards/atreyu/rev2/info.json +6 -0
@@ 8,6 8,12 @@
      "pid": "0x0001",
      "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "B7"},
            {"pin_a": "D5", "pin_b": "C7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/avalanche/v2/config.h => keyboards/avalanche/v2/config.h +0 -4
@@ 13,7 13,3 @@
#define RGBLED_NUM 12
#define RGBLED_SPLIT { 6, 6 }
#define RGBLIGHT_SPLIT

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODER_RESOLUTION 2

M keyboards/avalanche/v2/info.json => keyboards/avalanche/v2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0002",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "F4", "resolution": 2}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/avalanche/v3/config.h => keyboards/avalanche/v3/config.h +0 -4
@@ 13,7 13,3 @@
#define RGBLED_NUM 12
#define RGBLED_SPLIT { 7, 7 }
#define RGBLIGHT_SPLIT

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODER_RESOLUTION 2

M keyboards/avalanche/v3/info.json => keyboards/avalanche/v3/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0003",
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "F4", "resolution": 2}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/avalanche/v4/config.h => keyboards/avalanche/v4/config.h +0 -4
@@ 8,10 8,6 @@

#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODER_RESOLUTION 2

#ifdef RGBLIGHT_ENABLE
#    define RGB_DI_PIN D3
#    define RGBLED_NUM 64

M keyboards/avalanche/v4/info.json => keyboards/avalanche/v4/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0004",
        "device_version": "0.0.4"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "F4", "resolution": 2}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/bandominedoni/config.h => keyboards/bandominedoni/config.h +1 -12
@@ 157,15 157,4 @@
#   define MIDI_INITIAL_VELOCITY 117
#endif  //  MIDI_ENABLE

/*
 * Encoder options
 */
#ifdef ENCODER_ENABLE
#   define ENCODERS_PAD_A { }
#   define ENCODERS_PAD_B { }
#   define ENCODER_RESOLUTIONS { }
#   define ENCODERS_PAD_A_RIGHT { F5 }
#   define ENCODERS_PAD_B_RIGHT { F4 }
#   define ENCODER_RESOLUTIONS_RIGHT { 4 }
#   define TAP_CODE_DELAY 10
#endif  // ENCODER_ENABLE
#define TAP_CODE_DELAY 10

M keyboards/bandominedoni/info.json => keyboards/bandominedoni/info.json +8 -1
@@ 9,7 9,14 @@
        "device_version": "0.0.1"
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F5", "pin_b": "F4"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/basekeys/trifecta/config.h => keyboards/basekeys/trifecta/config.h +0 -4
@@ 22,10 22,6 @@
#define MATRIX_ROW_PINS { B0, B7, F7, B1, B6, C6, C7, B5, F6, D2 }
#define MATRIX_COL_PINS { F0, F1, F4, F5, D1, B2, D0, B3 }


#define ENCODERS_PAD_A { D4, D6, D7 }
#define ENCODERS_PAD_B { B4, D3, D5 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/basekeys/trifecta/info.json => keyboards/basekeys/trifecta/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0xEAF3",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "B4"},
            {"pin_a": "D6", "pin_b": "D3"},
            {"pin_a": "D7", "pin_b": "D5"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 0]
    },

M keyboards/basketweave/config.h => keyboards/basketweave/config.h +0 -3
@@ 30,7 30,4 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { D7 }
#define ENCODERS_PAD_B { C0 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

M keyboards/basketweave/info.json => keyboards/basketweave/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x8989",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D7", "pin_b": "C0"}
        ]
    },
    "processor": "atmega32a",
    "bootloader": "usbasploader",
    "layouts": {

M keyboards/bbrfkr/dynamis/config.h => keyboards/bbrfkr/dynamis/config.h +0 -4
@@ 37,9 37,5 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* rotary encoder */
#define ENCODERS_PAD_A { B7 }
#define ENCODERS_PAD_B { E6 }

#define PMW33XX_CS_PIN SPI_SS_PIN
#define POINTING_DEVICE_INVERT_Y

M keyboards/bbrfkr/dynamis/info.json => keyboards/bbrfkr/dynamis/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B7", "pin_b": "E6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "qmk-dfu",
    "layouts": {

M keyboards/bluebell/swoop/config.h => keyboards/bluebell/swoop/config.h +0 -6
@@ 22,12 22,6 @@

#define EE_HANDS

// encoders
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
#define ENCODERS_PAD_A_RIGHT { B5 }
#define ENCODERS_PAD_B_RIGHT { B4 }

// OLED driver
#ifdef OLED_DRIVER_ENABLE
  #define OLED_DISPLAY_128X32

M keyboards/bluebell/swoop/info.json => keyboards/bluebell/swoop/info.json +13 -1
@@ 8,8 8,20 @@
    "pid": "0x3046",
    "device_version": "1.0.0"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B4", "pin_b": "B5"}
    ]
  },
  "split": {
    "soft_serial_pin": "D2"
    "soft_serial_pin": "D2",
    "encoder": {
      "right": {
        "rotary": [
          {"pin_a": "B5", "pin_b": "B4"}
        ]
      }
    }
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",

M keyboards/bobpad/config.h => keyboards/bobpad/config.h +0 -3
@@ 31,6 31,3 @@
#define MATRIX_COL_PINS { F6, F5, F4 }

#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
\ No newline at end of file

M keyboards/bobpad/info.json => keyboards/bobpad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0002",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B2"}
        ]
    },
    "indicators": {
        "caps_lock": "D0",
        "num_lock": "D4",

M keyboards/bolsa/damapad/config.h => keyboards/bolsa/damapad/config.h +0 -4
@@ 26,10 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }
#define ENCODER_RESOLUTION 2

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/bolsa/damapad/info.json => keyboards/bolsa/damapad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6470",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/boston/config.h => keyboards/boston/config.h +0 -6
@@ 49,12 49,6 @@
//The 3D-printed version of Boston uses APA106 LEDs, which are reversed
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB

/* Define encoder */
#define ENCODERS_PAD_A \
    { C13 }
#define ENCODERS_PAD_B \
    { F1 }
#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 15

/*

M keyboards/boston/info.json => keyboards/boston/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4176",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C13", "pin_b": "F1", "resolution": 2}
        ]
    },
    "backlight": {
        "pin": "A6",
        "levels": 6,

M keyboards/boston_meetup/2019/config.h => keyboards/boston_meetup/2019/config.h +0 -3
@@ 17,9 17,6 @@
#define MATRIX_ROW_PINS { A3, B8, B9, B1 }
#define MATRIX_COL_PINS { A7, A8, B2, B10 }

#define ENCODERS_PAD_A { B13 }
#define ENCODERS_PAD_B { B14 }

//Audio
#undef AUDIO_VOICES
#undef AUDIO_PIN

M keyboards/boston_meetup/2019/info.json => keyboards/boston_meetup/2019/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "20.1.9"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B13", "pin_b": "B14"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "board": "QMK_PROTON_C",

M keyboards/cannonkeys/balance/config.h => keyboards/cannonkeys/balance/config.h +0 -4
@@ 26,10 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B6 }

#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 25

#define DYNAMIC_KEYMAP_LAYER_COUNT 3

M keyboards/cannonkeys/balance/info.json => keyboards/cannonkeys/balance/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xBA77",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B6", "resolution": 2}
        ]
    },
    "indicators": {
        "caps_lock": "B12",
        "num_lock": "B14",

M keyboards/cannonkeys/ortho75/config.h => keyboards/cannonkeys/ortho75/config.h +0 -3
@@ 24,9 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PWM_DRIVER PWMD1
#define BACKLIGHT_PWM_CHANNEL 1

#define ENCODERS_PAD_A { B9 }
#define ENCODERS_PAD_B { B8 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/cannonkeys/ortho75/info.json => keyboards/cannonkeys/ortho75/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x6464",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B9", "pin_b": "B8"}
    ]
  },
  "backlight": {
    "pin": "A8",
    "levels": 6,

M keyboards/cannonkeys/satisfaction75/config.h => keyboards/cannonkeys/satisfaction75/config.h +0 -5
@@ 27,11 27,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B3, B4, A0, A2, A4, A3 }
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B9 }
#define ENCODERS_PAD_B { B8 }

#define ENCODER_RESOLUTION 2

// I2C config
#define I2C_DRIVER I2CD1
#define I2C1_SCL_PIN B6

M keyboards/cannonkeys/satisfaction75/info.json => keyboards/cannonkeys/satisfaction75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x57F5",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B9", "pin_b": "B8", "resolution": 2}
        ]
    },
    "backlight": {
        "levels": 24,
        "breathing": true

M keyboards/capsunlocked/cu7/config.h => keyboards/capsunlocked/cu7/config.h +0 -6
@@ 27,12 27,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
 *
*/

#define ENCODER_RESOLUTION 2

#define ENCODERS_PAD_A { D6 }
#define ENCODERS_PAD_B { D4 }

#define MATRIX_ROW_PINS { D7, F0, F6 }
#define MATRIX_COL_PINS { F5, F7, F4 }


M keyboards/capsunlocked/cu7/info.json => keyboards/capsunlocked/cu7/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0007",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D6", "pin_b": "D4", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/checkerboards/phoenix45_ortho/config.h => keyboards/checkerboards/phoenix45_ortho/config.h +0 -5
@@ 29,8 29,3 @@

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* encoder pads */
#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B2 }
#define ENCODER_RESOLUTION 4

M keyboards/checkerboards/phoenix45_ortho/info.json => keyboards/checkerboards/phoenix45_ortho/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1849",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B2"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/checkerboards/quark/config.h => keyboards/checkerboards/quark/config.h +0 -5
@@ 46,8 46,3 @@
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)

// rotary encoder parameters
#define ENCODERS_PAD_A { B0 }
#define ENCODERS_PAD_B { D1 }
#define ENCODER_RESOLUTION 4

M keyboards/checkerboards/quark/info.json => keyboards/checkerboards/quark/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5340",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "D1"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "community_layouts": ["ortho_4x12", "planck_mit"],

M keyboards/checkerboards/quark_plus/config.h => keyboards/checkerboards/quark_plus/config.h +0 -4
@@ 46,7 46,3 @@
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)

#define ENCODERS_PAD_A { C7, B7, B3, B2}
#define ENCODERS_PAD_B { B7, C7, B2, B3}
#define ENCODER_RESOLUTION 4

M keyboards/checkerboards/quark_plus/info.json => keyboards/checkerboards/quark_plus/info.json +8 -0
@@ 8,6 8,14 @@
        "pid": "0x5344",
        "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "C7", "pin_b": "B7"},
        {"pin_a": "B7", "pin_b": "C7"},
        {"pin_a": "B3", "pin_b": "B2"},
        {"pin_a": "B2", "pin_b": "B3"}
      ]
    },
    "backlight": {
      "pin": "C4",
      "levels": 6,

M keyboards/checkerboards/quark_squared/config.h => keyboards/checkerboards/quark_squared/config.h +0 -4
@@ 46,7 46,3 @@
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)

/* define rotary encoder pins */
#define ENCODERS_PAD_A {B0}
#define ENCODERS_PAD_B {D1}

M keyboards/checkerboards/quark_squared/info.json => keyboards/checkerboards/quark_squared/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5342",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "D1"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/checkerboards/snop60/config.h => keyboards/checkerboards/snop60/config.h +0 -3
@@ 47,6 47,3 @@ Copyright 2022 Nathan Spears

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A {D2}
#define ENCODERS_PAD_B {D3}

M keyboards/checkerboards/snop60/info.json => keyboards/checkerboards/snop60/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x2416",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "backlight": {
        "pin": "D1",
        "levels": 6,

M keyboards/cherrybstudio/cb65/config.h => keyboards/cherrybstudio/cb65/config.h +0 -5
@@ 28,11 28,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3 }
#define MATRIX_COL_PINS { D5, D4, D6, D7, F7, B5, B6, C6 }

/* Encoder configuration */
//#define ENCODERS_PAD_A { F5 }
//#define ENCODERS_PAD_B { F6 }
//#define ENCODER_RESOLUTION 4

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/chocofly/v1/config.h => keyboards/chocofly/v1/config.h +0 -4
@@ 7,7 7,3 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }

#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 2

M keyboards/chocofly/v1/info.json => keyboards/chocofly/v1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/chromatonemini/info.json => keyboards/chromatonemini/info.json +1 -1
@@ 77,7 77,7 @@
    },
    "encoder": {
        "rotary": [
            { "pin_a": "B5", "pin_b": "B4", "resolution": 4 }
            { "pin_a": "B5", "pin_b": "B4" }
        ]
    }
}

M keyboards/ck60i/config.h => keyboards/ck60i/config.h +0 -3
@@ 45,9 45,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#define ENCODERS_PAD_A { A5 }
#define ENCODERS_PAD_B { A4 }

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/ck60i/info.json => keyboards/ck60i/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6049",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A5", "pin_b": "A4"}
        ]
    },
    "backlight": {
        "pin": "A6",
        "levels": 6,

M keyboards/ckeys/thedora/config.h => keyboards/ckeys/thedora/config.h +0 -5
@@ 16,11 16,6 @@

#pragma once


#define ENCODERS_PAD_A { B13 }
#define ENCODERS_PAD_B { B15 }
#define ENCODER_RESOLUTION 4

#define MATRIX_ROW_PINS { A2, A1, A0, B8 }
#define MATRIX_COL_PINS { B5, B4, B3, B2, B1, B0 }


M keyboards/ckeys/thedora/info.json => keyboards/ckeys/thedora/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x6060",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B13", "pin_b": "B15"}
    ]
  },
  "processor": "STM32F303",
  "bootloader": "stm32-dfu",
  "board": "QMK_PROTON_C",

M keyboards/ckeys/washington/config.h => keyboards/ckeys/washington/config.h +0 -3
@@ 32,9 32,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { C6 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/ckeys/washington/info.json => keyboards/ckeys/washington/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x002A",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "C6"}
        ]
    },
    "backlight": {
        "pin": "B6",
        "breathing": true

M keyboards/clickety_split/leeloo/info.json => keyboards/clickety_split/leeloo/info.json +13 -1
@@ 8,8 8,20 @@
    "pid": "0x2022",
    "device_version": "0.1.3"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F5", "pin_b": "F4"}
    ]
  },
  "split": {
    "soft_serial_pin": "D2"
    "soft_serial_pin": "D2",
    "encoder": {
      "right": {
        "rotary": [
          {"pin_a": "F4", "pin_b": "F5"}
        ]
      }
    }
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",

M keyboards/clickety_split/leeloo/rev1/config.h => keyboards/clickety_split/leeloo/rev1/config.h +0 -6
@@ 26,12 26,6 @@
/* define tapping term */
#define TAPPING_TERM 100

/* encoder support */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }

/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING

M keyboards/clueboard/2x1800/2019/config.h => keyboards/clueboard/2x1800/2019/config.h +0 -8
@@ 17,14 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


/*
 * Encoder Assignments
 */
#define ENCODERS_PAD_A { A5, A4, A2, A1 }
#define ENCODERS_PAD_B { A6, A7, A3, A0 }
#define ENCODER_RESOLUTION 4

/* audio support */
#define AUDIO_PIN_ALT B7
#define AUDIO_PIN C4

M keyboards/clueboard/2x1800/2019/info.json => keyboards/clueboard/2x1800/2019/info.json +8 -0
@@ 27,6 27,14 @@
    "pid": "0x23A0",
    "vid": "0xC1ED"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "A5", "pin_b": "A6"},
      {"pin_a": "A4", "pin_b": "A7"},
      {"pin_a": "A2", "pin_b": "A3"},
      {"pin_a": "A1", "pin_b": "A0"}
    ]
  },
  "layout_aliases": {
    "LAYOUT": "LAYOUT_all"
  },

M keyboards/clueboard/2x1800/2021/config.h => keyboards/clueboard/2x1800/2021/config.h +0 -7
@@ 23,13 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define AUDIO_PIN C4
#define AUDIO_CLICKY

/*
 * Encoder Assignments
 */
#define ENCODERS_PAD_A { D0, C5 }
#define ENCODERS_PAD_B { D1, C6 }
#define ENCODER_RESOLUTION 4

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE


M keyboards/clueboard/2x1800/2021/info.json => keyboards/clueboard/2x1800/2021/info.json +6 -0
@@ 26,6 26,12 @@
    "usb": {
        "pid": "0x23A0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "C5", "pin_b": "C6"}
        ]
    },
    "layout_aliases": {
        "LAYOUT": "LAYOUT_all"
    },

M keyboards/crbn/config.h => keyboards/crbn/config.h +0 -7
@@ 24,13 24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/*Rotary Encoder Pins*/
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }

/*Sets the number of pulses per increment*/
#define ENCODER_RESOLUTION 2

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE


M keyboards/crbn/info.json => keyboards/crbn/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0002",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F5", "pin_b": "F4", "resolution": 2}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "community_layouts": [ "ortho_4x12", "planck_mit" ],

M keyboards/custommk/evo70/config.h => keyboards/custommk/evo70/config.h +0 -3
@@ 21,9 21,6 @@

#define OLED_DISABLE_TIMEOUT

#define ENCODERS_PAD_A { C7 }
#define ENCODERS_PAD_B { D5 }
#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 10

#define RGBLIGHT_EFFECT_BREATHING

M keyboards/custommk/evo70/info.json => keyboards/custommk/evo70/info.json +5 -0
@@ 9,6 9,11 @@
        "pid": "0xFAB5",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C7", "pin_b": "D5", "resolution": 2}
        ]
    },
    "backlight": {
        "pin": "B5",
        "levels": 17,

M keyboards/custommk/genesis/rev1/config.h => keyboards/custommk/genesis/rev1/config.h +0 -3
@@ 24,9 24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { F6, D2 }
#define ENCODERS_PAD_B { F7, D1 }
#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 10

#define RGB_DI_PIN E6

M keyboards/custommk/genesis/rev1/info.json => keyboards/custommk/genesis/rev1/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0xFAB0",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F7", "resolution": 2},
            {"pin_a": "D2", "pin_b": "D1", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "qmk-dfu",
    "layouts": {

M keyboards/custommk/genesis/rev2/config.h => keyboards/custommk/genesis/rev2/config.h +0 -3
@@ 24,9 24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { F6, D2 }
#define ENCODERS_PAD_B { F7, D1 }
#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 10

#define RGB_DI_PIN E6

M keyboards/custommk/genesis/rev2/info.json => keyboards/custommk/genesis/rev2/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0xFAB1",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F7", "resolution": 2},
            {"pin_a": "D2", "pin_b": "D1", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "qmk-dfu",
    "layouts": {

M keyboards/dailycraft/owl8/config.h => keyboards/dailycraft/owl8/config.h +0 -3
@@ 37,6 37,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { D4, D7 }
#define ENCODERS_PAD_B { C6, E6 }

M keyboards/dailycraft/owl8/info.json => keyboards/dailycraft/owl8/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0008",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "C6"},
            {"pin_a": "D7", "pin_b": "E6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/dailycraft/stickey4/config.h => keyboards/dailycraft/stickey4/config.h +0 -3
@@ 37,6 37,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { D4, D7 }
#define ENCODERS_PAD_B { C6, E6 }

M keyboards/dailycraft/stickey4/info.json => keyboards/dailycraft/stickey4/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0010",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "C6"},
            {"pin_a": "D7", "pin_b": "E6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/delikeeb/vaguettelite/config.h => keyboards/delikeeb/vaguettelite/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/*rotary encoder setting*/
#define ENCODERS_PAD_A { D5, F1 }
#define ENCODERS_PAD_B { B7, F0 }

#define RGB_DI_PIN C7
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 9

M keyboards/delikeeb/vaguettelite/info.json => keyboards/delikeeb/vaguettelite/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0011",
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "B7"},
            {"pin_a": "F1", "pin_b": "F0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/delikeeb/vanana/rev1/config.h => keyboards/delikeeb/vanana/rev1/config.h +0 -3
@@ 33,9 33,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder and Buzzer */
#define ENCODERS_PAD_A { C7, F1 }
#define ENCODERS_PAD_B { D5, F0 }
#define B7_AUDIO

#define RGB_DI_PIN F0

M keyboards/delikeeb/vanana/rev1/info.json => keyboards/delikeeb/vanana/rev1/info.json +6 -0
@@ 2,5 2,11 @@
    "keyboard_name": "Vanana rev1",
    "usb": {
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C7", "pin_b": "D5"},
            {"pin_a": "F1", "pin_b": "F0"}
        ]
    }
}

M keyboards/delikeeb/vanana/rev2/config.h => keyboards/delikeeb/vanana/rev2/config.h +0 -3
@@ 33,9 33,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder and Buzzer */
#define ENCODERS_PAD_A { B6, F0 }
#define ENCODERS_PAD_B { B2, F1 }
#define B7_AUDIO

#define RGB_DI_PIN C7

M keyboards/delikeeb/vanana/rev2/info.json => keyboards/delikeeb/vanana/rev2/info.json +6 -0
@@ 2,5 2,11 @@
    "keyboard_name": "Vanana rev2",
    "usb": {
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B2"},
            {"pin_a": "F0", "pin_b": "F1"}
        ]
    }
}

M keyboards/delikeeb/waaffle/rev3/config.h => keyboards/delikeeb/waaffle/rev3/config.h +0 -4
@@ 33,10 33,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/*rotary encoder setting*/
#define ENCODERS_PAD_A { B7, F1 }
#define ENCODERS_PAD_B { D5, F0 }

#define RGB_DI_PIN C7
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 10

M keyboards/delikeeb/waaffle/rev3/info.json => keyboards/delikeeb/waaffle/rev3/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0012",
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B7", "pin_b": "D5"},
            {"pin_a": "F1", "pin_b": "F0"}
        ]
    },
    "bootmagic": {
        "matrix": [6, 0]
    },

M keyboards/dmqdesign/spin/config.h => keyboards/dmqdesign/spin/config.h +0 -5
@@ 26,11 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

//rotary encoder setup
#define ENCODERS_PAD_A { B6, B4, D6 }
#define ENCODERS_PAD_B { B5, D7, D4 }
#define ENCODER_RESOLUTION 4

//Data pin for the 3 RGB LEDs
#define RGB_DI_PIN D3
//Number of RGB LEDs

M keyboards/dmqdesign/spin/info.json => keyboards/dmqdesign/spin/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B5"},
            {"pin_a": "B4", "pin_b": "D7"},
            {"pin_a": "D6", "pin_b": "D4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/doio/kb16/rev1/config.h => keyboards/doio/kb16/rev1/config.h +0 -4
@@ 31,10 31,6 @@
/* Use the custom font */
#define OLED_FONT_H "./lib/glcdfont.c"

/* Encoder pins */
#define ENCODERS_PAD_A { F7, C7, D7 }
#define ENCODERS_PAD_B { E6, C6, D6 }

#ifdef RGB_MATRIX_ENABLE
    /* RGB Matrix config */
    #define RGB_DI_PIN F6

M keyboards/doio/kb16/rev1/info.json => keyboards/doio/kb16/rev1/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x1601",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F7", "pin_b": "E6"},
            {"pin_a": "C7", "pin_b": "C6"},
            {"pin_a": "D7", "pin_b": "D6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/doio/kb16/rev2/config.h => keyboards/doio/kb16/rev2/config.h +0 -4
@@ 38,10 38,6 @@
    #define OLED_FONT_H "./lib/glcdfont.c"
#endif

/* Encoder pins */
#define ENCODERS_PAD_A { B5, A1, A3 }
#define ENCODERS_PAD_B { B6, A2, A4 }

#ifdef RGB_MATRIX_ENABLE
    /* RGB Matrix config */
    #define RGB_DI_PIN A10

M keyboards/doio/kb16/rev2/info.json => keyboards/doio/kb16/rev2/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x1601",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B6"},
            {"pin_a": "A1", "pin_b": "A2"},
            {"pin_a": "A3", "pin_b": "A4"}
        ]
    },
    "layouts": {
        "LAYOUT": {
            "layout": [

M keyboards/doio/kb30/config.h => keyboards/doio/kb30/config.h +0 -6
@@ 27,12 27,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* key encoders pins*/
#define ENCODERS_PAD_A { B5 , A1 , A3 }
#define ENCODERS_PAD_B { B6 , A2 , A4 }
#define ENCODER_RESOLUTIONS \
    { 4, 4, 2 }

// #define QMK_KEYS_PER_SCAN 12

/* OLED */

M keyboards/doio/kb30/info.json => keyboards/doio/kb30/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x3001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B6"},
            {"pin_a": "A1", "pin_b": "A2"},
            {"pin_a": "A3", "pin_b": "A4", "resolution": 2}
        ]
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "layouts": {

M keyboards/doio/kb38/config.h => keyboards/doio/kb38/config.h +0 -5
@@ 16,11 16,6 @@
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS

#define ENCODERS_PAD_A { C7, F7, D6 }
#define ENCODERS_PAD_B { C6, E6, D7 }
#define ENCODER_RESOLUTIONS { 4, 4, 2 }


/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/doio/kb38/info.json => keyboards/doio/kb38/info.json +7 -0
@@ 25,6 25,13 @@
        "pid": "0x0000",
        "vid": "0xFEED"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C7", "pin_b": "C6"},
            {"pin_a": "F7", "pin_b": "E6"},
            {"pin_a": "D6", "pin_b": "D7", "resolution": 2}
        ]
    },
    "rgb_matrix": {
        "driver": "WS2812",
        "layout": [

M keyboards/doodboard/duckboard/config.h => keyboards/doodboard/duckboard/config.h +0 -4
@@ 21,10 21,6 @@
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F7, B1, B3, B2, B6 }

#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODER_RESOLUTION 2

/* media key slowdown for windows */
#define TAP_CODE_DELAY 20


M keyboards/doodboard/duckboard/info.json => keyboards/doodboard/duckboard/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xFF44",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/doodboard/duckboard_r2/config.h => keyboards/doodboard/duckboard_r2/config.h +0 -4
@@ 21,10 21,6 @@
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F7, B1, B3, B2, B6 }

#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 2

/* media key slowdown for windows */
#define TAP_CODE_DELAY 20


M keyboards/doodboard/duckboard_r2/info.json => keyboards/doodboard/duckboard_r2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6462",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F5", "resolution": 2}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/draculad/config.h => keyboards/draculad/config.h +0 -6
@@ 42,12 42,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_SLEEP
#endif

#define ENCODERS_PAD_A {B2 , B4}
#define ENCODERS_PAD_B {B6 , B5}

#define ENCODER_RESOLUTIONS { 4, 4 }
#define ENCODER_RESOLUTIONS_RIGHT { 4, 1 }

#define EE_HANDS

#define LAYER_STATE_8BIT

M keyboards/draculad/info.json => keyboards/draculad/info.json +15 -1
@@ 8,8 8,22 @@
        "pid": "0x1B1E",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B6"},
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B2", "pin_b": "B6", "resolution": 4},
                    {"pin_a": "B4", "pin_b": "B5", "resolution": 1}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/draytronics/daisy/config.h => keyboards/draytronics/daisy/config.h +0 -2
@@ 33,8 33,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B0, C0, C1}
#define MATRIX_COL_PINS { C2, C3, C4, C5 }

#define ENCODERS_PAD_A { B1, D0 }
#define ENCODERS_PAD_B { B2, D1 }
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define TAP_CODE_DELAY 10

M keyboards/draytronics/daisy/info.json => keyboards/draytronics/daisy/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x4441",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B2"},
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "processor": "atmega328p",
    "bootloader": "usbasploader",
    "layout_aliases": {

M keyboards/drhigsby/bkf/config.h => keyboards/drhigsby/bkf/config.h +0 -4
@@ 31,10 31,6 @@
#define MATRIX_ROW_PINS { F6, F7, B1, B3 }
#define MATRIX_COL_PINS { B6, B2, D3, D2, D1, D0, D4, C6, D7, E6, B4, B5 }

/* Define encoder pads */
#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/drhigsby/bkf/info.json => keyboards/drhigsby/bkf/info.json +5 -0
@@ 8,6 8,11 @@
     "pid": "0x0003",
     "device_version": "0.0.1"
  },
  "encoder": {
      "rotary": [
          {"pin_a": "F4", "pin_b": "F5"}
      ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "layouts": {

M keyboards/drhigsby/packrat/config.h => keyboards/drhigsby/packrat/config.h +0 -3
@@ 38,6 38,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }

M keyboards/drhigsby/packrat/info.json => keyboards/drhigsby/packrat/info.json +5 -0
@@ 8,6 8,11 @@
     "pid": "0x0004",
     "device_version": "0.0.1"
  },
  "encoder": {
       "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
       ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "layouts": {

M keyboards/dumbo/config.h => keyboards/dumbo/config.h +0 -5
@@ 19,11 19,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, D7, E6, B4 }
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6}

#define ENCODERS_PAD_A { F4, C6 }
#define ENCODERS_PAD_B { F5, B5 }
#define ENCODERS_PAD_A_RIGHT { F5, B5 }
#define ENCODERS_PAD_B_RIGHT { F4, C6 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/dumbo/info.json => keyboards/dumbo/info.json +15 -1
@@ 8,8 8,22 @@
        "pid": "0x25E3",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"},
            {"pin_a": "C6", "pin_b": "B5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F5", "pin_b": "F4"},
                    {"pin_a": "B5", "pin_b": "C6"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/dumbpad/v0x/config.h => keyboards/dumbpad/v0x/config.h +0 -4
@@ 21,10 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 }

/* Single rotary encoder */
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D4 }

/* Onboard LEDs */
#define LED_00 B3
#define LED_01 B1

M keyboards/dumbpad/v0x/info.json => keyboards/dumbpad/v0x/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.0.7"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D4"}
        ]
    },
    "bootmagic": {
        "matrix": [3, 0]
    },

M keyboards/dumbpad/v0x_dualencoder/config.h => keyboards/dumbpad/v0x_dualencoder/config.h +0 -4
@@ 21,10 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { D7, E6, B4, B5 }

/* Dual rotary encoders */
#define ENCODERS_PAD_A { C6, D0 }
#define ENCODERS_PAD_B { D4, D1 }

/* Onboard LEDs */
#define LED_00 B3
#define LED_01 B1

M keyboards/dumbpad/v0x_dualencoder/info.json => keyboards/dumbpad/v0x_dualencoder/info.json +6 -0
@@ 2,6 2,12 @@
    "usb": {
        "device_version": "0.0.6"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "D4"},
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "bootmagic": {
        "matrix": [3, 0]
    },

M keyboards/dumbpad/v0x_right/config.h => keyboards/dumbpad/v0x_right/config.h +0 -4
@@ 20,10 20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { B5, B4, E6, D7, C6 }

/* Single rotary encoder */
#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { D0 }

/* Onboard LEDs */
#define LED_00 B1
#define LED_01 B3

M keyboards/dumbpad/v0x_right/info.json => keyboards/dumbpad/v0x_right/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.0.7"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "D0"}
        ]
    },
    "bootmagic": {
        "matrix": [3, 4]
    },

M keyboards/dumbpad/v1x/config.h => keyboards/dumbpad/v1x/config.h +0 -4
@@ 21,10 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 }

/* Single rotary encoder */
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { D4 }

/* Onboard LEDs  */
#define LED_00 B6
#define LED_01 B1

M keyboards/dumbpad/v1x/info.json => keyboards/dumbpad/v1x/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "D4"}
        ]
    },
    "bootmagic": {
        "matrix": [3, 0]
    },

M keyboards/dumbpad/v1x_dualencoder/config.h => keyboards/dumbpad/v1x_dualencoder/config.h +0 -4
@@ 21,10 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 }

/* Dual rotary encoders */
#define ENCODERS_PAD_A { B2, D0 }
#define ENCODERS_PAD_B { D4, D1 }

/* Onboard LEDs */
#define LED_00 B6
#define LED_01 B1

M keyboards/dumbpad/v1x_dualencoder/info.json => keyboards/dumbpad/v1x_dualencoder/info.json +6 -0
@@ 2,6 2,12 @@
    "usb": {
        "device_version": "0.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "D4"},
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "bootmagic": {
        "matrix": [3, 0]
    },

M keyboards/dumbpad/v1x_oled/config.h => keyboards/dumbpad/v1x_oled/config.h +0 -4
@@ 18,10 18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { C6, B1, B3, B2, B6 }

/* Dual rotary encoders */
#define ENCODERS_PAD_A { B4, E6 }
#define ENCODERS_PAD_B { B5, D7 }

/* Column/Row IO definitions */
#define DIODE_DIRECTION COL2ROW


M keyboards/dumbpad/v1x_oled/info.json => keyboards/dumbpad/v1x_oled/info.json +6 -0
@@ 2,6 2,12 @@
    "usb": {
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"},
            {"pin_a": "E6", "pin_b": "D7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/dumbpad/v1x_right/config.h => keyboards/dumbpad/v1x_right/config.h +0 -4
@@ 21,10 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { B5, B4, E6, D7, C6 }

/* Single rotary encoder */
#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { B2 }

/* Onboard LEDs - reversed */
#define LED_00 B3
#define LED_01 B1

M keyboards/dumbpad/v1x_right/info.json => keyboards/dumbpad/v1x_right/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "B2"}
        ]
    },
    "bootmagic": {
        "matrix": [3, 4]
    },

M keyboards/dumbpad/v3x/config.h => keyboards/dumbpad/v3x/config.h +0 -4
@@ 20,10 20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 }

/* Single rotary encoder */
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { D4 }

/* Onboard LEDs  */
#define LED_00 B1
#define LED_01 B3

M keyboards/dumbpad/v3x/info.json => keyboards/dumbpad/v3x/info.json +5 -0
@@ 5,6 5,11 @@
    "usb": {
        "device_version": "0.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "D4"}
        ]
    },
    "bootmagic": {
        "matrix": [3, 0]
    },

M keyboards/dyz/dyz40/config.h => keyboards/dyz/dyz40/config.h +0 -2
@@ 18,7 18,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work
#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }

#define DYNAMIC_KEYMAP_LAYER_COUNT 3

M keyboards/dyz/dyz40/info.json => keyboards/dyz/dyz40/info.json +5 -0
@@ 8,6 8,11 @@
        "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7"],
        "rows": ["B0", "B1", "B3", "B2"]
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"}
        ]
    },
    "rgblight": {
        "led_count": 13,
        "pin": "B7",

M keyboards/dyz/dyz60/config.h => keyboards/dyz/dyz60/config.h +0 -2
@@ 18,7 18,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }

#define DYNAMIC_KEYMAP_LAYER_COUNT 3

M keyboards/dyz/dyz60/info.json => keyboards/dyz/dyz60/info.json +5 -0
@@ 32,6 32,11 @@
        "pid": "0x000A",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "indicators": {
        "caps_lock": "F1"
    },

M keyboards/dyz/selka40/config.h => keyboards/dyz/selka40/config.h +0 -2
@@ 18,7 18,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work
#define ENCODERS_PAD_A { D6 }
#define ENCODERS_PAD_B { D7 }

#define DYNAMIC_KEYMAP_LAYER_COUNT 3

M keyboards/dyz/selka40/info.json => keyboards/dyz/selka40/info.json +5 -0
@@ 32,6 32,11 @@
        "pid": "0x0012",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D6", "pin_b": "D7"}
        ]
    },
    "indicators": {
        "caps_lock": "B1",
        "num_lock": "B3",

M keyboards/ealdin/quadrant/config.h => keyboards/ealdin/quadrant/config.h +0 -4
@@ 24,10 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D5 }
#define ENCODERS_PAD_B { F1 }
#define ENCODER_RESOLUTION 4

#define RGB_DI_PIN C7
#ifdef RGB_DI_PIN
   #define RGBLED_NUM 7

M keyboards/ealdin/quadrant/info.json => keyboards/ealdin/quadrant/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5154",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "F1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "community_layouts": ["ortho_5x14"],

M keyboards/ebastler/isometria_75/rev1/config.h => keyboards/ebastler/isometria_75/rev1/config.h +0 -7
@@ 43,13 43,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL


/* Rotary encoder - set the resolution fitting your encoder.
Most will need a value of 4. If 1 encoder click results in 2 keycodes sent
increase the value. If you need 2 clicks for 1 keycode, decrease*/
#define ENCODER_RESOLUTION 2
#define ENCODERS_PAD_A { C15 }
#define ENCODERS_PAD_B { C14 }
#define TAP_CODE_DELAY 10

/* ADC - will be used for battery monitoring once BT support is added */

M keyboards/ebastler/isometria_75/rev1/info.json => keyboards/ebastler/isometria_75/rev1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1337",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C15", "pin_b": "C14", "resolution": 2}
        ]
    },
    "backlight": {
        "pin": "A9",
        "levels": 5,

M keyboards/ein_60/config.h => keyboards/ein_60/config.h +0 -6
@@ 23,12 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DIODE_DIRECTION COL2ROW

#ifdef ENCODER_ENABLE
#    define ENCODERS_PAD_A { B0, C5 }
#    define ENCODERS_PAD_B { E3, C4 }
#    define ENCODER_RESOLUTIONS { 4, 4 }
#endif

#ifdef OLED_ENABLE
#    define OLED_DISPLAY_128X64
#    define OLED_TIMEOUT 450000

M keyboards/ein_60/info.json => keyboards/ein_60/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0003",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "E3"},
            {"pin_a": "C5", "pin_b": "C4"}
        ]
    },
    "processor": "at90usb1286",
    "bootloader": "qmk-dfu",
    "layouts": {

M keyboards/evolv/config.h => keyboards/evolv/config.h +0 -3
@@ 41,9 41,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { A15 }
#define ENCODER_RESOLUTION 2
#define TAPPING_TERM 200

/*

M keyboards/evolv/info.json => keyboards/evolv/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0E75",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "A15", "resolution": 2}
        ]
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/evyd13/atom47/rev4/config.h => keyboards/evyd13/atom47/rev4/config.h +0 -3
@@ 23,8 23,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS {D0,C2,C5,C6}
#define MATRIX_COL_PINS {C4,C7,B7,B6,B5,B2,B1,B0,D6,D5,D4,D3,D2}

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B4 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

M keyboards/evyd13/atom47/rev4/info.json => keyboards/evyd13/atom47/rev4/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x8446",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B4"}
        ]
    },
    "qmk_lufa_bootloader": {
        "esc_input": "C6",
        "esc_output": "C4",

M keyboards/evyd13/eon40/config.h => keyboards/evyd13/eon40/config.h +0 -3
@@ 30,9 30,6 @@
#define MATRIX_ROW_PINS {B7,D5,F5,F6}
#define MATRIX_COL_PINS {F0,F1,F4,D3,D4,D6,D7,B4,B5,B6,C6,C7}

#define ENCODERS_PAD_A { E6, B0, D1 }
#define ENCODERS_PAD_B { F7, D0, D2 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/evyd13/eon40/info.json => keyboards/evyd13/eon40/info.json +7 -0
@@ 8,6 8,13 @@
    "pid": "0x0140",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "E6", "pin_b": "F7"},
      {"pin_a": "B0", "pin_b": "D0"},
      {"pin_a": "D1", "pin_b": "D2"}
    ]
  },
  "qmk_lufa_bootloader": {
    "esc_input": "B7",
    "esc_output": "F0"

M keyboards/evyd13/gh80_3700/config.h => keyboards/evyd13/gh80_3700/config.h +0 -4
@@ 53,7 53,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

// Define rotary encoder
#define ENCODERS_PAD_A { F1 }
#define ENCODERS_PAD_B { F4 }

M keyboards/evyd13/gh80_3700/info.json => keyboards/evyd13/gh80_3700/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x633A",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F1", "pin_b": "F4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "qmk-dfu",
    "community_layouts": ["numpad_6x4", "ortho_6x4"],

M keyboards/evyd13/ta65/config.h => keyboards/evyd13/ta65/config.h +0 -6
@@ 23,12 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS {B4,D7,D6,D4,B3}
#define MATRIX_COL_PINS {D2,D1,D0,D3,D5,C7,C6,B6,B5,F0,F1,F4,F5,F6,F7,B0}

#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B1 }

/* Uncomment if your encoder doesn't react to every turn or skips */
//#define ENCODER_RESOLUTION 2

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/evyd13/ta65/info.json => keyboards/evyd13/ta65/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7465",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B1"}
        ]
    },
    "qmk_lufa_bootloader": {
        "esc_input": "B4",
        "esc_output": "D2",

M keyboards/eyeohdesigns/sprh/config.h => keyboards/eyeohdesigns/sprh/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODERS_PAD_A {D0}
#define ENCODERS_PAD_B {D1}
#define ENCODER_RESOLUTION 2


#define MATRIX_ROW_PINS { B3, B7, D2, D5, D3 }
#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, C6, B6, B5, B4, D7, D6, F7, D4 }


M keyboards/eyeohdesigns/sprh/info.json => keyboards/eyeohdesigns/sprh/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/eyeohdesigns/theboulevard/config.h => keyboards/eyeohdesigns/theboulevard/config.h +0 -5
@@ 17,11 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODERS_PAD_A {F5}
#define ENCODERS_PAD_B {F4}
#define ENCODER_RESOLUTION 2

#define MATRIX_ROW_PINS { F7, B1, E6, F0, F1 }
#define MATRIX_COL_PINS { B0, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0 }


M keyboards/eyeohdesigns/theboulevard/info.json => keyboards/eyeohdesigns/theboulevard/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/feker/ik75/config.h => keyboards/feker/ik75/config.h +0 -9
@@ 25,15 25,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL

#ifdef ENCODER_ENABLE
    /* Encoder pins */
    #define ENCODERS_PAD_A { C6 }
    #define ENCODERS_PAD_B { C7 }

    /* Encoder config */
    #define ENCODER_RESOLUTION 2
#endif

#ifdef RGB_MATRIX_ENABLE
    #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
    #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200

M keyboards/feker/ik75/info.json => keyboards/feker/ik75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1226",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "C7", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/ffkeebs/puca/config.h => keyboards/ffkeebs/puca/config.h +0 -4
@@ 41,10 41,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
    #define RGBLED_NUM 8
#endif


#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/ffkeebs/puca/info.json => keyboards/ffkeebs/puca/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0002",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layout_aliases": {

M keyboards/ffkeebs/siris/config.h => keyboards/ffkeebs/siris/config.h +0 -3
@@ 25,6 25,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D3, C6 }
#define ENCODERS_PAD_B { D5, B6 }

M keyboards/ffkeebs/siris/info.json => keyboards/ffkeebs/siris/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0xE96C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D5"},
            {"pin_a": "C6", "pin_b": "B6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/flxlb/zplit/config.h => keyboards/flxlb/zplit/config.h +0 -3
@@ 31,9 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define SPLIT_USB_DETECT
#define SPLIT_USB_TIMEOUT 500

#define ENCODERS_PAD_A { B0 }
#define ENCODERS_PAD_B { D2 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/flxlb/zplit/info.json => keyboards/flxlb/zplit/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "D2"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
    },

M keyboards/giabalanai/config.h => keyboards/giabalanai/config.h +1 -12
@@ 220,18 220,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#   define MIDI_INITIAL_VELOCITY 117
#endif  //  MIDI_ENABLE

/*
 * Encoder options
 */
#ifdef ENCODER_ENABLE
#   define ENCODERS_PAD_A { }
#   define ENCODERS_PAD_B { }
#   define ENCODER_RESOLUTIONS { }
#   define ENCODERS_PAD_A_RIGHT { B4 }
#   define ENCODERS_PAD_B_RIGHT { B6 }
#   define ENCODER_RESOLUTIONS_RIGHT { 4 }
#   define TAP_CODE_DELAY 10
#endif  // ENCODER_ENABLE
#define TAP_CODE_DELAY 10

/* 2021/01/22 added to shrink firmware size */
// NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods...

M keyboards/giabalanai/info.json => keyboards/giabalanai/info.json +11 -1
@@ 8,8 8,18 @@
        "pid": "0xF4B0",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": []
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B4", "pin_b": "B6"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/gl516/n51gl/config.h => keyboards/gl516/n51gl/config.h +0 -4
@@ 26,10 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }

#define ENCODERS_PAD_A { D7 }
#define ENCODERS_PAD_B { E6 }
#define ENCODER_RESOLUTION 3

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/gl516/n51gl/info.json => keyboards/gl516/n51gl/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE8CF",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D7", "pin_b": "E6", "resolution": 3}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/gmmk/pro/config.h => keyboards/gmmk/pro/config.h +0 -4
@@ 26,10 26,6 @@
#define DIODE_DIRECTION COL2ROW

#define TAP_CODE_DELAY 10
#define ENCODERS_PAD_A \
    { C15 }
#define ENCODERS_PAD_B \
    { C14 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

M keyboards/gmmk/pro/rev1/ansi/info.json => keyboards/gmmk/pro/rev1/ansi/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5044",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C15", "pin_b": "C14"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 3]
    },

M keyboards/gmmk/pro/rev1/iso/info.json => keyboards/gmmk/pro/rev1/iso/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5044",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C15", "pin_b": "C14"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 3]
    },

M keyboards/gmmk/pro/rev2/ansi/info.json => keyboards/gmmk/pro/rev2/ansi/info.json +5 -0
@@ 8,6 8,11 @@
       "pid": "0x5044",
       "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C15", "pin_b": "C14"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 3]
    },

M keyboards/gmmk/pro/rev2/iso/info.json => keyboards/gmmk/pro/rev2/iso/info.json +5 -0
@@ 8,6 8,11 @@
       "pid": "0x5044",
       "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C15", "pin_b": "C14"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 3]
    },

M keyboards/gorthage_truck/config.h => keyboards/gorthage_truck/config.h +0 -3
@@ 33,6 33,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }

M keyboards/gorthage_truck/info.json => keyboards/gorthage_truck/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x58E4",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "indicators": {
        "caps_lock": "D3",
        "num_lock": "D5",

M keyboards/h0oni/deskpad/config.h => keyboards/h0oni/deskpad/config.h +0 -4
@@ 33,10 33,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Defining encoder pads */
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/h0oni/deskpad/info.json => keyboards/h0oni/deskpad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4450",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 3,

M keyboards/hadron/ver3/config.h => keyboards/hadron/ver3/config.h +0 -4
@@ 33,10 33,6 @@
#define MATRIX_ROW_PINS { C15, C14, A10, A9, A8 }
#define MATRIX_COL_PINS { B8,  B2,  B10, A0, A1, A2, B0, A3, B1, A6, A7, B12, C13, B11, B9 }

#define ENCODERS_PAD_A { B13 }
#define ENCODERS_PAD_B { B14 }


//Audio
#undef AUDIO_VOICES
#undef AUDIO_PIN

M keyboards/hadron/ver3/info.json => keyboards/hadron/ver3/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B13", "pin_b": "B14"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "board": "QMK_PROTON_C"

M keyboards/halfcliff/config.h => keyboards/halfcliff/config.h +0 -5
@@ 25,11 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F5, F6, F7, D7, B5, F5, F6, F7, D7, B5 }
#define MATRIX_COL_PINS { B4, E6, C6, B6, B2 }

//#define NUMBER_OF_ENCODERS 1
#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { F4 }
#define ENCODER_RESOLUTION 2

 #define RGB_DI_PIN D3
 #ifdef RGB_DI_PIN
   #define RGBLED_NUM 10

M keyboards/halfcliff/info.json => keyboards/halfcliff/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0021",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "F4", "resolution": 2}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/halokeys/elemental75/config.h => keyboards/halokeys/elemental75/config.h +0 -2
@@ 19,8 19,6 @@
#define MATRIX_COL_PINS { B2, B1, B0, B10, B11, B13, B14, B15, A8, A9, A14, A15, B3, B4, B7 }
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B5 }
#define TAP_CODE_DELAY 10 // tap_code function delay for register and unregister

#define RGB_DI_PIN A10

M keyboards/halokeys/elemental75/info.json => keyboards/halokeys/elemental75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xEA75",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B5"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "board": "QMK_PROTON_C",

M keyboards/handwired/amigopunk/config.h => keyboards/handwired/amigopunk/config.h +0 -6
@@ 24,12 24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Encoder setup */
#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { E0 }
#define ENCODERS_PAD_B { E1 }
#endif

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE


M keyboards/handwired/amigopunk/info.json => keyboards/handwired/amigopunk/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1805",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E0", "pin_b": "E1"}
        ]
    },
    "processor": "at90usb1286",
    "bootloader": "halfkay",
    "layouts": {

M keyboards/handwired/bento/rev1/config.h => keyboards/handwired/bento/rev1/config.h +0 -3
@@ 16,9 16,6 @@

#pragma once

#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
  #define RGBLED_NUM 4

M keyboards/handwired/bento/rev1/info.json => keyboards/handwired/bento/rev1/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0xDAD3",
    "device_version": "1.0.0"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D1", "pin_b": "D0"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "matrix_pins": {

M keyboards/handwired/d48/config.h => keyboards/handwired/d48/config.h +0 -5
@@ 40,11 40,6 @@
)
#endif

/* Encoders */
#define ENCODERS_PAD_A { B3, A0 }
#define ENCODERS_PAD_B { A6, A1 }
/* #define ENCODER_RESOLUTION 4 */

/* OLED */
#define OLED_FONT_H "glcdfont_d48.c"
#define OLED_TIMEOUT 0

M keyboards/handwired/d48/info.json => keyboards/handwired/d48/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x6060",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "A6"},
            {"pin_a": "A0", "pin_b": "A1"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "board": "QMK_PROTON_C",

M keyboards/handwired/dactylmacropad/config.h => keyboards/handwired/dactylmacropad/config.h +0 -3
@@ 19,7 19,4 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 100

M keyboards/handwired/dactylmacropad/info.json => keyboards/handwired/dactylmacropad/info.json +5 -0
@@ 23,6 23,11 @@
        "pid": "0x0000",
        "vid": "0xFEED"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"}
        ]
    },
    "layouts": {
        "LAYOUT": {
            "layout": [

M keyboards/handwired/daishi/config.h => keyboards/handwired/daishi/config.h +0 -5
@@ 34,10 34,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Set up rotary encoder */
#define ENCODERS_PAD_A { F1 }
#define ENCODERS_PAD_B { F0 }
#define ENCODER_RESOLUTION 2

/* Set delay for tap_code on rotary encoder */
#define TAP_CODE_DELAY 10

M keyboards/handwired/daishi/info.json => keyboards/handwired/daishi/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F1", "pin_b": "F0", "resolution": 2}
        ]
    },
    "processor": "at90usb1286",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/handwired/daskeyboard/daskeyboard4/info.json => keyboards/handwired/daskeyboard/daskeyboard4/info.json +1 -2
@@ 39,8 39,7 @@
        "rotary": [
            {
            "pin_a": "B13",
            "pin_b": "B12",
            "resolution": 4
            "pin_b": "B12"
            }
        ]
    },

M keyboards/handwired/dc/mc/001/config.h => keyboards/handwired/dc/mc/001/config.h +0 -10
@@ 18,16 18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

/*
    RE_CHANNEL_A          = _BV(6),
    RE_CHANNEL_B          = _BV(5),
*/
#define ENCODERS_PAD_A \
    { B6 }
#define ENCODERS_PAD_B \
    { B5 }
#define ENCODER_RESOLUTION 4

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.
 */

M keyboards/handwired/dc/mc/001/info.json => keyboards/handwired/dc/mc/001/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4D43",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B5"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/handwired/ddg_56/config.h => keyboards/handwired/ddg_56/config.h +0 -3
@@ 19,6 19,3 @@

#define MATRIX_ROW_PINS { B5, B15, B9, B10, A14 }
#define MATRIX_COL_PINS { A2, B8, B13, B14, B4, B11, B12, A13, A15, A8, A7, A6, B0, B1 }

#define ENCODERS_PAD_A { A1, B3 }
#define ENCODERS_PAD_B { A0, B2 }

M keyboards/handwired/ddg_56/info.json => keyboards/handwired/ddg_56/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0xB195",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "A1", "pin_b": "A0"},
      {"pin_a": "B3", "pin_b": "B2"}
    ]
  },
  "processor": "STM32F303",
  "bootloader": "stm32-dfu",
  "board": "QMK_PROTON_C",

M keyboards/handwired/frankie_macropad/config.h => keyboards/handwired/frankie_macropad/config.h +0 -3
@@ 49,6 49,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { D0, D2 }
#define ENCODERS_PAD_B { D1, D3 }

M keyboards/handwired/frankie_macropad/info.json => keyboards/handwired/frankie_macropad/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "bootmagic": {
        "matrix": [2, 0]
    },

M keyboards/handwired/hnah108/config.h => keyboards/handwired/hnah108/config.h +0 -3
@@ 34,9 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }

#define RGB_DI_PIN E2
#define RGB_MATRIX_LED_COUNT 30
// RGB Matrix Animation modes. Explicitly enabled

M keyboards/handwired/hnah108/info.json => keyboards/handwired/hnah108/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"}
        ]
    },
    "backlight": {
        "pin": "B7",
        "levels": 4,

M keyboards/handwired/mutepad/config.h => keyboards/handwired/mutepad/config.h +0 -8
@@ 19,14 19,6 @@
#define MATRIX_COL_PINS \
    { B1, B3, B2, B6 }

/* encoder support */
#define ENCODERS_PAD_A \
    { F4 }
#define ENCODERS_PAD_B \
    { F5 }

#define ENCODER_RESOLUTION 2

#define TAP_CODE_DELAY 10

/* COL2ROW, ROW2COL */

M keyboards/handwired/mutepad/info.json => keyboards/handwired/mutepad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/handwired/obuwunkunubi/spaget/config.h => keyboards/handwired/obuwunkunubi/spaget/config.h +0 -4
@@ 32,10 32,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* Define encoder pins */
#define ENCODERS_PAD_A { F5, F7 } // 1a, 2a
#define ENCODERS_PAD_B { F4, F6 } // 1b, 2b

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/handwired/obuwunkunubi/spaget/info.json => keyboards/handwired/obuwunkunubi/spaget/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x6969",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"},
            {"pin_a": "F7", "pin_b": "F6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/handwired/pill60/config.h => keyboards/handwired/pill60/config.h +14 -21
@@ 1,17 1,17 @@
 /* Copyright 2020 Imam Rafii 
  * 
  * This program is free software: you can redistribute it and/or modify 
  * it under the terms of the GNU General Public License as published by 
  * the Free Software Foundation, either version 2 of the License, or 
  * (at your option) any later version. 
  * 
  * This program is distributed in the hope that it will be useful, 
  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  * GNU General Public License for more details. 
  * 
  * You should have received a copy of the GNU General Public License 
  * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
 /* Copyright 2020 Imam Rafii
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation, either version 2 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
#pragma once



@@ 20,10 20,3 @@

#define BACKLIGHT_PWM_DRIVER    PWMD5
#define BACKLIGHT_PWM_CHANNEL   1

/* Encoder */
#define ENCODERS_PAD_A \
    { B9 }
#define ENCODERS_PAD_B \
    { B8 }
#define ENCODER_RESOLUTION 2

M keyboards/handwired/pill60/info.json => keyboards/handwired/pill60/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5444",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B9", "pin_b": "B8", "resolution": 2}
        ]
    },
    "backlight": {
        "driver": "software",
        "pin": "B14",

M keyboards/handwired/prkl30/feather/config.h => keyboards/handwired/prkl30/feather/config.h +0 -3
@@ 20,9 20,6 @@
#define MATRIX_COL_PINS { D3, D1, B7, D6, C7, B6, B5, D7, C6, D0}
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define ENCODERS_PAD_A { F7 }
#define ENCODERS_PAD_B { F6 }
#define ENCODER_RESOLUTION 4

/* RGB Light Configuration */


A keyboards/handwired/prkl30/feather/info.json => keyboards/handwired/prkl30/feather/info.json +7 -0
@@ 0,0 1,7 @@
{
    "encoder": {
        "rotary": [
            {"pin_a": "F7", "pin_b": "F6"}
        ]
    }
}

M keyboards/handwired/prkl30/promicro/config.h => keyboards/handwired/prkl30/promicro/config.h +0 -3
@@ 20,9 20,6 @@
#define MATRIX_COL_PINS { B4, B5, F6, F5, F4, F7, B1, B3, B2, B6}
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 4

/* RGB Light Configuration */


A keyboards/handwired/prkl30/promicro/info.json => keyboards/handwired/prkl30/promicro/info.json +7 -0
@@ 0,0 1,7 @@
{
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    }
}
\ No newline at end of file

M keyboards/handwired/snatchpad/config.h => keyboards/handwired/snatchpad/config.h +0 -5
@@ 20,11 20,6 @@
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Rotary encoder options */
#define ENCODER_RESOLUTIONS { 4, 4 }
#define ENCODERS_PAD_A { D3, D0 }
#define ENCODERS_PAD_B { D2, D1 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/handwired/snatchpad/info.json => keyboards/handwired/snatchpad/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x7370",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2"},
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/handwired/swiftrax/bumblebee/config.h => keyboards/handwired/swiftrax/bumblebee/config.h +0 -4
@@ 25,10 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL

/* Encoder */
#define ENCODERS_PAD_A { C6 }
#define ENCODERS_PAD_B { B6 }

/* RGB Indicators */
#define RGB_DI_PIN E6
#define RGBLED_NUM 3

M keyboards/handwired/swiftrax/bumblebee/info.json => keyboards/handwired/swiftrax/bumblebee/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE881",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "B6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/handwired/swiftrax/digicarp65/config.h => keyboards/handwired/swiftrax/digicarp65/config.h +0 -3
@@ 25,6 25,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B7 }

M keyboards/handwired/swiftrax/digicarp65/info.json => keyboards/handwired/swiftrax/digicarp65/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE7F1",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "community_layouts": ["65_ansi", "65_ansi_split_bs", "65_iso", "65_iso_split_bs"],

M keyboards/handwired/swiftrax/joypad/config.h => keyboards/handwired/swiftrax/joypad/config.h +0 -3
@@ 23,9 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { C6, B3, B0, B1, D6, D5 }
#define MATRIX_COL_PINS { C7, B4, D0, C2 }

#define ENCODERS_PAD_A { C5 }
#define ENCODERS_PAD_B { C4 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/handwired/swiftrax/joypad/info.json => keyboards/handwired/swiftrax/joypad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xEA68",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C5", "pin_b": "C4"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/handwired/swiftrax/pandamic/config.h => keyboards/handwired/swiftrax/pandamic/config.h +0 -4
@@ 23,10 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D1, D2, B5, B7, D3, D5, D6, D4, D7, B4 }
#define MATRIX_COL_PINS { B6, C6, C7, F7, F6, F5, F4, F1, F0, D0 }

#define ENCODERS_PAD_A { E6 }
#define ENCODERS_PAD_B { B0 }


/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL


M keyboards/handwired/swiftrax/pandamic/info.json => keyboards/handwired/swiftrax/pandamic/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xEB0E",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/handwired/swiftrax/walter/config.h => keyboards/handwired/swiftrax/walter/config.h +0 -3
@@ 26,9 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B7 }

#define RGB_DI_PIN E6
#define RGBLED_NUM 24
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/handwired/swiftrax/walter/info.json => keyboards/handwired/swiftrax/walter/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE964",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h => keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h +0 -5
@@ 38,10 38,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define EE_HANDS

#define ENCODERS_PAD_A \
    { D5 }
#define ENCODERS_PAD_B \
    { C7 }

/* PMW33XX Settings */
#define PMW33XX_CS_PIN B6

M keyboards/handwired/tractyl_manuform/5x6_right/elite_c/info.json => keyboards/handwired/tractyl_manuform/5x6_right/elite_c/info.json +5 -0
@@ 1,5 1,10 @@
{
    "keyboard_name": "Tractyl Manuform (5x6) Elite-C",
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "C7"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h => keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h +0 -6
@@ 70,12 70,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define I2C1_SDA_PAL_MODE        4
#define I2C1_CLOCK_SPEED         400000

/* encoder config */
#define ENCODERS_PAD_A \
    { A7 }
#define ENCODERS_PAD_B \
    { A8 }

/* spi config for eeprom and pmw3360 sensor */
#define SPI_DRIVER                           SPID2
#define SPI_SCK_PIN                          B13

M keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json => keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json +5 -0
@@ 1,5 1,10 @@
{
    "keyboard_name": "Tractyl Manuform (5x6) Proton-C",
    "encoder": {
        "rotary": [
            {"pin_a": "A7", "pin_b": "A8"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu"
}

M keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h => keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h +0 -6
@@ 76,12 76,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define I2C1_CLOCK_SPEED  400000
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9

/* encoder config */
#define ENCODERS_PAD_A \
    { A13 }
#define ENCODERS_PAD_B \
    { A14 }

/* spi config for eeprom and pmw3360 sensor */
#define SPI_DRIVER                           SPID1
#define SPI_SCK_PIN                          A5

M keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json => keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json +5 -0
@@ 1,5 1,10 @@
{
    "keyboard_name": "Tractyl Manuform (5x6) BlackPill",
    "encoder": {
        "rotary": [
            {"pin_a": "A13", "pin_b": "A14"}
        ]
    },
    "processor": "STM32F411",
    "bootloader": "stm32-dfu",
    "board": "BLACKPILL_STM32_F411"

M keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h => keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h +0 -5
@@ 42,10 42,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define EE_HANDS

#define ENCODERS_PAD_A \
    { D5 }
#define ENCODERS_PAD_B \
    { D4 }

/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0

M keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/info.json => keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/info.json +5 -0
@@ 1,5 1,10 @@
{
    "keyboard_name": "Tractyl Manuform (5x6) Teensy 2.0++",
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "D4"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/handwired/uthol/rev3/config.h => keyboards/handwired/uthol/rev3/config.h +0 -8
@@ 25,14 25,6 @@
#define MATRIX_ROW_PINS \
    { A4, A3, A2, A1, A0 }


// Encoder config
#define ENCODERS_PAD_A \
    { C15 }
#define ENCODERS_PAD_B \
    { C14 }
#define ENCODER_RESOLUTION 2

// OLED config
#define OLED_DISPLAY_128X64
#define OLED_DISPLAY_WIDTH 128

M keyboards/handwired/uthol/rev3/info.json => keyboards/handwired/uthol/rev3/info.json +5 -0
@@ 3,6 3,11 @@
    "usb": {
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C15", "pin_b": "C14", "resolution": 2}
        ]
    },
    "processor": "STM32F401",
    "bootloader": "stm32-dfu",
    "board": "BLACKPILL_STM32_F401"

M keyboards/helix/rev3_4rows/config.h => keyboards/helix/rev3_4rows/config.h +0 -4
@@ 86,10 86,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Custom font */
#define OLED_FONT_H "keyboards/helix/common/glcdfont.c"

/* Encorder */
#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B5 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/helix/rev3_4rows/info.json => keyboards/helix/rev3_4rows/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0004",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B6", "pin_b": "B5"}
    ]
  },
  "split": {
    "soft_serial_pin": "D2"
  },

M keyboards/helix/rev3_5rows/config.h => keyboards/helix/rev3_5rows/config.h +0 -4
@@ 86,10 86,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Custom font */
#define OLED_FONT_H "keyboards/helix/common/glcdfont.c"

/* Encorder */
#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B5 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/helix/rev3_5rows/info.json => keyboards/helix/rev3_5rows/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0003",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B6", "pin_b": "B5"}
    ]
  },
  "split": {
    "soft_serial_pin": "D2"
  },

M keyboards/hillside/46/0_1/config.h => keyboards/hillside/46/0_1/config.h +0 -6
@@ 8,12 8,6 @@
#define SPLIT_HAND_MATRIX_GRID B5, F6
#define MATRIX_MASKED

/* Encoder */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }

#define RGBLIGHT_SLEEP

/* Haptic hardware */

M keyboards/hillside/46/0_1/info.json => keyboards/hillside/46/0_1/info.json +13 -1
@@ 13,6 13,11 @@
      "pid": "0x4846",
      "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },

    "features": {
        "encoder": true,


@@ 20,7 25,14 @@
        "rgblight": true
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5"}
                ]
            }
        }
    },

    "rgblight": {

M keyboards/hillside/48/0_1/config.h => keyboards/hillside/48/0_1/config.h +0 -7
@@ 3,13 3,6 @@

#pragma once


/* Encoder */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }

#define RGBLIGHT_SLEEP

/* Haptic hardware */

M keyboards/hillside/48/0_1/info.json => keyboards/hillside/48/0_1/info.json +13 -1
@@ 13,6 13,11 @@
      "pid": "0x67C0",
      "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },

    "features": {
        "encoder": true,


@@ 21,7 26,14 @@
    },
    "split": {
        "soft_serial_pin": "D2",
        "main": "left"
        "main": "left",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5"}
                ]
            }
        }
    },

    "rgblight": {

M keyboards/hillside/52/0_1/config.h => keyboards/hillside/52/0_1/config.h +0 -6
@@ 8,12 8,6 @@
#define SPLIT_HAND_MATRIX_GRID B5, F6
#define MATRIX_MASKED

/* Encoder */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }

#define RGBLIGHT_SLEEP

/* Haptic hardware */

M keyboards/hillside/52/0_1/info.json => keyboards/hillside/52/0_1/info.json +13 -1
@@ 13,6 13,11 @@
      "pid": "0x4852",
      "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },

    "features": {
        "encoder": true,


@@ 20,7 25,14 @@
        "rgblight": true
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5"}
                ]
            }
        }
    },

    "rgblight": {

M keyboards/hnahkb/vn66/config.h => keyboards/hnahkb/vn66/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B0 }
#define ENCODERS_PAD_B { B7 }
#define ENCODER_RESOLUTION 2

#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 20

M keyboards/hnahkb/vn66/info.json => keyboards/hnahkb/vn66/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xCA2C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B7", "resolution": 2}
        ]
    },
    "backlight": {
        "pin": "B6",
        "levels": 4,

M keyboards/hub16/config.h => keyboards/hub16/config.h +0 -7
@@ 44,13 44,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

/* ENCODER THINGS */
// #define ENCODER_DIRECTION_FLIP
#define ENCODERS_PAD_A \
    { F5, B5 }
#define ENCODERS_PAD_B \
    { F6, B4 }

/* Tap Dance timing */
#define TAPPING_TERM 200


M keyboards/hub16/info.json => keyboards/hub16/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x4810",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"},
            {"pin_a": "B5", "pin_b": "B4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "debounce": 20,

M keyboards/hub20/config.h => keyboards/hub20/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder Things */
// #define ENCODER_DIRECTION_FLIP
#define ENCODERS_PAD_A { B12, A8 }
#define ENCODERS_PAD_B { B13, A9 }

#define RGB_DI_PIN B15
#define RGBLED_NUM 27


M keyboards/hub20/info.json => keyboards/hub20/info.json +6 -0
@@ 8,6 8,12 @@
      "pid": "0x4414",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "B12", "pin_b": "B13"},
        {"pin_a": "A8", "pin_b": "A9"}
      ]
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/io_mini1800/config.h => keyboards/io_mini1800/config.h +0 -3
@@ 19,6 19,3 @@

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B0 }
#define ENCODERS_PAD_B { B1 }

M keyboards/io_mini1800/info.json => keyboards/io_mini1800/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/jagdpietr/drakon/config.h => keyboards/jagdpietr/drakon/config.h +0 -3
@@ 34,9 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { F0 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/jagdpietr/drakon/info.json => keyboards/jagdpietr/drakon/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7776",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "F0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/jkeys_design/gentleman65/config.h => keyboards/jkeys_design/gentleman65/config.h +0 -4
@@ 39,8 39,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 4

#define RGB_MATRIX_LED_COUNT 14

M keyboards/jkeys_design/gentleman65/info.json => keyboards/jkeys_design/gentleman65/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x2020",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/jkeys_design/gentleman65_se_s/config.h => keyboards/jkeys_design/gentleman65_se_s/config.h +0 -4
@@ 39,8 39,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#define ENCODERS_PAD_A { B0 }
#define ENCODERS_PAD_B { B1 }
#define ENCODER_RESOLUTION 4

#define RGB_MATRIX_LED_COUNT 14

M keyboards/jkeys_design/gentleman65_se_s/info.json => keyboards/jkeys_design/gentleman65_se_s/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x2322",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/jones/v03/config.h => keyboards/jones/v03/config.h +0 -5
@@ 41,11 41,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// No need to define DIODE_DIRECTION for Jones' custom Round-Robin matrix.
//#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder */
#define ENCODERS_PAD_A { F6, B3 }
#define ENCODERS_PAD_B { F7, B2 }
#define ENCODER_RESOLUTION 4  //the default & suggested is 4

/* Audio */
#ifdef AUDIO_ENABLE
  #define AUDIO_PIN C6

M keyboards/jones/v03/info.json => keyboards/jones/v03/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x175A",
    "device_version": "0.3.0"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F6", "pin_b": "F7"},
      {"pin_a": "B3", "pin_b": "B2"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/jones/v03_1/config.h => keyboards/jones/v03_1/config.h +0 -5
@@ 41,11 41,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// No need to define DIODE_DIRECTION for Jones' custom Round-Robin matrix.
//#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder */
#define ENCODERS_PAD_A { F6, B3 }
#define ENCODERS_PAD_B { F7, B2 }
#define ENCODER_RESOLUTION 4  //the default & suggested is 4

/* Audio */
#ifdef AUDIO_ENABLE
  #define AUDIO_PIN C6

M keyboards/jones/v03_1/info.json => keyboards/jones/v03_1/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x175A",
    "device_version": "0.3.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F6", "pin_b": "F7"},
      {"pin_a": "B3", "pin_b": "B2"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/jones/v1/config.h => keyboards/jones/v1/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder */
#define ENCODERS_PAD_A { F5, D2 }
#define ENCODERS_PAD_B { F4, D3 }
#define ENCODER_RESOLUTION 4  //the default & suggested is 4

/* Audio */
#ifdef AUDIO_ENABLE
  #define AUDIO_PIN C6

M keyboards/jones/v1/info.json => keyboards/jones/v1/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x175A",
    "device_version": "1.0.0"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F5", "pin_b": "F4"},
      {"pin_a": "D2", "pin_b": "D3"}
    ]
  },
  "bootmagic": {
    "matrix": [0, 9]
  },

M keyboards/jones/v1/keymaps/via/config.h => keyboards/jones/v1/keymaps/via/config.h +0 -3
@@ 24,9 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// when turn knob clockwise or counterclockwise.
// This is handy to assign key codes by VIA.

// Number of endoder
#define ENCODERS 2

// Mappings of encoder rotation to key position in key matrix.
// First encoder,  Left side  : k85, k86
// Second encoder, Right side : k95, k96

M keyboards/jones/v1/keymaps/via/keymap.c => keyboards/jones/v1/keymaps/via/keymap.c +4 -4
@@ 168,12 168,12 @@ bool led_update_user(led_t led_state) {
//------------------------------------------------------------------------------
// Rotary Encoder
//------------------------------------------------------------------------------
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],

M keyboards/kabedon/kabedon98e/config.h => keyboards/kabedon/kabedon98e/config.h +0 -4
@@ 45,10 45,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS 2
#define ENCODERS_PAD_A { B3,A14 }
#define ENCODERS_PAD_B { B5,A15 }

#define ENCODERS_CW_KEY  { { 0, 0 },{ 2, 0 } }
#define ENCODERS_CCW_KEY { { 6, 0 },{ 8, 0 } }


M keyboards/kabedon/kabedon98e/info.json => keyboards/kabedon/kabedon98e/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x3935",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B5"},
            {"pin_a": "A14", "pin_b": "A15"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/kabedon/kabedon98e/kabedon98e.c => keyboards/kabedon/kabedon98e/kabedon98e.c +4 -4
@@ 15,12 15,12 @@
 */
#include "kabedon98e.h"

static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],

M keyboards/kapcave/arya/config.h => keyboards/kapcave/arya/config.h +0 -4
@@ 26,10 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { B12, B14, C15 }
#define ENCODERS_PAD_B { B13, B15, C14 }

#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 25 

#define DYNAMIC_KEYMAP_LAYER_COUNT 3

M keyboards/kapcave/arya/info.json => keyboards/kapcave/arya/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x4152",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B12", "pin_b": "B13", "resolution": 2},
            {"pin_a": "B14", "pin_b": "B15", "resolution": 2},
            {"pin_a": "C15", "pin_b": "C14", "resolution": 2}
        ]
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",
    "community_layouts": ["alice_split_bs"],

M keyboards/keebio/bamfk1/config.h => keyboards/keebio/bamfk1/config.h +0 -3
@@ 8,9 8,6 @@
#    define STARTUP_SONG SONG(STARTUP_SOUND)
#endif

#define ENCODERS_PAD_A { C7, D7 }
#define ENCODERS_PAD_B { B5, D4 }
#define ENCODERS 2
#define ENCODERS_CW_KEY  { { 1, 1 }, { 3, 1 } }
#define ENCODERS_CCW_KEY { { 0, 1 }, { 2, 1 } }


M keyboards/keebio/bamfk1/info.json => keyboards/keebio/bamfk1/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x1111",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C7", "pin_b": "B5"},
            {"pin_a": "D7", "pin_b": "D4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/keebio/bdn9/rev1/config.h => keyboards/keebio/bdn9/rev1/config.h +0 -3
@@ 17,9 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#define ENCODERS_PAD_A { D0, F6, B6 }
#define ENCODERS_PAD_B { D1, F5, F7 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
  #define RGBLED_NUM 4

M keyboards/keebio/bdn9/rev1/info.json => keyboards/keebio/bdn9/rev1/info.json +7 -0
@@ 4,6 4,13 @@
        "pid": "0x1133",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "F6", "pin_b": "F5"},
            {"pin_a": "B6", "pin_b": "F7"}
        ]
    },
    "backlight": {
        "pin": "B5",
        "levels": 7

M keyboards/keebio/bdn9/rev2/config.h => keyboards/keebio/bdn9/rev2/config.h +0 -3
@@ 17,9 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

// Left, Right, Middle
#define ENCODERS_PAD_A { A8, B3, A10 }
#define ENCODERS_PAD_B { A4, A15, A9 }
#define TAP_CODE_DELAY 10

#define RGB_DI_PIN B15

M keyboards/keebio/bdn9/rev2/info.json => keyboards/keebio/bdn9/rev2/info.json +7 -0
@@ 4,6 4,13 @@
        "pid": "0x2133",
        "device_version": "2.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A8", "pin_b": "A4"},
            {"pin_a": "B3", "pin_b": "A15"},
            {"pin_a": "A10", "pin_b": "A9"}
        ]
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",
    "matrix_pins": {

M keyboards/keebio/dsp40/rev1/config.h => keyboards/keebio/dsp40/rev1/config.h +1 -2
@@ 20,8 20,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Keyboard Matrix Assignments */
#define MATRIX_ROW_PINS { B9, A9, A8, B15 }
#define MATRIX_COL_PINS { B10, B2, A3, A4, B7, B6, A10, C13, C14, C15, F0, F1 }
#define ENCODERS_PAD_A { A1 }
#define ENCODERS_PAD_B { A2 }

#define TAP_CODE_DELAY 10
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/dsp40/rev1/info.json => keyboards/keebio/dsp40/rev1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x144C",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A1", "pin_b": "A2"}
        ]
    },
    "backlight": {
        "pin": "A6",
        "levels": 7

M keyboards/keebio/encoder_actions.c => keyboards/keebio/encoder_actions.c +4 -11
@@ 18,16 18,12 @@
#include "encoder_actions.h"

#if defined(ENCODER_ENABLE)

#    ifdef ENCODERS
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
#    endif
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#    ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 38,11 34,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#    endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#    ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 50,7 44,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#    endif
}

void matrix_scan_kb(void) {

M keyboards/keebio/foldkb/rev1/config.h => keyboards/keebio/foldkb/rev1/config.h +0 -2
@@ 21,8 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7 }
#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

M keyboards/keebio/foldkb/rev1/info.json => keyboards/keebio/foldkb/rev1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1258",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "backlight": {
        "pin": "B5"
    },

M keyboards/keebio/iris/rev3/config.h => keyboards/keebio/iris/rev3/config.h +0 -3
@@ 22,9 22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F1, F4, F5, F6, D4, B4 }
#define SPLIT_HAND_PIN F0

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B7 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/iris/rev3/info.json => keyboards/keebio/iris/rev3/info.json +5 -0
@@ 4,6 4,11 @@
        "pid": "0x3256",
        "device_version": "3.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B7"}
        ]
    },
    "backlight": {
        "pin": "B6",
        "levels": 5

M keyboards/keebio/iris/rev4/config.h => keyboards/keebio/iris/rev4/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D7, D3, B7, F0, B3 }
#define SPLIT_HAND_PIN D5

#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }
#define ENCODERS_PAD_A_RIGHT { F7 }
#define ENCODERS_PAD_B_RIGHT { F6 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/iris/rev4/info.json => keyboards/keebio/iris/rev4/info.json +13 -1
@@ 4,6 4,11 @@
        "pid": "0x4256",
        "device_version": "4.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"}
        ]
    },
    "backlight": {
        "pin": "B5",
        "levels": 5


@@ 15,7 20,14 @@
        "speaker": "C6"
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F7", "pin_b": "F6"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "qmk-dfu"

M keyboards/keebio/iris/rev5/config.h => keyboards/keebio/iris/rev5/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D7, D3, B7, F0, B3 }
#define SPLIT_HAND_PIN D5

#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }
#define ENCODERS_PAD_A_RIGHT { F7 }
#define ENCODERS_PAD_B_RIGHT { F6 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/iris/rev5/info.json => keyboards/keebio/iris/rev5/info.json +13 -1
@@ 4,6 4,11 @@
        "pid": "0x5256",
        "device_version": "5.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"}
        ]
    },
    "backlight": {
        "pin": "B5",
        "levels": 5


@@ 15,7 20,14 @@
        "speaker": "C6"
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F7", "pin_b": "F6"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "qmk-dfu"

M keyboards/keebio/iris/rev6/config.h => keyboards/keebio/iris/rev6/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODERS_PAD_A_RIGHT { B3 }
#define ENCODERS_PAD_B_RIGHT { B2 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/iris/rev6/info.json => keyboards/keebio/iris/rev6/info.json +5 -0
@@ 4,6 4,11 @@
        "pid": "0x6256",
        "device_version": "6.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B2"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
    },

M keyboards/keebio/iris/rev6a/config.h => keyboards/keebio/iris/rev6a/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODERS_PAD_A_RIGHT { B3 }
#define ENCODERS_PAD_B_RIGHT { B2 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/iris/rev6a/info.json => keyboards/keebio/iris/rev6a/info.json +5 -0
@@ 4,6 4,11 @@
        "pid": "0x6356",
        "device_version": "6.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B2"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
    },

M keyboards/keebio/iris/rev6b/config.h => keyboards/keebio/iris/rev6b/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODERS_PAD_A_RIGHT { B3 }
#define ENCODERS_PAD_B_RIGHT { B2 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/iris/rev6b/info.json => keyboards/keebio/iris/rev6b/info.json +5 -0
@@ 4,6 4,11 @@
        "pid": "0x6456",
        "device_version": "6.2.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B2"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
    },

M keyboards/keebio/iris/rev7/config.h => keyboards/keebio/iris/rev7/config.h +0 -5
@@ 24,11 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5

#define ENCODERS_PAD_A { B3, F6 }
#define ENCODERS_PAD_B { B2, F7 }
#define ENCODERS_PAD_A_RIGHT { B3, F6 }
#define ENCODERS_PAD_B_RIGHT { B2, F7 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keebio/iris/rev7/info.json => keyboards/keebio/iris/rev7/info.json +6 -0
@@ 4,6 4,12 @@
        "pid": "0x7256",
        "device_version": "7.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B2"},
            {"pin_a": "F6", "pin_b": "F7"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
    },

M keyboards/keebio/kbo5000/rev1/config.h => keyboards/keebio/kbo5000/rev1/config.h +0 -4
@@ 25,10 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, D2, D3, B7, B1 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5, NO_PIN }
#define ENCODERS_PAD_B { F6, NO_PIN }
#define ENCODERS_PAD_A_RIGHT { D6, C7 }
#define ENCODERS_PAD_B_RIGHT { D4, C6 }

#define CAPS_LOCK_LED_PIN B6


M keyboards/keebio/kbo5000/rev1/info.json => keyboards/keebio/kbo5000/rev1/info.json +15 -1
@@ 8,11 8,25 @@
        "pid": "0x126A",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"},
            {"pin_a": "NO_PIN", "pin_b": "NO_PIN"}
        ]
    },
    "backlight": {
        "pin": "B5"
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "D6", "pin_b": "C7"},
                    {"pin_a": "D4", "pin_b": "C6"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/keebio/quefrency/rev2/config.h => keyboards/keebio/quefrency/rev2/config.h +0 -4
@@ 25,10 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }

#define CAPS_LOCK_LED_PIN B6


M keyboards/keebio/quefrency/rev2/info.json => keyboards/keebio/quefrency/rev2/info.json +13 -1
@@ 8,11 8,23 @@
        "pid": "0x2257",
        "device_version": "2.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "backlight": {
        "pin": "B5"
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "D6", "pin_b": "D4"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/keebio/quefrency/rev3/config.h => keyboards/keebio/quefrency/rev3/config.h +0 -4
@@ 25,10 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }

#define CAPS_LOCK_LED_PIN B6


M keyboards/keebio/quefrency/rev3/info.json => keyboards/keebio/quefrency/rev3/info.json +13 -1
@@ 8,11 8,23 @@
        "pid": "0x3357",
        "device_version": "3.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "backlight": {
        "pin": "B5"
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "D6", "pin_b": "D4"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/keebio/quefrency/rev4/config.h => keyboards/keebio/quefrency/rev4/config.h +0 -4
@@ 23,10 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

M keyboards/keebio/quefrency/rev4/info.json => keyboards/keebio/quefrency/rev4/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x4357",
        "device_version": "4.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "D6", "pin_b": "D4"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/keebio/quefrency/rev5/config.h => keyboards/keebio/quefrency/rev5/config.h +0 -4
@@ 23,10 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

M keyboards/keebio/quefrency/rev5/info.json => keyboards/keebio/quefrency/rev5/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x5357",
        "device_version": "5.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "D6", "pin_b": "D4"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/keebio/stick/config.h => keyboards/keebio/stick/config.h +0 -3
@@ 17,9 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#define ENCODERS_PAD_A { D1, D4 }
#define ENCODERS_PAD_B { D0, C6 }

/* WS2812 RGB LED */
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN

M keyboards/keebio/stick/info.json => keyboards/keebio/stick/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x111C",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"},
            {"pin_a": "D4", "pin_b": "C6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/keebsforall/coarse60/config.h => keyboards/keebsforall/coarse60/config.h +0 -4
@@ 47,10 47,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#define ENCODERS_PAD_A { A8 }
#define ENCODERS_PAD_B { A1 }
#define ENCODER_RESOLUTION 2

// 2 bits for 4 layout options
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2


M keyboards/keebsforall/coarse60/info.json => keyboards/keebsforall/coarse60/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5341",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A8", "pin_b": "A1", "resolution": 2}
        ]
    },
    "backlight": {
        "pin": "A6",
        "levels": 6,

M keyboards/keebsforall/freebirdnp/pro/config.h => keyboards/keebsforall/freebirdnp/pro/config.h +0 -4
@@ 17,10 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { D5 }

/*
 * Keyboard Matrix Assignments
 *

M keyboards/keebsforall/freebirdnp/pro/info.json => keyboards/keebsforall/freebirdnp/pro/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1014",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "D5"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "community_layouts": ["numpad_6x4", "ortho_6x4"],

M keyboards/keybage/radpad/config.h => keyboards/keybage/radpad/config.h +0 -5
@@ 23,11 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D4, F6 }
#define ENCODERS_PAD_B { C6, F7 }

#define ENCODER_RESOLUTION 2

#define RGB_DI_PIN F4
#ifdef RGB_DI_PIN
    #define RGBLED_NUM 16

M keyboards/keybage/radpad/info.json => keyboards/keybage/radpad/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x5250",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "C6", "resolution": 2},
            {"pin_a": "F6", "pin_b": "F7", "resolution": 2}
        ]
    },
    "bootmagic": {
        "matrix": [1, 3]
    },

M keyboards/keycapsss/kimiko/rev1/config.h => keyboards/keycapsss/kimiko/rev1/config.h +0 -7
@@ 38,13 38,6 @@
  #define RGBLIGHT_LIMIT_VAL 80
#endif

#ifdef ENCODER_ENABLE
#   define ENCODERS_PAD_A { F4 }
#   define ENCODERS_PAD_B { F5 }
#   define ENCODERS_PAD_A_RIGHT { F4 }
#   define ENCODERS_PAD_B_RIGHT { F5 }
#endif

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/keycapsss/kimiko/rev1/info.json => keyboards/keycapsss/kimiko/rev1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4B69",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/keycapsss/plaid_pad/config.h => keyboards/keycapsss/plaid_pad/config.h +0 -2
@@ 20,8 20,6 @@
#define MATRIX_ROW_PINS { C0, C1, C2, C3 }
#define MATRIX_COL_PINS { B0, D7, D6, D5 }

#define ENCODER_RESOLUTION 4

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/keycapsss/plaid_pad/rev1/config.h => keyboards/keycapsss/plaid_pad/rev1/config.h +0 -3
@@ 16,8 16,5 @@

#pragma once

#define ENCODERS_PAD_A { D1, B2 }
#define ENCODERS_PAD_B { D0, B1 }

#define LED_RED C5      // LED1
#define LED_GREEN C4    // LED2

M keyboards/keycapsss/plaid_pad/rev1/info.json => keyboards/keycapsss/plaid_pad/rev1/info.json +7 -1
@@ 2,5 2,11 @@
    "keyboard_name": "Plaid-Pad Rev1",
    "usb": {
        "device_version": "0.0.1"
    }
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"},
            {"pin_a": "B2", "pin_b": "B1"}
        ]
    },
}

M keyboards/keycapsss/plaid_pad/rev2/config.h => keyboards/keycapsss/plaid_pad/rev2/config.h +0 -3
@@ 16,8 16,5 @@

#pragma once

#define ENCODERS_PAD_A { D1, B2, B4, D4 }
#define ENCODERS_PAD_B { D0, B1, B3, B5 }

#define LED_RED C5      // LED1
#define LED_GREEN C4    // LED2

M keyboards/keycapsss/plaid_pad/rev2/info.json => keyboards/keycapsss/plaid_pad/rev2/info.json +8 -0
@@ 2,5 2,13 @@
    "keyboard_name": "Plaid-Pad Rev2",
    "usb": {
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"},
            {"pin_a": "B2", "pin_b": "B1"},
            {"pin_a": "B4", "pin_b": "B3"},
            {"pin_a": "D4", "pin_b": "B5"}
        ]
    }
}

D keyboards/keycapsss/plaid_pad/rev3/config.h => keyboards/keycapsss/plaid_pad/rev3/config.h +0 -20
@@ 1,20 0,0 @@
/* Copyright 2020 Ben Roesner (keycapsss.com)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#define ENCODERS_PAD_A { D1, B2, B4, D4 }
#define ENCODERS_PAD_B { D0, B1, B3, B5 }

M keyboards/keycapsss/plaid_pad/rev3/info.json => keyboards/keycapsss/plaid_pad/rev3/info.json +9 -1
@@ 2,5 2,13 @@
    "keyboard_name": "Plaid-Pad Rev3",
    "usb": {
        "device_version": "0.0.3"
    }
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"},
            {"pin_a": "B2", "pin_b": "B1"},
            {"pin_a": "B4", "pin_b": "B3"},
            {"pin_a": "D4", "pin_b": "B5"}
        ]
    },
}

M keyboards/keychron/q0/rev_0131/config.h => keyboards/keychron/q0/rev_0131/config.h +0 -3
@@ 35,7 35,4 @@
#define NUM_LOCK_LED_INDEX 5

/* Encoder Configuration */
#define ENCODERS_PAD_A { A3 }
#define ENCODERS_PAD_B { A4 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

M keyboards/keychron/q0/rev_0131/info.json => keyboards/keychron/q0/rev_0131/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0131",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A3", "pin_b": "A4"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/keychron/q1/ansi_encoder/config.h => keyboards/keychron/q1/ansi_encoder/config.h +0 -7
@@ 24,10 24,3 @@
#define DRIVER_1_LED_TOTAL 59
#define DRIVER_2_LED_TOTAL 23
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder used pins */
#define ENCODERS_PAD_A { E6 }
#define ENCODERS_PAD_B { B7 }

/* Specifies the number of pulses the encoder registers between each detent */
#define ENCODER_RESOLUTION 4

M keyboards/keychron/q1/ansi_encoder/info.json => keyboards/keychron/q1/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0101",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/keychron/q1/iso_encoder/config.h => keyboards/keychron/q1/iso_encoder/config.h +0 -4
@@ 33,9 33,5 @@
#define DRIVER_2_LED_TOTAL 24
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { E6 }
#define ENCODERS_PAD_B { B7 }

/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 44

M keyboards/keychron/q1/iso_encoder/info.json => keyboards/keychron/q1/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0103",
        "device_version": "1.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/keychron/q10/ansi_encoder/config.h => keyboards/keychron/q10/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q10/ansi_encoder/info.json => keyboards/keychron/q10/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x01A1",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/keychron/q10/iso_encoder/config.h => keyboards/keychron/q10/iso_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q10/iso_encoder/info.json => keyboards/keychron/q10/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x01A3",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/keychron/q2/ansi_encoder/config.h => keyboards/keychron/q2/ansi_encoder/config.h +0 -3
@@ 22,7 22,4 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder used pins */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

M keyboards/keychron/q2/ansi_encoder/info.json => keyboards/keychron/q2/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0111",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q2/iso_encoder/config.h => keyboards/keychron/q2/iso_encoder/config.h +0 -3
@@ 22,7 22,4 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder used pins */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

M keyboards/keychron/q2/iso_encoder/info.json => keyboards/keychron/q2/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0113",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q2/jis_encoder/config.h => keyboards/keychron/q2/jis_encoder/config.h +0 -3
@@ 24,9 24,6 @@
#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q2/jis_encoder/info.json => keyboards/keychron/q2/jis_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0115",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q3/ansi_encoder/config.h => keyboards/keychron/q3/ansi_encoder/config.h +0 -3
@@ 26,9 26,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

#define CKLED2001_CURRENT_TUNE \

M keyboards/keychron/q3/ansi_encoder/info.json => keyboards/keychron/q3/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0121",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q3/iso_encoder/config.h => keyboards/keychron/q3/iso_encoder/config.h +0 -3
@@ 26,9 26,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

#define CKLED2001_CURRENT_TUNE \

M keyboards/keychron/q3/iso_encoder/info.json => keyboards/keychron/q3/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0123",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q3/jis_encoder/config.h => keyboards/keychron/q3/jis_encoder/config.h +0 -3
@@ 31,9 31,6 @@
    { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable CapsLcok LED */

M keyboards/keychron/q3/jis_encoder/info.json => keyboards/keychron/q3/jis_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0125",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q5/ansi_encoder/config.h => keyboards/keychron/q5/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q5/ansi_encoder/info.json => keyboards/keychron/q5/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0151",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q5/iso_encoder/config.h => keyboards/keychron/q5/iso_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q5/iso_encoder/info.json => keyboards/keychron/q5/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0153",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q6/ansi_encoder/config.h => keyboards/keychron/q6/ansi_encoder/config.h +0 -3
@@ 31,9 31,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED*/

M keyboards/keychron/q6/ansi_encoder/info.json => keyboards/keychron/q6/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0161",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q6/iso_encoder/config.h => keyboards/keychron/q6/iso_encoder/config.h +0 -3
@@ 31,9 31,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED*/

M keyboards/keychron/q6/iso_encoder/info.json => keyboards/keychron/q6/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0163",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q65/ansi_encoder/config.h => keyboards/keychron/q65/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q65/ansi_encoder/info.json => keyboards/keychron/q65/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x01B1",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/keychron/q8/ansi_encoder/config.h => keyboards/keychron/q8/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { A10 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q8/ansi_encoder/info.json => keyboards/keychron/q8/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0181",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "A10"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q8/iso_encoder/config.h => keyboards/keychron/q8/iso_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { A10 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q8/iso_encoder/info.json => keyboards/keychron/q8/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0183",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "A10"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q9/ansi_encoder/config.h => keyboards/keychron/q9/ansi_encoder/config.h +0 -3
@@ 21,9 21,6 @@
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

/* Encoder Configuration */
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q9/ansi_encoder/info.json => keyboards/keychron/q9/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0191",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/q9/iso_encoder/config.h => keyboards/keychron/q9/iso_encoder/config.h +0 -3
@@ 21,9 21,6 @@
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

/* Encoder Configuration */
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/q9/iso_encoder/info.json => keyboards/keychron/q9/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0193",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v1/ansi_encoder/config.h => keyboards/keychron/v1/ansi_encoder/config.h +0 -3
@@ 25,9 25,6 @@
    { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v1/ansi_encoder/info.json => keyboards/keychron/v1/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0311",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v1/iso_encoder/config.h => keyboards/keychron/v1/iso_encoder/config.h +0 -3
@@ 25,9 25,6 @@
    { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v1/iso_encoder/info.json => keyboards/keychron/v1/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0313",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v1/jis_encoder/config.h => keyboards/keychron/v1/jis_encoder/config.h +0 -3
@@ 25,9 25,6 @@
    { 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D }

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v1/jis_encoder/info.json => keyboards/keychron/v1/jis_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0315",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v10/ansi_encoder/config.h => keyboards/keychron/v10/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v10/ansi_encoder/info.json => keyboards/keychron/v10/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x03A1",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/keychron/v10/iso_encoder/config.h => keyboards/keychron/v10/iso_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v10/iso_encoder/info.json => keyboards/keychron/v10/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x03A3",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/keychron/v2/ansi_encoder/config.h => keyboards/keychron/v2/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v2/ansi_encoder/info.json => keyboards/keychron/v2/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0321",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v2/iso_encoder/config.h => keyboards/keychron/v2/iso_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v2/iso_encoder/info.json => keyboards/keychron/v2/iso_encoder/info.json +5 -0
@@ 7,6 7,11 @@
        "pid": "0x0323",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v2/jis_encoder/config.h => keyboards/keychron/v2/jis_encoder/config.h +0 -3
@@ 25,9 25,6 @@
    { 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D }

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v2/jis_encoder/info.json => keyboards/keychron/v2/jis_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0325",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v3/ansi_encoder/config.h => keyboards/keychron/v3/ansi_encoder/config.h +0 -3
@@ 28,9 28,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable CapsLcok LED */

M keyboards/keychron/v3/ansi_encoder/info.json => keyboards/keychron/v3/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0331",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v3/iso_encoder/config.h => keyboards/keychron/v3/iso_encoder/config.h +0 -3
@@ 28,9 28,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v3/iso_encoder/info.json => keyboards/keychron/v3/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0333",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v3/jis_encoder/config.h => keyboards/keychron/v3/jis_encoder/config.h +0 -3
@@ 31,9 31,6 @@
    { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { A8 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable CapsLcok LED */

M keyboards/keychron/v3/jis_encoder/info.json => keyboards/keychron/v3/jis_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0335",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "A8"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v5/ansi_encoder/config.h => keyboards/keychron/v5/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v5/ansi_encoder/info.json => keyboards/keychron/v5/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0351",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v5/iso_encoder/config.h => keyboards/keychron/v5/iso_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v5/iso_encoder/info.json => keyboards/keychron/v5/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0353",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v6/ansi_encoder/config.h => keyboards/keychron/v6/ansi_encoder/config.h +0 -3
@@ 37,9 37,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED*/

M keyboards/keychron/v6/ansi_encoder/info.json => keyboards/keychron/v6/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0361",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v6/iso_encoder/config.h => keyboards/keychron/v6/iso_encoder/config.h +0 -3
@@ 37,9 37,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { C14 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED*/

M keyboards/keychron/v6/iso_encoder/info.json => keyboards/keychron/v6/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0363",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C14", "pin_b": "A2"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v8/ansi_encoder/config.h => keyboards/keychron/v8/ansi_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v8/ansi_encoder/info.json => keyboards/keychron/v8/ansi_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0381",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keychron/v8/iso_encoder/config.h => keyboards/keychron/v8/iso_encoder/config.h +0 -3
@@ 22,9 22,6 @@
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

/* Encoder Configuration */
#define ENCODERS_PAD_A { A10 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3

/* Enable caps-lock LED */

M keyboards/keychron/v8/iso_encoder/info.json => keyboards/keychron/v8/iso_encoder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0383",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A10", "pin_b": "B5"}
        ]
    },
    "processor": "STM32L432",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/keyhive/absinthe/config.h => keyboards/keyhive/absinthe/config.h +0 -3
@@ 31,9 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D2, D1, B6, D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, D3, D0 }

#define ENCODERS_PAD_A { B7 }
#define ENCODERS_PAD_B { D5 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/keyhive/absinthe/info.json => keyboards/keyhive/absinthe/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xFEED",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B7", "pin_b": "D5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/keyhive/uno/rev2/config.h => keyboards/keyhive/uno/rev2/config.h +0 -4
@@ 18,10 18,6 @@

#define RGBLIGHT_EFFECT_RAINBOW_MOOD

/* ENCODER */
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }

#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D1
#define RGBLED_NUM 1

M keyboards/keyhive/uno/rev2/info.json => keyboards/keyhive/uno/rev2/info.json +5 -0
@@ 3,6 3,11 @@
    "usb": {
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/keyprez/bison/config.h => keyboards/keyprez/bison/config.h +0 -6
@@ 34,12 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B5 }
#define ENCODERS_PAD_A_RIGHT { B5 }
#define ENCODERS_PAD_B_RIGHT { B6 }
#define ENCODER_RESOLUTION 4

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/keyprez/bison/info.json => keyboards/keyprez/bison/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
        "soft_serial_pin": "D0",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B5", "pin_b": "B6"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/keyprez/corgi/config.h => keyboards/keyprez/corgi/config.h +0 -4
@@ 28,10 28,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D4 }
#define ENCODER_RESOLUTION 4

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/keyprez/corgi/info.json => keyboards/keyprez/corgi/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 0,

M keyboards/keyprez/rhino/config.h => keyboards/keyprez/rhino/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }
#define ENCODER_RESOLUTION 4

#define AUDIO_PIN C6
#define MUSIC_MAP


M keyboards/keyprez/rhino/info.json => keyboards/keyprez/rhino/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 2,

M keyboards/keyprez/unicorn/config.h => keyboards/keyprez/unicorn/config.h +0 -7
@@ 43,10 43,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D4 }
#define ENCODER_RESOLUTIONS { 4 }
#define ENCODERS_PAD_A_RIGHT { D2 }
#define ENCODERS_PAD_B_RIGHT { D4 }
#define ENCODER_RESOLUTIONS_RIGHT {4}

M keyboards/keyprez/unicorn/info.json => keyboards/keyprez/unicorn/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7563",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D4"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
    },

M keyboards/keysofkings/twokey/config.h => keyboards/keysofkings/twokey/config.h +0 -5
@@ 21,11 21,6 @@
#define MATRIX_ROW_PINS { B4, B5 }
#define MATRIX_COL_PINS { B3, B2 }


#define ENCODERS_PAD_A { D7 }
#define ENCODERS_PAD_B { E6 }
#define ENCODER_RESOLUTION 1

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/keysofkings/twokey/info.json => keyboards/keysofkings/twokey/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xAE12",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D7", "pin_b": "E6", "resolution": 1}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/keystonecaps/gameroyadvance/config.h => keyboards/keystonecaps/gameroyadvance/config.h +0 -5
@@ 23,10 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D4, D0, D1, C6, D7, E6, F4, B2, B6 }
#define MATRIX_ROW_PINS_RIGHT { D7, E6, B4, B5, B6 }
#define MATRIX_COL_PINS_RIGHT { C6, D4, D0, D1, B1, F7, F4, F5, F6 }
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B4 }
#define ENCODERS_PAD_A_RIGHT { B3 }
#define ENCODERS_PAD_B_RIGHT { B2 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


@@ 53,5 49,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define ENCODER_RESOLUTION 4
#endif

M keyboards/keystonecaps/gameroyadvance/info.json => keyboards/keystonecaps/gameroyadvance/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x6060",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B4"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B3", "pin_b": "B2"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/kikoslab/ellora65/config.h => keyboards/kikoslab/ellora65/config.h +0 -3
@@ 26,9 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B0 }
#define ENCODERS_PAD_B { B1 }

/*RGB TINGS*/
#define RGB_DI_PIN E6
#define RGBLED_NUM 12

M keyboards/kikoslab/ellora65/info.json => keyboards/kikoslab/ellora65/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE88F",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B1"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 0]
    },

M keyboards/kikoslab/kl90/config.h => keyboards/kikoslab/kl90/config.h +0 -3
@@ 26,9 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { A3, C3 }
#define ENCODERS_PAD_B { A4, C4 }

#define EMCODER_DIRECTION_FLIP

/*EEPROM for via*/

M keyboards/kikoslab/kl90/info.json => keyboards/kikoslab/kl90/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0xEA53",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A3", "pin_b": "A4"},
            {"pin_a": "C3", "pin_b": "C4"}
        ]
    },
    "processor": "at90usb1286",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/kingly_keys/ave/config.h => keyboards/kingly_keys/ave/config.h +0 -4
@@ 17,10 17,6 @@

#pragma once


#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B1 }

#define MATRIX_ROW_PINS { B3, F4, F7, F6, F5 }
#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0}


M keyboards/kingly_keys/ave/ortho/info.json => keyboards/kingly_keys/ave/ortho/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x1225",
      "device_version": "0.1.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B2", "pin_b": "B1"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/kingly_keys/ave/staggered/info.json => keyboards/kingly_keys/ave/staggered/info.json +5 -0
@@ 8,6 8,11 @@
     "pid": "0x1225",
     "device_version": "0.1.1"
  },
  "encoder": {
     "rotary": [
        {"pin_a": "B2", "pin_b": "B1"}
     ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/kingly_keys/romac_plus/config.h => keyboards/kingly_keys/romac_plus/config.h +0 -3
@@ 5,9 5,6 @@
#define MATRIX_ROW_PINS { C6, D4, D2, D3 }
#define MATRIX_COL_PINS { F6, F5, F4 }

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/kingly_keys/romac_plus/info.json => keyboards/kingly_keys/romac_plus/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0002",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B3", "pin_b": "B2"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "layouts": {

M keyboards/kingly_keys/ropro/config.h => keyboards/kingly_keys/ropro/config.h +0 -4
@@ 16,10 16,6 @@
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.#pragma once
 */


#define ENCODERS_PAD_A { B7 }
#define ENCODERS_PAD_B { D5 }

 /* key matrix pins */
#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, F1, NO_PIN }
#define MATRIX_COL_PINS { F0, D1, D0, D4, C6, D7, E6, B4, B5, B3, B2, B6, D2, C7 }

M keyboards/kingly_keys/ropro/info.json => keyboards/kingly_keys/ropro/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0002",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B7", "pin_b": "D5"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "layouts": {

M keyboards/kingly_keys/soap/config.h => keyboards/kingly_keys/soap/config.h +0 -4
@@ 14,10 14,6 @@
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.#pragma once
 */


#define ENCODERS_PAD_A { D6 }
#define ENCODERS_PAD_B { D7 }

 /* key matrix pins */
#define MATRIX_ROW_PINS { C7, C6 }
#define MATRIX_COL_PINS { F4, F1, F0, D5 }

M keyboards/kingly_keys/soap/info.json => keyboards/kingly_keys/soap/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0003",
    "device_version": "0.0.4"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D6", "pin_b": "D7"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/kiwikeebs/macro/config.h => keyboards/kiwikeebs/macro/config.h +0 -3
@@ 34,9 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/kiwikeebs/macro/info.json => keyboards/kiwikeebs/macro/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4712",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/kiwikeebs/macro_v2/config.h => keyboards/kiwikeebs/macro_v2/config.h +0 -3
@@ 34,9 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D7 }
#define ENCODERS_PAD_B { D6 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/kiwikeebs/macro_v2/info.json => keyboards/kiwikeebs/macro_v2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4712",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D7", "pin_b": "D6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/kiwikey/borderland/config.h => keyboards/kiwikey/borderland/config.h +0 -3
@@ 20,9 20,6 @@
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

#define RGB_DI_PIN B2

M keyboards/kiwikey/borderland/info.json => keyboards/kiwikey/borderland/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x424C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/knobgoblin/config.h => keyboards/knobgoblin/config.h +0 -3
@@ 21,9 21,6 @@
#define MATRIX_ROW_PINS { D4, B6, B2, B3, B1 }
#define MATRIX_COL_PINS { B5, B4, E6, D7, C6 }

#define ENCODERS_PAD_A { F7, F5 }
#define ENCODERS_PAD_B { F6, F4 }

#define OLED_TIMEOUT 180000

/* COL2ROW or ROW2COL */

M keyboards/knobgoblin/info.json => keyboards/knobgoblin/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F7", "pin_b": "F6"},
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h => keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h +0 -5
@@ 16,11 16,6 @@

#pragma once


#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 2

/*
 * Keyboard Matrix Assignments
 *

M keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json => keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xEF9C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F5", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h => keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +0 -5
@@ 15,11 15,6 @@
 */
#pragma once


#define ENCODERS_PAD_A { F1 }
#define ENCODERS_PAD_B { F4 }
#define ENCODER_RESOLUTION 2

/*
 * Keyboard Matrix Assignments
 *

M keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json => keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1124",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F1", "pin_b": "F4", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 3,

M keyboards/latincompass/latinpad/config.h => keyboards/latincompass/latinpad/config.h +0 -5
@@ 77,8 77,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.*/
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#define OLED_FONT_H "./lib/glcdfont.c"

#define ENCODERS_PAD_A { B4, B5 }
#define ENCODERS_PAD_B { B2, B6 }

#define ENCODER_RESOLUTION 4

M keyboards/latincompass/latinpad/info.json => keyboards/latincompass/latinpad/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x6C70",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B2"},
            {"pin_a": "B5", "pin_b": "B6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/latincompass/latinpadble/config.h => keyboards/latincompass/latinpadble/config.h +0 -5
@@ 84,9 84,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.*/

#define OLED_FONT_H "./lib/glcdfont.c"

#define ENCODERS_PAD_A { C7 }
#define ENCODERS_PAD_B { F7 }

#define ENCODER_RESOLUTION 4

#define VIA_HAS_BROKEN_KEYCODES

M keyboards/latincompass/latinpadble/info.json => keyboards/latincompass/latinpadble/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7C98",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C7", "pin_b": "F7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/leafcutterlabs/bigknob/config.h => keyboards/leafcutterlabs/bigknob/config.h +0 -5
@@ 17,11 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* rotary encoder 1,2,3 closest to usb port is 0*/
#define ENCODERS_PAD_A { D0}
#define ENCODERS_PAD_B { D2}
#define ENCODER_RESOLUTION 4 //default/suggested

/* ws2812 RGB LED */
#define RGB_DI_PIN C7 //D3 - underglow C7 - backlight
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/leafcutterlabs/bigknob/info.json => keyboards/leafcutterlabs/bigknob/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0007",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D0", "pin_b": "D2"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "matrix_pins": {

M keyboards/lily58/glow_enc/config.h => keyboards/lily58/glow_enc/config.h +0 -5
@@ 31,8 31,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_SPLIT { 36, 36 }
#define RGBLIGHT_SPLIT
#define RGBLIGHT_LIMIT_VAL 120

#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { D4 }
#define ENCODERS_PAD_A_RIGHT { D4 }
#define ENCODERS_PAD_B_RIGHT { F5 }

M keyboards/lily58/glow_enc/info.json => keyboards/lily58/glow_enc/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x0059",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "D4"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "D4", "pin_b": "F5"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/lily58/light/config.h => keyboards/lily58/light/config.h +0 -5
@@ 29,8 29,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 70
#define RGBLIGHT_SPLIT
#define RGBLIGHT_LIMIT_VAL 120

#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }
#define ENCODERS_PAD_A_RIGHT { F5 }
#define ENCODERS_PAD_B_RIGHT { F4 }

M keyboards/lily58/light/info.json => keyboards/lily58/light/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x4C4C",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F5", "pin_b": "F4"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/lime/rev1/config.h => keyboards/lime/rev1/config.h +0 -9
@@ 23,15 23,6 @@

#define TAPPING_TERM 100

/* encoder support */
#ifdef ENCODER_ENABLE
#   define ENCODERS_PAD_A { F5 }
#   define ENCODERS_PAD_B { F4 }
#   define ENCODERS_PAD_A_RIGHT { F4 }
#   define ENCODERS_PAD_B_RIGHT { F5 }
#   define ENCODER_RESOLUTION 2
#endif

/* joystick support */
#ifdef JOYSTICK_ENABLE
#   define JOYSTICK_AXIS_COUNT 2

M keyboards/lime/rev1/info.json => keyboards/lime/rev1/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x2784",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4", "resolution": 2}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5", "resolution": 2}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/linworks/whale75/config.h => keyboards/linworks/whale75/config.h +0 -7
@@ 44,11 44,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL


/* Rotary encoder - set the resolution fitting your encoder.
Most will need a value of 4. If 1 encoder click results in 2 keycodes sent
double the value. If you need 2 clicks for 1 keycode, half it */
#define ENCODER_RESOLUTION 2
#define ENCODERS_PAD_A { A15 }
#define ENCODERS_PAD_B { A14 }
#define TAP_CODE_DELAY 10

M keyboards/linworks/whale75/info.json => keyboards/linworks/whale75/info.json +5 -0
@@ 7,6 7,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A15", "pin_b": "A14", "resolution": 2}
        ]
    },
    "backlight": {
        "pin": "A10",
        "levels": 5,

M keyboards/lizard_trick/tenkey_plusplus/config.h => keyboards/lizard_trick/tenkey_plusplus/config.h +0 -5
@@ 32,11 32,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B7, D4, B5, B6, C6, C7 }
#define MATRIX_COL_PINS { D5, D3, D2, F7 }

#define ENCODERS_PAD_A \
    { B4, F0, F4 }
#define ENCODERS_PAD_B \
    { D7, E6, F1 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/lizard_trick/tenkey_plusplus/info.json => keyboards/lizard_trick/tenkey_plusplus/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "D7"},
            {"pin_a": "F0", "pin_b": "E6"},
            {"pin_a": "F4", "pin_b": "F1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/ll3macorn/bongopad/config.h => keyboards/ll3macorn/bongopad/config.h +0 -4
@@ 13,10 13,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* encoders */
#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B3 }

/* misc */
#define LAYER_STATE_8BIT
#define NO_ACTION_TAPPING

M keyboards/ll3macorn/bongopad/info.json => keyboards/ll3macorn/bongopad/info.json +5 -0
@@ 8,6 8,11 @@
		"pid": "0x2949",
		"device_version": "0.0.1"
	},
	"encoder": {
		"rotary": [
			{"pin_a": "B1", "pin_b": "B3"}
		]
	},
	"bootmagic": {
		"matrix": [1, 0]
	},

M keyboards/lw67/config.h => keyboards/lw67/config.h +0 -5
@@ 21,11 21,6 @@
#define MATRIX_ROW_PINS { E6, B7, D0, D1, D2 }
#define MATRIX_COL_PINS { D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, B0, B1 }

/*ENCODER*/
#define ENCODERS_PAD_A { F0 }
#define ENCODERS_PAD_B { F1 }
#define ENCODER_RESOLUTION 4

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/lw67/info.json => keyboards/lw67/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x9998",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F0", "pin_b": "F1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts":{

M keyboards/lw75/config.h => keyboards/lw75/config.h +0 -4
@@ 7,10 7,6 @@
#define MATRIX_ROW_PINS { E6, B7, D0, D1, D2, B1 }
#define MATRIX_COL_PINS { D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, B0, B2 }

/*ENCODER*/
#define ENCODERS_PAD_A { F0 }
#define ENCODERS_PAD_B { F1 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/lw75/info.json => keyboards/lw75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1111",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F0", "pin_b": "F1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts":{

M keyboards/lyso1/lck75/config.h => keyboards/lyso1/lck75/config.h +0 -4
@@ 31,10 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { C2, C3, C7, C4, C6, C5 }
#define MATRIX_COL_PINS { A0, B0, A1, B1, A2, B2, A3, B3, A4, B4, A5, A6, A7, D7, D6, D5 }

#define ENCODERS_PAD_B { D1 }
#define ENCODERS_PAD_A { D0 }
#define ENCODER_RESOLUTION 2 //default/suggested

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/lyso1/lck75/info.json => keyboards/lyso1/lck75/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x6163",
      "device_version": "0.0.2"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "D1", "pin_b": "D0", "resolution": 2}
      ]
    },
    "processor": "atmega32a",
    "bootloader": "usbasploader",
    "layouts": {

M keyboards/macro1/config.h => keyboards/macro1/config.h +0 -5
@@ 21,11 21,6 @@
#define MATRIX_ROW_PINS { E6, B7, D0, D1, D2, B3 }
#define MATRIX_COL_PINS { D3, D4, D6, D7 }

/*ENCODER*/
#define ENCODERS_PAD_A { F0 }
#define ENCODERS_PAD_B { F1 }
#define ENCODER_RESOLUTION 4

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/macro1/info.json => keyboards/macro1/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x9999",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "F0", "pin_b": "F1"}
      ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts":{

D keyboards/macro3/config.h => keyboards/macro3/config.h +0 -9
@@ 1,9 0,0 @@
/* Copyright 2020 David Philip Barr <@davidphilipbarr>
 * Copyright 2021 @filterpaper
 * SPDX-License-Identifier: GPL-2.0+
 */

#pragma once

#define ENCODERS_PAD_A { D2, F7 }
#define ENCODERS_PAD_B { D3, F6 }

M keyboards/macro3/info.json => keyboards/macro3/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x3388",
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"},
            {"pin_a": "F7", "pin_b": "F6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/macrocat/config.h => keyboards/macrocat/config.h +0 -4
@@ 3,8 3,4 @@

#pragma once


/* rotary encoder */
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_SWITCH B7

M keyboards/macrocat/info.json => keyboards/macrocat/info.json +5 -0
@@ 24,6 24,11 @@
        "pid": "0x8086",
        "vid": "0x2022"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    },
    "layout_aliases": {
        "LAYOUT_numpad_4x4": "LAYOUT_ortho_4x4"
    },

M keyboards/makrosu/config.h => keyboards/makrosu/config.h +0 -2
@@ 21,8 21,6 @@
#define MATRIX_ROW_PINS { B6 }
#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5}

#define ENCODERS_PAD_A { E6 }
#define ENCODERS_PAD_B { D1 }
#define TAP_CODE_DELAY 10
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

M keyboards/makrosu/info.json => keyboards/makrosu/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x8585",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "D1"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 5]
    },

M keyboards/manyboard/macro/config.h => keyboards/manyboard/macro/config.h +0 -4
@@ 21,10 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D0, D1, D2, D3 }
#define MATRIX_COL_PINS { D4, D5, D6, D7 }

/*Encoder Pins*/
#define ENCODERS_PAD_A { C6 }
#define ENCODERS_PAD_B { C7 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION ROW2COL


M keyboards/manyboard/macro/info.json => keyboards/manyboard/macro/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0015",
        "device_version": "1.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "C7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/marksard/leftover30/config.h => keyboards/marksard/leftover30/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


/* Encoder */
#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }
// #define ENCODER_DIRECTION_FLIP

/*
 * Keyboard Matrix Assignments
 *

M keyboards/marksard/leftover30/info.json => keyboards/marksard/leftover30/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xDFA8",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/matthewdias/m3n3van/config.h => keyboards/matthewdias/m3n3van/config.h +0 -2
@@ 21,8 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* m3n3van PCB default pin-out */
#define MATRIX_ROW_PINS { B5, B6, C6, C7 }
#define MATRIX_COL_PINS { F4, F5, F6, F1, F7, F0, E6, D3, D0, D1, D2, D4, D6 }
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { D7 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

M keyboards/matthewdias/m3n3van/info.json => keyboards/matthewdias/m3n3van/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x2323",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "D7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/maxr1998/pulse4k/config.h => keyboards/maxr1998/pulse4k/config.h +0 -5
@@ 25,11 25,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Rotary encoders */
#define ENCODERS_PAD_A { D2, F6 }
#define ENCODERS_PAD_B { D3, F5 }
#define ENCODER_RESOLUTION 4

/* Combo setup */
#define COMBO_COUNT 1
#define COMBO_TERM 150

M keyboards/maxr1998/pulse4k/info.json => keyboards/maxr1998/pulse4k/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x6060",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D2", "pin_b": "D3"},
      {"pin_a": "F6", "pin_b": "F5"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/mb44/config.h => keyboards/mb44/config.h +0 -4
@@ 33,7 33,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/*Encoder Definition*/
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }

M keyboards/mb44/info.json => keyboards/mb44/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6D62",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/mechanickeys/undead60m/config.h => keyboards/mechanickeys/undead60m/config.h +0 -5
@@ 49,8 49,3 @@
  #define RGBLIGHT_EFFECT_ALTERNATING
  #define RGBLIGHT_EFFECT_TWINKLE
#endif

/* Rotary encoder */
#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 4

M keyboards/mechanickeys/undead60m/info.json => keyboards/mechanickeys/undead60m/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x3C4D",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/mechlovin/adelais/rgb_led/rev2/config.h => keyboards/mechlovin/adelais/rgb_led/rev2/config.h +0 -4
@@ 91,8 91,4 @@

#define RGB_MATRIX_DISABLE_KEYCODES

#define ENCODERS_PAD_A { A4 }
#define ENCODERS_PAD_B { A3 }
#define ENCODER_RESOLUTION 4

#define TAP_CODE_DELAY 10

M keyboards/mechlovin/adelais/rgb_led/rev2/info.json => keyboards/mechlovin/adelais/rgb_led/rev2/info.json +5 -0
@@ 3,6 3,11 @@
    "usb": {
        "pid": "0xAEC2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A4", "pin_b": "A3"}
        ]
    },
    "processor": "STM32F303",
    "board": "QMK_PROTON_C",
    "bootloader": "stm32-dfu",

M keyboards/mechlovin/adelais/rgb_led/rev3/config.h => keyboards/mechlovin/adelais/rgb_led/rev3/config.h +0 -5
@@ 113,9 113,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#endif

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10
#endif

M keyboards/mechlovin/adelais/rgb_led/rev3/info.json => keyboards/mechlovin/adelais/rgb_led/rev3/info.json +5 -0
@@ 3,6 3,11 @@
    "usb": {
        "pid": "0xAEC3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B12", "pin_b": "B13"}
        ]
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "indicators": {

M keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h => keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h +0 -4
@@ 1,7 1,3 @@
#pragma once

#define ENCODERS_PAD_A { A6, A4, B7 }
#define ENCODERS_PAD_B { A5, A3, B6 }
#define ENCODER_RESOLUTION 4

#define TAP_CODE_DELAY 10
\ No newline at end of file

M keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json => keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json +7 -0
@@ 2,6 2,13 @@
    "usb": {
        "pid": "0xAD02"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A6", "pin_b": "A5"},
            {"pin_a": "A4", "pin_b": "A3"},
            {"pin_a": "B7", "pin_b": "B6"}
        ]
    },
    "processor": "STM32F303",
    "board": "QMK_PROTON_C",
    "bootloader": "stm32-dfu"

M keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h => keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h +0 -4
@@ 16,8 16,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once

#define ENCODERS_PAD_A { A6, A4, B7 }
#define ENCODERS_PAD_B { A5, A3, B6 }
#define ENCODER_RESOLUTION 4

#define TAP_CODE_DELAY 10
\ No newline at end of file

M keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json => keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json +7 -0
@@ 1,5 1,12 @@
{
    "usb": {
        "pid": "0xAD03"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A6", "pin_b": "A5"},
            {"pin_a": "A4", "pin_b": "A3"},
            {"pin_a": "B7", "pin_b": "B6"}
        ]
    }
}

M keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h => keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h +0 -4
@@ 45,8 45,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#define ENCODERS_PAD_A { D3, D5, C7 }
#define ENCODERS_PAD_B { D2, B6, C6 }
#define ENCODER_RESOLUTION 4

#define TAP_CODE_DELAY 10

M keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json => keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json +7 -0
@@ 3,6 3,13 @@
    "usb": {
        "pid": "0xAD04"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2"},
            {"pin_a": "D5", "pin_b": "B6"},
            {"pin_a": "C7", "pin_b": "C6"}
        ]
    },
    "backlight": {
        "pin": "B5",
        "breathing": true

M keyboards/mechlovin/foundation/config.h => keyboards/mechlovin/foundation/config.h +0 -5
@@ 55,9 55,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    define RGBLIGHT_EFFECT_TWINKLE
#endif

// Encoder pins
#define ENCODERS_PAD_A { C13 }
#define ENCODERS_PAD_B { C14 }

#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10
\ No newline at end of file

M keyboards/mechlovin/foundation/info.json => keyboards/mechlovin/foundation/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0180",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C13", "pin_b": "C14"}
        ]
    },
    "indicators": {
        "caps_lock": "A1",
        "on_state": 0

M keyboards/mechlovin/hex6c/config.h => keyboards/mechlovin/hex6c/config.h +0 -4
@@ 37,10 37,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 3

#define ENCODERS_PAD_A { A15 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4

#define TAP_CODE_DELAY 10

#define WEAR_LEVELING_BACKING_SIZE 4096

M keyboards/mechlovin/hex6c/info.json => keyboards/mechlovin/hex6c/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6C01",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A15", "pin_b": "A2"}
        ]
    },
    "backlight": {
        "pin": "B0",
        "breathing": true

M keyboards/mechlovin/zed65/no_backlight/retro66/config.h => keyboards/mechlovin/zed65/no_backlight/retro66/config.h +0 -7
@@ 21,11 21,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B13, B14, A8, A1, A0 }
#define MATRIX_COL_PINS { B11, B12, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, B3, A15, B5 }

// Number of encoders

#define ENCODERS_PAD_A { B4, B6 }
#define ENCODERS_PAD_B { B8, B9 }


#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10
\ No newline at end of file

M keyboards/mechlovin/zed65/no_backlight/retro66/info.json => keyboards/mechlovin/zed65/no_backlight/retro66/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x6601",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B8"},
            {"pin_a": "B6", "pin_b": "B9"}
        ]
    },
    "indicators": {
        "caps_lock": "C14"
    },

M keyboards/mechwild/bde/rev2/config.h => keyboards/mechwild/bde/rev2/config.h +0 -7
@@ 17,11 17,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* Encoder pins */
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }

/* Encoder resolution */
#define ENCODER_RESOLUTION 4

#define OLED_FONT_H "keyboards/mechwild/bde/lib/rev2.c"

M keyboards/mechwild/bde/rev2/info.json => keyboards/mechwild/bde/rev2/info.json +5 -0
@@ 4,6 4,11 @@
        "pid": "0x170A",
        "device_version": "1.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "matrix_pins": {
        "rows":[ "C6", "D7", "B4", "D4", "E6", "B2" ],
        "cols": ["B3", "B1", "F7", "F6", "F5", "F4", "B5" ]

M keyboards/mechwild/clunker/config.h => keyboards/mechwild/clunker/config.h +0 -4
@@ 19,8 19,4 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }
#define ENCODER_RESOLUTION 4

#define SOLENOID_PIN F4

M keyboards/mechwild/clunker/info.json => keyboards/mechwild/clunker/info.json +5 -0
@@ 25,6 25,11 @@
        "pid": "0x1711",
        "vid": "0x6D77"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "layouts": {
        "LAYOUT": {
            "layout": [

M keyboards/mechwild/mercutio/config.h => keyboards/mechwild/mercutio/config.h +0 -6
@@ 22,12 22,6 @@
#define MATRIX_ROW_PINS { D0, D1, D4, C3, C0, C1, C2}
#define MATRIX_COL_PINS { B0, D7, D6, D5, B1, B2, B3}

/* encoder pins */
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }

/* encoder resolution */
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

/* COL2ROW or ROW2COL */

M keyboards/mechwild/mercutio/info.json => keyboards/mechwild/mercutio/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1703",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "processor": "atmega328p",
    "bootloader": "usbasploader",
    "layouts": {

M keyboards/mechwild/mokulua/mirrored/config.h => keyboards/mechwild/mokulua/mirrored/config.h +0 -6
@@ 8,12 8,6 @@
#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3 }
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }

/* Encoder pins */
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { B2 }

/* Encoder resolution */
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

/* COL2ROW, ROW2COL */

M keyboards/mechwild/mokulua/mirrored/info.json => keyboards/mechwild/mokulua/mirrored/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x170C",
        "device_version": "1.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "B2"}
        ]
    },
    "split": {
        "soft_serial_pin": "D3"
    },

M keyboards/mechwild/mokulua/standard/config.h => keyboards/mechwild/mokulua/standard/config.h +0 -6
@@ 8,12 8,6 @@
#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3 }
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }

/* Encoder pins */
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { B2 }

/* Encoder resolution */
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

/* COL2ROW, ROW2COL */

M keyboards/mechwild/mokulua/standard/info.json => keyboards/mechwild/mokulua/standard/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x170B",
        "device_version": "1.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "B2"}
        ]
    },
    "split": {
        "soft_serial_pin": "D3"
    },

M keyboards/mechwild/murphpad/config.h => keyboards/mechwild/murphpad/config.h +0 -6
@@ 22,12 22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F5, B2, B3, B1, F7, F6 }
#define MATRIX_COL_PINS { B5, D7, C6, D4, B6 }

/* Encoder pins */
#define ENCODERS_PAD_A { E6, D2 }
#define ENCODERS_PAD_B { B4, D3 }

/* Encoder resolution */
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

/* COL2ROW, ROW2COL */

M keyboards/mechwild/murphpad/info.json => keyboards/mechwild/murphpad/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x1705",
        "device_version": "3.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B4"},
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/mechwild/obe/config.h => keyboards/mechwild/obe/config.h +0 -6
@@ 31,12 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { A8, B15, B14, B13, B12, A15, B3 }
#define MATRIX_COL_PINS { B10, B1, B0, A7, A6, A5, A4, A3, A2, A1 }

/* encoder pins */
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B4 }

/* encoder resolution */
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

/* COL2ROW, ROW2COL */

M keyboards/mechwild/obe/info.json => keyboards/mechwild/obe/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1707",
        "device_version": "2.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B4"}
        ]
    },
    "indicators": {
        "caps_lock": "B9",
        "num_lock": "B8"

M keyboards/mechwild/puckbuddy/config.h => keyboards/mechwild/puckbuddy/config.h +0 -6
@@ 42,12 42,6 @@
#define CIRQUE_PINNACLE_SPI_DIVISOR 8
#define CIRQUE_PINNACLE_SPI_CS_PIN A4

/* encoder pins */
#define ENCODERS_PAD_A { B1, B3 }
#define ENCODERS_PAD_B { B0, A15 }

/* encoder resolution */
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

/* COL2ROW, ROW2COL */

M keyboards/mechwild/puckbuddy/info.json => keyboards/mechwild/puckbuddy/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x170F",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B0"},
            {"pin_a": "B3", "pin_b": "A15"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "on_state": 0

M keyboards/mechwild/waka60/config.h => keyboards/mechwild/waka60/config.h +0 -6
@@ 31,12 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B8, B4, B3, B9, A15, B12, B13, B14, B15, A8 }
#define MATRIX_COL_PINS { B10, B1, B0, A7, A6, A5, A4 }

/* encoder pins */
#define ENCODERS_PAD_A { A3 }
#define ENCODERS_PAD_B { A2 }

/* encoder resolution */
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

/* COL2ROW, ROW2COL */

M keyboards/mechwild/waka60/info.json => keyboards/mechwild/waka60/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x1709",
        "device_version": "1.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A3", "pin_b": "A2"}
        ]
    },
    "layouts": {
        "LAYOUT": {
            "layout": [

M keyboards/meletrix/zoom65/config.h => keyboards/meletrix/zoom65/config.h +0 -8
@@ 22,14 22,6 @@

#define DIODE_DIRECTION COL2ROW

/* Enable encoder */
#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B0 }

#define ENCODERS 1

#define ENCODER_RESOLUTION 2

// Note:  array is { col, row )
#define ENCODERS_CW_KEY  { { 5, 4 } }
#define ENCODERS_CCW_KEY { { 3, 4 } }

M keyboards/meletrix/zoom65/info.json => keyboards/meletrix/zoom65/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0004",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B0", "resolution": 2}
        ]
    },
    "indicators": {
        "caps_lock": "F7",
        "on_state": 0

M keyboards/meletrix/zoom65/zoom65.c => keyboards/meletrix/zoom65/zoom65.c +4 -4
@@ 17,13 17,13 @@
#include "zoom65.h"

#ifdef VIA_ENABLE
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void)
{
    for (int index = 0; index < ENCODERS; ++index)
    for (int index = 0; index < NUM_ENCODERS; ++index)
    {
        if (encoder_state[index])
        {

M keyboards/meletrix/zoom65_lite/config.h => keyboards/meletrix/zoom65_lite/config.h +0 -8
@@ 22,14 22,6 @@

#define DIODE_DIRECTION COL2ROW

/* Enable encoder */
#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B0 }

#define ENCODERS 1

#define ENCODER_RESOLUTION 2

// Note:  array is { col, row )
#define ENCODERS_CW_KEY  { { 5, 4 } }
#define ENCODERS_CCW_KEY { { 3, 4 } }

M keyboards/meletrix/zoom65_lite/info.json => keyboards/meletrix/zoom65_lite/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0005",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B0", "resolution": 2}
        ]
    },
    "indicators": {
        "caps_lock": "F7",
        "on_state": 0

M keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c => keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c +5 -7
@@ 16,14 16,13 @@

#include QMK_KEYBOARD_H

#ifdef VIA_ENABLE
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void)
{
    for (int index = 0; index < ENCODERS; ++index)
    for (int index = 0; index < NUM_ENCODERS; ++index)
    {
        if (encoder_state[index])
        {


@@ 56,8 55,7 @@ bool encoder_update_kb(uint8_t index, bool clockwise)
{
    encoder_action_register(index, clockwise);
    return true;
};
#endif
}

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT_all(

M keyboards/merge/iso_macro/config.h => keyboards/merge/iso_macro/config.h +0 -5
@@ 22,8 22,3 @@

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


#define ENCODERS_PAD_A { F0, D0 }
#define ENCODERS_PAD_B { F1, D1 }
#define ENCODER_RESOLUTION 4

M keyboards/merge/iso_macro/info.json => keyboards/merge/iso_macro/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x1200",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F0", "pin_b": "F1"},
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "backlight": {
        "pin": "B7"
    },

M keyboards/merge/uc1/config.h => keyboards/merge/uc1/config.h +0 -4
@@ 39,7 39,3 @@

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODER_RESOLUTION 4

M keyboards/merge/uc1/info.json => keyboards/merge/uc1/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x5543",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F5", "pin_b": "F6"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "layouts": {

M keyboards/merge/um70/config.h => keyboards/merge/um70/config.h +0 -3
@@ 42,6 42,3 @@
#ifdef AUDIO_ENABLE
  #define STARTUP_SONG SONG(STARTUP_SOUND)
#endif

#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }

M keyboards/merge/um70/info.json => keyboards/merge/um70/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x3222",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/merge/um80/config.h => keyboards/merge/um80/config.h +0 -3
@@ 42,6 42,3 @@
#ifdef AUDIO_ENABLE
  #define STARTUP_SONG SONG(STARTUP_SOUND)
#endif

#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }

M keyboards/merge/um80/info.json => keyboards/merge/um80/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x3241",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/merge/uma/config.h => keyboards/merge/uma/config.h +0 -3
@@ 24,6 24,3 @@

#define SPLIT_USB_DETECT
#define SPLIT_MODS_ENABLE

#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }

M keyboards/merge/uma/info.json => keyboards/merge/uma/info.json +5 -0
@@ 11,6 11,11 @@
    "backlight": {
        "pin": "C6"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/metamechs/timberwolf/config.h => keyboards/metamechs/timberwolf/config.h +0 -10
@@ 34,16 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Wncoswe pins */
#define ENCODERS_PAD_A { B7 }
#define ENCODERS_PAD_B { B3 }

/* Encoder resolution, lower number = more sensitive */
#define ENCODER_RESOLUTION 2

/* Reverse encoder direction */
// #define ENCODER_DIRECTION_FLIP

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/metamechs/timberwolf/info.json => keyboards/metamechs/timberwolf/info.json +5 -0
@@ 12,6 12,11 @@
        "pin": "C6",
        "levels": 16
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B7", "pin_b": "B3", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/mexsistor/ludmila/config.h => keyboards/mexsistor/ludmila/config.h +0 -5
@@ 51,8 51,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE


// Encoder
#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }

M keyboards/mexsistor/ludmila/info.json => keyboards/mexsistor/ludmila/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6BF6",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/millipad/config.h => keyboards/millipad/config.h +0 -6
@@ 37,9 37,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_RESYNC_ENABLE

#define FORCE_NKRO

/* Encoder Definitions */

#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 4

M keyboards/millipad/info.json => keyboards/millipad/info.json +5 -0
@@ 8,6 8,11 @@
    	"pid": "0x1A1B",
    	"device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/mincedshon/ecila/config.h => keyboards/mincedshon/ecila/config.h +0 -6
@@ 3,12 3,6 @@

#pragma once

/* encoder */
/* #define NUMBER_OF_ENCODERS 1 */
//#define ENCODERS_PAD_A { D3 }
//#define ENCODERS_PAD_B { D2 }
//#define ENCODER_RESOLUTION 1

#define RGB_DI_PIN B0
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD

M keyboards/mini_elixivy/config.h => keyboards/mini_elixivy/config.h +0 -2
@@ 30,8 30,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#define MATRIX_ROW_PINS { B5, B6, E6, F6, C7 }
#define MATRIX_COL_PINS { F7, F5, F4, F1, F0, B7, D0, D1, D2, D3, D4, D6, D7, B4, C6 }
#define ENCODERS_PAD_A { B0 }
#define ENCODERS_PAD_B { D5 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

M keyboards/mini_elixivy/info.json => keyboards/mini_elixivy/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "D5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "community_layouts": ["65_ansi", "65_iso"],

M keyboards/mini_ten_key_plus/config.h => keyboards/mini_ten_key_plus/config.h +0 -4
@@ 30,8 30,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#define MATRIX_ROW_PINS { D4, B1, B5, B4, E6 }
#define MATRIX_COL_PINS { F5, F4, B6, D7, C6 }
#define ENCODERS_PAD_A { F7 }
#define ENCODERS_PAD_B { F6 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


@@ 56,5 54,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODER_RESOLUTION 2

M keyboards/mini_ten_key_plus/info.json => keyboards/mini_ten_key_plus/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F7", "pin_b": "F6", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/minimacro5/config.h => keyboards/minimacro5/config.h +0 -6
@@ 20,12 20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//speed for double tap
#define TAPPING_TERM 200


/* rotary encoder 1,2,3 closest to usb port is 0*/
#define ENCODERS_PAD_B { D3, F6, F7, D4, C6}
#define ENCODERS_PAD_A { F5, D2, D1, D0, E6}
#define ENCODER_RESOLUTION 2 //default/suggested

/* ws2812 RGB LED */
#define RGB_DI_PIN B5
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/minimacro5/info.json => keyboards/minimacro5/info.json +9 -0
@@ 8,6 8,15 @@
    "pid": "0x0007",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D3", "pin_b": "F5", "resolution": 2},
      {"pin_a": "F6", "pin_b": "D2", "resolution": 2},
      {"pin_a": "F7", "pin_b": "D1", "resolution": 2},
      {"pin_a": "D4", "pin_b": "D0", "resolution": 2},
      {"pin_a": "C6", "pin_b": "E6", "resolution": 2}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "matrix_pins": {

M keyboards/misonoworks/karina/config.h => keyboards/misonoworks/karina/config.h +0 -5
@@ 29,11 29,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MK_3_SPEED
#define TERMINAL_HELP

// encoders
#define ENCODERS_PAD_A { B2, F4 }
#define ENCODERS_PAD_B { B1, F5 }
#define ENCODER_RESOLUTION 3

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE


M keyboards/misonoworks/karina/info.json => keyboards/misonoworks/karina/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0xC456",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B1", "resolution": 3},
            {"pin_a": "F4", "pin_b": "F5", "resolution": 3}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/mixi/config.h => keyboards/mixi/config.h +0 -3
@@ 1,8 1,5 @@
#pragma once

#define ENCODERS_PAD_A { D7, B1 }
#define ENCODERS_PAD_B { E6, B3 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE


M keyboards/mixi/info.json => keyboards/mixi/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x4D49",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D7", "pin_b": "E6"},
            {"pin_a": "B1", "pin_b": "B3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/mk65/config.h => keyboards/mk65/config.h +0 -5
@@ 16,9 16,4 @@

#pragma once


/* Encoders */

#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B2 }
#define TAP_CODE_DELAY 10
\ No newline at end of file

M keyboards/mk65/info.json => keyboards/mk65/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/ml/gas75/config.h => keyboards/ml/gas75/config.h +0 -4
@@ 27,10 27,6 @@
/* Forcing to use NKRO instead 6KRO */
#define FORCE_NKRO

/* Encoder pins */
#define ENCODERS_PAD_A { F0 }
#define ENCODERS_PAD_B { F1 }

#ifdef RGB_MATRIX_ENABLE
    #define RGB_MATRIX_LED_COUNT 3
    #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200

M keyboards/ml/gas75/info.json => keyboards/ml/gas75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6060",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F0", "pin_b": "F1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/ml/gas75/keymaps/via/keymap.c => keyboards/ml/gas75/keymaps/via/keymap.c +4 -6
@@ 159,14 159,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}

#ifdef ENCODER_ENABLE

#define ENCODERS 1
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = {{3, 5}};
static keypos_t encoder_ccw[ENCODERS]   = {{4, 5}};
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = {{3, 5}};
static keypos_t encoder_ccw[NUM_ENCODERS]   = {{4, 5}};

void encoder_action_unregister(void) {
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],

M keyboards/mlego/m48/rev1/config.h => keyboards/mlego/m48/rev1/config.h +0 -8
@@ 21,14 21,6 @@
#define MATRIX_COL_PINS \
    { A10, A15, B3, B4, B5, B7, B6, A1, A2, A3, A4, A5 }

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A \
    { A0 }
#define ENCODERS_PAD_B \
    { B8 }
#define ENCODER_RESOLUTION 4
#endif

#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_LAYERS
#define RGB_DI_PIN B15

M keyboards/mlego/m48/rev1/info.json => keyboards/mlego/m48/rev1/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6261",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "B8"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "num_lock": "B12",

M keyboards/mlego/m60/rev1/config.h => keyboards/mlego/m60/rev1/config.h +0 -8
@@ 15,19 15,11 @@
 */
#pragma once

#ifdef ENCODER_ENABLE
#define MATRIX_ROW_PINS \
    { A6, A7, B0, B1, B10 }
#define MATRIX_COL_PINS \
    { A10, A15, B3, B4, B5, B7, B6, A1, A2, A3, A4, A5 }

#define ENCODERS_PAD_A \
    { A0 }
#define ENCODERS_PAD_B \
    { B8 }

#endif

#ifdef RGBLIGHT_ENABLE

#define RGB_DI_PIN B15

M keyboards/mlego/m60/rev1/info.json => keyboards/mlego/m60/rev1/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6161",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "B8"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "num_lock": "B12",

M keyboards/mlego/m60_split/rev1/config.h => keyboards/mlego/m60_split/rev1/config.h +0 -9
@@ 27,15 27,6 @@
#define MATRIX_COL_PINS_RIGHT \
    { B0, A3, A2, A1, B7, B5 }  // cols are from right to left to match the layout

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A \
    { A0 }
#define ENCODERS_PAD_B \
    { B8 }
#define ENCODER_RESOLUTIONS \
    { 4 }
#endif

#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_LED_STATE_ENABLE


M keyboards/mlego/m60_split/rev1/info.json => keyboards/mlego/m60_split/rev1/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6361",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "B8"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "num_lock": "B12",

M keyboards/mlego/m60_split/rev2/config.h => keyboards/mlego/m60_split/rev2/config.h +0 -11
@@ 27,17 27,6 @@
#define MATRIX_COL_PINS_RIGHT \
    { B0, A3, A2, A1, B7, B5 }  // cols are from right to left to match the layout


#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A \
    { A0 }
#define ENCODERS_PAD_B \
    { B8 }
#define ENCODER_RESOLUTIONS \
    { 4 }

#endif

#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_LED_STATE_ENABLE


M keyboards/mlego/m60_split/rev2/info.json => keyboards/mlego/m60_split/rev2/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6362",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "B8"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "num_lock": "B12",

M keyboards/mlego/m65/rev1/config.h => keyboards/mlego/m65/rev1/config.h +0 -7
@@ 24,17 24,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS \
    { A10, A15, B3, B4, B5, B9, B8, B7, B6, C15, A0, A7, B10 }

#define ENCODERS_PAD_A \
    { A8 }
#define ENCODERS_PAD_B \
    { A9 }

#define RGB_DI_PIN B15

#define RGBLIGHT_LAYERS

#define ENCODER_RESOLUTION 4

#undef RGBLED_NUM
#define RGBLED_NUM 20
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/mlego/m65/rev1/info.json => keyboards/mlego/m65/rev1/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6061",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A8", "pin_b": "A9"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "num_lock": "B12",

M keyboards/mlego/m65/rev2/config.h => keyboards/mlego/m65/rev2/config.h +0 -7
@@ 24,17 24,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS \
    { A10, A15, B3, B4, B5, B9, B8, B7, B6, C15, A0, A7, B10 }

#define ENCODERS_PAD_A \
    { A8 }
#define ENCODERS_PAD_B \
    { A9 }

#define RGB_DI_PIN B15

#define RGBLIGHT_LAYERS

#define ENCODER_RESOLUTION 4

#undef RGBLED_NUM
#define RGBLED_NUM 20
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/mlego/m65/rev2/info.json => keyboards/mlego/m65/rev2/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6061",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A8", "pin_b": "A9"}
        ]
    },
    "indicators": {
        "caps_lock": "B2",
        "num_lock": "B12",

M keyboards/mlego/m65/rev3/config.h => keyboards/mlego/m65/rev3/config.h +0 -8
@@ 24,14 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS \
    { A10, A15, B3, B4, B5, B9, B8, B7, A1, A2, A3, A4, B1 }

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A \
    { A0 }
#define ENCODERS_PAD_B \
    { B6 }
#define ENCODER_RESOLUTION 4
#endif

#ifdef RGBLIGHT_ENABLE

#define RGB_DI_PIN B15

M keyboards/mlego/m65/rev3/info.json => keyboards/mlego/m65/rev3/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6062",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "B6"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "num_lock": "B12",

M keyboards/mlego/m65/rev4/config.h => keyboards/mlego/m65/rev4/config.h +0 -8
@@ 24,14 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS \
    { B14, A8, A10, A15, B3, B4, B5, B7, A1, A2, A3, A4, B1 }

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A \
    { A0 }
#define ENCODERS_PAD_B \
    { B6 }
#define ENCODER_RESOLUTION 4
#endif

#ifdef RGBLIGHT_ENABLE

#define RGB_DI_PIN B15

M keyboards/mlego/m65/rev4/info.json => keyboards/mlego/m65/rev4/info.json +5 -0
@@ 3,6 3,11 @@
        "pid": "0x6062",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "B6"}
        ]
    },
    "indicators": {
        "caps_lock": "C13",
        "num_lock": "B12",

M keyboards/monarch/config.h => keyboards/monarch/config.h +0 -5
@@ 21,11 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { A15, B3, B11, A2, A1, B9 }
#define DIODE_DIRECTION COL2ROW

/* Rotary encoder pins */
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 1

#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 1
#define BACKLIGHT_PAL_MODE 1

M keyboards/monarch/info.json => keyboards/monarch/info.json +5 -0
@@ 13,6 13,11 @@
        "levels": 24,
        "breathing": true
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5", "resolution": 1}
        ]
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/montsinger/rebound/rev2/config.h => keyboards/montsinger/rebound/rev2/config.h +0 -3
@@ 30,9 30,6 @@ diode)
#define MATRIX_ROW_PINS { D1, B5, B2, B6, B0 }
#define MATRIX_COL_PINS { D0, D4, C6, D7, E6, B4, B3, B1, F7, F6, F5, F4 }

#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL


M keyboards/montsinger/rebound/rev2/info.json => keyboards/montsinger/rebound/rev2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x552F",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "community_layouts": ["ortho_4x12"],

M keyboards/montsinger/rebound/rev3/config.h => keyboards/montsinger/rebound/rev3/config.h +0 -3
@@ 30,9 30,6 @@ diode)
#define MATRIX_ROW_PINS { F4, F5, D1, D0, B0 }
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6 }

#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL


M keyboards/montsinger/rebound/rev3/info.json => keyboards/montsinger/rebound/rev3/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x552F",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "community_layouts": ["ortho_4x12"],

M keyboards/montsinger/rebound/rev4/config.h => keyboards/montsinger/rebound/rev4/config.h +0 -3
@@ 30,9 30,6 @@ diode)
#define MATRIX_ROW_PINS { D1, D0, D4, C6, F7, F6, F5, F4 }
#define MATRIX_COL_PINS { D7, E6, B4, B5, B2, B3, B1 }

#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL


M keyboards/montsinger/rebound/rev4/info.json => keyboards/montsinger/rebound/rev4/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "community_layouts": ["ortho_4x12"],

M keyboards/murcielago/info.json => keyboards/murcielago/info.json +13 -1
@@ 8,8 8,20 @@
    "pid": "0x0001",
    "device_version": "0.0.2"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F0", "pin_b": "F1"}
    ]
  },
  "split": {
    "soft_serial_pin": "E6"
    "soft_serial_pin": "E6",
    "encoder": {
      "right": {
        "rotary": [
          {"pin_a": "F6", "pin_b": "F7"}
        ]
      }
    }
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",

M keyboards/murcielago/rev1/config.h => keyboards/murcielago/rev1/config.h +0 -6
@@ 36,12 36,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B7, D4, B6, C6, C7 }
#define MATRIX_COL_PINS_RIGHT { D6, D7, D3, B2, B1, B0 }

#define ENCODERS_PAD_A { F0 }
#define ENCODERS_PAD_B { F1 }
#define ENCODERS_PAD_A_RIGHT { F6 }
#define ENCODERS_PAD_B_RIGHT { F7 }


/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/mwstudio/alicekk/config.h => keyboards/mwstudio/alicekk/config.h +0 -3
@@ 48,6 48,3 @@
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8

#define ENCODERS_PAD_A { B11 }
#define ENCODERS_PAD_B { B10 }

M keyboards/mwstudio/alicekk/info.json => keyboards/mwstudio/alicekk/info.json +5 -0
@@ 6,6 6,11 @@
        "pid": "0x3201",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B11", "pin_b": "B10"}
        ]
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "layouts": {

M keyboards/mwstudio/alicekk/keymaps/via/keymap.c => keyboards/mwstudio/alicekk/keymaps/via/keymap.c +4 -8
@@ 53,15 53,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {


#ifdef ENCODER_ENABLE
#define ENCODERS 1
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = {{6, 4}};
static keypos_t encoder_ccw[ENCODERS] = {{7, 4}};

static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = {{6, 4}};
static keypos_t encoder_ccw[NUM_ENCODERS] = {{7, 4}};

void encoder_action_unregister(void) {
#ifdef ENCODERS
    for (uint8_t index = 0; index < ENCODERS; ++index) {
    for (uint8_t index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 72,7 69,6 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#endif
}

void encoder_action_register(uint8_t index, bool clockwise) {

M keyboards/mwstudio/mw65_black/config.h => keyboards/mwstudio/mw65_black/config.h +0 -3
@@ 31,6 31,3 @@
    #define RGBLIGHT_SAT_STEP 8
    #define RGBLIGHT_VAL_STEP 8
#endif

#define ENCODERS_PAD_A { E6 }
#define ENCODERS_PAD_B { D6 }

M keyboards/mwstudio/mw65_black/info.json => keyboards/mwstudio/mw65_black/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6500",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "D6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layout_aliases": {

M keyboards/mwstudio/mw65_rgb/config.h => keyboards/mwstudio/mw65_rgb/config.h +0 -4
@@ 24,10 24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Encoder pins */
#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B2 }

/* RGB Matrix config */
#define RGB_DI_PIN B3


M keyboards/mwstudio/mw65_rgb/info.json => keyboards/mwstudio/mw65_rgb/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6502",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/mwstudio/mw75/config.h => keyboards/mwstudio/mw75/config.h +0 -3
@@ 81,6 81,3 @@
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8

#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B2 }

M keyboards/mwstudio/mw75/info.json => keyboards/mwstudio/mw75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7501",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B2"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/mwstudio/mw75r2/config.h => keyboards/mwstudio/mw75r2/config.h +0 -3
@@ 56,6 56,3 @@
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8

#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B2 }

M keyboards/mwstudio/mw75r2/info.json => keyboards/mwstudio/mw75r2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7502",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/mwstudio/mw75r2/keymaps/via/keymap.c => keyboards/mwstudio/mw75r2/keymaps/via/keymap.c +4 -8
@@ 105,15 105,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}

#ifdef ENCODER_ENABLE
#define ENCODERS 1
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = {{3, 5}};
static keypos_t encoder_ccw[ENCODERS] = {{4, 5}};

static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = {{3, 5}};
static keypos_t encoder_ccw[NUM_ENCODERS] = {{4, 5}};

void encoder_action_unregister(void) {
#ifdef ENCODERS
    for (uint8_t index = 0; index < ENCODERS; ++index) {
    for (uint8_t index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 124,7 121,6 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#endif
}

void encoder_action_register(uint8_t index, bool clockwise) {

M keyboards/ncc1701kb/config.h => keyboards/ncc1701kb/config.h +0 -5
@@ 22,11 22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, D6, D7 }
#define MATRIX_COL_PINS { B4, B5, B6 }

/*Encoders */
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }


/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL


M keyboards/ncc1701kb/info.json => keyboards/ncc1701kb/info.json +12 -7
@@ 12,19 12,24 @@
    "pin": "B7",
    "breathing": true
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D0", "pin_b": "D1"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {
    "LAYOUT": {
      "layout": [
        {"x":0, "y":0}, 
        {"label":"Encoder", "x":1, "y":0}, 
        {"x":2, "y":0}, 
        {"x":0, "y":1}, 
        {"x":1, "y":1}, 
        {"x":0, "y":0},
        {"label":"Encoder", "x":1, "y":0},
        {"x":2, "y":0},
        {"x":0, "y":1},
        {"x":1, "y":1},
        {"x":2, "y":1},
        {"x":0, "y":2}, 
        {"x":1, "y":2}, 
        {"x":0, "y":2},
        {"x":1, "y":2},
        {"x":2, "y":2}
      ]
    }

M keyboards/neito/config.h => keyboards/neito/config.h +0 -3
@@ 19,9 19,6 @@
#define MATRIX_COL_PINS { F4, F1, F7, B2, D1, D2, B3, B1 }

#define DIODE_DIRECTION COL2ROW
#define ENCODERS_PAD_A { B7 }
#define ENCODERS_PAD_B { B0 }
#define ENCODER_RESOLUTION 4

#define GRAVE_ESC_CTRL_OVERRIDE


M keyboards/neito/info.json => keyboards/neito/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xB44C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B7", "pin_b": "B0"}
        ]
    },
    "backlight": {
        "pin": "B5",
        "levels": 5,

M keyboards/neopad/rev1/config.h => keyboards/neopad/rev1/config.h +0 -4
@@ 21,10 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5 }
#define MATRIX_COL_PINS { B3, B2, B6 }

/* Dual rotary encoders */
#define ENCODERS_PAD_A { D1, D4 }
#define ENCODERS_PAD_B { D0, C6 }

/* Onboard LEDs */
#define LED_00 F6
#define LED_01 F7

M keyboards/neopad/rev1/info.json => keyboards/neopad/rev1/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0913",
        "device_version": "0.1.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"},
            {"pin_a": "D4", "pin_b": "C6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/nightingale_studios/hailey/config.h => keyboards/nightingale_studios/hailey/config.h +0 -3
@@ 34,9 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B4 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/nightingale_studios/hailey/info.json => keyboards/nightingale_studios/hailey/info.json +5 -0
@@ 7,6 7,11 @@
        "pid": "0x4879",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B4"}
        ]
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/nightly_boards/adellein/config.h => keyboards/nightly_boards/adellein/config.h +0 -6
@@ 51,12 51,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#endif

/* Encoders */

#define ENCODERS 1

#define ENCODERS_PAD_A { C7 }
#define ENCODERS_PAD_B { C6 }

#define ENCODERS_CW_KEY  { { 3, 3 } }
#define ENCODERS_CCW_KEY { { 1, 3 } }


M keyboards/nightly_boards/adellein/encoder_action.c => keyboards/nightly_boards/adellein/encoder_action.c +4 -10
@@ 16,15 16,12 @@

#include "encoder_action.h"

#ifdef ENCODERS
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
#endif
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 35,11 32,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 47,5 42,4 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#endif
}

M keyboards/nightly_boards/adellein/info.json => keyboards/nightly_boards/adellein/info.json +5 -0
@@ 8,6 8,11 @@
    	"pid": "0x0010",
    	"device_version": "0.0.1"
    },
    "encoder": {
    	"rotary": [
    		{"pin_a": "C7", "pin_b": "C6"}
    	]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/nightly_boards/n40_o/config.h => keyboards/nightly_boards/n40_o/config.h +0 -6
@@ 51,12 51,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#endif

/* Encoders */

#define ENCODERS 3

#define ENCODERS_PAD_A { F6, F4 , B6 }
#define ENCODERS_PAD_B { F7, F5 , C6 }

#define ENCODERS_CW_KEY  { { 2, 4 },{ 4, 4 },{ 6, 4 } }
#define ENCODERS_CCW_KEY { { 1, 4 },{ 3, 4 },{ 5, 4 } }


M keyboards/nightly_boards/n40_o/encoder_action.c => keyboards/nightly_boards/n40_o/encoder_action.c +4 -10
@@ 16,15 16,12 @@

#include "encoder_action.h"

#ifdef ENCODERS
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
#endif
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 35,11 32,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 47,5 42,4 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#endif
}

M keyboards/nightly_boards/n40_o/info.json => keyboards/nightly_boards/n40_o/info.json +7 -0
@@ 8,6 8,13 @@
    	"pid": "0x0009",
    	"device_version": "0.0.1"
    },
    "encoder": {
    	"rotary": [
    		{"pin_a": "F6", "pin_b": "F7"},
    		{"pin_a": "F4", "pin_b": "F5"},
    		{"pin_a": "B6", "pin_b": "C6"}
    	]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/nightly_boards/n60_s/config.h => keyboards/nightly_boards/n60_s/config.h +0 -6
@@ 35,12 35,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW

/* Encoders */

#define ENCODERS 1

#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D5 }

#define ENCODERS_CW_KEY  { { 1, 5 } }
#define ENCODERS_CCW_KEY { { 0, 5 } }


M keyboards/nightly_boards/n60_s/encoder_action.c => keyboards/nightly_boards/n60_s/encoder_action.c +4 -10
@@ 16,15 16,12 @@

#include "encoder_action.h"

#ifdef ENCODERS
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
#endif
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 35,11 32,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 47,5 42,4 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#endif
}

M keyboards/nightly_boards/n60_s/info.json => keyboards/nightly_boards/n60_s/info.json +5 -0
@@ 8,6 8,11 @@
    	"pid": "0x0007",
    	"device_version": "0.0.1"
    },
    "encoder": {
    	"rotary": [
    		{"pin_a": "D3", "pin_b": "D5"}
    	]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/nightly_boards/octopad/config.h => keyboards/nightly_boards/octopad/config.h +0 -6
@@ 51,12 51,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#endif

/* Encoders */

#define ENCODERS 2

#define ENCODERS_PAD_A { C7, F4 }
#define ENCODERS_PAD_B { C6, F5 }

#define ENCODERS_CW_KEY  { { 3, 2 },{ 1, 2 } }
#define ENCODERS_CCW_KEY { { 2, 2 },{ 0, 2 } }


M keyboards/nightly_boards/octopad/encoder_action.c => keyboards/nightly_boards/octopad/encoder_action.c +4 -10
@@ 16,15 16,12 @@

#include "encoder_action.h"

#ifdef ENCODERS
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
#endif
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 35,11 32,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 47,5 42,4 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#endif
}

M keyboards/nightly_boards/octopad/info.json => keyboards/nightly_boards/octopad/info.json +6 -0
@@ 8,6 8,12 @@
    	"pid": "0x0004",
    	"device_version": "0.0.1"
    },
    "encoder": {
    	"rotary": [
    		{"pin_a": "C7", "pin_b": "C6"},
    		{"pin_a": "F4", "pin_b": "F5"}
    	]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/nightly_boards/octopadplus/config.h => keyboards/nightly_boards/octopadplus/config.h +0 -7
@@ 34,14 34,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


/* Encoders */

#define ENCODERS 2
#define ENCODERS_PAD_A { F0, D1 }
#define ENCODERS_PAD_B { F1, D0 }
#define TAP_CODE_DELAY 10
#define ENCODER_RESOLUTION 5

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

M keyboards/nightly_boards/octopadplus/info.json => keyboards/nightly_boards/octopadplus/info.json +6 -0
@@ 8,6 8,12 @@
    	"pid": "0x0014",
    	"device_version": "0.0.1"
	},
    "encoder": {
        "rotary": [
            {"pin_a": "F0", "pin_b": "F1", "resolution": 5},
            {"pin_a": "D1", "pin_b": "D0", "resolution": 5}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
	    "rgblight": {

M keyboards/nixkeyboards/day_off/config.h => keyboards/nixkeyboards/day_off/config.h +0 -7
@@ 22,10 22,3 @@
#define MATRIX_COL_PINS \
    { F0, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0 }
#define DIODE_DIRECTION COL2ROW

/* encoder */
#define ENCODERS_PAD_A \
    { B0 }
#define ENCODERS_PAD_B \
    { B1 }
#define ENCODER_RESOLUTION 4

M keyboards/nixkeyboards/day_off/info.json => keyboards/nixkeyboards/day_off/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x444F",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B1"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 1]
    },

M keyboards/nopunin10did/kastenwagen1840/config.h => keyboards/nopunin10did/kastenwagen1840/config.h +0 -5
@@ 26,10 26,5 @@
#define LED_INDICATOR_MID   D4
#define LED_INDICATOR_BOT   C6

/* Rotary encoder rotation pins */
#define ENCODERS_PAD_A      { D0, D3 }
#define ENCODERS_PAD_B      { D1, D2 }


/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION     COL2ROW

M keyboards/nopunin10did/kastenwagen1840/info.json => keyboards/nopunin10did/kastenwagen1840/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x4B57",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/nopunin10did/kastenwagen48/config.h => keyboards/nopunin10did/kastenwagen48/config.h +0 -5
@@ 26,10 26,5 @@
#define LED_INDICATOR_MID   D4
#define LED_INDICATOR_BOT   C6

/* Rotary encoder rotation pins */
#define ENCODERS_PAD_A      { D0, D3 }
#define ENCODERS_PAD_B      { D1, D2 }


/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION     COL2ROW

M keyboards/nopunin10did/kastenwagen48/info.json => keyboards/nopunin10did/kastenwagen48/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x4B30",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/np12/config.h => keyboards/np12/config.h +0 -5
@@ 22,8 22,3 @@

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }



M keyboards/np12/info.json => keyboards/np12/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x4401",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F4", "pin_b": "F5"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "layouts": {

M keyboards/nullbitsco/nibble/config.h => keyboards/nullbitsco/nibble/config.h +0 -4
@@ 52,7 52,3 @@
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_SLEEP

/* Optional encoder pins */
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B4 }

M keyboards/nullbitsco/nibble/info.json => keyboards/nullbitsco/nibble/info.json +5 -0
@@ 7,6 7,11 @@
        "pid": "0x6060",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 10,

M keyboards/nullbitsco/scramble/v1/config.h => keyboards/nullbitsco/scramble/v1/config.h +0 -3
@@ 19,7 19,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* Optional encoder pins */
#define ENCODERS_PAD_A { D6 }
#define ENCODERS_PAD_B { D7 }
#define TAP_CODE_DELAY 10

M keyboards/nullbitsco/scramble/v1/info.json => keyboards/nullbitsco/scramble/v1/info.json +5 -0
@@ 1,4 1,9 @@
{
    "encoder": {
        "rotary": [
            {"pin_a": "D6", "pin_b": "D7"}
        ]
    },
    "processor": "atmega328p",
    "bootloader": "usbasploader",
    "matrix_pins": {

M keyboards/nullbitsco/scramble/v2/config.h => keyboards/nullbitsco/scramble/v2/config.h +0 -3
@@ 19,9 19,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* Optional encoder pins */
#define ENCODERS_PAD_A { GP24 }
#define ENCODERS_PAD_B { GP25 }
#define TAP_CODE_DELAY 10

/* RP2040-specific defines*/

M keyboards/nullbitsco/scramble/v2/info.json => keyboards/nullbitsco/scramble/v2/info.json +5 -0
@@ 1,4 1,9 @@
{
    "encoder": {
        "rotary": [
            {"pin_a": "GP24", "pin_b": "GP25"}
        ]
    },
    "processor": "RP2040",
    "bootloader": "rp2040",
    "matrix_pins": {

M keyboards/nullbitsco/tidbit/config.h => keyboards/nullbitsco/tidbit/config.h +0 -5
@@ 42,8 42,3 @@
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

/* Optional encoder pins */
// Encoders are defined in order. 1: B2 & B3, 2: B4 & B5, 3: D0 & D1, 4: D2 & D3
#define ENCODERS_PAD_A { B2, B4, D0, D3 }
#define ENCODERS_PAD_B { B3, B5, D1, D2 }

M keyboards/nullbitsco/tidbit/info.json => keyboards/nullbitsco/tidbit/info.json +8 -0
@@ 7,6 7,14 @@
        "pid": "0x6064",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"},
            {"pin_a": "B4", "pin_b": "B5"},
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "D3", "pin_b": "D2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/om60/config.h => keyboards/om60/config.h +0 -3
@@ 95,6 95,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#endif

#define TAP_CODE_DELAY 10

#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }

M keyboards/om60/info.json => keyboards/om60/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x0001",
      "device_version": "1.0.0"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B4", "pin_b": "B5"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "layouts": {

M keyboards/onekeyco/dango40/config.h => keyboards/onekeyco/dango40/config.h +0 -3
@@ 23,9 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F1, F0, C6 }
#define MATRIX_COL_PINS { F7, F6, F5, D3, D5, D4, D6, D7, B4, B5, B6, C7, B0 }

#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D1 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/onekeyco/dango40/info.json => keyboards/onekeyco/dango40/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE9B9",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/orthocode/config.h => keyboards/orthocode/config.h +0 -3
@@ 36,9 36,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define USB_MAX_POWER_CONSUMPTION 100

#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }
#define ENCODER_RESOLUTION 1
#define TAP_CODE_DELAY 10

#define RGB_DI_PIN D5

M keyboards/orthocode/info.json => keyboards/orthocode/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0", "resolution": 1}
        ]
    },
    "processor": "atmega32a",
    "bootloader": "usbasploader",
    "debounce": 0,

M keyboards/owlab/voice65/hotswap/config.h => keyboards/owlab/voice65/hotswap/config.h +0 -4
@@ 111,8 111,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif

/* Encoder */
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

M keyboards/owlab/voice65/hotswap/info.json => keyboards/owlab/voice65/hotswap/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x564F",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "layout_aliases": {

M keyboards/owlab/voice65/soldered/config.h => keyboards/owlab/voice65/soldered/config.h +0 -4
@@ 112,8 112,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif

/* Encoder */
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10

M keyboards/owlab/voice65/soldered/info.json => keyboards/owlab/voice65/soldered/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5657",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_iso_blocker", "65_iso_blocker_split_bs"],

M keyboards/p3d/glitch/config.h => keyboards/p3d/glitch/config.h +0 -4
@@ 46,10 46,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F7 }
#define ENCODER_RESOLUTION 2

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/p3d/glitch/info.json => keyboards/p3d/glitch/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x3568",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F7", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/pabile/p18/config.h => keyboards/pabile/p18/config.h +0 -4
@@ 22,10 22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* pin-out for PROMICRO */
#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
#define MATRIX_COL_PINS { D2, D7, E6, B4, B5 }
 
/* Encoder position for PROMICRO */
#define ENCODERS_PAD_A { B6, F6 }
#define ENCODERS_PAD_B { F4, F5 } 

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

M keyboards/pabile/p18/info.json => keyboards/pabile/p18/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x6668",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "F4"},
            {"pin_a": "F6", "pin_b": "F5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/pabile/p20/ver1/config.h => keyboards/pabile/p20/ver1/config.h +0 -3
@@ 21,9 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* pin-out */
#define MATRIX_ROW_PINS { B3, B4, B5, D7, E6 }
#define MATRIX_COL_PINS { D0, B2, D4, B6 }
 
#define ENCODERS_PAD_A { F5, F7 }
#define ENCODERS_PAD_B { F6, B1 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
\ No newline at end of file

M keyboards/pabile/p20/ver1/info.json => keyboards/pabile/p20/ver1/info.json +6 -0
@@ 3,6 3,12 @@
    "usb": {
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F6"},
            {"pin_a": "F7", "pin_b": "B1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina"
}

M keyboards/palette1202/config.h => keyboards/palette1202/config.h +0 -7
@@ 24,13 24,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Encoders */
#define ENCODERS_PAD_A { F4, F6 }
#define ENCODERS_PAD_B { F5, F7 }
#define ENCODER_RESOLUTION 2
// if you want to reverse encoder direction
// #define ENCODER_DIRECTION_FLIP

/* Register custom font file */
#ifdef OLED_ENABLE
  #define OLED_FONT_H "lib/glcdfont.c"

M keyboards/palette1202/info.json => keyboards/palette1202/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x1202",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "F4", "pin_b": "F5", "resolution": 2},
      {"pin_a": "F6", "pin_b": "F7", "resolution": 2}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/pauperboards/brick/info.json => keyboards/pauperboards/brick/info.json +1 -1
@@ 28,7 28,7 @@
    },
    "encoder": {
        "rotary": [
            { "pin_a": "F4", "pin_b": "F5", "resolution": 4 }
            { "pin_a": "F4", "pin_b": "F5" }
        ]
    },
    "rgblight": {

M keyboards/pearlboards/atlas/config.h => keyboards/pearlboards/atlas/config.h +0 -6
@@ 34,12 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Encoder Function */
#define ENCODERS_PAD_A { E0 }
#define ENCODERS_PAD_B { D7 }
//#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 1

/* Audio Function */
#define AUDIO_CLICKY
#define AUDIO_PIN C6

M keyboards/pearlboards/atlas/info.json => keyboards/pearlboards/atlas/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6964",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E0", "pin_b": "D7", "resolution": 1}
        ]
    },
    "indicators": {
        "caps_lock": "F4",
        "num_lock": "F5",

M keyboards/pearlboards/pandora/config.h => keyboards/pearlboards/pandora/config.h +0 -5
@@ 34,11 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Encoder Function */
#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }
//#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 1
#define DIP_SWITCH_PINS { B2, B5 }

/*== all animations enabled ==*/

M keyboards/pearlboards/pandora/info.json => keyboards/pearlboards/pandora/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6963",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F5", "resolution": 1}
        ]
    },
    "indicators": {
        "caps_lock": "E6",
        "on_state": 0

M keyboards/pearlboards/zeus/config.h => keyboards/pearlboards/zeus/config.h +0 -6
@@ 34,12 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Encoder Function */
#define ENCODERS_PAD_A { E7 }
#define ENCODERS_PAD_B { E6 }
//#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 1

/* Audio Function */
#define AUDIO_CLICKY
#define AUDIO_PIN C6

M keyboards/pearlboards/zeus/info.json => keyboards/pearlboards/zeus/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6966",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E7", "pin_b": "E6", "resolution": 1}
        ]
    },
    "indicators": {
        "caps_lock": "C5",
        "num_lock": "C4",

M keyboards/pearlboards/zeuspad/config.h => keyboards/pearlboards/zeuspad/config.h +0 -6
@@ 41,12 41,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define AUDIO_CLICKY
#define AUDIO_PIN C6

/* Encoder Function */
#define ENCODERS_PAD_A { D6 }
#define ENCODERS_PAD_B { D4 }
//#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 1

/*== all animations enabled ==*/
/* If RGBLIGHT_SLEEP defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGB_DI_PIN B7

M keyboards/pearlboards/zeuspad/info.json => keyboards/pearlboards/zeuspad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6967",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D6", "pin_b": "D4", "resolution": 1}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 0,

M keyboards/pegasus/config.h => keyboards/pegasus/config.h +0 -5
@@ 40,11 40,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE


/* Rotary Encoder Definitions */
#define ENCODERS_PAD_A { D0, D5 }
#define ENCODERS_PAD_B { D1, D3 }

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/pegasus/info.json => keyboards/pegasus/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "D5", "pin_b": "D3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/peranekofactory/tone/rev1/config.h => keyboards/peranekofactory/tone/rev1/config.h +0 -3
@@ 17,9 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* Rotary encoder define*/
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B4 }
#define TAP_CODE_DELAY 100

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */

M keyboards/peranekofactory/tone/rev1/info.json => keyboards/peranekofactory/tone/rev1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/peranekofactory/tone/rev2/config.h => keyboards/peranekofactory/tone/rev2/config.h +0 -3
@@ 17,9 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* Rotary encoder define*/
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B4 }
#define TAP_CODE_DELAY 100

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */

M keyboards/peranekofactory/tone/rev2/info.json => keyboards/peranekofactory/tone/rev2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/percent/canoe_gen2/config.h => keyboards/percent/canoe_gen2/config.h +0 -3
@@ 23,9 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS {B1,B3,B2,F5,F4}
#define MATRIX_COL_PINS {B0,D0,C6,B6,B5,B4,D7,D6,D4,D5,D3,D2,D1,F6,F7}

/* Uncomment if your encoder doesn't react to every turn or skips */
//#define ENCODER_RESOLUTION 2

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/pica40/rev2/info.json => keyboards/pica40/rev2/info.json +1 -1
@@ 40,7 40,7 @@
        }
    },
    "encoder": {
        "rotary": [{ "pin_a": "GP7", "pin_b": "GP7" }]
        "rotary": [{ "pin_a": "GP7", "pin_b": "GP7", "resolution": 4 }]
    },
    "usb": {
        "device_version": "1.0.0",

M keyboards/pica40/rev2/rev2.h => keyboards/pica40/rev2/rev2.h +0 -3
@@ 16,7 16,4 @@
#   ifndef ENCODER_MAP_KEY_DELAY
#       define ENCODER_MAP_KEY_DELAY 2
#   endif
#   ifndef ENCODER_RESOLUTION
#       define ENCODER_RESOLUTION 4
#   endif
#endif

M keyboards/planck/ez/config.h => keyboards/planck/ez/config.h +0 -3
@@ 35,9 35,6 @@
#define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2 }
#define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 }

#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }

#define MUSIC_MAP
#undef AUDIO_VOICES
#undef AUDIO_PIN

M keyboards/planck/ez/info.json => keyboards/planck/ez/info.json +5 -0
@@ 6,6 6,11 @@
    "vid": "0x3297",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B12", "pin_b": "B13"}
    ]
  },
  "processor": "STM32F303",
  "bootloader": "stm32-dfu",
  "community_layouts": ["ortho_4x12", "planck_mit"],

M keyboards/planck/rev6/config.h => keyboards/planck/rev6/config.h +0 -4
@@ 34,10 34,6 @@
#define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2 }
#define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 }


#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }

#define DIP_SWITCH_PINS { B14, A15, A0, B9 }

#define MUSIC_MAP

M keyboards/planck/rev6/info.json => keyboards/planck/rev6/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0xA4F9",
    "device_version": "0.0.6"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B12", "pin_b": "B13"}
    ]
  },
  "processor": "STM32F303",
  "bootloader": "stm32-dfu",
  "board": "QMK_PROTON_C",

M keyboards/planck/rev6_drop/config.h => keyboards/planck/rev6_drop/config.h +0 -6
@@ 36,12 36,6 @@
#define MATRIX_COL_PINS \
    { B11, B10, B2, B1, A7, B0 }


#define ENCODERS_PAD_A \
    { B12 }
#define ENCODERS_PAD_B \
    { B13 }

#define DIP_SWITCH_PINS \
    { B14, A15, A0, B9 }


M keyboards/planck/rev6_drop/info.json => keyboards/planck/rev6_drop/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0xA4F9",
    "device_version": "0.0.6"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B12", "pin_b": "B13"}
    ]
  },
  "processor": "STM32F303",
  "bootloader": "stm32-dfu",
  "community_layouts": ["ortho_4x12", "planck_mit"],

M keyboards/planck/thk/config.h => keyboards/planck/thk/config.h +0 -3
@@ 26,9 26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { A7, A6, A5, A4 }
#define MATRIX_COL_PINS { D7, C2, C3, C4, C5, C6, C7, A3, A2, A1, A0, B0 }

#define ENCODERS_PAD_A { B4, B2 }
#define ENCODERS_PAD_B { B3, B1 }

#define TAPPING_TOGGLE 3

#define DIP_SWITCH_PINS { D0, D1, D4, D6 }

M keyboards/planck/thk/info.json => keyboards/planck/thk/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x25A7",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B4", "pin_b": "B3"},
      {"pin_a": "B2", "pin_b": "B1"}
    ]
  },
  "processor": "atmega32a",
  "bootloader": "usbasploader",
  "layout_aliases": {

M keyboards/pluckey/config.h => keyboards/pluckey/config.h +0 -8
@@ 31,14 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6, F7 }
#define DIODE_DIRECTION COL2ROW

/* encoder support */
#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODER_RESOLUTION 2
#define ENCODERS_PAD_A_RIGHT { B2 }
#define ENCODERS_PAD_B_RIGHT { B3 }
#define ENCODER_RESOLUTION_RIGHT 2

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/pluckey/info.json => keyboards/pluckey/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x91CE",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B2", "resolution": 2}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B2", "pin_b": "B3", "resolution": 2}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/pohjolaworks/louhi/config.h => keyboards/pohjolaworks/louhi/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Encoder pins */
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }

#define RGB_DI_PIN B5
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 14

M keyboards/pohjolaworks/louhi/info.json => keyboards/pohjolaworks/louhi/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/preonic/rev3/config.h => keyboards/preonic/rev3/config.h +0 -3
@@ 22,9 22,6 @@
#define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2, A3, A6 }
#define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 }

#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }

#define DIP_SWITCH_PINS { B14, A15, A0, B9 }

#define MUSIC_MAP

M keyboards/preonic/rev3/info.json => keyboards/preonic/rev3/info.json +5 -0
@@ 6,6 6,11 @@
        "pid": "0xA649",
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B12", "pin_b": "B13"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "board": "QMK_PROTON_C",

M keyboards/preonic/rev3_drop/config.h => keyboards/preonic/rev3_drop/config.h +0 -3
@@ 22,9 22,6 @@
#define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2, A3, A6 }
#define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 }

#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }

#define DIP_SWITCH_PINS { B14, A15, A0, B9 }

#define MUSIC_MAP

M keyboards/preonic/rev3_drop/info.json => keyboards/preonic/rev3_drop/info.json +5 -0
@@ 6,6 6,11 @@
        "pid": "0xA649",
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B12", "pin_b": "B13"}
        ]
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "community_layouts": ["ortho_5x12"],

M keyboards/program_yoink/config.h => keyboards/program_yoink/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/*Encoder Definition*/
#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }

/*RGB*/
#define RGB_DI_PIN D4
 #ifdef RGB_DI_PIN

M keyboards/program_yoink/ortho/info.json => keyboards/program_yoink/ortho/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xF10C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/program_yoink/staggered/info.json => keyboards/program_yoink/staggered/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xF10B",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/projectcain/relic/config.h => keyboards/projectcain/relic/config.h +0 -3
@@ 16,9 16,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once
#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { D6 }


/*
 * Keyboard Matrix Assignments

M keyboards/projectcain/relic/info.json => keyboards/projectcain/relic/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6060",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "D6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/projectcain/vault35/config.h => keyboards/projectcain/vault35/config.h +0 -4
@@ 31,10 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D6 }
#define ENCODERS_PAD_B { D7 }
#define ENCODER_RESOLUTION 2

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/projectcain/vault35/info.json => keyboards/projectcain/vault35/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x6060",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "D6", "pin_b": "D7", "resolution": 2}
      ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/projectcain/vault45/config.h => keyboards/projectcain/vault45/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B3, D1 }
#define ENCODERS_PAD_B { B2, D2 }
#define ENCODER_RESOLUTION 2

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/projectcain/vault45/info.json => keyboards/projectcain/vault45/info.json +6 -0
@@ 8,6 8,12 @@
      "pid": "0x6060",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "B3", "pin_b": "B2", "resolution": 2},
        {"pin_a": "D1", "pin_b": "D2", "resolution": 2}
      ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layout_aliases": {

M keyboards/protozoa/p01/config.h => keyboards/protozoa/p01/config.h +0 -5
@@ 21,11 21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B1, B2, B10, B11, B12, B13 }
#define MATRIX_COL_PINS { A14, A15, B3, B4, B5, B6, B7, B8, B9, A0, A1, A2, A3, A4, A5, A6, A7, B0 }

/* Encoder */
#define ENCODERS 1
#define ENCODERS_PAD_A { B15 }
#define ENCODERS_PAD_B { B14 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/protozoa/p01/info.json => keyboards/protozoa/p01/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5031",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B15", "pin_b": "B14"}
        ]
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/psuieee/pluto12/config.h => keyboards/psuieee/pluto12/config.h +0 -5
@@ 8,11 8,6 @@
#define MATRIX_ROW_PINS { D0, D4, C6 }
#define MATRIX_COL_PINS { D7, E6, B4, B5 }

/* Encoder Assignments */
#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B2 }
#define ENCODER_RESOLUTION 4

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/psuieee/pluto12/info.json => keyboards/psuieee/pluto12/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7012",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/pteron36/config.h => keyboards/pteron36/config.h +0 -8
@@ 58,14 58,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// for via
#define DYNAMIC_KEYMAP_LAYER_COUNT 7

//left encoder
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }

//right encoder
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }

//RGB Underglow
#define RGB_DI_PIN B6
#define RGBLED_NUM 10

M keyboards/pteron36/info.json => keyboards/pteron36/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x5054",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },
    "split": {
        "soft_serial_pin": "D3"
        "soft_serial_pin": "D3",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/punk75/config.h => keyboards/punk75/config.h +0 -4
@@ 32,10 32,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { C2, C3, C6, C5, C4, A7, A6, A5, A4, B4, A3, B3, A2, B2, A1 }
#define LED A0

#define ENCODERS_PAD_A { D0, B1}
#define ENCODERS_PAD_B { D1, B0 }


/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/punk75/info.json => keyboards/punk75/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "B1", "pin_b": "B0"}
        ]
    },
    "processor": "atmega32a",
    "bootloader": "usbasploader",
    "community_layouts": ["ortho_5x15"],

M keyboards/qpockets/eggman/config.h => keyboards/qpockets/eggman/config.h +0 -7
@@ 23,10 23,3 @@

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* ROTARY ENCODERS */
#define ENCODERS_PAD_A { C6, D4 }
#define ENCODERS_PAD_B { C7, D5 }

#define ENCODER_RESOLUTION 4
//#define ENCODER_DIRECTION_FLIP

M keyboards/qpockets/eggman/info.json => keyboards/qpockets/eggman/info.json +6 -0
@@ 8,6 8,12 @@
    	"pid": "0x656D",
    	"device_version": "10.0.0"
    },
    "encoder": {
    	"rotary": [
    		{"pin_a": "C6", "pin_b": "C7"},
    		{"pin_a": "D4", "pin_b": "D5"}
    	]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/qpockets/space_space/rev1/config.h => keyboards/qpockets/space_space/rev1/config.h +0 -10
@@ 26,14 26,4 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* ROTARY ENCODERS */
#define ENCODERS_PAD_A \
    { B3, D6 }
#define ENCODERS_PAD_B \
    { B2, D7 }

#define ENCODER_RESOLUTIONS \
    { 3, 4 }
//#define ENCODER_DIRECTION_FLIP

#define LOCKING_SUPPORT_ENABLE

M keyboards/qpockets/space_space/rev1/info.json => keyboards/qpockets/space_space/rev1/info.json +6 -0
@@ 8,6 8,12 @@
  	"pid": "0x7373",
  	"device_version": "30.0.0"
  },
  "encoder": {
  	"rotary": [
  		{"pin_a": "B3", "pin_b": "B2", "resolution": 3},
  		{"pin_a": "D6", "pin_b": "D7"}
  	]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "debounce": 7,

M keyboards/qpockets/space_space/rev2/config.h => keyboards/qpockets/space_space/rev2/config.h +0 -8
@@ 26,14 26,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* ROTARY ENCODERS */
#define ENCODERS_PAD_A \
    { B4, C7 }
#define ENCODERS_PAD_B \
    { D7, F7 }

#define ENCODER_RESOLUTION 3

#define LOCKING_SUPPORT_ENABLE

#define RGB_DI_PIN F0

M keyboards/qpockets/space_space/rev2/info.json => keyboards/qpockets/space_space/rev2/info.json +6 -0
@@ 8,6 8,12 @@
  	"pid": "0x7373",
  	"device_version": "30.0.2"
  },
  "encoder": {
  	"rotary": [
  		{"pin_a": "B4", "pin_b": "D7", "resolution": 3},
  		{"pin_a": "C7", "pin_b": "F7", "resolution": 3}
  	]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/qpockets/wanten/config.h => keyboards/qpockets/wanten/config.h +0 -7
@@ 34,13 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* ROTARY ENCODERS */
#define ENCODERS_PAD_A { F5, D6 }
#define ENCODERS_PAD_B { F6, D7 }

#define ENCODER_RESOLUTION 4
//#define ENCODER_DIRECTION_FLIP

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/qpockets/wanten/info.json => keyboards/qpockets/wanten/info.json +6 -0
@@ 8,6 8,12 @@
    	"pid": "0x7774",
    	"device_version": "0.0.1"
    },
    "encoder": {
    	"rotary": [
    		{"pin_a": "F5", "pin_b": "F6"},
    		{"pin_a": "D6", "pin_b": "D7"}
    	]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 4,

M keyboards/qvex/lynepad/config.h => keyboards/qvex/lynepad/config.h +0 -4
@@ 25,10 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Encoders */
#define ENCODERS_PAD_A { D0, B5 }
#define ENCODERS_PAD_B { D1, D6 }

/* LEDs */
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN

M keyboards/qvex/lynepad/info.json => keyboards/qvex/lynepad/info.json +6 -0
@@ 8,6 8,12 @@
      "pid": "0x4C50",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "D0", "pin_b": "D1"},
        {"pin_a": "B5", "pin_b": "D6"},
      ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/qwertlekeys/calice/config.h => keyboards/qwertlekeys/calice/config.h +0 -4
@@ 20,10 20,6 @@
#define MATRIX_ROW_PINS {F0, F1, F5, F4, C6, C7, B5, B6, D4, D2, D5, D3}
#define MATRIX_COL_PINS {D7, B4, F7, F6, D1, B7, B3, B2} 

/* Envoder */
#define ENCODERS_PAD_A {B0}
#define ENCODERS_PAD_B {B1}

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/qwertlekeys/calice/info.json => keyboards/qwertlekeys/calice/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B1"}
        ]
    },
    "indicators": {
        "caps_lock": "D6"
    },

M keyboards/rainkeebs/rainkeeb/config.h => keyboards/rainkeebs/rainkeeb/config.h +0 -5
@@ 28,8 28,3 @@

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* encoder pads */
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B6 }
#define ENCODER_RESOLUTION 4

M keyboards/rainkeebs/rainkeeb/info.json => keyboards/rainkeebs/rainkeeb/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x726B",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/rart/rart4x4/config.h => keyboards/rart/rart4x4/config.h +0 -3
@@ 31,9 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { F6, D7 }
#define ENCODERS_PAD_B { F5, E6 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/rart/rart4x4/info.json => keyboards/rart/rart4x4/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0004",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F6", "pin_b": "F5"},
            {"pin_a": "D7", "pin_b": "E6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "community_layouts": ["ortho_4x4"],

M keyboards/rart/rart75/config.h => keyboards/rart/rart75/config.h +0 -3
@@ 30,6 30,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { E6 }
#define ENCODERS_PAD_B { B0 }

M keyboards/rart/rart75/info.json => keyboards/rart/rart75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0075",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/rart/rart75hs/config.h => keyboards/rart/rart75hs/config.h +0 -4
@@ 31,10 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { C1 }
#define ENCODERS_PAD_B { C2 }
#define ENCODER_RESOLUTION 4 //default/suggested

#define RGB_DI_PIN C0
#ifdef RGB_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/rart/rart75hs/info.json => keyboards/rart/rart75hs/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5575",
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C1", "pin_b": "C2"}
        ]
    },
    "indicators": {
        "caps_lock": "D4",
        "on_state": 0

M keyboards/rart/rart75m/config.h => keyboards/rart/rart75m/config.h +0 -4
@@ 31,10 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { C7, B3, B1, B0, D3, D2 }
#define MATRIX_COL_PINS { B2, D4, F0, C6, F1, D7, F4, E6, F5, B4, F6, B5, F7, B6 }

#define ENCODERS_PAD_B { B7 }
#define ENCODERS_PAD_A { D6 }
#define ENCODER_RESOLUTION 2 //default/suggested

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/rart/rart75m/info.json => keyboards/rart/rart75m/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6075",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B7", "pin_b": "D6", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/rart/rartland/config.h => keyboards/rart/rartland/config.h +0 -4
@@ 31,10 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B4, A7, A5, A6, C3 }
#define MATRIX_COL_PINS { B0, A1, B1, A2, B2, A3, B3, A4, C7, C6, D0, C5, D1, C4 }

#define ENCODERS_PAD_B { D5 }
#define ENCODERS_PAD_A { C2 }
#define ENCODER_RESOLUTION 2 //default/suggested

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/rart/rartland/info.json => keyboards/rart/rartland/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6065",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "C2", "resolution": 2}
        ]
    },
    "indicators": {
        "caps_lock": "A0",
        "on_state": 0

M keyboards/rart/rartpad/config.h => keyboards/rart/rartpad/config.h +0 -3
@@ 31,9 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { B3, F5 }
#define ENCODERS_PAD_B { B1, F4 }

#define RGB_DI_PIN F7
#ifdef RGB_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING

M keyboards/rart/rartpad/info.json => keyboards/rart/rartpad/info.json +6 -0
@@ 8,6 8,12 @@
      "pid": "0x0050",
      "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B3", "pin_b": "B1"},
      {"pin_a": "F5", "pin_b": "F4"}
    ]
  },
  "indicators": {
      "caps_lock": "D7"
  },

M keyboards/rate/pistachio_mp/config.h => keyboards/rate/pistachio_mp/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A {F4}
#define ENCODERS_PAD_B {F5}
#endif

/*
 * Keyboard Matrix Assignments
 *

M keyboards/rate/pistachio_mp/info.json => keyboards/rate/pistachio_mp/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE212",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/rate/pistachio_pro/config.h => keyboards/rate/pistachio_pro/config.h +0 -4
@@ 17,10 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODERS_PAD_A {D2}
#define ENCODERS_PAD_B {D3}

/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 18

M keyboards/rate/pistachio_pro/info.json => keyboards/rate/pistachio_pro/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xF40C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/redox_media/config.h => keyboards/redox_media/config.h +0 -4
@@ 29,7 29,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 4

M keyboards/redox_media/info.json => keyboards/redox_media/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0000",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D0"
    },

M keyboards/reedskeebs/alish40/info.json => keyboards/reedskeebs/alish40/info.json +1 -2
@@ 8,8 8,7 @@
        "rotary": [
            {
                "pin_a": "B4",
                "pin_b": "B5",
                "resolution": 4
                "pin_b": "B5"
            }
        ]
    },

M keyboards/reviung/reviung5/config.h => keyboards/reviung/reviung5/config.h +0 -6
@@ 36,12 36,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Encoder */
#define ENCODERS_PAD_A \
    { D0 }
#define ENCODERS_PAD_B \
    { D1 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#    define RGBLED_NUM         4

M keyboards/reviung/reviung5/info.json => keyboards/reviung/reviung5/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4F0D",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layout_aliases": {

M keyboards/rgbkb/mun/config.h => keyboards/rgbkb/mun/config.h +0 -4
@@ 25,10 25,6 @@
#define TOUCH_RESOLUTION 25 // sensitivity of swipes, lower=faster
#define TOUCH_SEGMENTS 3

/* Encoder Configuration */
#define ENCODERS_PAD_A { B8, B9 }
#define ENCODERS_PAD_B { A14, A15 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/rgbkb/mun/rev1/info.json => keyboards/rgbkb/mun/rev1/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x3505",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B8", "pin_b": "A14"},
            {"pin_a": "B9", "pin_b": "A15"}
        ]
    },
    "split": {
        "soft_serial_pin": "A9"
    },

M keyboards/rgbkb/pan/config.h => keyboards/rgbkb/pan/config.h +0 -2
@@ 16,8 16,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODER_RESOLUTION 4
#define RGBLED_NUM 64
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD

M keyboards/rgbkb/pan/rev1/32a/config.h => keyboards/rgbkb/pan/rev1/32a/config.h +1 -2
@@ 18,6 18,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define MATRIX_ROW_PINS { D7, D1, D5, D6, C2 }
#define MATRIX_COL_PINS { C3, C4, C5, C6, C7, A7, A6, A5, A4, A3, A2, A1, A0 }
#define ENCODERS_PAD_A { B0, D0 }
#define ENCODERS_PAD_B { B1, B2}

#define RGB_DI_PIN B3

M keyboards/rgbkb/pan/rev1/32a/info.json => keyboards/rgbkb/pan/rev1/32a/info.json +7 -1
@@ 1,4 1,10 @@
{
    "processor": "atmega32a",
    "bootloader": "usbasploader"
    "bootloader": "usbasploader",
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B1"},
            {"pin_a": "D0", "pin_b": "B2"}
        ]
    }
}

M keyboards/rgbkb/pan/rev1/proton_c/config.h => keyboards/rgbkb/pan/rev1/proton_c/config.h +1 -2
@@ 18,6 18,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define MATRIX_ROW_PINS { A15, B10, A14, A13, A7 }
#define MATRIX_COL_PINS { A8, A6, B0, B1, B2, B4, B5, A1, A2, B3, B9, A10, A9 }
#define ENCODERS_PAD_A { B14, B11 }
#define ENCODERS_PAD_B { B15, B12 }

#define RGB_DI_PIN A3

M keyboards/rgbkb/pan/rev1/proton_c/info.json => keyboards/rgbkb/pan/rev1/proton_c/info.json +7 -1
@@ 1,5 1,11 @@
{
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",
    "board": "QMK_PROTON_C"
    "board": "QMK_PROTON_C",
    "encoder": {
        "rotary": [
            {"pin_a": "B14", "pin_b": "B15"},
            {"pin_a": "B11", "pin_b": "B12"}
        ]
    }
}

M keyboards/rgbkb/sol/rev1/config.h => keyboards/rgbkb/sol/rev1/config.h +0 -4
@@ 29,7 29,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGB_MATRIX_LED_COUNT  RGBLED_NUM

#define RGB_MATRIX_CENTER { 112, 35 }

// Encoder support
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D6 }

M keyboards/rgbkb/sol/rev1/info.json => keyboards/rgbkb/sol/rev1/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x3060",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D6"}
        ]
    },
    "split": {
        "soft_serial_pin": "D3"
    },

M keyboards/rgbkb/sol3/config.h => keyboards/rgbkb/sol3/config.h +0 -8
@@ 28,14 28,6 @@
#define TOUCH_RESOLUTION 25 // sensitivity of swipes, lower=faster
#define TOUCH_SEGMENTS 3

/* Encoder Configuration */
//      Matrix Entries  k36/k35(E1SW>B13), k33/k32, k7/k28
#define ENCODERS_PAD_A { A1, B10, A13 }
#define ENCODERS_PAD_B { A2, B11, B14 }
//      Matrix Entries  k72/k71(E5SW>B0), k69/k68, k43/k64
#define ENCODERS_PAD_A_RIGHT { A1, C15,  B3 }
#define ENCODERS_PAD_B_RIGHT { A2, C14, B13 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/rgbkb/sol3/rev1/info.json => keyboards/rgbkb/sol3/rev1/info.json +17 -1
@@ 8,8 8,24 @@
        "pid": "0x3510",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A1", "pin_b": "A2"},
            {"pin_a": "B10", "pin_b": "B11"},
            {"pin_a": "A13", "pin_b": "B14"}
        ]
    },
    "split": {
        "soft_serial_pin": "A9"
        "soft_serial_pin": "A9",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "A1", "pin_b": "A2"},
                    {"pin_a": "C15", "pin_b": "C14"},
                    {"pin_a": "B3", "pin_b": "B13"}
                ]
            }
        }
    },
    "processor": "STM32F303",
    "bootloader": "stm32-dfu",

M keyboards/rgbkb/zen/rev2/config.h => keyboards/rgbkb/zen/rev2/config.h +0 -3
@@ 22,9 22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { C6, E6, B5, D7, B4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B3, B1, B2 }

#define ENCODERS_PAD_A  { D4 }
#define ENCODERS_PAD_B  { D2 }

#define RGB_DI_PIN         B6

/* COL2ROW or ROW2COL */

M keyboards/rgbkb/zen/rev2/info.json => keyboards/rgbkb/zen/rev2/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x3061",
      "device_version": "0.0.2"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "D4", "pin_b": "D2"}
      ]
    },
    "split": {
      "soft_serial_pin": "D3"
    },

M keyboards/rgbkb/zygomorph/rev1/config.h => keyboards/rgbkb/zygomorph/rev1/config.h +0 -3
@@ 28,9 28,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A  { D2 }
#define ENCODERS_PAD_B  { D7 }

/* ws2812 RGB LED */
#define RGB_DI_PIN B7
#ifndef RGBLIGHT_SPLIT_ENABLE

M keyboards/rgbkb/zygomorph/rev1/info.json => keyboards/rgbkb/zygomorph/rev1/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x3060",
      "device_version": "0.0.1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "D2", "pin_b": "D7"}
      ]
    },
    "split": {
      "soft_serial_pin": "D3"
    },

M keyboards/ristretto/config.h => keyboards/ristretto/config.h +0 -4
@@ 29,7 29,3 @@

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { D6 }
#define ENCODER_RESOLUTION 4

M keyboards/ristretto/info.json => keyboards/ristretto/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x7273",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "D6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/rmi_kb/chevron/config.h => keyboards/rmi_kb/chevron/config.h +0 -6
@@ 58,9 58,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* QoL improvements */
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT

/* Encoder */
#define ENCODERS_PAD_A { A0 }
#define ENCODERS_PAD_B { A1 }

//#define ENCODER_DIRECTION_FLIP

M keyboards/rmi_kb/chevron/info.json => keyboards/rmi_kb/chevron/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xC4EE",
        "device_version": "0.1.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "A1"}
        ]
    },
    "processor": "atmega32a",
    "bootloader": "usbasploader",
    "layouts": {

M keyboards/rmi_kb/herringbone/pro/config.h => keyboards/rmi_kb/herringbone/pro/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Encoder pin assignment */
#define ENCODERS_PAD_A { C3 }
#define ENCODERS_PAD_B { C2 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/rmi_kb/herringbone/pro/info.json => keyboards/rmi_kb/herringbone/pro/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x440B",
        "device_version": "0.1.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C3", "pin_b": "C2"}
        ]
    },
    "processor": "atmega32a",
    "bootloader": "usbasploader",
    "layouts": {

M keyboards/rmi_kb/squishytkl/config.h => keyboards/rmi_kb/squishytkl/config.h +0 -8
@@ 79,11 79,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* QoL improvements */
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT

/* Rotary encoder */
#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B7 }

#define ENCODER_RESOLUTION 1

//#define ENCODER_DIRECTION_FLIP

M keyboards/rmi_kb/squishytkl/info.json => keyboards/rmi_kb/squishytkl/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x00B1",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B7", "resolution": 1}
        ]
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "layouts": {

M keyboards/rmi_kb/wete/v2/config.h => keyboards/rmi_kb/wete/v2/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Encoder pins */
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D1 }

#define RGBLIGHT_LAYERS
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF


M keyboards/rmi_kb/wete/v2/info.json => keyboards/rmi_kb/wete/v2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x00B3",
        "device_version": "35.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/rmkeebs/rm_numpad/config.h => keyboards/rmkeebs/rm_numpad/config.h +0 -4
@@ 36,10 36,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* define encoder pins */
#define ENCODERS_PAD_A { D7 }
#define ENCODERS_PAD_B { D4 }

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/rmkeebs/rm_numpad/info.json => keyboards/rmkeebs/rm_numpad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x524E",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D7", "pin_b": "D4"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "community_layouts": ["numpad_6x4", "ortho_6x4"],

M keyboards/rocketboard_16/config.h => keyboards/rocketboard_16/config.h +0 -6
@@ 43,12 43,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// Allows for rotary encoder volume control
#define TAP_CODE_DELAY 20

/* Encoder stuff */
#define ENCODERS_PAD_A \
    { A0, A2 }
#define ENCODERS_PAD_B \
    { A1, A3 }

#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE


M keyboards/rocketboard_16/info.json => keyboards/rocketboard_16/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0xFF16",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A0", "pin_b": "A1"},
            {"pin_a": "A2", "pin_b": "A3"}
        ]
    },
    "bootmagic": {
        "matrix": [4, 1]
    },

M keyboards/rotr/config.h => keyboards/rotr/config.h +0 -8
@@ 5,14 5,6 @@
#define MATRIX_ROW_PINS { E6 }
#define MATRIX_COL_PINS { D1, D0, D4 }

/*Rotary Encoder Pins*/
#define ENCODERS_PAD_A { C6 }
#define ENCODERS_PAD_B { D7 }

/*Sets the number of pulses per increment*/
#define ENCODER_RESOLUTION 2


/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/rotr/info.json => keyboards/rotr/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "D7", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/rubi/config.h => keyboards/rubi/config.h +0 -3
@@ 31,9 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 }
#define MATRIX_COL_PINS { B3, B2, B1, F7 }

#define ENCODERS_PAD_A { D7 }
#define ENCODERS_PAD_B { D6 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/rubi/info.json => keyboards/rubi/info.json +5 -0
@@ 8,6 8,11 @@
      "pid": "0x5242",
      "device_version": "0.0.1"
   },
   "encoder": {
      "rotary": [
         {"pin_a": "D7", "pin_b": "D6"}
      ]
   },
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
   "layouts": {

M keyboards/rura66/rev1/config.h => keyboards/rura66/rev1/config.h +0 -4
@@ 64,10 64,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Custom font */
#define OLED_FONT_H "keyboards/rura66/common/glcdfont.c"

/* Encorder */
// #define ENCODERS_PAD_A { B6 }
// #define ENCODERS_PAD_B { B5 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/sawnsprojects/krush/krush65/hotswap/config.h => keyboards/sawnsprojects/krush/krush65/hotswap/config.h +0 -5
@@ 25,11 25,6 @@

/* Encoders */

#define ENCODERS 1

#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D2 }

#define ENCODERS_CW_KEY  { { 12, 3 } }
#define ENCODERS_CCW_KEY { { 12, 4 } }


M keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c => keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c +4 -11
@@ 20,16 20,12 @@
#include "encoder_actions.h"

#ifdef ENCODER_ENABLE

#    ifdef ENCODERS
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
#    endif
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#    ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 40,11 36,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#    endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#    ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 52,7 46,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#    endif
}

#endif
\ No newline at end of file

M keyboards/sawnsprojects/krush/krush65/hotswap/info.json => keyboards/sawnsprojects/krush/krush65/hotswap/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x5B31",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D2"}
        ]
    },
    "indicators": {
        "caps_lock": "B0",
        "on_state": 0

M keyboards/sawnsprojects/krush/krush65/solder/config.h => keyboards/sawnsprojects/krush/krush65/solder/config.h +0 -5
@@ 23,11 23,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* rotary */
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { B3 }
#define ENCODER_RESOLUTION 4

#define RGB_DI_PIN F1
#ifdef RGB_DI_PIN
    #define RGBLED_NUM 20

D keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c => keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c +0 -58
@@ 1,58 0,0 @@
/* Copyright 2020 Neil Brian Ramirez
 * Copyright 2021 drashna jael're (@drashna)
 * Copyright 2021 uybv
 * Copyright 2021 SawnsProjects
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include "encoder_actions.h"

#ifdef ENCODER_ENABLE

#    ifdef ENCODERS
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
#    endif

void encoder_action_unregister(void) {
#    ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
                .pressed = false,
                .time = (timer_read() | 1)
            };
            encoder_state[index] = 0;
            action_exec(encoder_event);
        }
    }
#    endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#    ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,
        .time = (timer_read() | 1)
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#    endif
}

#endif
\ No newline at end of file

D keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h => keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h +0 -23
@@ 1,23 0,0 @@
/* Copyright 2020 Neil Brian Ramirez
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#include "quantum.h"

void encoder_action_unregister(void);

void encoder_action_register(uint8_t index, bool clockwise);
\ No newline at end of file

M keyboards/sawnsprojects/krush/krush65/solder/info.json => keyboards/sawnsprojects/krush/krush65/solder/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6B31",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "B3"}
        ]
    },
    "indicators": {
        "caps_lock": "F0",
        "on_state": 0

M keyboards/sawnsprojects/krush/krush65/solder/solder.c => keyboards/sawnsprojects/krush/krush65/solder/solder.c +0 -1
@@ 15,7 15,6 @@
 */

#include "solder.h"
#include "encoder_actions.h"

   /*  Custom encoder control - handles CW/CCW turning of encoder
     *  Default behavior:

M keyboards/sck/gtm/config.h => keyboards/sck/gtm/config.h +0 -5
@@ 5,11 5,6 @@
#define MATRIX_ROW_PINS { C4, C5, D1 }
#define MATRIX_COL_PINS { B4, B5, B6, B7, C7, D0 }


#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }
#define ENCODER_RESOLUTION 1

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/sck/gtm/info.json => keyboards/sck/gtm/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6090",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D3", "resolution": 1}
        ]
    },
    "processor": "atmega32u2",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/sendyyeah/pix/config.h => keyboards/sendyyeah/pix/config.h +0 -3
@@ 19,9 19,6 @@
#define OLED_FONT_H "keymaps/default/glcdfont.c"
#define OLED_TIMEOUT 600000 // Turn of after 10 minutes

#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B3 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE


M keyboards/sendyyeah/pix/info.json => keyboards/sendyyeah/pix/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4E34",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/sergiopoverony/creator_pro/config.h => keyboards/sergiopoverony/creator_pro/config.h +0 -7
@@ 20,10 20,3 @@
#define RED_LED D0
#define BLUE_LED B5
#define GREEN_LED B6

/* encoder pins*/
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D3 }
#define ENCODER_RESOLUTION 1



M keyboards/sergiopoverony/creator_pro/info.json => keyboards/sergiopoverony/creator_pro/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0C00",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D2", "pin_b": "D3", "resolution": 1}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "matrix_pins": {

M keyboards/sidderskb/majbritt/rev2/config.h => keyboards/sidderskb/majbritt/rev2/config.h +0 -3
@@ 22,9 22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B0, B1, F7, C6, B5}
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, C7, B6, D6, B4, D4, D7, D5 ,D3, D2, D1, D0}

#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B7 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/sidderskb/majbritt/rev2/info.json => keyboards/sidderskb/majbritt/rev2/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B3", "pin_b": "B7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/sneakbox/aliceclone/config.h => keyboards/sneakbox/aliceclone/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* encoder */
/* #define NUMBER_OF_ENCODERS 1 */
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 1

/* key matrix pins */
#define MATRIX_ROW_PINS { F1, E6, F4, B1, F5, B2, F6, B3, F7, B7 }
#define MATRIX_COL_PINS { F0, D0, C7, C6, B6, B5, B4, D1 }

M keyboards/sneakbox/aliceclone/info.json => keyboards/sneakbox/aliceclone/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0001",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D3", "pin_b": "D2", "resolution": 1}
    ]
  },
  "bootmagic": {
    "matrix": [2, 0]
  },

M keyboards/sneakbox/aliceclonergb/config.h => keyboards/sneakbox/aliceclonergb/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* encoder */
/* #define NUMBER_OF_ENCODERS 1 */
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 1

/* key matrix pins */
#define MATRIX_ROW_PINS { F1, E6, F4, B1, F5, B2, F6, B3, F7, B7 }
#define MATRIX_COL_PINS { F0, D0, C7, C6, B6, B5, B4, D1 }

M keyboards/sneakbox/aliceclonergb/info.json => keyboards/sneakbox/aliceclonergb/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0006",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D3", "pin_b": "D2", "resolution": 1}
    ]
  },
  "indicators": {
    "caps_lock": "D6",
    "num_lock": "D4",

M keyboards/sneakbox/ava/config.h => keyboards/sneakbox/ava/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* encoder */
/* #define NUMBER_OF_ENCODERS 1 */
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 1

/* key matrix pins */
#define MATRIX_ROW_PINS { F1, E6, F4, B1, F5, B2, F6, B3, B7 }
#define MATRIX_COL_PINS { F0, D0, C7, C6, B6, B5, B4, D1 }

M keyboards/sneakbox/ava/info.json => keyboards/sneakbox/ava/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0004",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D3", "pin_b": "D2", "resolution": 1}
    ]
  },
  "indicators": {
    "caps_lock": "D6",
    "num_lock": "D4"

M keyboards/sneakbox/disarray/ortho/config.h => keyboards/sneakbox/disarray/ortho/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* encoder */
/* #define NUMBER_OF_ENCODERS 1 */
#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODER_RESOLUTION 1

/* key matrix pins */
#define MATRIX_ROW_PINS { B7, D0, D1, D2, D3, B0}
#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0, E6}

M keyboards/sneakbox/disarray/ortho/info.json => keyboards/sneakbox/disarray/ortho/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0003",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B3", "pin_b": "B2", "resolution": 1}
    ]
  },
  "indicators": {
    "num_lock": "B1"
  },

M keyboards/sneakbox/disarray/staggered/config.h => keyboards/sneakbox/disarray/staggered/config.h +0 -6
@@ 17,12 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

/* encoder */
/* #define NUMBER_OF_ENCODERS 1 */
#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODER_RESOLUTION 1

/* key matrix pins */
#define MATRIX_ROW_PINS { B7, D0, D1, D2, D3}
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, E6}

M keyboards/sneakbox/disarray/staggered/info.json => keyboards/sneakbox/disarray/staggered/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0002",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B3", "pin_b": "B2", "resolution": 1}
    ]
  },
  "indicators": {
    "num_lock": "B1"
  },

M keyboards/sofle/keyhive/config.h => keyboards/sofle/keyhive/config.h +0 -8
@@ 26,14 26,6 @@

#define DIODE_DIRECTION COL2ROW

// Encoder support
#define ENCODERS_PAD_A            { F5 }
#define ENCODERS_PAD_B            { F4 }
#define ENCODERS_PAD_A_RIGHT      { F4 }
#define ENCODERS_PAD_B_RIGHT      { F5 }
#define ENCODER_RESOLUTIONS       { 4 }
#define ENCODER_RESOLUTIONS_RIGHT { 2 }  // Left encoder seems to have double-output issue but right does not.

#define TAP_CODE_DELAY  10

// OLED settings

M keyboards/sofle/keyhive/info.json => keyboards/sofle/keyhive/info.json +13 -1
@@ 6,8 6,20 @@
        "pid": "0x1287",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5", "resolution": 2}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",

M keyboards/sofle/rev1/config.h => keyboards/sofle/rev1/config.h +0 -7
@@ 7,11 7,4 @@

#define TAPPING_TERM 100

/* encoder support */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }
#define ENCODER_RESOLUTION 2

#define TAP_CODE_DELAY 10

M keyboards/sofle/rev1/info.json => keyboards/sofle/rev1/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x0287",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F5", "pin_b": "F4", "resolution": 2}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F4", "pin_b": "F5", "resolution": 2}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/spacey/config.h => keyboards/spacey/config.h +0 -5
@@ 17,11 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }
#define ENCODER_RESOLUTION 4

/*
 * Keyboard Matrix Assignments
 *

M keyboards/spacey/info.json => keyboards/spacey/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x2045",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/splitkb/kyria/rev1/config.h => keyboards/splitkb/kyria/rev1/config.h +0 -9
@@ 23,15 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS \
    { B6, B2, B3, B1, F7, F6, F5, F4 }

#define ENCODERS_PAD_A \
    { C6 }
#define ENCODERS_PAD_B \
    { B5 }
#define ENCODERS_PAD_A_RIGHT \
    { B5 }
#define ENCODERS_PAD_B_RIGHT \
    { C6 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/splitkb/kyria/rev1/info.json => keyboards/splitkb/kyria/rev1/info.json +14 -0
@@ 4,6 4,20 @@
        "pid": "0x9D9D",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "B5"}
        ]
    },
    "split": {
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B5", "pin_b": "C6"}
                ]
            }
        }
    },
    "layouts": {
        "LAYOUT": {
            "layout": [

M keyboards/splitkb/kyria/rev2/config.h => keyboards/splitkb/kyria/rev2/config.h +0 -9
@@ 27,15 27,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT \
    { B4, B5, B6, B2, B3, B1, F7, F6 }

#define ENCODERS_PAD_A \
    { F4 }
#define ENCODERS_PAD_B \
    { F5 }
#define ENCODERS_PAD_A_RIGHT \
    { F5 }
#define ENCODERS_PAD_B_RIGHT \
    { F4 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/splitkb/kyria/rev2/info.json => keyboards/splitkb/kyria/rev2/info.json +14 -0
@@ 4,6 4,20 @@
        "pid": "0x9D9D",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F5"}
        ]
    },
    "split": {
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "F5", "pin_b": "F4"}
                ]
            }
        }
    },
    "layouts": {
        "LAYOUT": {
            "layout": [

M keyboards/splitkb/zima/config.h => keyboards/splitkb/zima/config.h +0 -7
@@ 17,9 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { D7 }

#define AUDIO_PIN B6
#define AUDIO_CLICKY
#define NO_MUSIC_MODE


@@ 47,7 44,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DRV_GREETING       alert_750ms
#define DRV_MODE_DEFAULT   buzz
// EC11K encoders have a different resolution than other EC11 encoders.
// When using the default resolution of 4, if you notice your encoder skipping
// every other tick, lower the resolution to 2.
#define ENCODER_RESOLUTION 2

M keyboards/splitkb/zima/info.json => keyboards/splitkb/zima/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xF75B",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "D7", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/star75/config.h => keyboards/star75/config.h +0 -6
@@ 11,12 11,6 @@ SPDX-License-Identifier: GPL-2.0-or-later */
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* encoder definitions */
#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B1 }
#endif

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE


M keyboards/star75/info.json => keyboards/star75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6060",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B1"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layout_aliases": {

M keyboards/stello65/beta/config.h => keyboards/stello65/beta/config.h +0 -7
@@ 20,15 20,8 @@
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 2

#define ENCODERS 1
#define ENCODERS_CW_KEY  { { 4, 7 } }
#define ENCODERS_CCW_KEY { { 4, 6 } }
#endif

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

M keyboards/stello65/beta/encoder_actions.c => keyboards/stello65/beta/encoder_actions.c +4 -11
@@ 19,16 19,12 @@
#include "encoder_actions.h"

#ifdef ENCODER_ENABLE

#    ifdef ENCODERS
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
#    endif
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#    ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 39,11 35,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#    endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#    ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 51,7 45,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#    endif
}

#endif

M keyboards/stello65/beta/info.json => keyboards/stello65/beta/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0003",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2", "resolution": 2}
        ]
    },
    "indicators": {
        "caps_lock": "B3"
    },

M keyboards/sthlmkb/lagom/info.json => keyboards/sthlmkb/lagom/info.json +2 -2
@@ 396,8 396,8 @@
        },
    "encoder": {
        "rotary": [
            { "pin_a": "D4", "pin_b": "C6", "resolution": 4 },
            { "pin_a": "F4", "pin_b": "F5", "resolution": 4 }
            { "pin_a": "D4", "pin_b": "C6" },
            { "pin_a": "F4", "pin_b": "F5" }
        ]
    }
    }

M keyboards/sthlmkb/litl/info.json => keyboards/sthlmkb/litl/info.json +1 -1
@@ 43,7 43,7 @@
    },
    "encoder": {
        "rotary": [
            { "pin_a": "D3", "pin_b": "D2", "resolution": 4 }
            { "pin_a": "D3", "pin_b": "D2" }
        ]
    }
}

M keyboards/swiftrax/retropad/config.h => keyboards/swiftrax/retropad/config.h +0 -3
@@ 23,9 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { C7, C6, B5 }
#define MATRIX_COL_PINS { B4, D2 }

#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/swiftrax/retropad/info.json => keyboards/swiftrax/retropad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xEB0C",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 0]
    },

M keyboards/synapse/config.h => keyboards/synapse/config.h +0 -8
@@ 26,12 26,4 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* ROTARY ENCODERS */
#define ENCODERS_PAD_A \
    { D7, C7 }
#define ENCODERS_PAD_B \
    { D6, C6 }

#define ENCODER_RESOLUTION 4

#define LOCKING_SUPPORT_ENABLE

M keyboards/synapse/info.json => keyboards/synapse/info.json +6 -0
@@ 8,6 8,12 @@
  	"pid": "0x5359",
  	"device_version": "0.0.1"
  },
  "encoder": {
  	"rotary": [
  		{"pin_a": "D7", "pin_b": "D6"},
  		{"pin_a": "C7", "pin_b": "C6"}
  	]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/synthlabs/solo/config.h => keyboards/synthlabs/solo/config.h +0 -5
@@ 3,11 3,6 @@

#pragma once


#define ENCODERS 1
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }
#define ENCODERS_CW_KEY { { 2, 1 } }
#define ENCODERS_CCW_KEY { { 0, 1 } }


M keyboards/synthlabs/solo/info.json => keyboards/synthlabs/solo/info.json +5 -0
@@ 17,6 17,11 @@
        "pid": "0x3031",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"}
        ]
    },
    "bootmagic": {
        "matrix": [1, 1]
    },

M keyboards/synthlabs/solo/keymaps/via/keymap.c => keyboards/synthlabs/solo/keymaps/via/keymap.c +4 -11
@@ 27,16 27,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)

#ifdef ENCODERS
static uint8_t encoder_state[] = {0};
static keypos_t encoder_cw[] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[] = ENCODERS_CCW_KEY;
#endif
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 47,11 43,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 59,7 53,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#endif
}

void matrix_scan_user(void) {

M keyboards/takashicompany/center_enter/config.h => keyboards/takashicompany/center_enter/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODER_RESOLUTION 1
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D1 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 6

M keyboards/takashicompany/center_enter/info.json => keyboards/takashicompany/center_enter/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0012",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D1", "resolution": 1}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/takashicompany/compacx/config.h => keyboards/takashicompany/compacx/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { E6, B6 }
#define ENCODERS_PAD_B { B4, B5 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 12

M keyboards/takashicompany/compacx/info.json => keyboards/takashicompany/compacx/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0014",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B4"},
            {"pin_a": "B6", "pin_b": "B5"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/takashicompany/dogtag/config.h => keyboards/takashicompany/dogtag/config.h +0 -4
@@ 37,10 37,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { D4 }
#define ENCODERS_PAD_B { C6 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 4 * 2

M keyboards/takashicompany/dogtag/info.json => keyboards/takashicompany/dogtag/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0018",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "C6"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/takashicompany/qoolee/config.h => keyboards/takashicompany/qoolee/config.h +0 -4
@@ 34,10 34,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODER_RESOLUTION 1
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D1 }

#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 6

M keyboards/takashicompany/qoolee/info.json => keyboards/takashicompany/qoolee/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0013",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D1", "resolution": 1}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

D keyboards/takashicompany/spreadwriter/config.h => keyboards/takashicompany/spreadwriter/config.h +0 -9
@@ 1,9 0,0 @@
// Copyright 2022 takashicompany (@takashicompany)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once


#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }

M keyboards/takashicompany/spreadwriter/info.json => keyboards/takashicompany/spreadwriter/info.json +5 -0
@@ 40,6 40,11 @@
        "pid": "0x0023",
        "vid": "0x7463"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"}
        ]
    },
    "rgblight": {
        "led_count": 53,
        "pin": "D3",

M keyboards/takashicompany/spreadwriter/keymaps/via/config.h => keyboards/takashicompany/spreadwriter/keymaps/via/config.h +0 -3
@@ 12,9 12,6 @@
// when turn knob clockwise or counterclockwise.
// This is handy to assign key codes by VIA.

// Number of endoder
#define ENCODERS 1

// Mappings of encoder rotation to key position in key matrix.
#define ENCODERS_CW_KEY  { { 0, 4 }}
#define ENCODERS_CCW_KEY { { 6, 0 }}
\ No newline at end of file

M keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c => keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c +4 -4
@@ 88,12 88,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
//------------------------------------------------------------------------------
// Rotary Encoder
//------------------------------------------------------------------------------
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],

M keyboards/taleguers/taleguers75/config.h => keyboards/taleguers/taleguers75/config.h +0 -3
@@ 24,9 24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B5 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE


M keyboards/taleguers/taleguers75/info.json => keyboards/taleguers/taleguers75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0075",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "B5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/terrazzo/config.h => keyboards/terrazzo/config.h +0 -38
@@ 25,44 25,6 @@

#define DIODE_DIRECTION COL2ROW

/* ROTARY ENCODERS */

/* 4 encoder positions are supported. With multiple
encoder support when using the extra pins of
Elite-C controller.

Use the following configuration guides for your
encoder layout. */

/* PRO MICRO CONFIGURATIONS */

/* If using a Pro Micro, only 1 encoder may be used,
and only in the top or bottom position.
Top and bottom encoders share the same net,
so there is only one configuration. */

/* TOP or BOTTOM */
// #define ENCODERS_PAD_A { C6 }
// #define ENCODERS_PAD_B { D4 }

/* ELITE-C ONLY CONFIGURATIONS */

/* TOP 3
   Default configuration */
#define ENCODERS_PAD_A { C6 , B7, C7 }
#define ENCODERS_PAD_B { D4 , D5, F1 }

/* BOTTOM 3 */
// #define ENCODERS_PAD_A { B7, C7, C6 }
// #define ENCODERS_PAD_B { D5, F1, D4 }

/* BOTTOM 2 */
// #define ENCODERS_PAD_A { C7, C6 }
// #define ENCODERS_PAD_B { F1, D4 }


#define ENCODER_RESOLUTION 2

#ifdef LED_MATRIX_ENABLE

#define LED_DRIVER_ADDR_1 0x74

M keyboards/terrazzo/info.json => keyboards/terrazzo/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x545A",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "D4", "resolution": 2},
            {"pin_a": "B7", "pin_b": "D5", "resolution": 2},
            {"pin_a": "C7", "pin_b": "F1", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/tetris/config.h => keyboards/tetris/config.h +0 -3
@@ 20,9 20,6 @@
  #define NO_MUSIC_MODE
#endif

#define ENCODERS_PAD_A { D1,F1 }
#define ENCODERS_PAD_B { D0,F0 }

#define RGB_DI_PIN F5
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD

M keyboards/tetris/info.json => keyboards/tetris/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x6060",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D1", "pin_b": "D0"},
      {"pin_a": "F1", "pin_b": "F0"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "qmk-dfu",
  "layouts": {

M keyboards/themadnoodle/ncc1701kb/v2/config.h => keyboards/themadnoodle/ncc1701kb/v2/config.h +0 -4
@@ 36,10 36,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
/*Encoders */
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }


/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL

M keyboards/themadnoodle/ncc1701kb/v2/info.json => keyboards/themadnoodle/ncc1701kb/v2/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x1701",
    "device_version": "0.0.2"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D0", "pin_b": "D1"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/themadnoodle/noodlepad/config.h => keyboards/themadnoodle/noodlepad/config.h +0 -4
@@ 36,10 36,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
/*Encoders */
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }


/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL

M keyboards/themadnoodle/noodlepad/info.json => keyboards/themadnoodle/noodlepad/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x1701",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D0", "pin_b": "D1"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/thepanduuh/degenpad/config.h => keyboards/thepanduuh/degenpad/config.h +0 -3
@@ 21,8 21,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D5, D6, D7, B4, B5, B6 }
#define MATRIX_COL_PINS { F4, F5, B1, D3 }

#define ENCODERS_PAD_A { F1 }
#define ENCODERS_PAD_B { F0 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

M keyboards/thepanduuh/degenpad/info.json => keyboards/thepanduuh/degenpad/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x4447",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F1", "pin_b": "F0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/tkc/portico75/config.h => keyboards/tkc/portico75/config.h +0 -9
@@ 23,15 23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS \
    { F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, B3, B7 }

/*Rotary Encoder Pins*/
#define ENCODERS_PAD_A \
    { B1 }
#define ENCODERS_PAD_B \
    { B2 }

/*Sets the number of pulses per increment*/
#define ENCODER_RESOLUTION 2

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/tkc/portico75/info.json => keyboards/tkc/portico75/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0011",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B2", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "debounce": 3,

M keyboards/tkw/grandiceps/config.h => keyboards/tkw/grandiceps/config.h +0 -3
@@ 28,9 28,6 @@
#define MATRIX_IO_DELAY 5
#define TAP_CODE_DELAY 10

#define ENCODERS_PAD_A { B14 }
#define ENCODERS_PAD_B { B15 }

#define RGB_DI_PIN B1
#define RGBLED_NUM 16
#define RGBLED_SPLIT { 8,8 }

M keyboards/tkw/grandiceps/info.json => keyboards/tkw/grandiceps/info.json +5 -0
@@ 6,6 6,11 @@
        "vid": "0xFEED",
        "pid": "0x7812"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B14", "pin_b": "B15"}
        ]
    },
    "split": {
        "soft_serial_pin": "A15"
    },

M keyboards/tkw/stoutgat/v1/config.h => keyboards/tkw/stoutgat/v1/config.h +0 -3
@@ 21,8 21,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define MATRIX_ROW_PINS { D1, D0, A0, A1, A2 }
#define MATRIX_COL_PINS { D6, D5, D7, C0, C1, C2, C3, C4, C5, C6, C7, A7, A6, A5, A4 }
#define ENCODERS_PAD_A { B4, B0 }
#define ENCODERS_PAD_B { B3, B1 }


#define DIODE_DIRECTION COL2ROW

M keyboards/tkw/stoutgat/v1/info.json => keyboards/tkw/stoutgat/v1/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x7811",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B3"},
            {"pin_a": "B0", "pin_b": "B1"}
        ]
    },
    "processor": "atmega32a",
    "bootloader": "usbasploader",
    "community_layouts": ["65_iso", "65_ansi"],

M keyboards/tkw/stoutgat/v2/config.h => keyboards/tkw/stoutgat/v2/config.h +0 -3
@@ 24,9 24,6 @@
#define MATRIX_IO_DELAY 5
#define TAP_CODE_DELAY 10

#define ENCODERS_PAD_A { B14, B12}
#define ENCODERS_PAD_B { B15, B13 }

#define RGB_DI_PIN B1
#define RGBLED_NUM 13
#define RGBLIGHT_LIMIT_VAL 120

M keyboards/tkw/stoutgat/v2/info.json => keyboards/tkw/stoutgat/v2/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x7811",
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B14", "pin_b": "B15"},
            {"pin_a": "B12", "pin_b": "B13"}
        ]
    },
    "community_layouts": ["65_iso", "65_ansi"],
    "layouts": {
        "LAYOUT_encoder": {

M keyboards/tominabox1/bigboy/config.h => keyboards/tominabox1/bigboy/config.h +0 -4
@@ 16,10 16,6 @@

#pragma once

#define ENCODERS_PAD_A { C6 }
#define ENCODERS_PAD_B { B6 }
#define ENCODER_RESOLUTION 2

#define RGB_DI_PIN B5

#ifdef RGB_DI_PIN

M keyboards/tominabox1/bigboy/info.json => keyboards/tominabox1/bigboy/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6262",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "C6", "pin_b": "B6", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/tominabox1/le_chiffre/he/config.h => keyboards/tominabox1/le_chiffre/he/config.h +0 -4
@@ 23,10 23,6 @@
#define MATRIX_ROW_PINS { B3, D4, F1, C6 }
#define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 }

/* Define encoder pads */
#define ENCODERS_PAD_A { D5 }
#define ENCODERS_PAD_B { D3 }

/*
 * WS2812 Underglow Matrix options
 */

M keyboards/tominabox1/le_chiffre/he/info.json => keyboards/tominabox1/le_chiffre/he/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.0.3"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "D3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu"
}

M keyboards/tominabox1/le_chiffre/rev1/config.h => keyboards/tominabox1/le_chiffre/rev1/config.h +0 -4
@@ 29,10 29,6 @@
#define MATRIX_ROW_PINS { B3, D4, F1, C6 }
#define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 }

/* Define encoder pads */
#define ENCODERS_PAD_A { D5 }
#define ENCODERS_PAD_B { D3 }

/*
 * WS2812 Underglow Matrix options
 */

M keyboards/tominabox1/le_chiffre/rev1/info.json => keyboards/tominabox1/le_chiffre/rev1/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D5", "pin_b": "D3"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu"
}

M keyboards/tominabox1/le_chiffre/rev2/config.h => keyboards/tominabox1/le_chiffre/rev2/config.h +0 -4
@@ 29,10 29,6 @@
#define MATRIX_ROW_PINS { B3, F6, F7, C7 }
#define MATRIX_COL_PINS { B2, F0, F1, F4, F5, B5, B4, D7, D6, D4 }

/* Define encoder pads */
#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { C6 }

/*
 * WS2812 Underglow Matrix options
 */

M keyboards/tominabox1/le_chiffre/rev2/info.json => keyboards/tominabox1/le_chiffre/rev2/info.json +5 -0
@@ 2,6 2,11 @@
    "usb": {
        "device_version": "0.0.2"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B6", "pin_b": "C6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu"
}

M keyboards/torn/config.h => keyboards/torn/config.h +0 -5
@@ 45,11 45,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A \
    { B2 }
#define ENCODERS_PAD_B \
    { B1 }

#define USB_MAX_POWER_CONSUMPTION 100

#define OLED_TIMEOUT 60000

M keyboards/torn/info.json => keyboards/torn/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x0001",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B2", "pin_b": "B1"}
    ]
  },
  "processor": "atmega328p",
  "bootloader": "usbasploader",
  "layouts": {

M keyboards/tunks/ergo33/config.h => keyboards/tunks/ergo33/config.h +0 -3
@@ 48,9 48,6 @@
#    define RGBLED_NUM 14
#endif

#define ENCODERS_PAD_A { D5 }
#define ENCODERS_PAD_B { D3 }

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/tunks/ergo33/info.json => keyboards/tunks/ergo33/info.json +5 -0
@@ 7,6 7,11 @@
    "pid": "0xA0A1",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D5", "pin_b": "D3"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/tzarc/djinn/config.h => keyboards/tzarc/djinn/config.h +0 -14
@@ 2,20 2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once

// Encoders -- right-side is reversed
#define ENCODERS_PAD_A \
    { C14 }
#define ENCODERS_PAD_B \
    { C15 }
#define ENCODERS_PAD_A_RIGHT \
    { C15 }
#define ENCODERS_PAD_B_RIGHT \
    { C14 }

#ifndef ENCODER_RESOLUTION
#    define ENCODER_RESOLUTION 2
#endif // ENCODER_RESOLUTION

// Bootloader
#define STM32_BOOTLOADER_DUAL_BANK TRUE
#define STM32_BOOTLOADER_DUAL_BANK_GPIO B7

M keyboards/tzarc/djinn/info.json => keyboards/tzarc/djinn/info.json +13 -1
@@ 35,7 35,19 @@
  },
  "split": {
    "enabled": true,
    "main": "pin"
    "main": "pin",
    "encoder": {
      "right": {
        "rotary": [
          {"pin_a": "C15", "pin_b": "C14", "resolution": 2}
        ]
      }
    }
  },
  "encoder": {
    "rotary": [
      {"pin_a": "C14", "pin_b": "C15", "resolution": 2}
    ]
  },
  "layouts": {
    "LAYOUT_all": {

M keyboards/ungodly/launch_pad/config.h => keyboards/ungodly/launch_pad/config.h +0 -7
@@ 25,13 25,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder Assignment */
#define ENCODERS_PAD_A \
    { C6 }
#define ENCODERS_PAD_B \
    { B6 }
#define ENCODER_RESOLUTION 2

/* Midi Slider */
#define SLIDER_PIN F6
#define MIDI_ADVANCED

M keyboards/ungodly/launch_pad/info.json => keyboards/ungodly/launch_pad/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x4C50",
    "device_version": "99.9.9"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "C6", "pin_b": "B6", "resolution": 2}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "atmel-dfu",
  "layouts": {

M keyboards/ungodly/nines/config.h => keyboards/ungodly/nines/config.h +0 -6
@@ 15,12 15,6 @@
 */
 #pragma once

/* Rotary Encoder Assignments */
#define ENCODERS_PAD_A { C6, E6 }
#define ENCODERS_PAD_B { D7, B4 }

#define ENCODER_RESOLUTION 2

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/ungodly/nines/info.json => keyboards/ungodly/nines/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x544E",
    "device_version": "99.9.9"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "C6", "pin_b": "D7", "resolution": 2},
      {"pin_a": "E6", "pin_b": "B4", "resolution": 2}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "matrix_pins": {

M keyboards/unison/v04/config.h => keyboards/unison/v04/config.h +0 -7
@@ 25,13 25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define DIODE_DIRECTION COL2ROW

/* Rotary Encoder */
#ifdef ENCODER_ENABLE
  #define ENCODERS_PAD_A { B0, D2, D5, D6, B4 }
  #define ENCODERS_PAD_B { B1, D3, D4, D7, B5 }
  #define ENCODER_RESOLUTION 4  //the default & suggested is 4
#endif

/* Audio */
#ifdef AUDIO_ENABLE
  #define AUDIO_PIN C6

M keyboards/unison/v04/info.json => keyboards/unison/v04/info.json +9 -0
@@ 8,6 8,15 @@
        "pid": "0x176A",
        "device_version": "0.4.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B0", "pin_b": "B1"},
            {"pin_a": "D2", "pin_b": "D3"},
            {"pin_a": "D5", "pin_b": "D4"},
            {"pin_a": "D6", "pin_b": "D7"},
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "bootmagic": {
        "matrix": [5, 0]
    },

M keyboards/viendi8l/config.h => keyboards/viendi8l/config.h +0 -4
@@ 29,10 29,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { B10 }
#define ENCODERS_PAD_B { B12 }
#define ENCODER_RESOLUTION 2

#define TAPPING_TERM 200

#define I2C_DRIVER I2CD1

M keyboards/viendi8l/info.json => keyboards/viendi8l/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0877",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B10", "pin_b": "B12", "resolution": 2}
        ]
    },
    "processor": "STM32F401",
    "bootloader": "stm32-dfu",
    "layouts": {

M keyboards/viktus/smolka/config.h => keyboards/viktus/smolka/config.h +0 -5
@@ 39,11 39,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { D2, D5 }
#define ENCODERS_PAD_B { D1, D3 }

#define ENCODER_RESOLUTIONS { 4, 2 }

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/viktus/smolka/info.json => keyboards/viktus/smolka/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0010",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D2", "pin_b": "D1"},
            {"pin_a": "D5", "pin_b": "D3", "resolution": 2}
        ]
    },
    "bootmagic": {
        "matrix": [1, 0]
    },

M keyboards/viktus/sp_mini/config.h => keyboards/viktus/sp_mini/config.h +0 -9
@@ 50,15 50,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 24    // Number of LEDs
#define RGBLED_SPLIT { 12, 12 }



#define ENCODERS_PAD_A {F4}
#define ENCODERS_PAD_B {F1}
//#define ENCODERS_PAD_A_RIGHT {F4}
//#define ENCODERS_PAD_B_RIGHT {F1}

#define ENCODER_RESOLUTIONS { 8 }

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.

M keyboards/viktus/sp_mini/info.json => keyboards/viktus/sp_mini/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x534D",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F4", "pin_b": "F1", "resolution": 8}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/walletburner/cajal/config.h => keyboards/walletburner/cajal/config.h +0 -3
@@ 21,9 21,6 @@
#define MATRIX_ROW_PINS { D4, D5, C7, C6 }
#define MATRIX_COL_PINS { F4, F1, F0, E6, B0, B1, B2, B3, D0, D1, D2, D3, B4, F6 }

#define ENCODERS_PAD_A { D6 }
#define ENCODERS_PAD_B { D7 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/walletburner/cajal/info.json => keyboards/walletburner/cajal/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x6361",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D6", "pin_b": "D7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/waterfowl/config.h => keyboards/waterfowl/config.h +0 -5
@@ 28,10 28,5 @@
#define SPLIT_WPM_ENABLE
#define SPLIT_USB_DETECT

// Encoders
#define ENCODERS_PAD_A { B4, B3 }
#define ENCODERS_PAD_B { B5, B2 }
#define ENCODER_RESOLUTIONS { 4, 2 }

// Tapping term
#define TAPPING_TERM 200
\ No newline at end of file

M keyboards/waterfowl/info.json => keyboards/waterfowl/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x9CE3",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"},
            {"pin_a": "B3", "pin_b": "B2", "resolution": 2},
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
    },

M keyboards/wekey/we27/config.h => keyboards/wekey/we27/config.h +1 -12
@@ 99,19 99,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#endif

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { D3 }
#    define ENCODERS_PAD_B \
        { D2 }
#    define ENCODER_RESOLUTION 2

#    define ENCODERS 1
#    define ENCODERS_CW_KEY           \
        {                             \
            { 4, 5 }                  \
        }
#define ENCODERS_CW_KEY { { 4, 5 } }
#define ENCODERS_CCW_KEY { { 4, 3 } }
#endif

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

M keyboards/wekey/we27/encoder_actions.c => keyboards/wekey/we27/encoder_actions.c +4 -11
@@ 19,16 19,12 @@
#include "encoder_actions.h"

#ifdef ENCODER_ENABLE

#    ifdef ENCODERS
static uint8_t  encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
#    endif
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

void encoder_action_unregister(void) {
#    ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index]) {
            keyevent_t encoder_event = (keyevent_t) {
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],


@@ 39,11 35,9 @@ void encoder_action_unregister(void) {
            action_exec(encoder_event);
        }
    }
#    endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#    ifdef ENCODERS
    keyevent_t encoder_event = (keyevent_t) {
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
        .pressed = true,


@@ 51,7 45,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    };
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
    action_exec(encoder_event);
#    endif
}

#endif

M keyboards/wekey/we27/info.json => keyboards/wekey/we27/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "community_layouts": ["numpad_6x5"],

M keyboards/winry/winry315/config.h => keyboards/winry/winry315/config.h +0 -11
@@ 3,18 3,7 @@

#pragma once

// Encoder pins.
// Encoder numbering (assuming the default board orientation with encoders on
// the top side):
//   0 - left
//   1 - center (with a longer shaft and a larger knob)
//   2 - right
#define ENCODERS_PAD_A { F1, B0, B3 }
#define ENCODERS_PAD_B { F0, B1, B7 }
#define ENCODER_RESOLUTION 4

// Encoder mappings (used for VIA).
#define ENCODERS 3
#define ENCODERS_CW_KEY  { { 22, 0 }, { 18, 0 }, { 20, 0 } }
#define ENCODERS_CCW_KEY { { 23, 0 }, { 19, 0 }, { 21, 0 } }


M keyboards/winry/winry315/info.json => keyboards/winry/winry315/info.json +7 -0
@@ 8,6 8,13 @@
        "pid": "0x0315",
        "vid": "0xF1F1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "F1", "pin_b": "F0"},
            {"pin_a": "B0", "pin_b": "B1"},
            {"pin_a": "B3", "pin_b": "B7"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "matrix_pins": {

M keyboards/winry/winry315/keymaps/via/encoder_actions.c => keyboards/winry/winry315/keymaps/via/encoder_actions.c +5 -11
@@ 27,11 27,10 @@
#    define ENCODER_STATE_CW 0x01
#    define ENCODER_STATE_CCW 0x02

#    ifdef ENCODERS
static uint8_t  encoder_state[ENCODERS] = {0};
static uint16_t encoder_timer[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS]   = ENCODERS_CCW_KEY;
static uint8_t  encoder_state[NUM_ENCODERS] = {0};
static uint16_t encoder_timer[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS]    = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS]   = ENCODERS_CCW_KEY;

static void exec_encoder_action(uint8_t index, bool clockwise, bool pressed) {
    // clang-format off


@@ 43,22 42,18 @@ static void exec_encoder_action(uint8_t index, bool clockwise, bool pressed) {
    // clang-format on
    action_exec(encoder_event);
}
#    endif

void encoder_action_unregister(void) {
#    ifdef ENCODERS
    for (int index = 0; index < ENCODERS; ++index) {
    for (int index = 0; index < NUM_ENCODERS; ++index) {
        if (encoder_state[index] && (timer_elapsed(encoder_timer[index]) >= ENCODER_TAP_DURATION_MS)) {
            bool clockwise       = !!(encoder_state[index] & ENCODER_STATE_CW);
            encoder_state[index] = 0;
            exec_encoder_action(index, clockwise, false);
        }
    }
#    endif
}

void encoder_action_register(uint8_t index, bool clockwise) {
#    ifdef ENCODERS
    if (encoder_state[index]) {
        bool was_clockwise   = !!(encoder_state[index] & ENCODER_STATE_CW);
        encoder_state[index] = 0;


@@ 67,7 62,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
    encoder_state[index] = clockwise ? ENCODER_STATE_CW : ENCODER_STATE_CCW;
    encoder_timer[index] = timer_read();
    exec_encoder_action(index, clockwise, true);
#    endif
}

void matrix_scan_kb(void) {

M keyboards/work_louder/loop/config.h => keyboards/work_louder/loop/config.h +0 -3
@@ 130,6 130,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A { D0, D2, D5 }
#define ENCODERS_PAD_B { D1, D3, D4 }

M keyboards/work_louder/loop/info.json => keyboards/work_louder/loop/info.json +7 -0
@@ 7,6 7,13 @@
        "vid": "0x574C",
        "pid": "0x1DF9"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D0", "pin_b": "D1"},
            {"pin_a": "D2", "pin_b": "D3"},
            {"pin_a": "D5", "pin_b": "D4"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 11]
    },

M keyboards/work_louder/micro/config.h => keyboards/work_louder/micro/config.h +0 -5
@@ 80,11 80,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A \
    { D4, B0 }
#define ENCODERS_PAD_B \
    { D6, B1 }

#define WORK_LOUDER_LED_PIN_1 B6
#define WORK_LOUDER_LED_PIN_2 B7
#define WORK_LOUDER_LED_PIN_3 B5

M keyboards/work_louder/micro/info.json => keyboards/work_louder/micro/info.json +6 -0
@@ 45,6 45,12 @@
        "pid": "0xE6E3",
        "vid": "0x574C"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D4", "pin_b": "D6"},
            {"pin_a": "B0", "pin_b": "B1"}
        ]
    },
    "build": {
        "lto": true
    },

M keyboards/work_louder/nano/config.h => keyboards/work_louder/nano/config.h +0 -5
@@ 130,8 130,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A \
    { D7 }
#define ENCODERS_PAD_B \
    { B4 }

M keyboards/work_louder/nano/info.json => keyboards/work_louder/nano/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0xE6F0",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D7", "pin_b": "B4"}
        ]
    },
    "bootmagic": {
        "matrix": [0, 2]
    },

M keyboards/work_louder/work_board/config.h => keyboards/work_louder/work_board/config.h +0 -5
@@ 134,9 134,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define ENCODERS_PAD_A \
    { B0 }
#define ENCODERS_PAD_B \
    { B1 }

#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x1

M keyboards/work_louder/work_board/info.json => keyboards/work_louder/work_board/info.json +5 -0
@@ 7,6 7,11 @@
      "vid": "0x574C",
      "pid": "0xDCD1"
    },
    "encoder": {
      "rotary": [
        {"pin_a": "B0", "pin_b": "B1"}
      ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/wren/config.h => keyboards/wren/config.h +0 -10
@@ 31,16 31,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D3, D2, C6, D4, B5 }
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4, D7, F0 }

// define encoders
#define ENCODERS_PAD_A \
    { E6 }
#define ENCODERS_PAD_B \
    { B4 }
#define ENCODERS_PAD_A_RIGHT \
    { B4 }
#define ENCODERS_PAD_B_RIGHT \
    { E6 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/wren/info.json => keyboards/wren/info.json +14 -0
@@ 7,6 7,20 @@
        "pid": "0x0000",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "E6", "pin_b": "B4"}
        ]
    },
    "split": {
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B4", "pin_b": "E6"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/wuque/mammoth20x/config.h => keyboards/wuque/mammoth20x/config.h +0 -11
@@ 29,17 29,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* Enable encoder */
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }

#define ENCODERS 1

#ifdef ENCODER_RESOLUTION
    #undef ENCODER_RESOLUTION
#endif
#define ENCODER_RESOLUTION 2

// Note:  array is { col, row )
#define ENCODERS_CW_KEY  { { 3, 2 } }
#define ENCODERS_CCW_KEY { { 3, 4 } }

M keyboards/wuque/mammoth20x/info.json => keyboards/wuque/mammoth20x/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0005",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D3", "pin_b": "D2", "resolution": 2}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layout_aliases": {

M keyboards/wuque/mammoth20x/mammoth20x.c => keyboards/wuque/mammoth20x/mammoth20x.c +4 -4
@@ 17,13 17,13 @@
#include "mammoth20x.h"


static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void)
{
    for (int index = 0; index < ENCODERS; ++index)
    for (int index = 0; index < NUM_ENCODERS; ++index)
    {
        if (encoder_state[index])
        {

M keyboards/wuque/mammoth75x/config.h => keyboards/wuque/mammoth75x/config.h +0 -11
@@ 29,17 29,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* Enable encoder */
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B1 }

#define ENCODERS 1

#ifdef ENCODER_RESOLUTION
    #undef ENCODER_RESOLUTION
#endif
#define ENCODER_RESOLUTION 2

// Note:  array is { col, row )
#define ENCODERS_CW_KEY  { { 3, 5 } }
#define ENCODERS_CCW_KEY { { 5, 5 } }

M keyboards/wuque/mammoth75x/info.json => keyboards/wuque/mammoth75x/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0004",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B1", "resolution": 2}
        ]
    },
    "indicators": {
        "caps_lock": "B6",
        "on_state": 0

M keyboards/wuque/mammoth75x/mammoth75x.c => keyboards/wuque/mammoth75x/mammoth75x.c +4 -4
@@ 17,13 17,13 @@
#include "mammoth75x.h"

#ifdef VIA_ENABLE
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void)
{
    for (int index = 0; index < ENCODERS; ++index)
    for (int index = 0; index < NUM_ENCODERS; ++index)
    {
        if (encoder_state[index])
        {

M keyboards/wuque/serneity65/config.h => keyboards/wuque/serneity65/config.h +0 -5
@@ 22,11 22,6 @@

#define DIODE_DIRECTION COL2ROW

/* Enable encoder */
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }

#define ENCODERS 1
// Note:  array is { col, row )
#define ENCODERS_CW_KEY  { { 3, 4 } }
#define ENCODERS_CCW_KEY { { 5, 4 } }

M keyboards/wuque/serneity65/info.json => keyboards/wuque/serneity65/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0003",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B2", "pin_b": "B3"}
        ]
    },
    "indicators": {
        "caps_lock": "C6",
        "on_state": 0

M keyboards/wuque/serneity65/serneity65.c => keyboards/wuque/serneity65/serneity65.c +4 -4
@@ 17,13 17,13 @@
#include "serneity65.h"

#ifdef VIA_ENABLE
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;

void encoder_action_unregister(void)
{
    for (int index = 0; index < ENCODERS; ++index)
    for (int index = 0; index < NUM_ENCODERS; ++index)
    {
        if (encoder_state[index])
        {

M keyboards/xenon/config.h => keyboards/xenon/config.h +0 -3
@@ 22,9 22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 }

#define ENCODERS_PAD_A { B6 }
#define ENCODERS_PAD_B { B5 }

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW


M keyboards/xenon/info.json => keyboards/xenon/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x3404",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B6", "pin_b": "B5"}
    ]
  },
  "split": {
    "soft_serial_pin": "D2"
  },

M keyboards/yandrstudio/nz67v2/config.h => keyboards/yandrstudio/nz67v2/config.h +0 -7
@@ 26,13 26,6 @@

#define TAP_CODE_DELAY 15

#ifdef ENCODER_ENABLE

#   define ENCODERS_PAD_A { A9 }
#   define ENCODERS_PAD_B { A10 }

#endif

/* RGB Matrix */
#ifdef RGB_MATRIX_ENABLE


M keyboards/yandrstudio/nz67v2/info.json => keyboards/yandrstudio/nz67v2/info.json +5 -0
@@ 6,6 6,11 @@
        "pid": "0xAA83",
        "device_version": "1.0.0"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "A9", "pin_b": "A10"}
        ]
    },
    "layouts": {
        "LAYOUT_all": {
            "layout": [

M keyboards/yanghu/unicorne/config.h => keyboards/yanghu/unicorne/config.h +0 -5
@@ 25,11 25,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A \
    { B10, B2 }
#define ENCODERS_PAD_B \
    { B12, B0 }

/* I2C - required for custom i2c_init */
#define I2C1_SCL_PIN B6
#define I2C1_SDA_PIN B7

M keyboards/yanghu/unicorne/info.json => keyboards/yanghu/unicorne/info.json +6 -0
@@ 8,6 8,12 @@
    "pid": "0x0204",
    "device_version": "0.0.1"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "B10", "pin_b": "B12"},
      {"pin_a": "B2", "pin_b": "B0"}
    ]
  },
  "layout_aliases": {
    "LAYOUT": "LAYOUT_split_3x6_4"
  },

M keyboards/yeehaw/config.h => keyboards/yeehaw/config.h +0 -3
@@ 15,9 15,6 @@
 */
#pragma once

#define ENCODERS_PAD_A { D1 }
#define ENCODERS_PAD_B { D0 }

#define RGB_DI_PIN B2
#ifdef RGB_DI_PIN
  #define RGBLED_NUM 7

M keyboards/yeehaw/info.json => keyboards/yeehaw/info.json +5 -0
@@ 8,6 8,11 @@
    "pid": "0x5458",
    "device_version": "1.0.0"
  },
  "encoder": {
    "rotary": [
      {"pin_a": "D1", "pin_b": "D0"}
    ]
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "matrix_pins": {

M keyboards/yushakobo/navpad/10/config.h => keyboards/yushakobo/navpad/10/config.h +0 -4
@@ 17,10 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B6 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/yushakobo/navpad/10/info.json => keyboards/yushakobo/navpad/10/info.json +5 -0
@@ 7,6 7,11 @@
        "vid": "0x3265",
        "pid": "0x0008"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/yushakobo/navpad/10_helix_r/config.h => keyboards/yushakobo/navpad/10_helix_r/config.h +0 -6
@@ 44,12 44,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
                              34, 35, 36, 37, 38, 39, 40 }
#endif

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B6 }

#define ENCODERS_PAD_A_RIGHT { B6 }
#define ENCODERS_PAD_B_RIGHT { B5 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW


M keyboards/yushakobo/navpad/10_helix_r/info.json => keyboards/yushakobo/navpad/10_helix_r/info.json +13 -1
@@ 8,8 8,20 @@
        "pid": "0x0008",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B6"}
        ]
    },
    "split": {
        "soft_serial_pin": "D2"
        "soft_serial_pin": "D2",
        "encoder": {
            "right": {
                "rotary": [
                    {"pin_a": "B6", "pin_b": "B5"}
                ]
            }
        }
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",

M keyboards/yushakobo/quick17/config.h => keyboards/yushakobo/quick17/config.h +0 -5
@@ 85,11 85,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#endif

#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
#endif

/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING

M keyboards/yushakobo/quick17/info.json => keyboards/yushakobo/quick17/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0006",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B4", "pin_b": "B5"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {

M keyboards/yushakobo/quick7/config.h => keyboards/yushakobo/quick7/config.h +0 -3
@@ 17,9 17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#define ENCODERS_PAD_A { D1, F5 }
#define ENCODERS_PAD_B { D0, F6 }

#ifdef RGBLIGHT_ENABLE
#    define RGB_DI_PIN D3
#    define RGBLED_NUM 13

M keyboards/yushakobo/quick7/info.json => keyboards/yushakobo/quick7/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0002",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "D1", "pin_b": "D0"},
            {"pin_a": "F5", "pin_b": "F6"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/z12/config.h => keyboards/z12/config.h +0 -4
@@ 16,10 16,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once


#define ENCODERS_PAD_A { B5, B6 }
#define ENCODERS_PAD_B { B4, B2 }

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

M keyboards/z12/info.json => keyboards/z12/info.json +6 -0
@@ 8,6 8,12 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B4"},
            {"pin_a": "B6", "pin_b": "B2"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "matrix_pins": {

M keyboards/ztboards/after/config.h => keyboards/ztboards/after/config.h +0 -2
@@ 20,8 20,6 @@
/* key matrix pins */
#define MATRIX_ROW_PINS { B3, F6, F5, D5, B2 }
#define MATRIX_COL_PINS { D0, D1, D2, D3, D7, D6, D4, C7, C6, B6, B5, B4, F7, F0, F4, F1 }
#define ENCODERS_PAD_A { B1 }
#define ENCODERS_PAD_B { B0 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

M keyboards/ztboards/after/info.json => keyboards/ztboards/after/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0001",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B1", "pin_b": "B0"}
        ]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "layouts": {

M keyboards/zvecr/zv48/config.h => keyboards/zvecr/zv48/config.h +0 -3
@@ 40,9 40,6 @@
//#define SELECT_SOFT_SERIAL_SPEED 0
#define SERIAL_USART_SPEED 921600

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { A2 }

#define RGB_DI_PIN B1
#define RGBLED_NUM 48
#define RGBLED_SPLIT {24, 24}

M keyboards/zvecr/zv48/info.json => keyboards/zvecr/zv48/info.json +5 -0
@@ 8,6 8,11 @@
        "pid": "0x0048",
        "device_version": "0.0.1"
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "A2"}
        ]
    },
    "split": {
        "soft_serial_pin": "B6",
        "bootmagic": {