Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Dip Switch as a core feature #6140

Merged
merged 16 commits into from
Sep 3, 2019
Merged

Conversation

drashna
Copy link
Member

@drashna drashna commented Jun 16, 2019

Description

This pulls out the dip switch code from the Planck Rev 6 and the Preonic Rev 3 code, and removes the need for a custom matrix. This includes defining pins for them.

And it generalizes the code, so that anyone can just drop in the settings (as long as they're correct), and use the feature.

Credit goes to @jackhumbert for the original code. Though, I did do some optimization of it, to make it more compact and expandable. And thanks to /u/VegetableStu on reddit for the inspiration for this.

I've tested with the Planck Rev6 and can confirm that it has the correct functionality. However, I don't have a Preonic Rev3 to test the changes on (but they should be the same as the planck)

Types of Changes

  • Core
  • New feature
  • Keyboard (addition or update)
  • Documentation

Issues Fixed or Closed by This PR

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

docs/_summary.md Outdated Show resolved Hide resolved
keyboards/preonic/rev3/rules.mk Outdated Show resolved Hide resolved
docs/features.md Outdated Show resolved Hide resolved
docs/feature_dip_switch.md Outdated Show resolved Hide resolved
docs/feature_dip_switch.md Outdated Show resolved Hide resolved
docs/feature_dip_switch.md Outdated Show resolved Hide resolved
quantum/dip_switch.c Outdated Show resolved Hide resolved
quantum/dip_switch.c Outdated Show resolved Hide resolved
@drashna drashna requested a review from noroadsleft June 17, 2019 06:08
@mtei
Copy link
Contributor

mtei commented Jun 17, 2019

I think you can remove NUMBER_OF_DIP_SWITCHES from config.h.

diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c
index cb6c1e231..c69111c31 100644
--- a/quantum/dip_switch.c
+++ b/quantum/dip_switch.c
@@ -21,16 +21,13 @@
 // for memcpy
 #include <string.h>
 
-
-#ifndef NUMBER_OF_DIP_SWITCHES
-#   error "Number of DIP switches not defined by NUMBER_OF_DIP_SWITCHES"
-#endif
-
 #if !defined(DIP_SWITCH_PINS)
 #   error "No DIP switch pads defined by DIP_SWITCH_PINS"
 #endif
 
-static pin_t dip_switch_pad[NUMBER_OF_DIP_SWITCHES] = DIP_SWITCH_PINS;
+#define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad)/sizeof(pin_t))
+
+static pin_t dip_switch_pad[] = DIP_SWITCH_PINS;
 static bool dip_switch_state[NUMBER_OF_DIP_SWITCHES] = { 0 };
 static bool last_dip_switch_state[NUMBER_OF_DIP_SWITCHES] = { 0 };

@drashna
Copy link
Member Author

drashna commented Jun 17, 2019

@mtei I wasn't sure if that would actually work, but yup, it does!!

@mtei
Copy link
Contributor

mtei commented Jun 17, 2019

I think that it is good to update show_options.mk. :-)

@tuzonghua
Copy link

tuzonghua commented Aug 27, 2019

@drashna I tested this on a non-planck/preonic board and it worked great! Just adding the dip_switch_update_user call in my keymap.c allowed me to set certain layers as active etc. However, the current implementation (I believe) only allows for as many options as there are DIP switches on the board (so 4 for Preonic).

It might be worth expanding the implementation so that n^2 options are available to set. This would, for example, allow for setting 4 different layouts using just the first 2 switches (00, 01, 10, 11), which is what some WASD boards do (see here).

@noroadsleft
Copy link
Member

I quite like @tuzonghua's suggestion, but IMO we can get this into core and then enhance the feature later.

@zvecr
Copy link
Member

zvecr commented Aug 27, 2019

@noroadsleft While i agree with the incremental approach, changing the API at a later date only adds complications. API deprecation would have to eventually lean on the breaking change process.

For instance, using a single uint8_t, instead of an array of 6 bools is more efficient.
A typedef to switch between 8,16,32, as per pin_t used for matrix.
Add some bit masking and a change to the api so its called once on change, called with the current state.

@tuzonghua
Copy link

tuzonghua commented Aug 27, 2019

@drashna If there's a way to achieve my suggestion without rewriting a bunch of the existing code in this PR, may you please add an extra example to the docs? At least until the next iteration can be implemented.

@drashna
Copy link
Member Author

drashna commented Aug 27, 2019

Thanks for the suggestion. I've actually implemented this, and it was pretty simple to do so.

In fact, it actually implements both methods, at the same time. So if you want the dead simple version, don't use the mask callbacks. But if you want more complex, that's an option, too!

Also, this led to discovery of a bug in the config for the planck rev6 and preonic rev3 dip switch configuration (wrong pin was used). So that's fixed as well.

Either way, I think this should now be super useful to anyone that wants to use it, no matter how they want to use it.

@tuzonghua
Copy link

Thanks for the improvements! However, the bit mask still doesn't quite work as expected. I created three test layers, placing a different letter on the ESC key and the two cases where only one switch is on worked, but the case where both switches are on didn't. Here's that example:

void dip_switch_update_mask_user(uint32_t state) {
  if (state & (1UL<<0) && state & (1UL<<1)) {
    layer_on(_ADJUST); // C on esc
  } else {
    layer_off(_ADJUST);
  }
  if (state & (1UL<<0)) {
    layer_on(_TEST_A); // A on ESC
  } else {
    layer_off(_TEST_A);
  }
  if (state & (1UL<<1)) {
    layer_on(_TEST_B); // B on esc
  } else {
    layer_off(_TEST_B);
  }
}

Shinichi-Ohki added a commit to Shinichi-Ohki/qmk_firmware that referenced this pull request Sep 6, 2019
* 'master' of https://github.com/qmk/qmk_firmware: (68 commits)
  Changed to 1209 PID (qmk#6677)
  [Keyboard] Add Iris Rev 4 (qmk#6660)
  Add 16U2, 16U4 and USB646 to mcu_selection.mk (qmk#6566)
  led fix (qmk#6672)
  Add personal Doro67 multi keymap, fix bug in KBD6X keymap (qmk#6674)
  [Keyboard] Missed a JTAG disable (qmk#6667)
  added ability to change unicode input method (qmk#6666)
  Fix battery level code in adafruit_ble.cpp (qmk#6648)
  [Docs] Update i2c_driver.md (qmk#6665)
  [Keyboard] Doro67 cleanup (qmk#6514)
  [Keyboard] Add Tukey board (qmk#6657)
  [Keymap] Update personal userspace and keymaps (qmk#6654)
  [Keymap] Satan GH60 with command prompt animation, react to keypresses (qmk#6636)
  Add Dip Switch as a core feature (qmk#6140)
  Update submodule check to include LUFA (qmk#6661)
  [keymap] ninjonas userspace and keymaps for hotdox, lily58, & pinky3 (qmk#6649)
  [Keymap] Update keymap for alice and fix for ctrl and os swap (qmk#6642)
  Fix typo in Open Graph description for docs (qmk#6641)
  [Keyboard] add rgb led configuration for xd87 (qmk#6635)
  Add `dfu-programmer` to `pacman -S` (qmk#6619)
  ...
drashna added a commit to zsa/qmk_firmware that referenced this pull request Sep 19, 2019
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

Co-Authored-By: noroadsleft <[email protected]>

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <[email protected]>

* DIP changes

Co-Authored-By: fauxpark <[email protected]>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <[email protected]>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <[email protected]>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
fdidron pushed a commit to zsa/qmk_firmware that referenced this pull request Sep 26, 2019
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

Co-Authored-By: noroadsleft <[email protected]>

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <[email protected]>

* DIP changes

Co-Authored-By: fauxpark <[email protected]>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <[email protected]>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <[email protected]>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
Bonooru3108 added a commit to Bonooru3108/qmk_firmware that referenced this pull request Sep 29, 2019
* [Keymap] default keymap fix for questionmark (redox, redox_w) (#6574)

* default keymap fix for questionmark

Added /? to the default position for a qwerty keyboard. Moved |\ to the left ctrl with the same behaviour as before.

* Small PR adjustments and Keypad optimization

* Update keymap.c

* Update keymap.c

* Wonderland: README (#6613)

* Wonderland README

breaks

* Wonderland info.json

* Update keyboards/maartenwut/wonderland/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* Decrement EECONFIG magic number

This will manually wipe the EEPROM. This is a hacky solution for when new ranges are added or moved around. 

A better (more complicated) solution would be to zero out everything, not just known ranges.  But for now, this is a hacky solution that will work.

* Make the CLI Ψ capital (#6637)

* Branch point for 2019 Aug 30 Breaking Change

* LUFA USB descriptor cleanup (#4871)

* Fix indentation

* Fix braces

* Expand descriptor headers

* Align descriptor elements

* Nicer formatting

* Tidy up preprocessor statements

* Remove VERSION_BCD redefine - LUFA_VERSION_INTEGER is currently 0x170418

* Tidy up comments

* Tweak ordering of  HID report elements (no functional changes)

* We don't need all of these newlines

* Move default USB_MAX_POWER_CONSUMPTION closer to where it makes sense

* Ask nicely

* Add some more comments

* Change indentation back to 4 spaces

* Add changelog entry

* Language Keymap extras backport from ZSA fork (#6198)

* Swedish extra keymap refactor

* Fix swedish $ sign definition (#81)

* Fix br abnt2 keymap compilation error

* Add PR changelog doc

* Update PR6198.md

* Enforce clang-format (#6293)

* Enforce clang-format on commit for core files

* forgot about tests

* Migrate ACTION_LAYER_MOMENTARYs to MO() (#5176)

* Migrate ACTION_LAYER_MOMENTARYs to MO()

* Add changelog entry

* Update docs/ChangeLog/20190830/PR5176.md

Co-Authored-By: skullydazed <[email protected]>

* Update swedish based keymaps with newer keycodes

* Add new files to the list of files that are formatted. (#6296)

* Fix Windows formatting issues

Co-Authored-By: fauxpark <[email protected]>

* Have clang ignore the code in bootloader_size.c

* Fix vusb compiling after clang-format

* Remove KC_DELT alias in favor of KC_DEL (#6327)

* Remove KC_DELT alias in favor of KC_DEL

* Add changelog

* Migrate ACTION_BACKLIGHT_* to BL_* (#6299)

* Branch point for 2019 Aug 30 Breaking Change

* LUFA USB descriptor cleanup (#4871)

* Fix indentation

* Fix braces

* Expand descriptor headers

* Align descriptor elements

* Nicer formatting

* Tidy up preprocessor statements

* Remove VERSION_BCD redefine - LUFA_VERSION_INTEGER is currently 0x170418

* Tidy up comments

* Tweak ordering of  HID report elements (no functional changes)

* We don't need all of these newlines

* Move default USB_MAX_POWER_CONSUMPTION closer to where it makes sense

* Ask nicely

* Add some more comments

* Change indentation back to 4 spaces

* Add changelog entry

* Language Keymap extras backport from ZSA fork (#6198)

* Swedish extra keymap refactor

* Fix swedish $ sign definition (#81)

* Fix br abnt2 keymap compilation error

* Add PR changelog doc

* Update PR6198.md

* Enforce clang-format (#6293)

* Enforce clang-format on commit for core files

* forgot about tests

* Migrate ACTION_LAYER_MOMENTARYs to MO() (#5176)

* Migrate ACTION_LAYER_MOMENTARYs to MO()

* Add changelog entry

* Update docs/ChangeLog/20190830/PR5176.md

Co-Authored-By: skullydazed <[email protected]>

* Migrate ACTION_BACKLIGHT_* to BL_*

* Add changelog

* Update docs/ChangeLog/20190830/PR6299.md

Co-Authored-By: skullydazed <[email protected]>

* Update Atreus to current code conventions (#5849)

* Update atreus to current code conventions - add multi revision instead of defines

* Remove config.h duplication from user keymaps

* Add breaking change log

* Add missing pragma once

* Fix the LUFA lib to use a submodule instead of just files (#6245)

* Remove LUFA files

* Update descriptions for newer version of LUFA

* Create PR6245.md

* Fix CDC(Serial) type errors

* Fix missed merge conflict for AUDIO_DTYPE_CSInterface

* add lufa as a submodule

* Hotfix: Reinstate the KC_DELT alias

* clang-format changes

* Merge point for 2019 Aug 30 Breaking Change

* Add a note about clang-format to the changelog

* consistency

* Fix Redefinition of OLED_TIMEOUT (#6628)

* [Keyboard] Add Caravan keyboard (#6630)

* added caravan keyboard

* updates per PR review

* updated bootmagic setting

* updated LAYOUT

* updated imgur url

* [Keymap] Personal ISO-ish keymap for HHKB (#6632)

* Personal ISO-ish keymap for HHKB

* Fix keymap image

* [Keyboard] Add option to use 4x12 layout for Nyquist (#6633)

* Add option to use 4x12 layout for Nyquist

* Add 4x12 Nyquist support to configurator

* Add height to 4x12 configurator layout

Co-Authored-By: noroadsleft <[email protected]>

* Remove QWERTY keycode

Co-Authored-By: noroadsleft <[email protected]>

* [Keyboard] Support flashing Instant60 from command line (#6625)

* [Keyboard] Support flashing DZ60 with :flash command (#6624)

* [Keyboard] Assorted personal keymap/layout updates (#6621)

* Switch Quefrency back to I2C (#6161 fixes the lag)

* Update Quefrency keymap

* Add reset and EEPROM reset keybindings so these tasks can be performed
separately, rather than relying on Bootmagic Lite, which performs both
tasks at the same time.

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.

* Update KBD67 keymap

* Add reset and EEPROM reset keybindings so these tasks can be performed
separately, rather than relying on Bootmagic Lite, which performs both
tasks at the same time.

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.

* Move Menu to a layer tap on the Fn key since that's a more natural
location.

* Update 60% Tsangan HHKB layout

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.

* Update 60% ANSI split backspace/right-shift layout

* Add reset and EEPROM reset keybindings so these tasks can be performed
separately, rather than relying on Bootmagic Lite, which performs both
tasks at the same time.

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.

* [Keyboard] Add keyboard Reviung39 (#6620)

* add keyboards/reviung39

* fix reviung39/keymaps/default/

* [Keymap] add keymap default_s for reviung39 type-s

* [keymap] fix default and default_s

* [keymap] remove backup directory(keyboards/reviung39/backup/)

* [keymap] Update readme.md

* [keyboards] fix keyboards/reviung39/reviung39.h, rules.mk, /keymaps/default/keymap.c

* [keymap] fix /default_s/keymap.c

* Update readme.md

* Update readme.md

* fix rules.mk

* [keymaps] fix default/keymap.c

* Removed prescaler define from avr i2c, as it was impossible to use (#6617)

* [Keyboard] add Pancake Keyboard (#6610)

* Create readme.md

* Add files via upload

* Create readme.md

* Add files via upload

* Create readme.md

* Add files via upload

* Create readme.md

* Add files via upload

* Update keyboards/pancake/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/feather/rules.mk

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/promicro/rules.mk

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/pancake/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <[email protected]>

* Update rules.mk

* Update rules.mk

* Update pancake.h

* [Keymap] Workman layout for Atreus keyboard (#6606)

* [Keyboard] add kbd67mkiirgb (#6605)

* add kbd67mkiirgb

* Update info.json

* Update readme.md

* Update rules.mk

* Update keyboards/kbdfans/kbd67mkiirgb/kbd67mkiirgb.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/kbd67mkiirgb.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Delete kbd67mkiirgb.c.b

* Update keyboards/kbdfans/kbd67mkiirgb/config.h

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/kbd67mkiirgb.h

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/kbdfans/kbd67mkiirgb/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* fix led positon

* [Keyboard] Added Vitamins Included Rev2 (#6593)

* Fixed pin for RGB

* Added support for second revision of vitamins included

* Added rev2 config and switched to #pragma once

* Switch to quantum.h pincontrol

* Fixed left-half check

* Moved revision agnostic code to main header file

* Moved common build options to main makefile

* Referred to rev2 documentation

* JTAG is dissabled in keyboard.c now

* moved EEHANDS to rev1 config

* moved rev2 to use split_common

* Updated default keymaps

* Changed handedness ifdef to allow user-overrides

* Add some space saving defines

* Changed to more sane I2C clock

* Removed rev2 check in matrix.c as rev2 uses split_common

* Removed rev2 check in rev1 only code

* Update debounce constant name

Co-Authored-By: noroadsleft <[email protected]>

* Switch KEYMAP macro to LAYOUT

Co-Authored-By: noroadsleft <[email protected]>

* Switch kc_keymap macro to layout_kc

Co-Authored-By: noroadsleft <[email protected]>

* Switch kc_keymap macro to layout_kc

Co-Authored-By: noroadsleft <[email protected]>

* Add legacy layout macro alias

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/vitamins_included/rev2/config.h

Co-Authored-By: noroadsleft <[email protected]>

* Split readme into revision specific versions

* Updated src to allow LTO

* Renamed readmes to lower-case

* Switched my keyboards to FEED VID

* Fixed markdown lint errors

* fixed readme links

Co-Authored-By: noroadsleft <[email protected]>

* Maintain keymap backwards compatibility

Co-Authored-By: Joel Challis <[email protected]>

* [Keymap] Added personal keymap for DZ68RGB (#6623)

* added personal CTRL keymap

* added personal dz60rgb keymap

* enabled new rgb effect

* added space cadet shift

* media player track buttons now orange

* updated keymaps with rgb setting and visual HSV setting preview

* fixed source stuff?

* added support for underglow toggle (bugged to all hell)

* everything now behaves as expected when ti comes to RGB toggles, thank god

* removed ifdefs

* changed color of MAS_CRM

* uh, whitespace

* changed rgb positions and modifiers within RGB matrix thing for CTRL and DZ60RGB

* updated keymap to work kindof

* KEYMAP: changed list of rgb effects

* changed CTRL rgb defaults

* KEYMAP: new LED layout for ctrl

* fixed white LED position in indicator

* changed capslock tap timing

* Added new keymap - dz68rgb

* Apply suggestions from code review

Co-Authored-By: fauxpark <[email protected]>

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <[email protected]>

* CLI command to format C code

* Add support for passing files at the command line

* readability enhancements

* [Keymap] Combo keymap update - For planck and dz60rgb (#6643)

* update my planck layout

* update me planck layout

* For my purple Tofu60 with dz60rgb

* [Keymap] Add leaf60 and tada68 keymaps (#6645)

* Add leaf60 and tada68 keymaps

* Cleanup files for pull request

* Cleanup tada68 keymap

* NIU Mini Settings update and Refactor (#6651)

* update codebase to four-space indent

* update codebase to use #pragma once

* refactor config.h

* change info.json to debug linting

* refactor readme

- file header
- update docs links

* minimize and lint rules.mk

* change features

- enable mousekeys and nkro

* use GPIO commands for Status LED

Co-Authored-By: fauxpark <[email protected]>

* use IS_LED_ON macro

Co-Authored-By: fauxpark <[email protected]>

* update compile/flash examples in readme

* :flash doesn't use QMK Toolbox

* Always run `util/travis_compiled_push.sh` (#6640)

Specifically, the `util/travis_compiled_push.sh` runs a number of cleanup and deployment routines. This includes `dos2unix` that fixes the line endings for sanity's sake.   However, it only runs on successful builds.  That would be fine, except some builds WILL fail (community layouts, yay), which is a problem. 

This should change the behavior to always run the post compile checks. 

However, in the long run, we should break up this script into more parts.

* Run dos2unix on whole repo (#6644)

* Fix msys2 not installing any packages because it can't find clang (#6655)

* [Keyboard] Atreus: Flip the middle two keys when PCBDOWN is set. (#6616)

Flipping the columns isn't enough for the Atreus keyboard, since these
two keys are distinguished by row on the same column electrically.

* Add `dfu-programmer` to `pacman -S` (#6619)

* Add `dfu-programmer` to `pacman -S` (#6618)

`dfu-programmer` now resides at `extra/dfu-programmer` and is no longer
in the AUR

* Add `--needed` option to `pacman -S` for efficiency

* Fix

* Update util/linux_install.sh

Co-Authored-By: noroadsleft <[email protected]>

* [Keyboard] add rgb led configuration for xd87 (#6635)

* add rgb led configuration for xd87

* Add RGB underglow to a separate keymap

* rename keymap and make small review changes

* Fix typo in Open Graph description for docs (#6641)

* [Keymap] Update keymap for alice and fix for ctrl and os swap (#6642)

* update map for alice and fix for via boards

* enable bootmagic

* [keymap] ninjonas userspace and keymaps for hotdox, lily58, & pinky3 (#6649)

* [keyboard] introducing ninjonas userspace & keymaps for hotdox, lily58, and pinky3

* [fix(#6649)] removed M_EPRM and used builtin EEP_RST keycode as-per review.

* [chore(#6649)] forgot to update keymap legend on lily58

* Update submodule check to include LUFA (#6661)

As LUFA is now a submodule, we should be checking it.

* Add Dip Switch as a core feature (#6140)

* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

Co-Authored-By: noroadsleft <[email protected]>

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <[email protected]>

* DIP changes

Co-Authored-By: fauxpark <[email protected]>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <[email protected]>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <[email protected]>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better

* [Keymap] Satan GH60 with command prompt animation, react to keypresses (#6636)

Co-Authored-By: fauxpark <[email protected]>
Signed-off-by: Benjamin Große <[email protected]>

* [Keymap] Update personal userspace and keymaps (#6654)

* Enable Fn layer tap dances only if LAYER_FN is defined

* Update KBD6X keymap spacing to match LAYOUT spacing

* Add regular FNLK to userspace, update keymap comment labels

* Rename KC_BRK → BREAK, KC_SYSR → SYSRQ in userspace

* Change mousekey positions in KBD6X

* Disable Console in KBD6X to reduce firmware size

* Return false in process_record_* only when overriding existing keys

* Fix Caps light not working after LSFT_FN

* Refactor Fn/Caps light, fix sequencing issues

* [Keyboard] Add Tukey board (#6657)

* [Keyboard] Doro67 cleanup (#6514)

Add spacing to LAYOUT macros, add layout comments, improve consistency, fix ISO layout bug

* Remove placeholder comments in regular.h and rgb.h

* Change K## to k## in multi.h and regular.h

* Add alignment whitespace in Doro67 LAYOUT macros

* Update multi default keymaps and add layout comments

* Update rgb default keymap and add layout comments

* Add RESET to Fn layer in multi default keymaps

* Replace KC_GESC with KC_ESC in rgb default keymap for consistency with other Doro keymaps

* Update regular default keymap and add layout comments

* WIP

* Replace odd F1, F2 with proper split LShift/Backspace keys in default_multi

* Minor fixes and tweaks in multi default keymaps

* Fix Enter and NUHS positions in multi LAYOUT_iso

* Return true in process_record_user in rgb default keymap

* Update Enter position in multi info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update labels in multi info.json to match the default keymaps

* [Docs] Update i2c_driver.md (#6665)

Fix missing arg of i2c_start

* Fix battery level code in adafruit_ble.cpp (#6648)

* Fix battery level code in adafruit_ble.cpp

The code in tsk_core/protocol/lufa/adafluit_ble.cpp that polls the
battery level for the Adafruit feather BLE controller reads the
regulated voltage, not the raw voltage coming from the battery. To do
that, the Adafruit Feather docs say you should read from pin A9:
https://learn.adafruit.com/adafruit-feather-32u4-basic-proto/power-management#measuring-battery-4-9.
(See also
https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/pinouts#logic-pins-2-9.)

I'm not sure why, but analogRead(9); doesn't read the correct pin.
Checking all available analog pins experimentally, it turns out that
analogRead(7); returns the correct value. So the code above should read:

    state.vbat = analogRead(7);

* Update tmk_core/protocol/lufa/adafruit_ble.cpp

Co-Authored-By: Drashna Jaelre <[email protected]>

* Remove old comment

* Fix linking error

* Remove `#ifdef` around `#include analog.h`.

* Really fix linking error

* added ability to change unicode input method (#6666)

* [Keyboard] Missed a JTAG disable (#6667)

* Add personal Doro67 multi keymap, fix bug in KBD6X keymap (#6674)

* Add missing void parameter declarations to *_light functions

* Add doro67/multi:konstantin keymap

* Allow FNLK to be canceled with Esc

* Function layer → Fn layer in keymap comments

* led fix (#6672)

* Add 16U2, 16U4 and USB646 to mcu_selection.mk (#6566)

* [Keyboard] Add Iris Rev 4 (#6660)

* Add Iris Rev. 4

* Fix EEPROM addresses

* Changed to 1209 PID (#6677)

* Make USB polling rate configurable with a define (#6668)

* fix missing music mode legend (#6686)

* CA66 R1/R2 Cleanup (#6678)

* fixup readme to adhere to QMK standards and to also have more information

* use pragma once

* strip out the custom bootmagic lite routine as it is the same as QMK's default bootmagic lite routine. Also add the caps lock led indicator

* turn on bootmagic lite

* update default keymap

* Update keyboards/playkbtw/ca66/ca66.c

Co-Authored-By: fauxpark <[email protected]>

* remove lines 4 thru 37 and add bootloader

* Jotix (#6687)

* jotix ortho_4x12

* add shifted symbols

* jotix ortho_4x12 layot

* Update docker_build.sh: indentation fix, error echo function (#6659)

* Replace spaces with tab in docker_build.sh

* Use errcho instead of echo >&2

* Setup a python test framework

* run yapf on the code

* Make the modem manager check more pythonic

* Add a command to format python code

* Add python tests to the travis check

* filter python from the list of things that trigger default builds

* add missing apostrophes

* Run the python tests inside docker

* [Keymap] Add narze userspace (#6652)

* Refactor & reimplement mod tap macros

* Reduce tapping term

* Update readme

* Add narze userspace

* Make use of narze userspace

* Extract Superduper mode

* Refactor Superduper mode

* (Ergodox Infinity) Prevent stuck modifiers

* Update ergodox_infinity/narze likewise

* Add warning for building Infinity with docker

* Fix include eeprom.h in superduper

* Try enabling superduper mode with combo for ergodox infinity

* Apply suggestions on #4546

* Convert to 4 spaces

* Map backlight step key

* Replace PLAY_NOTE_ARRAY

* Fix superduper toggle

* Re enable audio in planck rev4

* Use perform_space_cadet

* Remove superduper mod tap triggers

* Add readme for planck light firmware flashing command

* Remove unused layers

* Remove unused keycodes

* Add backlight toggle

* Remove unused songs & use DEFAULT_LAYER_SONGS

* Update readme

* Move includes to header file

* Banish some more magic numbers (#6662)

* Adafruit BLE: Set SPI2X bit only when F_CPU is 8MHz (#6671)

* Add 328P to mcu_selection.mk (#6682)

* [Keymap] Update nshanpetrosyan keymap (#6683)

* Update keymap.c

Additional functionality added to layers.

* Error fix

Fixed missing key in layer 5, fixed brightness keys with universal codes, made code more readable.

* fix missing commas

fixed missing commas on line 19 and line 23

* fix Indicator LED sticking on RGB off toggle.

fixes issue: LED indicators stay on when toggling RGB off

* [Keymap] Big Drashna code update (#6639)

* Add a quefrency keymap

* New Alt-ernate layouts

* Enable Per Key Tapping Term to preserve sanity

* Use underglow and mod lights for status on Corne

* Update the drashna_ms keymap for quefrency

* Disable Audio since there isn't enough space

* Update KC_MAKE to ues :flash target

* Cleanup ergodox layout

* Enable i2c support for Iris

* Add keymap support for CG_SWAP

* Enable RGB Matrix Shutdown mode

* enable heatmap

* Update gitlab CI to install python3

* Remove game macros

These are no longer needed, and haven't been used in ages

* Cleanup planck layout

* Add RGB Matrix fun and RGB cleanup

* Add keycode and config for RGB Matrix idle animations

* Clean up rgb idle animation code

* Add rgb idle keycode to keymaps

* Fix issues with rgb matrix idle animation

* Fix some handling for idle animation

* Reduce idle animation timeout to 15s to be more reasonable

* fix up rgb stuff

* Fix isses with rgb functions not being called for matrix

* Use custom EEPROM Magic Number so testing is easier

* Extend Default Layer macro to support a lot more layers

* Fix bjohnson macropad

* Adjust KC_MAKE to process mods for more consistent behavior

* Fix up rgb stuff on corne

* Corne OLED Overhaul

* Fixes a number of issues with weirdness.
* Fixes issues with keylogger (should be more reliable now)
* Modulaize the OLED render sections
* Rewrite layer display code
* Update URL for Font Editor

Due to odd issues, I ended up rewriting from scratch.  And using PROGMEM versions, since I think I was getting memory overflows.

* Update polling rate on all keebs

* Fix planck ez layout config

* Remove macros from Viterbi

* [Keymap] Assorted personal keymap/userspace updates (#6691)

* Turn off more unnecessary features by default

* Double TAP_CODE_DELAY due to more media key issues

Even with this change, some of the rotary encoder turns on my BDN9's
volume knob still seem to get dropped. It's possible there's something
wrong with the encoder itself. (Maybe the TAP_CODE_DELAY actually causes
QMK to miss an encoder turn? Unclear.) The other knob (backlight
brightness) works fine, FWIW....

* Restructure userspace config.h a bit

* Hack around Instant60 Via EEPROM conflict

Remove this when #6589 is fixed for Via boards.

* Add backlight breathing and (EEPROM) reset to BDN9

* Add keymap for 9-Key macropad

* [Keymap] UT47.2 Planck-style layout switching (#6669)

* UT47.2 keymap/updates for Planck style layout switching

* UT47.2 keymap for Planck-style layout switching / code clean up

* UT47.2 keymap for Planck-style layout switching: Qwerty, Workman, Colemak, Colemak Mod-DH, and Dvorak added / code clean up

* Change the layout info to match the keymap

* Edit readme to contain relevant info for layout switching

* Edit readme to contain relevant info for layout switching

* Edit readme to contain relevant info for layout switching

* Edit readme to contain relevant info for layout switching. Add QMK Configurator file.

* Update readme.md with make information

* Undo breaking change in config.h

* Code cleanup

* Code cleanup

* Code cleanup

* More code cleanup

* Move Bootloader not found message to global variable (#6688)

* Move Bootloader not found message to global variable

* Apply suggestions from code review

Co-Authored-By: fauxpark <[email protected]>

* Actually use correct bootloader not found message (#6695)

* Add Copenhagen Click Pad (#6681)

* Add Copenhagen Click Pad

* Update keyboards/copenhagen_click/click_pad_v1/rules.mk

Co-Authored-By: fauxpark <[email protected]>

* Removing left over boilerplate

* Update keyboards/copenhagen_click/click_pad_v1/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/copenhagen_click/click_pad_v1/readme.md

Co-Authored-By: fauxpark <[email protected]>

* Update readme.md

* [Keyboard] Add Freyr keyboard (#6664)

* Add Freyr keyboard

Add new Freyr tkl keyboard

* add comunity layout

* Update info.json

* Update readme.md

* Update info.json

* Update keymap.c

* [Keyboard] Feature/dz60rgb cleanups (#6697)

* change LAYOUT_ANSI to LAYOUT_60_ansi

* change QMK Configurator layout to LAYOUT_60_ansi as well

* add 60_ansi support so I can make my userspace =)

* update readme

* Very strange. ISO keymap is still using 60_ansi LAYOUT macro. But then again....no ISO hottswap dz60 has been released

* [Keyboard] Add Rabbit68 Keyboard w/ default,kaiec keymaps. (#6676)

* Add Rabbit68 Keyboard w/ default,kaiec keymaps.

* Requested changes by @fauxpark

* Change flash command, as suggested by @drashna

* Update keyboards/rabbit/rabbit68/readme.md

Co-Authored-By: Drashna Jaelre <[email protected]>

* Add link to Github repo 

As I per suggestion changed the link above to an image, I added now the link to the project page to the Open Source text, where it actually makes the most sense.

* [Keyboard] Add DP60 keyboard (#6679)

* add dp60 keyboard

* fixup wording in readme

* fix layout name in default keymap. I was missing an r

* Add QMK Configurator support for the additional layouts

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* strip out the VIA enabling from default rules.mk

* add a VIA only keymap

* [Keyboard] Add the E6.5 keyboard (#6693)

The E6.5 is the new 65% keyboard made by Exclusive.
This changeset adds its PCB to QMK, including all the bottom row
variants and iso/ansi/split BS layouts.

* [Keymap] Update to narze keymaps (#6694)

Use Right GUI as backspace key & 1ms polling interval on narze keymaps

* Refactor & reimplement mod tap macros

* Reduce tapping term

* Update readme

* Add narze userspace

* Make use of narze userspace

* Extract Superduper mode

* Refactor Superduper mode

* (Ergodox Infinity) Prevent stuck modifiers

* Update ergodox_infinity/narze likewise

* Add warning for building Infinity with docker

* Fix include eeprom.h in superduper

* Try enabling superduper mode with combo for ergodox infinity

* Apply suggestions on #4546

* Convert to 4 spaces

* Map backlight step key

* Replace PLAY_NOTE_ARRAY

* Fix superduper toggle

* Re enable audio in planck rev4

* Use perform_space_cadet

* Remove superduper mod tap triggers

* Add readme for planck light firmware flashing command

* Remove unused layers

* Remove unused keycodes

* Add backlight toggle

* Remove unused songs & use DEFAULT_LAYER_SONGS

* Update readme

* Move includes to header file

* Set RGUI & raise as backspace & unbind actual backspace

* tmp

* Fix qwerty doc

* Use 1ms polling rate

* [Keyboard] Waldo RGB Enable (#6711)

* enable rgb animations

* clean up code

* [Keyboard] Added a simple 2x5 Keypad with 4 layers (#6699)

* Added new 2x5 Keypad with 3 LEDs to indicate the selected layer.  By Jonathan Cameron.

* Minor refactor from suggestions from qmk team

* Added

* Moved to 'handwired' directory

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/handwired/2x5keypad/readme.md

Co-Authored-By: fauxpark <[email protected]>

* Switch to image offsite

* Moved image offsite

* Update keyboards/handwired/2x5keypad/keymaps/default/keymap.h

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/handwired/2x5keypad/2x5keypad.h

Co-Authored-By: fauxpark <[email protected]>

* Moved functions into .c file per suggestions

* Cosmetic

* Fixed function called, per suggestions.

* Update keyboards/handwired/2x5keypad/2x5keypad.h

Ok

Co-Authored-By: fauxpark <[email protected]>

* Moved LED functions to the top level since they can be used it various flavors

* Declare those moved LED functions!

* Update keyboards/handwired/2x5keypad/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* Created new_keymap.py, python version of new_keymap.sh (#6066)

* Created python version of new_keymap.sh: new_keymap.py

* Updated usage message

* Updated new_keymap.py to use python3.5+ syntax & be more similar to new_keyboard.sh

* Updated complete message

* Updated usage in argparser and removed incorrect usage_message

* Reverted the fstrings back to strings that use .format() & updated docstring convention

* Added helper to recursively cd .. until at qmk_firmware root directory

* Revert "Added helper to recursively cd .. until at qmk_firmware root directory"

This reverts commit 61a0ff3b25f91901287bec8d58eb51a1f126e2ad.

* Updated new_keymap.py to use printf-style format strings

* First draft lib/python/qmk/cli/new/keymap.py with milc

* Removed shebang & syspath appending lines

* Added optional args & resolved some cr comemnts

* Added a docstring and updated strings

* remove synthing conflict file (#6717)

* Fix boards being skipped during make all

* Tidy up backlight header use to avoid build issues (#6714)

* [Keymap] xunz layout for dz60rgb (#6716)

* [Update] Add xunz layout for dz60rgb

* [Update] Update layout.json and Readme.md

* [Delete] Delete unnecessary files

* [Create] Create new readme.md

* Update keyboards/dztech/dz60rgb/keymaps/xunz/rules.mk

Co-Authored-By: Drashna Jaelre <[email protected]>

* [Update] Delete some unnecessary code in config.h

* Update keyboards/dztech/dz60rgb/keymaps/xunz/config.h

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/dztech/dz60rgb/keymaps/xunz/config.h

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/dztech/dz60rgb/keymaps/xunz/rules.mk

Co-Authored-By: fauxpark <[email protected]>

* [Keymap] adding emdarcher's keymap for mf68 and tada68 (#6718)

* adding a custom mf68 keymap

* added custom tada68 keymap

* readme edit on tada68 map

* added mac fast-forward and rewind keybindings to tada68 emdarcher keymap

* tada68 keymap documentation and edits

* cleanup and edits

* typo fix in emdarcher's tada68 keymap

* cleaning up emdarcher keymap for tada68

* cleaned up emdarcher keymap for mf68

* Add to VSCode's recommended extensions (#6656)

This includes a number of recommended extensions from the VS Code doc page that should make coding things a lot easier for QMK Firmware.

* Fix Corne keyboard matrix configuration (#6684)

* [Keyboard] Add 2key2crawl (#6727)

* adding working 2key2crawl

Adding working 2key2crawl files
edited files in accordance with original PR comments

* Changes

Changes and updates

* Update readme.md

* Update config.h

removed IS_COMMAND block that was missed in previous commit

* Changes to vol/keymap.c

Removed unneccesary function

* [Keymap] Added m47ch4n keymap (#6673)

* Add m47ch4n's keymap

* Modify keymap

* Format m47ch4n keymap.c using clang-format

* Modify layer updater

* Fix wrong key repeating bug

* Add readme and QMK Configurator json

* Fix layer updateter

* Add Raise layer

* Add kana keys

* [Keymap] Fix Georgi's RZ key in NKRO fake-steno mode (#6701)

It was sending a comma keypress, while I believe that the targeted
stenography software (at least on systems that generally use
US-International keyboard layout) expects a single-quote/apostrophe key.

* Fix enables for Haptic Feedback (#6707)

* Fix enables for Haptic Feedback

If you enabled bothe DRV2605 and SOLENOID, it would only enable one of these, not both. 

This fixes the check so that you can enable both options.

* Fix check for haptic feature

* [Keyboard] Fix default keymaps for OLKB boards to play Startup Sound (#6721)

* Fix Planck default keymap to play sounds on rev6

The dip_switch_update callback was overriding the default startup sound.  This should prevent that from happening, and still allow it to play sounds, or stop them, when appropriate.

* Fix Preonic default keymap to play sounds on Rev 3

The dip_switch_update callback was overriding the default startup sound.  This should prevent that from happening, and still allow it to play sounds, or stop them, when appropriate.

* [Keyboard] Alps64 Refactor (#6723)

* get rid of custom matrix that is no longer being used

* remove _kc LAYOUT

* remove ifdefs and replace with pragma once

* cleanup rules and use bootmagic lite

* get rid of led.c

* Update keyboards/alps64/alps64.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* remove unneeded configurations

* [Keymap] Yet another xd75 keymap (#6734)

* add a keymap for xd75

* add colors, change some keys, add reactive modifier hold, key press

* add readme

* permissive hold

* [Keymap] style cleanup of GreenShadowMaker's keymap (#6736)

* [Keyboard] TheVanKeyboards Caravan: Configurator layout support (#6737)

* add VN66 keyboard (#6722)

* add VN66 keyboard

* update

* Update readme.md

* Update readme.md

* add hnah108 personal pcb

* delete hnah108

* Update vn66.c

* Clarify the backlight_level API doc slightly (#6733)

* Clarify the backlight_level API doc slightly

* review

* remove accidental characters in default preonic keymap (#6748)

* [Keymap] Added Xerpocalypse's layout (#6732)

* Added Xerpocalypse's layout

+ Number row and symbols are switched compared to default TMO50 layout
+ Right-hand spacebar acts as backspace and a hold-layer for layer 2.

* Update keyboards/tmo50/keymaps/xerpocalypse/keymap.c

Removed unnecessary #define

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/tmo50/keymaps/xerpocalypse/keymap.c

Changed keymap to use KC_UNDS instead of custom-defined keycode

Co-Authored-By: noroadsleft <[email protected]>

* Percent Studio Booster: Configurator fix (#6743)

* Add Chimera65 Keyboard (#6670)

* Add chimera board

* info json start

* Update keyboards/cannonkeys/chimera65/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <[email protected]>
Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/cannonkeys/chimera65/config.h

Co-Authored-By: Drashna Jaelre <[email protected]>

* [Keyboard] Fixed EEPROM start address for firmware using VIA (#6757)

* [Keymap] Plaid Keymap for Programmers (#6706)

* map programmer qwerty

* clarify and fix typo

* finishing touches

* use qmk
s templates for readme

* update copyright notice

* remove unnecessary code

Co-Authored-By: Drashna Jaelre <[email protected]>

* remove unnecessary code

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/plaid/keymaps/thehalfdeafchef/keymap.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* fix documentation

* reformat code

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <[email protected]>

* [Keyboard] Adding AEK64 keyboard (#6725)

* Adding AEK64 keyboard

* Deleting useless layout definition

* Resolving many code review issues

* Documenting my 4sStylZ keymap

* Adding default keymap

* Apply suggestions from code review

Code review corrections

Co-Authored-By: noroadsleft <[email protected]>
Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/handwired/aek64/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* Correcting the NKRO implementation

* [Keyboard] Adding YMDK "Bface" keyboard (#6731)

* making a new board setup for ymdk bface clone

* removing extra keymaps that copied over

* documentation and edits for new ymdk_bface board

* cleaning up config and keymaps

* removed extra keymap and working on READMEs

* readme edits

* shorter aliexpress link in ymdk_bface readme

* added images to readmes and edited the keymaps

* more flashing directions

* Mac directions formatting

* editing and creating the all layout

* cleanign up ymdk_bface keymaps

* fixed typos in layout

* removed tabs

* cleaned up the LED and Backlight configuration.

* adding more to info.josn and cleaning up readme

* fixing JSON typos

* made a ymdk folder and moved the bface into it.

* fixing file names for the new folder structure

* [Keyboard] Correct info.json data for vn66 (#6741)

* Correct info.json data for vn66

* update .json file data

* Update info.json

* [Keymap] idobo/drewdobo keymap v1 (#6744)

* [Keymap] Fix e65 7u WK layout and add crd's personal keymap (#6750)

* Add e65 keymap for crd

* Fix e65 7u wk layout

* [Keymap][Xulkal] User code update (#6752)

* Updating rgb menu behavior

* Fixing toggle keycode to work how I want it

* Enabling auto scroll timeout

* [Keyboard] KBD75 refactor (#6755)

* convert codebase to #pragma once

* fix file includes

- quantum.h is included at keyboard level, redundant at revision level
- keyboard-level path is accessible at revision level, remove relative pathing

* duplicate common layout macros from rev1 to rev2

Add the layout macros supported by both rev1 and rev2 to rev2.h directly, which exposes these layouts to QMK Configurator.

* enable community layout support (75_ansi, 75_iso)

* add LAYOUT_75_iso layout data

It needs its own tree because its keys are in a different order from LAYOUT_iso_1u even though the physical layout is the same.

* minimize rules.mk files (use QMK defaults)

* use atmel-dfu bootloader rule

* fix typo on rev1 info.json

* [Keyboard] Freyr: Configurator bugfixes (#6756)

- rebuild LAYOUT_all tree (key count mismatch)
- correct keyboard dimensions and key positioning
- complete key object labels
- debug linting (one key object per line; changes white space only)

* [Keyboard] xd87: add capslock led support (#6758)

* Update bootloader.mk (#6698)

* [Keyboard] Fix compile issues for OLKB Default keymaps (#6751)

* [Keyboard] add personal fullsize pcb hnah108 (#6759)

* add personal fullsize pcb hnah108

* Update keymap.c

* [Keyboard] Introduce AT-AT 660M (#6729)

* Introduce AT-AT 660M

* PR feedback

Co-Authored-By: fauxpark <[email protected]>

* Add dfu-util args

* Add URL

* [Keyboard] 201909 s75 custom encoder (#6745)

* Handle custom encoder configuration

* Whitespace changes

* Undo broken stuff

* more

* Remove printfs

* fix the dumb bug

* Updated split encoders so indexes are based on left hand encoders first (#6382)

* Updated encoder.c so that split encoders are indexed based on left hand encoders first.
This ensures when swapping master sides that code logic based on encoder index doesn't change.

PR Review fixes

* Removed extra define

* Smoother Linear Light Table (#6764)

* [Keymap] Update Planck Layer Diagram To Match Layer (#6712)

* [Keyboard] 1up60hte cleanup + bugfix (#6763)

* move caps lock led to keyboard level so even QMK Configurator users have access to it

* set bootloader correctly to atmel-dfu

* clean up extra carriage return

* DRV2605L Continuous Haptic Feedback Support (#6461)

* provide means to turn on RTP mode and set the amplitude

* new keycode HPT_CONT to turn RTP off/on

* introduce new keycodes HPT_CONI, and HPT_COND for Haptic Continuous Increase and Decrease

* support for continuous mode amplitude increase and decrease

* code cleanup

* update docs to reference new keycodes and functionality

* don't touch the keymaps

* add function prototypes

* add proper guards

* cleanup guards

* remove extra reserved

* Cleanup rules.mk for USB64 and USB128 keyboards (#6769)

* Cleanup rules.mk for 16U2 and 32U2 keyboards (#6768)

* Cleanup rules.mk for 16U2 and 32U2 keyboards

* Add back Tap Dance build option

* [Keymap] Added my personal keymaps for dz60 and TMO50. (#6772)

* Added ottodokto keymaps for dz60 and tmo50.

* moved placement of keymaps to proper directory

* fixed accidental deletion of semicolon for tmo50 map

* fix to use short form codes

Co-Authored-By: noroadsleft <[email protected]>

* Add reset instructions for boards that use Command to the Zadig driver installation guide (#6770)

* Add reset instructions for boards that use Command to the Zadig driver installation guide

* -> → →

* Apply suggestions from code review

Replace shorthand keycode names with full names

Co-Authored-By: fauxpark <[email protected]>

* Cleanup rules.mk for 32A and 328P keyboards (#6767)

* [Keyboard] Add Discipad, Update Zadig doc for USBaspLoader (#6771)

* add discipad

* Update driver_installation_zadig.md

* Update keyboards/coseyfannitutti/discipad/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/coseyfannitutti/discipad/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* Update rules.mk

* Update keyboards/coseyfannitutti/discipad/rules.mk

Co-Authored-By: noroadsleft <[email protected]>

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/coseyfannitutti/discipad/discipad.c

Co-Authored-By: fauxpark <[email protected]>

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <[email protected]>

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <[email protected]>

* Update rules.mk

* Update discipad.c

* Update driver_installation_zadig.md

* Update config.h

* Add support for 328P hardware backlight on B1/B2 (#6776)

* Add support for Void Linux systems to the qmk_install.sh script (#5526)

* Add support for Void Linux systems to the qmk_install.sh script

* Fix typos + grammatical edits in comments

* Sort distributions by alphabetical order in linux_install.sh

* Revert previous commit and sort Void packages in alphabetical order

* Fix permissions on `util/linux_install.sh`

* [Keyboard] Update Stapelberg readme.md (#5557)

Previously suggested parts are hard to find or non-existent.  Update with available part numbers.

* Add list-keymaps make target (#5563)

* [Keymap] Bonta keymap for massdrop/ALT (#6391)

* Added new bonta keymap.

* Added a note.

* Made map more mac like.

* [Keymap] Move common code and configuration to userspace for dshields keymaps. (#6537)

* Generalize Tap Dance Layer functions (#6629)

* made tapdance dual_role general

* updated original dual_role functionality

* added toggling layer example

* Fix dual role and add alias

* Update docs about new layer tap dances

* Fix up based on feedback

* [Keyboard] Move more percent boards into the percent directory (#6781)

* move canoe into percent directory

* update readme for new make path

* move skog into percent directory

* update readme for new path and new instructions

* update readme

* fix error in naming

* [Keyboard] fix OLKB layout macro aliases (#6761)

* Update the breaking changes process so we always have a future branch (#6785)

* add python3 to shell.nix (#6774)

* Correct casing for DS_Store in .gitignore (#6787)

* Fixing wrapping math logic for timer_expired functions (#6746)

* Configuration system for CLI (#6708)

* Rework how bin/qmk handles subcommands

* qmk config wip

* Code to show all configs

* Fully working `qmk config` command

* Mark some CLI arguments so they don't pollute the config file

* Fleshed out config support, nicer subcommand support

* sync with installable cli

* pyformat

* Add a test for subcommand_modules

* Documentation for the `qmk config` command

* split config_token on space so qmk config is more predictable

* Rework how subcommands are imported

* Document `arg_only`

* Document deleting from CLI

* Document how multiple operations work

* Add cli config to the doc index

* Add tests for the cli commands

* Make running the tests more reliable

* Be more selective about building all default keymaps

* Update new-keymap to fit the new subcommand style

* Add documentation about writing CLI scripts

* Document new-keyboard

* Update docs/cli_configuration.md

Co-Authored-By: noroadsleft <[email protected]>

* Update docs/cli_development.md

Co-Authored-By: noroadsleft <[email protected]>

* Update docs/cli_development.md

Co-Authored-By: noroadsleft <[email protected]>

* Update docs/cli_development.md

Co-Authored-By: noroadsleft <[email protected]>

* Address yan's comments.

* Apply suggestions from code review

suggestions from @noahfrederick

Co-Authored-By: Noah Frederick <[email protected]>

* Apply suggestions from code review

Co-Authored-By: Noah Frederick <[email protected]>

* Remove pip3 from the test runner

* New Default Layout: 65_blocker_ansi (#6782)

* initial commit

* rename 65_ansi to 65_blocker_ansi

* remove one key to account for blocker

* [Keyboard] Fix pinout on the copenhagen clickpad (#6788)

* [Keyboard] 65_ansi_blocker support for Doro67 (#6791)

* rename LAYOUT to LAYOUT_65_blocker_ansi

* rename LAYOUT macro

* enable LAYOUT_65_blocker_ansi community layout support and remove uneeded lines of code

* rename LAYOUT to LAYOUT_65_blocker_ansi

* rename LAYOUT macro

* enable LAYOUT_65_blocker_ansi community layout support

* enable LAYOUT_65_blocker_ansi support

* fix rename mess up

* add QMK Configurator support with the new rename

* rename blocker_ansi to ansi_blocker as it rolls off the tongue easier

* [Keymap] mikethetiger's milk keymap (#6611)

* Added my Preonic keymap

* Update keyboards/preonic/keymaps/mikethetiger/keymap.c

Co-Authored-By: mikethetiger <[email protected]>

* Update keyboards/preonic/keymaps/mikethetiger/keymap.c

Co-Authored-By: mikethetiger <[email protected]>

* Added my Preonic keymap

* Added my Preonic keymap

* mikethetigers lets slpit eh keymap

* mikethetiger's milk keymap

* Update rules.mk

* Update keyboards/thevankeyboards/minivan/keymaps/mikethetiger/keymap.c

Co-Authored-By: fauxpark <[email protected]>

* Update rules.mk

Better?

* format code according to conventions [skip ci]

* Refactor the KBD67 Mk.II RGB (#6799)

* move kbd67mkiirgb into kbd67 directory as mkiirgb

* rename files

* rename LAYOUT to LAYOUT_65_ansi_blocker

* add support for default layout

* update readme for new build target

* update parent readme with the fourth variant

* Cleanup rules.mk for 32U4 keyboards, 0-9 (#6789)

* ARM split - Add bootmagic/magic keycodes for setting handedness (#6545)

* Add docs on bootmagic/magic keycodes for setting handedness

* Clang format fixes

* Maintain backwards compatibility

* Maintain backwards compatibility

* Merlin's Community Layout Updates (#6798)

* readme updates for 60_ansi and split variations

* add new community layout for mechmerlin for the new default layout 65_ansi_blocker

* change path now that kbd67 has been updated

* fix up spacing

* [Keyboard] KBD67 Mk.II RGB info.json missing a column (#6807)

* looks like configurator layout was missing a column

* add a key count

* Bathroom Epiphanies Pegasus Hoof: add LAYOUT_tkl_jis data to QMK Configurator (#6802)

* Bathroom Epiphanies Pegasus Hoof: add LAYOUT_tkl_jis data

* use normal English labels

* [Keymap] New keymap for the DZ65RGB (#6792)

* new keymap for my chocolate tofu65 with dz65rgb

* consistent with a tada68 layout

* remove extra layer, add swap keycodes and mouse keycodes

* fix the tabs and spaces

* fix the left shift

* [Keymap] add keymap broswen for kbd75 (#6814)

* [Keyboard] Add additional LAYOUT macros to Noxary 260 (#6815)

* add default LAYOUT_60_ansi

* add LAYOUT_60_hhkb support

* add tsangan_hhkb support

* add ISO support and rename LAYOUT to LAYOUT_all

* formatting

* add community layouts support

* remove unneeded code

* missed a LAYOUT rename

* add link time optimization to reduce firmware size for some people's keymaps

* [Keymap] Various enhancements for dshields user space and keymaps. (#6816)

- Add oneshot mod/layer unlocking
- Fix Planck rev 3 backlight breathing
- Fix Planck rev 6 build with arm gcc 9.2.0
- General code clean up

* [Keymap] update personal keymap (#6817)

* [Keyboard] Added support for ErgoDox with STM32 Microcontroller (#5398)

* Began Work On STM32 Ergodox
 Changes to be committed:
	new file:   keyboards/ergodox_stm32/config.h
	new file:   keyboards/ergodox_stm32/rules.mk

* test

* Now it compile. Not linking thou

* Screw this Linker. It links now!

* Blinkly Keyboard

* bootloader test code

* Working on matrix / i2c stuff

* Progress (LED Blink)

* Progress on MCP_23017 Status Flag

* [WIP]

* update

* Works! Remeber to change back the bootloader address when the new bootloadrer is ready.

* Time to go debug the i2c

* Finally, it now works with PCB Rev 1.0.2

* updated for rev.2 pcb

* minor compilation fix

* Why when debugger is enabled then everything works.

* Remeber to call init functions.

* Update arm i2c driver to support STM32F103 series device.

* fix include once header. Replaced with #pragma once.

* complication test

* 65 ansi blocker everywhere (everywhere I can find) (#6805)

* e6.5 actually already had a 65_ansi_blocker LAYOUT macro, so just had to enable in rules.

* Add the 65_ansi_blocker LAYOUT macro and enable in rules.mk

* rename LAYOUT macro in .h and in the keymap.c as it was only a default keymap. Also enable in rules.mk

* rename but also had to define the existing LAYOUT macro as the new one to prevent breakage of existing keymaps

* add 65_ansi_blocker support for vinta

* forgot to update the info.json on these

* add new default layout 65_ansi_blocker support to alt

* add 65_ansi_blocker support

* undo changes

* [Keymap] Add Z-layer to narze layouts (#6806)

* Revert raise/backspace mod tap to just backspace

* Add Dev layer

* Use Dev layer on holding z key

* Add Dev layer for Ergodox

* [Keyboard] Rabbit68: Configurator layout support (#6809)

* [Keyboard] Add Efreet keyboard (#6811)

* start wraith firmware

* completed initial setup

* added amber keymap to wraith

* fixed LEDs, wrote readme files

* reverted bootloader type after troubleshooting

* decapitalised files and directory as per qmk standards

* Update Wraith keyboard folder

- Add timer keymap with documentation
- Remove boilerplate in rules.mk, ready for pull request
- Update info.json with ISO and ANSI layouts, ready for QMK Configurator

* Add Efreet keyboard

* Remove unnecessary keyboard folders

* Enable community layout support for Efreet

- Rename LAYOUT macro to LAYOUT_ortho_4x12
- Add layout macro named LAYOUT_planck_mit
- Remove unnecessary magic key command, as we are using the default
- Fix readme.md formatting for GitHub

* Fix community layout support for Efreet

- Fix 2u spacebar keycodes in LAYOUT_planck_mit to denote absence of switch
- Turn on Community Layouts in rules.mk

* Update default keymap.c to use community layout

* [Keyboard] Subatomic refactor (#3194)

* Refactor: matrix

* New readme file

* Configurator support

* change info.json to debug linting

* use an enum to manage the layers

* readme cleanup

file header, docs links

* use #pragma once in keyboard header file

* use new-style OLKB layout macro naming scheme

* fix layout macro references in keymap.c

* correct Keyboard Maintainer

* [Keymap] Added two different Swedish layouts for the Niu Mini 40% and Preonic 50%. (#6793)

* added preonic keymap senseored

* added niu_mini/tobias

* Changed readme's to explain that these are swedish layouts

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/niu_mini/keymaps/tobias/keymap.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Made changes according to drashna's suggestions

* Changed to tap_code(KC_NLCK)

* Added #define RGBLIGHT_SLEEP

* Added #define RGBLIGHT_SLEEP

* Removed include config.h

* [Keyboard] Add Crossed Keys/Keyhive Nightmare (#6796)

* initial draft of nightmare files

* fixed pins

* fixed MT keycodes

* updated READMEs

* updated title in main readme

* updated for split space

* added OPT_TAB

* fixed layer 1 keymap

* Add DEL to keymap

* Update Bootmagic pins

* Update Keymap

* Fix missing )

* Update Up arrow on keymap

* Add hosted image for Nightmare render

* Update info.json for Nightmare layout

* Resolve suggestions from drashna

* Add split space layout in nightmare.h and info.json

* [Keymap] ninjonas keymap for crkbd & ninjonas userspace updates (#6797)

* [keymap(crkbd)] introducing crkbd keymap on ninjonas profile

* [keymap(crkbd)] introducing crkbd keymap on ninjonas profile

* [refactor(crkbd)] reducing file size by selecting RGB animations

* [refactor(crkbd)] added shiftit key

* [refactor(crkbd)] added shiftit key

* [chore(crkbd)] adding SLEEP_LED_ENABLE on rules.mk

* [refactor(crkbd)] added keylog & removed static rainbow RGB

* [feat(crkbd)] introduced em-dash '—' keymap

* [feat(crkbd)] added screenshot functionality

* [refactor(lily58,pinky3)] moving media keys

* [refactor(lily58)] Added emdash key

* [chore] removing NUMBERS & FUNCTIONS layers as they're useless

* [chore] removing NUMBERS & FUNCTIONS layers as they're useless

* [chore(crkbd,lily48)] Updating README.md

* [feat] added K_LAPP & K_RAPP to mimic command + tab

* [feat] added K_LAPP & K_RAPP to mimic command + tab

* [fix(#6797)] resolving changes requested by @drashna

* [fix(#6797)] first cut on using QMK OLED Driver

* [fix(#6797)] cleaning up rules.mk

* [fix(#6797)] making scrolling logo work

* [fix(#6797)] Using OLED Driver for Lily58

* [fix(#6797)] Moved OLED driver implementation to ninjonas userspace

* [fix(#6797)] Bringing back crkbd & lily58 logos

* [fix(#6797)] Turning off OLED based off @drashna's workaround in #5982

* [fix(#6797)] whoops! forgot to checkin crkbd/config.h

* [fix(#6797)] fixing issue with OLED randomly turning on

* [fix(#6797)] using default glcdfont.c for lily58 & crkbd

* [fix(#6797)] Using LINK_TIME_OPTIMIZATION_ENABLE rather than EXTRAFLAGS as per code review

* [fix(#6797)] updating M_MALL macro as per code review by @fauxpark

* [Keymap] Add preonic/kjwon15 layout (#6812)

* Add my custom keymap

* Remove del key on left, Add pscr

* Move Audio MOD key to pass ctrl

* Change startup song

* Enable clicky sound

* Swap alt and gui

* Fix semitones

* Add mouse layer

* Change startup song

Additionally, fixup 5 halftones

* Add ctrl key to ctrl+click

* Move media keys to restore raise number keys

* Move mouse key layer switch

* Swap media keys as normal

* Fix music map

* Move mouse speed limit to correct position

* Move prtscr

* Align keycodes

* Add ctrl/esc, swap smart space keys

* Change colemak, dvorak into custom layout

* Fix pure mode (left space)

* Fix mouse mode interrupt

* Add Middle mouse click

* Add Lefthand mouse scroll

* Temporarily disable mouse speed

* Rename custom layout to kjwon15

* Change readme

* Apply suggestions from code review

Co-Authored-By: fauxpark <[email protected]>

* Apply suggestions from code review

* Apply suggestions from code review

Co-Authored-By: fauxpark <[email protected]>

* Update from default keymap's function

* [Keyboard] Added QMK-DFU config to Vitamins Included rev2 (#6818)

* [Keyboard] Reviung39: Configurator layout support (#6819)

* [Keymap] Port personal keymap to 60_tsangan_hhkb (#6820)

* Port personal keymap to 60_tsangan_hhkb

 - add 60_tsangan_hhkb layout to plain60
 - Fix bug in split rs in plain60
 - use community and user based layout for 60_tsangan_hhkb
   - set up audio for plain60 only

* Add LAYOUT_60_ansi_split_bs_rshift

* Minor link fix in Clueboard README (#6823)

Small change to fix the README link to go to the actual 66_hotswap instead of just the 66%.

* [Keymap] Use 75_ansi and community layout for xd84 (#6821)

* Use 75_ansi and community layout for xd84

 - work around flash issues by disabling most of the animations

* Remove rules.mk

* [Keyboard] cKeys theDora: Configurator fix (#6828)

Make the layout actually match the orientation.

* [Keymap] Personal xd75 keymap "Odyssey" (#6830)

* ARM split - Add support for dfu-util EE_HANDS flashing (#6543)

* Initial stab at some fake dfu-util-split-left behaviour

* Apply suggestions from code review

Co-Authored-By: fauxpark <[email protected]>

* Clang format fixes

* Fake eeprom init for both left and right hand

* [Keyboard] update angel17 (#6831)
fdidron pushed a commit to zsa/qmk_firmware that referenced this pull request Oct 1, 2019
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

Co-Authored-By: noroadsleft <[email protected]>

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <[email protected]>

* DIP changes

Co-Authored-By: fauxpark <[email protected]>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <[email protected]>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <[email protected]>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
ripxorip pushed a commit to ripxorip/qmk_firmware that referenced this pull request Dec 3, 2019
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

Co-Authored-By: noroadsleft <[email protected]>

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <[email protected]>

* DIP changes

Co-Authored-By: fauxpark <[email protected]>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <[email protected]>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <[email protected]>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
ridingqwerty pushed a commit to ridingqwerty/qmk_firmware that referenced this pull request Jan 10, 2020
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

Co-Authored-By: noroadsleft <[email protected]>

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <[email protected]>

* DIP changes

Co-Authored-By: fauxpark <[email protected]>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <[email protected]>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <[email protected]>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
sigprof added a commit to sigprof/qmk_firmware that referenced this pull request Aug 27, 2020
The matrix_col_t type was added in commit 0284431 (part of qmk#3449),
but then the code which used that type was removed in qmk#6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
tzarc pushed a commit that referenced this pull request Aug 31, 2020
The matrix_col_t type was added in commit 0284431 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
noroadsleft pushed a commit that referenced this pull request Sep 4, 2020
The matrix_col_t type was added in commit 0284431 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
noroadsleft pushed a commit that referenced this pull request Sep 12, 2020
The matrix_col_t type was added in commit 0284431 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
chris-beedie pushed a commit to chris-beedie/qmk_firmware that referenced this pull request Sep 20, 2020
The matrix_col_t type was added in commit 0284431 (part of qmk#3449),
but then the code which used that type was removed in qmk#6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
skullydazed pushed a commit that referenced this pull request Oct 18, 2020
The matrix_col_t type was added in commit 0284431 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
noroadsleft pushed a commit that referenced this pull request Oct 23, 2020
The matrix_col_t type was added in commit 0284431 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
skullydazed pushed a commit that referenced this pull request Oct 28, 2020
The matrix_col_t type was added in commit 0284431 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
noroadsleft pushed a commit that referenced this pull request Oct 30, 2020
The matrix_col_t type was added in commit 0284431 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
jMavarez pushed a commit to jMavarez/qmk_firmware that referenced this pull request Oct 14, 2021
The matrix_col_t type was added in commit 0284431 (part of qmk#3449),
but then the code which used that type was removed in qmk#6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
BorisTestov pushed a commit to BorisTestov/qmk_firmware that referenced this pull request May 23, 2024
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

Co-Authored-By: noroadsleft <[email protected]>

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <[email protected]>

* DIP changes

Co-Authored-By: fauxpark <[email protected]>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <[email protected]>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <[email protected]>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
BorisTestov pushed a commit to BorisTestov/qmk_firmware that referenced this pull request May 23, 2024
The matrix_col_t type was added in commit 203ba57 (part of qmk#3449),
but then the code which used that type was removed in qmk#6140, and no
other users were added since that time.  The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants