Compare commits

...

1738 Commits

Author SHA1 Message Date
Jack Humbert 832661f6b0 return false to stall correctly 2021-10-13 23:30:25 -04:00
James Young 04cf161aa0 maxr1998/pulse4k: use layout macros in keymaps (#14808) 2021-10-13 19:56:48 +11:00
James Young ec32365944 Kopibeng MNK88 Patch (#14807)
* refactor default keymap

- correct keycode sequence (`KC_RGHT` was in the wrong place)
- change tabs to spaces (four-space indent)
- update grid alignment

* refactor via keymap

- change tabs to spaces (four-space indent)
- update grid alignment
2021-10-12 23:50:04 -07:00
James Young bc51e330c0 Lucid Alexa layout macro rework (#14799)
* refactor keymaps for readability

- use QMK-native keycode aliases
- physically align keycodes

* rework layout macro

A discrepancy between the default and via keymaps prompted a deep dive into the keyboard's switch matrix, which led to the discovery that (1) the layout macro's arguments were not arranged physically, and (2) the keymaps didn't assign the keycodes to the same switches (the default keymap's keycodes were in the wrong sequence).

Additionally, the layout macro was built to support a split Backspace, but named as if it were for a 2u Backspace, which broke the enabled support for Community Layout keymaps.

This commit:

- arranges the layout macro arguments according to physical order
- corrects the keymaps
- renames the layout macro to specify the split Backspace
- disables Community Layout support
- updates the `info.json` data

* add LAYOUT_65_ansi_blocker

* enable Community Layout support

* update `info.json` metadata

- use full product listing URL
- use GitHub username for maintainer field

* update readme

- fix vendor link in lead paragraph
- update metadata list
  - use GitHub username of keyboard maintainer
  - correct Supported Hardware
  - add Hardware Availability link
- add flashing and bootloader instructions
2021-10-12 22:47:54 -07:00
James Young c63c78f080 Kopibeng MNK88 Layout Extension (#14796)
* friendly-format info.json

* mnk88.h: use QMK 3-character notation

* mnk88.h: add matrix diagram

* add LAYOUT_tkl_ansi_f13

* add LAYOUT_tkl_ansi_tsangan_f13

* add LAYOUT_tkl_iso_f13

* add LAYOUT_tkl_iso_tsangan_f13
2021-10-12 22:40:48 -07:00
etiennelepagel a0b7c1618a [Keyboard] Add MachKeyboards Mach3 (#14791)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-11 19:42:14 -07:00
takashicompany 2d8dcf08e8 [Keyboard] Add "Center x Enter" (#14790)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-10-11 19:41:50 -07:00
James Young 78509658e6 KabeDon98E Refactor (#14778)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-10-11 19:40:29 -07:00
Reibl János Dániel 4b2866dd96 [Keymap] Add workman layout (#14792) 2021-10-11 19:26:47 -07:00
kb-elmo 25eac95348 [Keyboard] Add ISOlation and some kb-elmo keyboard updates (#14656)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-10-11 19:25:28 -07:00
James Young bedecd3cbc Nordic60 layout rework/extension (#14794) 2021-10-11 18:44:47 -07:00
Joris Wachsmuth 8385ab32d0 [Keyboard] Add Split65 to keyboards/handwired (#13264)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joris Wachsmuth <jwachsmuth@techfak.uni-bielefeld.de>
2021-10-11 18:09:25 -07:00
thompson-ele e33ccc556f [Keymap] Added Gherkin VIA keymap (#14779) 2021-10-11 18:06:48 -07:00
Sergi Meseguer 598f3fa7a7 [Keyboard] z34 split keyboard by zigotica (#14582)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-11 18:04:47 -07:00
Jimmy Sjölund cecf5d52f9 [Keymap] Adding my personal Planck layout (#14564)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-11 18:04:24 -07:00
jonavin ea2505901e [Keymap] Jonavin new obe keymap (#14657)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Jonavin <=>
2021-10-11 18:03:58 -07:00
Ryan 633ef1441b handwired/nicekey optimisation (#14788)
* handwired/nicekey optimisation

* Add some consts

* Read address from progmem, pass it into send_string_with_delay_P
2021-10-11 14:41:31 +01:00
Drashna Jaelre 5640b6cd77 Allow AVR Bootloader size to be configurable (#14783)
* Allow AVR Bootloader size to be configurable

* revert changes to atmel dfu
2021-10-11 14:30:17 +01:00
bgrosse-midokura a7313992de [Keymap] gipsy-king's layout for cornelius (#14602)
Co-authored-by: Benjamin Große <ste3ls@gmail.com>
2021-10-11 02:59:52 -07:00
Quinn Mikelson d9e077468a [Keyboard] Add ZSA Moonlander VIA support (#14603)
Co-authored-by: Quinn Mikelson <quinn.mikelson@tyvak.com>
Co-authored-by: Drashna Jael're <drashna@live.com>
2021-10-11 02:57:44 -07:00
Alabahuy 9351eb395b [Keyboard] Add Rart67M and support via (#14630) 2021-10-11 02:57:16 -07:00
mechlovin 3289f74179 [Keyboard] Add Jay60 PCB (#14676)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-11 02:56:30 -07:00
Shay Merrill 39499f9df7 [Keymap] lets split keymap for shaymdev (#14663)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-10-11 02:55:41 -07:00
Dalius Dobravolskas 0633bc9a8b [Keymap] Architeutis Dux keymap (#14728) 2021-10-11 02:55:20 -07:00
gkeyboard b64ea02d9b [Keyboard] Add blank01 keyboard (#14698)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-10-11 02:54:04 -07:00
Steven Karrmann ab7d731049 [Keyboard] New Keyboard: Horizon (#14776)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-11 02:53:41 -07:00
rhmokey f57de35dcf [Keyboard] Modify mokey64 matrix (#14761) 2021-10-11 02:51:42 -07:00
kb-elmo daece508da [Keyboard] Add BIOI F60 (#14763) 2021-10-11 02:50:52 -07:00
Drashna Jaelre 064f6d96c3 [Keyboard] Fix lck75 via keymap (#14786) 2021-10-11 16:54:20 +11:00
Albert Y 8045ad711a [Keyboard] Add bootmagic lite keys to both halve of Sweep (#14732)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-10-10 20:48:02 -07:00
Albert Y 5d7efc7183 [Keyboard] Add bootmagic lite keys to both halve of A.dux (#14731)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-10-10 20:46:45 -07:00
im a can what do you think lmao? ef7fa0fe91 [Keyboard] update lck75 keyboard layouts (#14687)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-10 20:30:55 -07:00
Shay Merrill ae73df00ec [Keymap] orthodox keymap for shaymdev (#14660)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-10 19:56:27 -07:00
KnoblesseOblige 5414e61f01 [Keyboard] Add keebsforall/freebirdtkl (#14460) 2021-10-10 18:38:58 -07:00
Jay Greco c75bf9daf4 [Keyboard] nullbitsco keyboards: common file cleanup (#14358) 2021-10-10 18:37:33 -07:00
Wolf Van Herreweghe 5c034c43ab [Keyboard] Add firmware for the TS60 (#14157)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2021-10-10 18:21:49 -07:00
leonardusdipa c8d5988ba4 [Keyboad] Add VIA support for Atreus promicro (#13169) 2021-10-10 17:24:45 -07:00
Kyle McCreery fa1a59e7f8 Changing RGB default to on so it plays well with VIA's QMK lighting section and adding the B9 init workaround to obe.c so the I2C EEPROM will initialize correctly since we are using B9 for caps lock indicator. (#14677) 2021-10-10 21:30:00 +01:00
Sergey Vlasov 06124f9885 cannonkeys/satisfaction75: Add empty layers to the via keymap (#14782) 2021-10-11 06:19:08 +11:00
Drashna Jaelre ee9da1fcf3 [Keyboard] Fix DZTECH duo_s default keymap (#14772) 2021-10-09 21:50:35 -07:00
James Young a8a5d20464 Ein_60: add Configurator layout data (#14777) 2021-10-10 00:56:21 +01:00
Dao Tak Isaac 3c188d98a1 [Keyboard] Add cg108 keyboard and fix keymap Dosa40rgb (#14753)
* Add cg108 keyboard and fix keymap Dosa40rgb

* Update keyboards/dtisaac/cg108/readme.md

* Update keyboards/dtisaac/dosa40rgb/rules.mk

* Update keyboards/dtisaac/cg108/info.json

* Update keyboards/dtisaac/cg108/keymaps/default/keymap.c

* Update keyboards/dtisaac/cg108/rules.mk

* Update keyboards/dtisaac/cg108/rules.mk
2021-10-09 14:55:00 -07:00
shela f216c20fc7 Update Japanese document (#14766) 2021-10-09 21:04:00 +01:00
shela 5aca3f613c Update Japanese document (#14767) 2021-10-09 21:03:17 +01:00
shela 969596bd67 Update Japanese document (#14769) 2021-10-09 21:02:55 +01:00
Drashna Jaelre 82bf688e44 [Keyboard] Update Tractyl Manuform config for F411 (#14770) 2021-10-09 11:31:13 -07:00
Drashna Jaelre f90d8b35f2 [Keyboard] Fix IS31FL3741 driver flushin for Xelus pachi rgb (#14755) 2021-10-08 22:23:03 +01:00
s-show 7205b70e84 Translate keycodes us ansi shifted (#13820)
* copy "keycodes_us_ansi_shifted.md" to docs/ja.

* Add japanese translation "docs/keycodes_us_ansi_shifted.md".

* Apply suggestions from code review

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/keycodes_us_ansi_shifted.md

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2021-10-08 19:28:00 +09:00
James Young d35a98ca24 dyz selka40 touch-up (#14748)
* friendly-format info.json

* remove info.json rounding errors

* fix info.json layout macro reference

JSON data referenced `LAYOUT` instead of `LAYOUT_all`.

* correct info.json key sequence

* remove dead space from info.json layout data

* remove vertical offsets from info.json layout data

* horizontally align info.json layout data

* add matrix diagram to selka40.h

* add LAYOUT_2u_bs

* remove duplicated settings
2021-10-07 21:12:46 -07:00
James Young 9d070e6a08 DYZ TKL touch-up (#14744)
* friendly-format info.json

* add LAYOUT_all layout data

* add matrix diagram to dyz_tkl.h

* add LAYOUT_tkl_ansi

* add LAYOUT_tkl_ansi_f13

* add LAYOUT_tkl_iso

* add LAYOUT_tkl_iso_f13

* remove `ENCODER_ENABLE = no` from rules.mk

* remove redundant definitions from config.h

Data-driven compilation calculates `MATRIX_ROWS` and `MATRIX_COLS` from the info.json data, so defining them in config.h isn't necessary.

* add missing comma to info.json per fauxpark
2021-10-07 17:26:38 -07:00
James Young 51470dfae1 Dyz60 touch-up (#14742)
* friendly-format info.json

* refactor keymaps

- update grid alignment
- use four-space indent
- use QMK short-form keycodes

* correct info.json layout data

Adds three missing positions, and corrects some key sizes.

* add matrix diagram to dyz60.h

* add LAYOUT_60_ansi

* add LAYOUT_60_iso

* add LAYOUT_60_ansi_split_bs_rshift

* add LAYOUT_60_iso_split_bs_rshift

* add readme

* Remove duplication between config.h and info.json

Duplicating settings between config.h and info.json leads to warnings when compiling.

Removes the duplicated settings from config.h.
2021-10-07 21:20:34 +01:00
precondition 13f3e30e86 Fix link from feature_tap_dance.md to tapping term settings (#14741) 2021-10-07 21:03:21 +01:00
James Young cbf1e0bab5 Dyz40 Configurator fixes (#14739)
* add matrix diagram to keyboard header file

* friendly-format info.json

* correct layout data

* add legends to info.json key labels

* add LAYOUT_split_space_split_bs

Rename the `LAYOUT` tree in info.json to `LAYOUT_split_space_split_bs`, and add a corresponding layout macro.

* add LAYOUT_all data to info.json

* add LAYOUT_7u_space

* add LAYOUT_7u_space_split_bs

* add LAYOUT_split_space

* convert tabs to spaces in dyz40.h
2021-10-07 10:51:38 -07:00
Bahrul Hidayat 12b9bedee5 update product id for selka40 (#14629) 2021-10-07 10:45:56 -07:00
jmcwilliams403 63cb273d15 Enabled Bootmagic Lite (#14573)
* Enabled Bootmagic Lite

* Enabled Bootmagic Lite

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-10-07 14:49:16 +01:00
Grayson Carr d5fae3a6f9 Updated Keychron Q1 user keymap (#14666)
* Updated Keychron Q1 user keymap
- Added Caps Lock indicator
- Mission Control and Launchpad custom keycodes are now defined using the VIA user keycodes range so they can be labeled properly in VIA

* Only use VIA keycode range if VIA is enabled

* Reformatted led_indexes enum to match layout

* Feature: When the Fn layer is active, RGB lighting turns off for keys that are not assigned

* Fixes

* Cleanup: Updated method signature of rgb_matrix_set_color_by_keycode to more closely match rgb_matrix_set_color

* Fixed int sizing for keycodes
2021-10-06 08:36:04 -07:00
James Young f32db0bdd1 Mode M65S touch-up (#14722)
* add Configurator data

* rename README.md to lowercase

API can't find this file unless the filename is lowercase (`readme.md`).

* readme touch-up

Correct typos and improve some grammar and Markdown.
2021-10-06 01:44:57 -07:00
James Young c33491d72b MelGeek Mach80: correct Configurator layout (#14716)
Adds a 0.5u gap between the top two rows.
2021-10-05 22:53:53 -07:00
remanifest 4782e038d9 Added semicolons to rules.mk to allow symlinks from /bin/sh to /bin/zsh to complete the filesize check without error. (#14718)
Co-authored-by: John Beard <jbeard@pipelinerx.com>
2021-10-06 12:58:40 +11:00
Drashna Jaelre 3b8c4979dc [Bug] Fix command feature if mousekey is enabled and using 3-speed setting (#14697) 2021-10-05 17:50:23 -07:00
Drashna Jaelre 22470f0302 [Keyboard] Add basic Keyhive Sofle support (#14296)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-10-05 17:49:39 -07:00
MechMerlin e8db309613 [Keymap] Some updates to mechmerlin userspace and keymaps (#14711) 2021-10-05 16:49:50 -07:00
James Young e762db44ba 0xc7/61key touch-up (#14712)
* correct Configurator layout data

* rename LAYOUT to LAYOUT_60_ansi

* correct info.json maintainer field

Use the maintainer's GitHub username.

* correct the compiling/flashing instructions

Keyboard value is relative to `qmk_firmware/keyboards/`.
2021-10-05 16:37:42 -07:00
James Young aabc0cc8ad Durgod DGK6X Galaxy: correct Configurator layout (#14714)
Top row had a y-value of 1, which placed it behind the number row when rendered.
2021-10-05 16:30:09 -07:00
Nick Brassel 4676a14596 More PR checklist updates (#14705)
* Wording, clarification.

* Apply suggestions from code review

Co-authored-by: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

Co-authored-by: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>
2021-10-06 06:46:36 +11:00
Nick Brassel 7a49e5d207 Add clarification for licensing. (#14704)
* Add clarification for licensing.

* Errr, v2.
2021-10-05 20:29:52 +11:00
Danny 46fe8ab4e2 [Keyboard] Update Iris default keymap (#14701) 2021-10-04 20:38:24 -07:00
Daniel Cormier 85ba507482 [Keyboard] Added DC MC 001 (#14661) 2021-10-04 18:35:48 -07:00
moyi4681 b441efbdf6 [Keyboard] add dztech duo_s keyboard (#14625)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-10-04 18:16:47 -07:00
Albert Y 27d9579fd5 Document examples on intercepting Mod-Tap (#14502)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Co-authored-by: filterpaper <filterpaper@localhost>
2021-10-04 16:21:02 -07:00
Zach White 20f81af98a Allow community layouts to be specified in info.json (#14682)
* move the community layout detection to python

* fixup tests
2021-10-04 09:26:19 -07:00
Danny f72b2ad720 [Keyboard] Add Iris Rev. 6 (#14683)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-03 22:35:00 -07:00
Drashna Jaelre 6279399425 [Keyboard] Fix Mechlovin's Olly/BB keyboard matrix file (#14680) 2021-10-03 22:17:46 +01:00
Drashna Jaelre 640869257f [Keyboard] Disable RGBLIGHT on mokey64 (#14681) 2021-10-03 22:17:23 +01:00
tiltowait 8782dc824d [Keyboard] Add anti-ghosting support to Model M Converter (#14049) 2021-10-03 12:02:51 -07:00
Christian Sandven 5ece2846b6 [Keyboard] Fix key routing for Keyprez Rhino ergo keys (#14589) 2021-10-03 12:01:15 -07:00
4pplet 0acedbe09f [Keyboard] Adding kbnordic nordic60 (#14555)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2021-10-02 08:17:54 -07:00
ai03 875bbd31dc [Keyboard] Add JP60 keyboard (#14219)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-02 08:06:37 -07:00
mechlovin 0eaefb2a6c [Keyboard] Add Olly BB PCB (#14545)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-02 08:00:05 -07:00
rhmokey 20a689e27c [Keyboard] Modify mokey64 (#14612)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-02 07:59:47 -07:00
john-ezra 79ad30a9d5 [Keymap] Updates to Personal Kyria Keymap (#14669)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-02 07:50:55 -07:00
Drashna Jaelre 54b8d6a891 [Keyboard] Convert ZSA's Moonlander keyboard to matrix lite (#14667) 2021-10-01 17:13:15 -07:00
negatv bed7625f93 Add FIRMWARE_FORMAT = hex for /keyboards/kinesis/kint36 and /keyboards/kinesis/kint41 (#14665)
* Specify hex as the default FIRMWARE_FORMAT which is copied to qmk_firmware root folder

* Specify hex as the default FIRMWARE_FORMAT which is copied to qmk_firmware root folder

Co-authored-by: sadkins <sadkins@iMac-Pro.local>
2021-10-02 08:32:53 +10:00
umi e54a57d32a [Docs] update Japanese translation of mod_tap.md (#13981)
* update mod_tap.md translation

* add id on config_options.md and update text based on comments
2021-10-01 17:24:53 +09:00
Purdea Andrei 52cb19713b Fix documentation for NO_HAPTIC_MOD and NO_HAPTIC_FN features. (#14180) 2021-10-01 07:24:19 +10:00
npspears 0be3cd3e2b Quark_LP- change MCU and RGB (#14650) 2021-09-30 15:50:18 +01:00
James Young 292b7b3835 Remove firmware size impact notes from <keyboard>/rules.mk (#14652) 2021-09-30 15:48:36 +01:00
Ryan 0b37e07f90 Remove redundant MIDI_ENABLE = no in keyboard-level rules.mk (#14649) 2021-09-30 19:17:20 +10:00
James Young a8e13f041e Mechlovin Hex4B: extend layout support (#14651)
* use XXX for KC_NO in hex4b.h

* add matrix diagram to hex4b.h

* rename LAYOUT to LAYOUT_all

* remove reference to KBFirmware JSON Parser

* info.json: add line breaks between rows

* rename LAYOUT_all to LAYOUT_split_bs

- LAYOUT alias for backward compatibility
- LAYOUT_all alias to signify support for every matrix position

* add LAYOUT_2u_bs

* add LAYOUT_tsangan_split_bs

* add LAYOUT_tsangan_2u_bs

* info.json: remove meta key
2021-09-30 01:20:46 -07:00
Ryan 36bc3c867e Remove redundant UNICODE_ENABLE = no in keyboard-level rules.mk (#14633) 2021-09-30 08:14:21 +10:00
James Young 8fccd82d4e Mechlovin Hannah60RGB touch-up (#14646)
* use XXX for KC_NO in rev1.h

* add matrix diagram to rev1.h

* remove reference to KBFirmware JSON Parser from rev1.h

* use XXX for KC_NO in rev2.h

* add matrix diagram to rev2.h

* add LAYOUT_60_ansi and LAYOUT_60_iso

* enable Community Layout support

* update info.json metadata

- specify keyboard revision in keyboard_name
- use GitHub username in maintainer field

* remove reference to KBFirmware JSON Parser from main rules.mk
2021-09-29 12:48:37 -07:00
Drashna Jaelre 02ab7b1888 [Core] Fix "6kro enable" and clarify naming (#14563)
* Fix USB_6KRO_ENABLE compilation errors

* Add info to docs

* Rename define to be more accurate

* Remove unused rule

* Refixe docs
2021-09-29 11:37:11 -07:00
Drashna Jaelre 1e54796f0c [Keymap] Update to Drashna Code (#14644) 2021-09-29 11:16:11 -07:00
npspears 929d959ef9 [Keyboard] add support for Quark_LP (#14552)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-29 09:55:58 -07:00
vattern 03df754551 [Keyboard] Update Grandiceps to Rev2 (#14618)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Co-authored-by: Thys de Wet <thys@vectorphoto.co.uk>
2021-09-29 09:55:34 -07:00
jonavin c89f74b929 [Keymap] Jonavin murphpad keymap update (#14637)
Co-authored-by: Jonavin <=>
2021-09-29 09:42:53 -07:00
Drashna Jaelre 0338481090 [Keyboard] Updates for Tractyl Manuform config (#14641) 2021-09-29 09:30:25 -07:00
Drashna Jaelre 363eb645fc [Keyboard] Fix end of file issue for Owlab suit80 (#14640) 2021-09-29 17:38:41 +10:00
Grayson Carr 046e3ce5c9 [Keymap] Keychron Q1 user keymap (#14636) 2021-09-28 19:45:29 -07:00
James Young 02b760c6b0 convert checkerboards/quark_squared:via rules.mk to Unix line endings (#14638) 2021-09-28 16:02:48 -07:00
James Young 732535c1bb Mechlovin Delphine: add LAYOUT_numpad_6x4 (#14635)
* add LAYOUT_numpad_6x4

* tidy-up info.json data

* use GitHub account name for maintainer field
* remove meta key

* add matrix diagram to delphine.h

* update Community Layout support
2021-09-28 14:49:35 -07:00
Ryan 873a1999bb Move "firmware size check skipped" note to message.mk (#14632) 2021-09-29 06:08:46 +10:00
jonavin 705cd433c2 [Keymap] fix NKRO - switch to get_mods() and refactor encoder action code (#14278)
Co-authored-by: Jonavin <=>
2021-09-28 12:24:12 -07:00
Greg Knapp 724ee24075 [Keyboard] Yampad VIA support (#14397)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-28 12:23:38 -07:00
owlab-git 4a2062cc01 [Keyboard] Add OwLab Suit80 (#14362)
* add suit80 files

* first add suit80 files

* modified suit80 files

* layout change

* modified again

* changed png url
2021-09-28 12:22:56 -07:00
Alexander Kagno bc818352a3 [Keymap] arkag userspace/keymap -- new macro and minor preonic keymap change (#14623)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-28 12:21:10 -07:00
Harshit Goel ac1d48cbf5 [Keyboard] Pteron36 (#13475)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Harshti Goel <harshitgoel@licious.com>
2021-09-28 12:00:34 -07:00
James Young adc7cc5981 Mechlovin Adelais: add support for full-length Right Shift (#14622)
* add layout variants with 2.75u Right Shift

* move layout alias to info.json

* match info.json labels to matrix positions

Edits the label keys in info.json to match the matrix position identifiers in adelais.h.

* info.json: add line breaks between keyboard rows

* info.json: use GitHub username in maintainer field
2021-09-28 09:38:34 -07:00
Dasky 02451fcc75 [Keyboard] Add dz60rgb_ansi v2_1 (#14614)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-27 22:26:30 -07:00
Sergi Meseguer 574b3d8a5a [Keyboard] z12 micropad by zigotica (#14583)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-27 22:10:10 -07:00
peepeetee 2742d0c4c1 [Keyboard] Add BM80 Keyboard (#12948)
* Initial compatibility with bm80

* move files to kprepublic directory, see #12159

* fix pin assignment

* Revert "fix pin assignment"

This reverts commit 5a53a74953a23bb5064c11d5d9e6daf007a54872.

* add testing setup (peepeetee keymap, will use for personal purposes later), fix LED assignment, add indicator LED, LED location, count, and flags are broken

* fixed flags( not sure, please check)

* fixed number of LEDs

* add comment about f11

* remove comment about f11, change capslock flag to be 1 rather than 1+8 as there is a standalone indicator LED

* readme.md

* add via keymap

* add info.json with help from noroadsleft's converter

* add suspended state implementation, I don't think it's working

* update to my testing setup

* restore erroneously included bm68rgb config

* Update keyboards/kprepublic/bm80/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* add reset instructions

* change reset instruction grammar

* remove not working sleep function, add comment for RGB flags

* add LED mapping comments

* change readme grammar

* replace rgb light paremeters with rgb matrix paremeters, enable framebuffer effects

* re-enable peepeetee/config.h, updating my disabled effect list

* updating my disabled effect list

* update LED struct documentation

* update readme with RGB matrix effect information

* Update keyboards/kprepublic/bm80/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* move files back to keyboard from keyboard/kprepublic, see 85b33d6 and qmk#12159

* Apply suggestions from code review

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* cleanup peepeetee keymap

* update peepeetee keymap; rebase on current master

* moved to /kprepublic, see #12159

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-27 22:00:47 -07:00
Ryan ae993dc068 Zinc: Clean up LTO rules (#14597) 2021-09-28 03:50:06 +10:00
Ryan e8b7cee9d3 SquishyTKL: Layouts cleanup (#14594) 2021-09-28 03:46:10 +10:00
Zach White fce9cb9338 Cleanup issues identified by lgtm (#14459)
* cleanup issues identified by lgtm

* fix the git_status check
2021-09-27 10:02:54 -07:00
peott-fr 5f38a98fa0 Adding SP Mini keymap. (#14593) 2021-09-27 14:41:48 +10:00
Drashna Jaelre 3823fdc9e0 [Keyboard] Fix Compile issues for Signum 3.0 (#14588)
* [Keyboard] Fix Compile issues for Signum 3.0

* quantuuum
2021-09-26 17:50:22 +01:00
Drashna Jaelre f07de1b309 [Keyboard] Fix double comment in config files (#14615) 2021-09-27 00:54:17 +10:00
James Young 03f4c53564 Unicomp Mini M handwired Configurator fix (#14609)
* apply human-friendly formatting

* correct info.json data
2021-09-26 03:10:40 -07:00
James Young 6f36eb469d Remove unused IS_COMMAND() instances and Magic Key definitions (#14610)
* Remove unused IS_COMMAND() instances from keyboard-level config.h, 0-9

* Remove unused IS_COMMAND() instances from keyboard-level config.h, A-B

* Remove unused IS_COMMAND() instances from keyboard-level config.h, C-D

* Remove unused IS_COMMAND() instances from keyboard-level config.h, E-G

* Remove unused IS_COMMAND() instances from keyboard-level config.h, handwired

* Remove unused IS_COMMAND() instances from keyboard-level config.h, H-M

* Remove unused IS_COMMAND() instances from keyboard-level config.h, N-R

* Remove unused IS_COMMAND() instances from keyboard-level config.h, S-Z

* Remove unused Magic Key definitions from keyboard-level config.h, 0-9

* Remove unused Magic Key definitions from keyboard-level config.h, A

* Remove unused Magic Key definitions from keyboard-level config.h, B

* Remove unused Magic Key definitions from keyboard-level config.h, C

* Remove unused Magic Key definitions from keyboard-level config.h, D-E

* Remove unused Magic Key definitions from keyboard-level config.h, F-H

* Remove unused Magic Key definitions from keyboard-level config.h, handwired

* Remove unused Magic Key definitions from keyboard-level config.h, I-K

* Remove unused Magic Key definitions from keyboard-level config.h, L-M

* Remove unused Magic Key definitions from keyboard-level config.h, N-R

* Remove unused Magic Key definitions from keyboard-level config.h, S-V

* Remove unused Magic Key definitions from keyboard-level config.h, W-Z

* Merge remote-tracking branch 'upstream/master' into clean/command_and_magic

* Remove remaining unused IS_COMMAND() instances from keyboard-level config.h
2021-09-26 02:57:20 -07:00
James Young 95733d1c16 Remove references to KBFirmware JSON Parser (#14608)
* remove refs: exclusive/e85/soldered

* remove refs: handwired/bigmac

* remove refs: handwired/boss566y/redragon_vara

* remove refs: handwired/marauder

* remove refs: id67

* remove refs: kprepublic/bm60rgb

* remove refs: playkbtw/helen80

* remove refs: sam/sg81m

* remove refs: sawnsprojects/satxri6key

* remove refs: yncognito/batpad
2021-09-26 00:01:11 -07:00
James Young 14f0a417c7 GG Keyboards Genesis: Layout Macro update and clean-up (#14606)
* Genesis Hotswap: rename LAYOUT to LAYOUT_tkl_ansi

* Genesis Hotswap: delete blank layers from default keymap

Results in a smaller compiled firmware size.

* Genesis Hotswap: tidy-up via keymap

Fixes the visual alignment of keycodes.

* Genesis Hotswap: specify Hotswap in info.json

* Genesis Hotswap: enable Community Layout support

* Genesis Hotswap: remove KBFirmware Parser references

* Genesis Hotswap: specify Hotswap in config.h

* Genesis Solder: correct keyboard layout

* Genesis Solder: rename LAYOUT to LAYOUT_all

I don't actually know with certainty that this *is* LAYOUT_all, but in the absence of more concrete information, I'm going with this.

* Genesis Solder: delete blank layers from default keymap

Results in a smaller compiled firmware size.

* Genesis Solder: tidy-up via keymap

Fixes the visual alignment of keycodes.

* Genesis Solder: specify Hotswap in info.json

* Genesis Solder: add LAYOUT_tkl_ansi

* Genesis Solder: enable Community Layout support

* Genesis Solder: remove KBFirmware Parser references

* Genesis Solder: specify Solder in config.h
2021-09-25 22:48:14 -07:00
James Young 532cfd56ca Exclusive E6 RGB Refactor (#14604) 2021-09-26 15:22:04 +10:00
James Young 8c76e1ec08 FLX Virgo: metadata clean-up (#14605)
* correct maintainer field in info.json

* remove KBFirmware Parser references
2021-09-25 21:53:57 -07:00
James Young 3296c26c98 Saka68 Solder Refactor (#14596)
* rename LAYOUT to LAYOUT_68_ansi

* tidy-up keymaps

Adjusts indenting for readability/aesthetics.

* add LAYOUT_68_iso macro

* enable Community Layout support

* add Split Backspace layout variants

* remove KBFirmware Parser references

* correct keyboard metadata
2021-09-25 12:25:43 -07:00
James Young 5c2d15573d Saka68 Hotswap Refactor (#14595)
* rename LAYOUT to LAYOUT_68_ansi

* tidy-up keymaps

Adjusts indenting for readability/aesthetics.

* remove default keymap readme

* add LAYOUT_68_iso macro

* enable Community Layout support

* remove KBFirmware Parser references

* correct keyboard metadata

* specify keyboard variant in info.json and config.h
* correct maintainer field in info.json
2021-09-25 11:03:00 -07:00
Bahrul Hidayat aee0b0097b [Keyboard] add keyboard dyz_TKL (#14535)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-25 09:49:58 -07:00
Bahrul Hidayat 29079e54f1 [Keyboard] add keyboard dyz40 (#14533)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-25 09:49:26 -07:00
Bahrul Hidayat 8b0b858db9 [Keyboard] add keyboard selka40 (#14560)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-25 09:48:47 -07:00
Albert Y c74bd72d4f [Keyboard] Fix pin spacing alignmnent (#14592)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-09-25 09:47:56 -07:00
Ryan 68c327f672 Remove keyboard-level COMBO_ENABLE rules (#14550) 2021-09-25 18:31:24 +10:00
Drashna Jaelre 3be47b3eaa [Keyboard] Fix default keymap for Potato65s (#14587) 2021-09-25 00:29:47 +01:00
James Young 216620ee76 tidy up Clawsome Boards info.json files (#14586)
* removes `meta` field
* changes `maintainer` field to use GitHub username
2021-09-25 00:29:08 +01:00
James Young 9e87b47a9c Aozora Hotswap info.json clean-up (#14585)
* clean up info.json

* correct maintainer field to use GitHub username
* remove `meta` key

* clean up readme.md

* correct key count in intro paragraph
2021-09-25 00:28:25 +01:00
Stan Gurenkov 4493a05b74 [Keyboard] refactor signum30 (#14527)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Stan Gurenkov <stan.gurenkov@docusign.com>
2021-09-24 10:05:29 -07:00
James Young 60b13d04cd Alf X2 Refactor (#14572) 2021-09-24 09:29:58 -07:00
James Young 076a332613 Swift65 Solder Refactor (#14579) 2021-09-24 09:29:46 -07:00
WiZ.GG 3778dd5727 [Keyboard] add 2 keys in jkb65 keymap (#14576) 2021-09-24 09:29:18 -07:00
Andrew Braini 863d9c35fe [Keyboard] Create the battleship gamepad keyboard. (#14551)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-24 09:27:29 -07:00
Aeonstrife 257bc473e5 [Keyboard] Add Potato65 Solderable PCB (#14047)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-24 09:13:53 -07:00
Nick Abe 768803ef72 [Keyboard] PLX info.json update (#14536)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-24 08:57:08 -07:00
Nick Abe 2d079c984f [Keyboard] Add Rotor Keyboard (#14407)
* rotor keyboard

* readme image

* info.json update

* Update readme.md

* Update keyboards/rotor/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/rotor/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-24 08:56:37 -07:00
clickclackwho 4f37084677 [Docs] Broken FAQ hyperlink (#14578) 2021-09-24 08:43:05 -07:00
Albert Engelbrecht 77bb907fee [Keyboard] Added A. Dux keyboard configurations (#14320)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-24 00:30:52 -07:00
phrygiandesign c6f92e37aa [Keyboard] Add phrygian design ph100 (#13738)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-24 00:25:33 -07:00
ryanbughuang c242693ec7 [Keyboard] Add sam/sg81m layout (#13432)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-09-23 23:41:05 -07:00
Albert Y e36c2cbf90 [Keyboard] Disable console on Sofle for size concerns (#14577)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-09-23 23:32:40 -07:00
umi 30140f48d0 [Docs] update Japanese translation of pr_checklist.md (#13693)
* update pr_checklist.md translation

* update file based on comments

* add id on feature_led_indicators.md and update text based on comments

* update file based on comments

* update file based on comment
2021-09-24 14:51:34 +09:00
Sets3n f4e42bde4a kk980 - Fix Configurator rendering (#14556)
* add kk980

* fix

* fix config.h

* Modified readme.md

* fix

* Modified format.

* Modified image.

* Modified rules.mk

* Modified rules.mk + #

* fix info.json: keys dislocation
2021-09-23 20:16:20 +01:00
Drashna Jaelre a68c4d8b81 [Keyboard] Update default keymaps for OLKB boards (#14565) 2021-09-23 20:08:23 +01:00
James Young 29f199f456 AMJ96 Refactor (#14571)
* clean up amj96.h

- use #pragma once include guard
- remove extra comments
- update matrix position alignment (easier readability)

* info.json: apply human-friendly formatting

* rename LAYOUT to LAYOUT_all

* clean up rules.mk

Align to QMK's AVR template.

* clean up default keymap

- use four-space indent
- add RESET keycode (Fn+R)
- remove unnecessary functions

* clean up config.h

- use #pragma once include guard
- move lighting settings to the middle of the file (QMK template conformance)
- remove Magic and MIDI configuration blocks

* update readme.md file

- update keyboard info list
- add flashing instructions
- update Docs links
- remove trailing spaces

* remove "empty" config.h and readme.md from default keymap
2021-09-23 11:01:49 -07:00
James Young 66857b919b Wuque Mammoth20x Layout Macro Refactor (#14568)
* mammoth20x: edit size of RightEncode key in Configurator

* physically arrange layout macro

Arranges the keycodes to resemble the assembled board.

* rename LAYOUT_default to LAYOUT

Includes "layout_aliases" tree in info.json for backwards compatibility.

* rules.mk touch-up

* convert tabs to spaces
* add line break before ENCODER_ENABLE (not included in QMK's template)

* readme.md touch-up

* remove zero-width space characters
* markdown fix for info paragraph
* update link text
2021-09-23 01:31:11 -07:00
James Young 62ef4a9c8a Meira Refactor (#14566)
* clean up keyboard header files

* use #pragma once include guard
* convert tabs to spaces
* remove redundant #include statements
* update revision references to main header (`../meira.h` -> `meira.h`)

* refactor default keymap

* use LAYOUT as layout macro reference
* use enum statement for layer indexes; make layers contiguous
* use four-space indent
* update keycode grid alignment

* update layout macro aliases

* move layout macro aliases to info.json
  * alias KEYMAP to LAYOUT_ortho_4x12 so the user keymaps don't have to be edited

* touch up meira.h

There's no Planck MIT layout reference here.

* add copyright headers

* workaround patch for grahampheath keymap

The `matrix_init_kb()` function in `meira.c` calls `backlight_set()`, but the grahampheath keymap disables Backlight to make space for Audio, causing the firmware to fail to compile.

This commit wraps the `backlight_set()` call in an ifdef statement, so the call is excluded if Backlight is disabled.

* clean up rules.mk inline comments

* re-order rules.mk settings

* clean up readme.md

* correct link to keyboard image
* change metadata section to unordered list
* spelling corrections
* update make instructions and Docs links
2021-09-23 00:49:02 -07:00
umi 0fc15f4d30 [Docs] update Japanese translation of feature_backlight.md (#14403)
* update feature_backlight.md translation

* update file based on comments
2021-09-23 13:02:32 +09:00
umi 7f0c397c72 [Docs] update Japanese translation of feature_advanced_keycodes.md (#14309)
* update feature_advanced_keycodes.md translation

* update file based on comments
2021-09-23 13:01:42 +09:00
umi 5347577346 [Docs] update Japanese translation of isp_flashing_guide.md (#13700)
* update isp_flashing_guide.md translation

* update isp_flashing_guide.md translation

* correct url

* trim remaining merge identifier
2021-09-23 12:58:56 +09:00
umi 7bfc6083b7 [Docs] update Japanese translation of feature_leader_key.md (#13669)
* update feature_leader_key.md translation

* update file based on comments

* update text based on comments
2021-09-23 12:55:19 +09:00
umi 618a28c6ae [Docs] update Japanese translation of one_shot_keys.md (#13656)
* update one_shot_keys.md translation

* update one_shot_keys.md translation

* correct paramter for function

* add change of #13754
2021-09-23 12:52:53 +09:00
drhigsby 4062860c05 [Keyboard] Bkf (#14534)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-22 18:02:49 -07:00
James Young 1aaef6c988 Remove BLUETOOTH_ENABLE from keyboard-level rules.mk (2021-09-22) (#14567)
* Remove BLUETOOTH_ENABLE from keyboard-level rules.mk (2021-09-22)

* update keyboards/handwired/slash/rules.mk per fauxpark
2021-09-22 12:33:41 -07:00
Drashna Jaelre ce5bb612a9 [Keyboard] Fix default keymap for Draytronics Elise V2 keyboard (#14562) 2021-09-23 02:53:03 +10:00
Drashna Jaelre 57d4e80845 [Keyboard] Disable console on Smallkeyboard (#14561) 2021-09-23 02:47:56 +10:00
Blake 01b0eeac1e [Keyboard] Version 2 of Draytronics Elise Keyboard + ISO Keymap Change (#14253)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 23:49:46 -07:00
Sets3n c78a057ec4 [Keyboard] add kk980 keyboard (#14436) 2021-09-21 23:38:07 -07:00
Drashna Jaelre 5ddbabfa2a [Keyboard] Fix jkb65 compile issues (#14554) 2021-09-21 22:51:54 -07:00
Drashna Jaelre ea5735b074 [Keyboard] Fix font file for Ein 60 Keyboard (#14553) 2021-09-21 22:39:19 -07:00
Brandon Claveria 9c564b6a5f [Keyboard] Add Dango40 (#14437)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Swiftrax <swiftrax@gmail.com>
Co-authored-by: Swiftrax <swiftrax@github.com>
2021-09-21 21:25:59 -07:00
Caleb Lightfoot c8a3353003 [Keyboard] Add Free Willy Keyboard (#14394)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 21:24:44 -07:00
Vinam Arora 02556b3d8a [Keyboard] 0-Sixty: Splits kb config into base and underglow (#14384)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-21 21:24:14 -07:00
kopibeng 4e0125c22c [Keyboard] Add support for XT8x (#14440)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-21 21:23:51 -07:00
milostatsea f37af05f2a [Keyboard] fixed one of the unicode drawings of the layout in dz60.h (#14482) 2021-09-21 21:22:04 -07:00
WiZ.GG 88f6776216 [Keyboard] Add JadooKB JKB65 RGB (#14525)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-21 21:21:44 -07:00
Pylon e0022daf11 Changed VENDOR_ID and PRODUCT_ID of Boston keyboard (#14528) 2021-09-21 21:21:23 -07:00
precondition 88283cdab8 [Keyboard] Add commented out OLED/encoder code in default Kyria (#14539)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-21 21:19:50 -07:00
James Smith 43e88f34aa [Keyboard] add ein_60 (#14398)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 21:18:25 -07:00
Drashna Jaelre 208ea0e18c [Keyboard] smallkeyboard fix of rgb matrix config (#14548) 2021-09-21 21:16:19 -07:00
Salicylic-acid3 033a318bdf [Keyboard] Addition of VIA keymap and a few fixes for naked48 (#14177)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 17:12:57 -07:00
Dasky 45f88af4a1 [Docs] update suspend_*_user examples (#14542) 2021-09-21 16:40:19 -07:00
zhouqiong19840119 bb754069e9 [Keyboard] smallkeyboard support (#12817)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-21 15:52:39 -07:00
Laneware 32a96be093 [Keyboard] Macro-1 keyboard by Laneware Peripherals (#14472) 2021-09-21 15:06:56 -07:00
bt66tech 922fbea558 [Keyboard] add via keymap support for bt66tech/bt66tech60 (#13818)
Co-authored-by: root <crkndevops@gmail.com>
2021-09-21 14:45:26 -07:00
qpockets be273bd003 [Keyboard] add wanten keyboard to QMK (#14410)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 14:16:16 -07:00
kopibeng bd0040068e [Keyboard] Add support for MNK88 (#14435)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 14:15:09 -07:00
3araht cebc5688a0 [Keyboard] add bandominedoni keyboard (#13116) 2021-09-21 14:13:36 -07:00
qpockets c8a5869114 [Keyboard] add synapse pcb (#14428)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 14:12:55 -07:00
Purdea Andrei 376968ade4 [Keyboard] Add 5 boards by the OverNumpad Controller (#14382)
* Add initial implementation of 5 keyboards supported by the OverNumpad Controller.

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Apply changes similar to other code review suggestions.

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Apply changes similar to other code review suggestions.

* overnumpad controller info.jsons: update maintainer and url.

* classic_ultracl_pre_2013: added support for the default 'fullsize_ansi' layout

* classic_ultracl_pre_2013: moved the order of the iso enter key in the layout macro to be considered to be on the bottom row, like in the default fullsize_iso layout. Rename the iso layout to fullsize_iso, and enable it in rules.mk

* Removed QMKBEST and QMKURL

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* Deleting empty files

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-21 14:09:01 -07:00
Phil Pirozhkov 8d32ddd8e9 [Keyboard] gBoards GergoPlex (#13027)
* Moved gergoplex to seperate PR

* vendor + cformat

* Update keyboards/gboards/k/gergoplex/matrix.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* lifiting keyboards up

* Update readme.md

* Update keyboards/gboards/gergoplex/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* remove English dicts

* cformatted

* Prettify keymap

* Remove via keymaps

Via doesn't support chords/combos, and this makes the keymap on such a
small keyboard quite uncomfortable and incomplete.

* Address QMK pull code review notes

* Cleanup (tabs, excessive comments)

* Fix keymap typos

* Use enum to define layers

* Multiple changes

 - got rid of LAYOUT_kc in favour of LAYOUT_split_3x5_3
 - fixed matrix custom C code to build with updated external dependencies (gcc)
 - fixed used combo docs

    keyboards/gboards/gergoplex/matrix.c:189:9: error: implicit declaration of function 'phex' [-Werror=implicit-function-declaration]
             phex(row);
             ^~~~
    keyboards/gboards/gergoplex/matrix.c:191:9: error: implicit declaration of function 'pbin_reverse16'; did you mean 'print_bin_reverse16'? [-Werror=implicit-function-declaration]
             pbin_reverse16(matrix_get_row(row));

* Remove apparently redundant macros

* Replace direct pin control with IO functions

* config mouse enable and combo delay fix

The default delay is 200:

    #define COMBO_TERM 200
        how long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.

    tmk_core/common/action_tapping.h|22| 13:#    define TAPPING_TERM 200

* Remove redundant defines

* Unambiguously refer to the Special layer

* Fix formatting

* gboards/gergoplex set IGNORE_MOD_TAP_INTERRUPT

This solves my issue was with KC_CTL_A working correctly and it was set in @germ's repo
https://github.com/germ/qmk_firmware/blob/39c86e080dc04b68ee08387dcb5144c88cb44855/keyboards/gboards/k/gergoplex/config.h#L49

 https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#ignore-mod-tap-interrupt

* Name change

See commit 581368596e

* Wording change

* Update keyboards/gboards/gergoplex/keymaps/default/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Add copyright headers

* Fix debounce type

 | avr-gcc: error: .build/obj_gboards_gergoplex_default/quantum/debounce/eager_pr.o: No such file or directory

* Implement colemak-dhm keymap

Co-authored-by: Germ <jeremythegeek@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Brian Tannous <Brian@BrianTannous.com>
2021-09-21 14:07:55 -07:00
Ryan d84794b352 Remove keyboard-level TAP_DANCE_ENABLE rules (#14538) 2021-09-21 17:54:36 +01:00
Ryan be3259b793 Remove outputselect.h include from BIOI code (#14543) 2021-09-21 17:21:10 +01:00
Dasky 19e33b685f [Docs] Modify encoder_update_user example to return false (#14541) 2021-09-21 07:52:57 -07:00
Ryan 6b74e48f81 Remove audio pin references in rules.mk (#14532) 2021-09-21 20:04:03 +10:00
Ryan 574b6734af Remove backlight pin references in rules.mk (#14513) 2021-09-20 16:51:00 +10:00
Ben Lipson e25d37454c [Keymap] blipson corne keymap (#14469)
revert lib/chibios

revert lib/chibios

Finish up

remove files

Update copyrights

remove copyrights

readd copyrights

add stop macro

PR suggestions

PR suggestions

readme lowercase

fix rotate for oled

Co-authored-by: Z003YW4 <ben.lipson@target.com>
2021-09-19 13:23:40 -07:00
XScorpion2 4dbeeaa0d6 Doc Fixes & Custom Matrix Fix (#14526) 2021-09-20 06:18:32 +10:00
im a can what do you think lmao? 121ca7eca9 [Keyboard] Add LeFishe Keyboard (#14498)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-19 11:54:40 -07:00
Jakob Weickmann a068b14686 [Keymap] Added my own keymap for MIT Planck (#14481)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-19 11:53:47 -07:00
David Xia ddb6821b97 [Docs] fix wrong directory for RGB Matrix animations (#14494) 2021-09-19 11:53:22 -07:00
James Young 53c2f67748 cKeys theDora Refactor (#14495) 2021-09-19 11:52:54 -07:00
peott-fr 4e7801d4fb [Keymap] Adding my Mun keymap. (#14501) 2021-09-19 11:52:37 -07:00
Konstantin Đorđević 4348e2ffc1 [Keymap] Updates to existing keymaps and userspace (#14503)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-19 11:47:40 -07:00
Pylon e83fb69ae8 [Keyboard] Enabled Mousekeys by default on Boston (#14507) 2021-09-19 11:47:13 -07:00
Dasky 5dbde91bdf [Keyboard] Change printf to dprintf (#14510) 2021-09-19 11:45:11 -07:00
Jack Humbert fa5d21a58e [Keyboard] Enables I2C for OLKB rev*_drop boards (#14514)
Co-authored-by: daskygit <32983009+daskygit@users.noreply.github.com>
2021-09-19 11:43:37 -07:00
XScorpion2 0e34efd9a2 [Keyboard] Quick fixes for the Mun to unblock customers (#14505) 2021-09-19 11:31:17 -07:00
Drashna Jaelre d9ca201f79 [Keyboard] Fix Compiler issues for quick17 (#14500) 2021-09-19 07:01:02 -07:00
Drashna Jaelre ef5c6ea096 [Keyboard] Use old custom matrix for Drop Planck+Preonic (#14488)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jack Humbert <jack.humb@gmail.com>
2021-09-18 20:10:32 -07:00
Ramya Challa f61f79b7cd [Keyboard] Add Gentleman65 (#12971)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-18 12:47:26 -07:00
MakotoKurauchi c2f3c418f3 [Keyboard] Add new keyboard quick17 (#13703)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
2021-09-18 12:28:41 -07:00
kaylanm e3e58aae6a [Keyboard] Add superuser keyboard (#13840)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-18 12:27:49 -07:00
Bahrul Hidayat 23c3b9decb [Keyboard] Add dyz60 (#13864)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-18 12:26:46 -07:00
Elliot Powell 4e7133e262 [Keyboard] Add support for Coarse60 (#14416)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-18 11:39:58 -07:00
Lui Wolff 2c4660e40d [Keymap] Added Brazilian keymap for BM40RGB (#14431) 2021-09-18 09:06:46 -07:00
Drashna Jaelre c681c1a6a8 [Keyboard] Fix dosa40rgb compilation issues (#14491) 2021-09-18 00:53:16 -07:00
Jordan Duabe d51bb76ec9 [Keymap] Add 'j4ckofalltrades' keymap for sofle/rev1 (#14446) 2021-09-17 23:52:53 -07:00
Dao Tak Isaac 09b66c06d4 [Keyboard] Add Dosa40RGB + dtisaac01 (#14476) 2021-09-17 23:52:18 -07:00
john-ezra 228c7b095b [Keymap] Major Updates to Personal Kyria Keymap (#14485)
* added john ezra keymap with updates

* changed tapping term
2021-09-17 23:51:09 -07:00
Takeshi ISHII f93597d66b fix link error for helix/rev3_5rows:five_rows (#14466)
This is a tentative quick fix.
I was adding the same functions for both #14426 and #14427 and they were in conflict.
2021-09-18 11:51:04 +09:00
James Young 7c09b2667b Nix Studio OXALYS80 Refactor (#14473)
* update grid alignment of keycodes

* update key assignments on via keymap

A seemingly-misplaced key assignment on Layers 1 through 3 of the via keymap led to keys being off by one in comparison to the default keymap.

* switch Backslash and Backspace on via keymap base layer

Matches the via keymap's key mapping to that of the default keymap.

* use QMK 3-character notation in oxalys80.h

* add matrix diagram; remove Planck reference

* add LAYOUT_tkl_ansi and LAYOUT_tkl_ansi_wkl layout macros

* add LAYOUT_tkl_ansi_tsangan macro

* add ISO layouts

Add LAYOUT_tkl_iso, LAYOUT_tkl_iso_tsangan, and LAYOUT_tkl_iso_wkl macros.

* enable Community Layouts support

* tidy up rules.mk

* readme tidy-up
2021-09-17 13:48:14 -07:00
Drashna Jaelre 0c1341daa8 [Keyboard] Move Planck EZ off 'Proton C' board (#14479) 2021-09-17 13:01:06 -07:00
Drashna Jaelre 40578621a7 [Keyboard] Move Moonlander off 'Proton C' board (#14478) 2021-09-17 13:00:42 -07:00
X-Bows Tech c9b91443e1 Update rules.mk for xbows keyboard (#14477)
* Update rules.mk

* Update rules.mk

* Update rules.mk
2021-09-17 17:48:11 +01:00
Matt 3496513865 [Keymap] Adding personal keymap (#14326)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-16 21:38:11 -07:00
Andy Yong b1605f2ad9 [Keyboard] Add Sauce Mild Keyboard (#14287)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-16 20:19:58 -07:00
r-pufky 87665f404b [Keymap] Add gaming toggle layer & layer colors to r-pufky keymap. (#14251) 2021-09-16 20:15:01 -07:00
Álvaro A. Volpato c6b87be8c7 Mode 65S: Tap code and extra keys for media keys (#14471) 2021-09-16 21:42:26 +01:00
Takeshi ISHII 85a0c494ff [Keymap] Update Helix:five_rows OLED code (#14427)
* Stop using snprintf() in keymaps/five_rows/oled_display.c.

The binary size becomes 1350 bytes smaller.

make HELIX=verbose,core-oled helix/rev2/sc:five_rows
(104 bytes over) -> (95%, 1256 bytes free)

make helix/rev3_5rows:five_rows
(528 bytes over) -> (97%, 830 bytes free)

* add matrix scan rate display to OLED for keymaps/five_rows

* add matrix_output_unselect_delay.c to helix keymaps/five_rows

* add GPLv2 header

* apply review comment
2021-09-16 18:47:47 +09:00
Takeshi ISHII 13b93c212d [Keyboard] Increase the way to add oled code for helix/rev3. (#14426)
* move rev3_Xrows/oled_display.c to rev3_Xrows/keymaps/default/oled_display.c

* add dummy rev3_Xrows/oled_display.c

* Add default minimum oled_task_user() to helix/rev3_Xrows/rev3_Xrows.c

* remove unnecessary comment in rev3_Xrows/keymaps/default/oled_display.c

* copy rev3_Xrows/keymaps/default/oled_display.c to rev3_Xrows/keymaps/via/oled_display.c
2021-09-16 18:46:51 +09:00
Jos Boersema d140e41c93 Adds optional hebrew layout (Unicode) (#14156) 2021-09-15 22:27:44 -07:00
Vino Rodrigues b5cc2bdc34 [Keyboard] Add the Idobao ID96 keyboard (#14371)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-15 20:28:40 -07:00
Felix Jen ae821ce4b7 [Keyboard] Add FJLabs TF60 Variants and TF65 Variant (#14392)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-15 19:25:30 -07:00
Felix Jen 40c58b1734 [Keyboard] Add Absolute Designs AD65 Keyboard (#14391)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-15 19:25:03 -07:00
yulei 303e063b71 [Keyboard] add Matrix Me (#14331)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-15 10:20:20 -07:00
Felix Jen 4b7503097c [Keyboard] Replaced Maker Keyboards & FJLabs Legacy Code (#14393) 2021-09-15 10:18:47 -07:00
Albert Y 0097886db6 [Keyboard] Add NO_LED positions to match key matrix. (#14417)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-09-15 10:16:32 -07:00
IFo Hancroft 9503d8bd03 [Keymap] A slight improvement to my own ErgoDox keymap (#14425) 2021-09-15 10:15:42 -07:00
peott-fr 0f3343aa93 [Keymap] Trying again with Prime-e update! (#14429) 2021-09-15 10:14:57 -07:00
X-Bows Tech 6930eed964 [Keyboard] Update lighting effects for xbows keyboard (#14432) 2021-09-15 10:14:05 -07:00
Dasky 12a8e59e9c [Docs] add sync options heading, update led indicators (#14441)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-15 10:11:25 -07:00
Drashna Jaelre 169d5bd21d [Bug] Fix IS31fl3741 driver to accept 1 or 2 addresses (#14451)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-09-15 10:07:08 -07:00
Drashna Jaelre 7e36a81383 [Keyboard] Fix Boop65 rgb compile issues (#14444) 2021-09-15 01:31:25 -07:00
Dan Nixon a2d43ca024 [Keyboard] Add Aya keyboard (#14378)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-14 23:56:12 -07:00
moyi4681 c2f2f9bfd3 [Keyboard] add kbd75 hotswap keyboard (#14283)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-14 23:00:48 -07:00
moyi4681 07a4e3b176 [Keyboard] add boop65 rgb keyboard (#14166)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-14 22:20:34 -07:00
Wolf Van Herreweghe 344a73fddd [Keyboard] Add KeyBee65 (#14163)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2021-09-14 22:20:07 -07:00
bomb 3435289052 [Keyboard] Add Mach80 for Melgeek (#14076)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-14 22:09:49 -07:00
jmcwilliams403 fcebd17267 [Keyboard] added 64_ansi_split_bs layout (#13776) 2021-09-14 21:44:41 -07:00
ぺらねこ 830fb5fd05 [Keyboard] Update peranekofactory/tone/rev2/rev2.h (#13610)
I changed the description that was mistakenly described as the same wiring as Rev1 to the correct description.
2021-09-14 21:21:31 -07:00
vsrivastava 657323a206 [Docs] fixed incorrect amount of steps for oled usage (#13519)
changed line 21 from saying "three steps" to "two steps" as there are only two steps

Co-authored-by: feynmantf <46390109+feynmantf@users.noreply.github.com>
2021-09-14 21:12:37 -07:00
drhigsby 00c60c9410 [Keyboard] Dubba175 Default Keymap Update (#13486)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-14 20:55:09 -07:00
Carlos Martins 0dfc1db74a [Keyboard] VIA support with top facing LEDs and underglow (#12814)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-14 20:38:13 -07:00
Álvaro A. Volpato eee553337a Add initial support for M65S (#14027)
* Add initial support for M65S

* Remove LTO_ENABLE from rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Removed defs in rules.mk, remove EEPROM debug code in m65s.c

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-14 07:01:23 +10:00
stanrc85 ca626f59a7 [Keymap] Userspace updates (#14418) 2021-09-13 13:15:10 -07:00
Drashna Jaelre 2b956e6eb9 [Keyboard] fix mokey63 keymaps (#14424) 2021-09-13 19:30:37 +01:00
Drashna Jaelre ab34ecb669 Apply TAP_CODE_DELAY to Tap Dance key sequences (#14412)
* Add  support to tap dances

* Move default tap code defines to header file
2021-09-13 00:48:11 +01:00
umi 10362777a5 update compatible_microcontrollers.md translation (#14401) 2021-09-12 16:08:22 +09:00
Xelus22 5ae2ae8a36 [Bug] Keymap Fixes - lyra and reviung39 (#14400) 2021-09-11 23:21:56 -07:00
Drashna Jaelre f6a67c10bd [Keyboard] Fix Redox Media compilation errors (#14345)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-11 23:21:28 -07:00
Ryan 5af1799735 Remove BLUETOOTH_ENABLE from keyboard-level rules.mk (#14379) 2021-09-12 15:27:29 +10:00
Ryan 4791cfae1a Remove width, height and key_count from info.json (#14274) 2021-09-12 14:04:56 +10:00
X-Bows Tech f1084712d7 [Keyboard] Update lighting effects for xbows ranger keyboard (#14318) 2021-09-11 14:37:43 -07:00
Ananya Kirti 85b052bdd4 [Keyboard] add support for Bobpad (#13989)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-11 14:36:58 -07:00
John Mueller 22dd68520b [Keyboard] Add 3keyecosystem and 2key2 keyboard (#14023)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-11 07:33:48 -07:00
alittlepeace 99d465bee0 [keyboard] Add hotswap YMDK Wings (#14176)
* Add files via upload

* Update keyboards/ymdk/wingshs/readme.md

Co-authored-by: Joel Challis <git@zvecr.com>

* Delete wingshs.json

* Update keyboards/ymdk/wingshs/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/ymdk/wingshs/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/ymdk/wingshs/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-11 07:33:13 -07:00
john-ezra 5eb500a877 [Keymap] Add john-ezra Kyria Keymap (#14338)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-11 07:31:24 -07:00
Seth 35bff470f7 [Keyboard] Update rocketboard_16 with *most* of its final features (#12537) 2021-09-11 00:32:29 -07:00
rhmokey 5f94191075 [Keyboard] Add mokey63 (#14357)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-10 23:24:37 -07:00
Sebastian Laube 9630a7bde2 [Keyboard] added KPs BM43 RGB board (#13888)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-10 23:01:14 -07:00
AnthonyNguyen168 047291728d [Keyboard] New PCB Canary60RGB from CanaryTeam (#14321)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-10 22:49:45 -07:00
yfuku 46f15cd1a5 [Keyboard] owl8 bugfix (#14020) 2021-09-10 21:59:28 -07:00
AKiwi92 d0b1d9f548 [Keyboard] KiwiKeebs Macro V2 (QMK/VIA) and update to V1 (#13499)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ash <ash@splitpixel.co.uk>
2021-09-10 21:20:43 -07:00
rarick 6213989c32 [Keymap] Add keymap for crkbd/rarick (#13240)
* Added new keymap for crkbd/rarick

* Delete flash.sh

Deleted rarick crkbd flashing script, as it will not be used by most users.

* Applied feedback, and fixed build error caused by builder updates

* Update keyboards/crkbd/keymaps/rarick/config.h

Removed USE_MATRIX_I2C, no longer used.

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-10 20:52:17 -07:00
Zac Moulton d7747a2d70 [Keymap] moults31 userspace and keymaps (#12025) 2021-09-10 18:56:50 -07:00
Xelus22 759d1927f0 [Keyboard] Add RS60 (#14073)
* initial rs60

* update

* remove

* Include rs60.h

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* List form readme.

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* change layout name

Co-authored-by: Joel Challis <git@zvecr.com>

* add layout

Co-authored-by: Joel Challis <git@zvecr.com>

* add license

Co-authored-by: Joel Challis <git@zvecr.com>

* 2021 update

Co-authored-by: Joel Challis <git@zvecr.com>

* add license

Co-authored-by: Joel Challis <git@zvecr.com>

* sigprof suggested changes

* Remove redundant define

Co-authored-by: Ryan <fauxpark@gmail.com>

* Fixup readme

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboards/xelus/rs60/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-09-10 20:14:39 +01:00
Ryan 7277f1febe Remove BLUETOOTH_ENABLE from defaultish keymaps (#14375) 2021-09-10 14:11:17 +01:00
Ryan d5cb7de5e4 Change USBasp and bootloadHID bootloaders to lowercase (#14354) 2021-09-10 17:17:54 +10:00
Ryan 7eea780a7d Remove bootloader listings from rules.mk (#14330) 2021-09-10 13:35:46 +10:00
Ryan 2cb9219a3e Remove commented out BLUETOOTH_ENABLE rules (#14361) 2021-09-10 13:32:22 +10:00
Joel Challis 7f80076d04 Align rgb/led matrix docs with current behaviour (#14367) 2021-09-10 03:57:36 +01:00
Uy Bui 2249963687 [Keyboard] Add custom pcb for Polaris (#14347)
* [Keyboard] pcb for Polaris

* [Keyboard] pcb for Polaris: update  layout

* Update keyboards/wekey/polaris/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-09 10:02:45 -07:00
Ryan d6dd2e0d51 Fix CRLF in lyra/rev1 (#14360) 2021-09-09 16:50:52 +10:00
Malevolti 4c88f76be8 [Keyboard] add lyra (#13977)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-08 23:34:32 -07:00
mechlovin 82ee9bd475 [Keyboard] Add Olly JF PCB (#14056)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-08 22:23:26 -07:00
Drashna Jaelre 6d43a5daf4 Backport F_CPU/F_USB hack from system76 (#14286)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-08 20:19:06 -07:00
Felix Jen cb4006c0b4 [Keymap] Fix Maker Keyboards Alexa Keymap (#14355) 2021-09-08 19:44:52 -07:00
Ethan Yates 891ddd9a30 [Keyboard] Add 61Key (#14259)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-08 19:14:03 -07:00
JayceFayne f3bef84dac ST7565_TIMEOUT 0 and ST7565_DISABLE_TIMEOUT should behave the same (#14315) 2021-09-08 18:34:49 -07:00
JayceFayne da81e5c7cd OLED TIMEOUT 0 and OLED_DISABLE_TIMEOUT should behave the same (#14302) 2021-09-08 18:34:34 -07:00
Drashna Jaelre 853e56d080 [Keyboard] Minor tweaks to Work Board layout (#14351) 2021-09-08 18:10:43 -07:00
Ryan 9e77cdf4e6 Bugfix for Joystick and JSON schema (#14295) 2021-09-09 10:27:58 +10:00
rhmokey 3f2a030de6 [Keyboard] Add new Mokey keyboard (#14329)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-08 16:57:43 -07:00
Gastón Jorquera d510f6afa9 [Keymap] Add Gaston's Lily58 custom keymap (#14334)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Gaston Jorquera <gjorquera@gmail.com>
2021-09-08 16:55:12 -07:00
Drashna Jaelre 4294aa0f1e [Keyboard] Tractyl Manuform - configuration updates (#14314)
* [Keyboard] Tractyl Manuform - configuration updates

* Update readmes

* Add more details

* Fix issues with encoder pins

* Additional fixes for pin config

* Fix up some comments
2021-09-08 16:52:43 -07:00
Keenan Brock 8f8411a98a [Keyboard] Add VIA keymap for the reviung39 (#14234) 2021-09-08 16:02:50 -07:00
Joel Challis 2e0659f7fd Fixes for recent i2c migrations (#14352) 2021-09-08 15:44:18 -07:00
jackytrabbit 9c175f1801 [Keyboard] Update VIA support for lazydesigners/the40 (#14240)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-09-08 00:34:36 -07:00
Gabriel Bustamante 541e101291 [Keymap] New keymap for bm40 (#14182) 2021-09-07 23:53:33 -07:00
Rifaa Subekti 3ef01a3482 [Keyboard] add wang ergo (#14245)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-07 21:07:00 -07:00
James Young 1ebaec96e7 Sneakbox Ava tidy-up (#14298) 2021-09-07 20:23:45 -07:00
IFo Hancroft 267ffb9914 [Keymap] Adding IFo Hancroft's ErgoDox EZ Keymap (#14342) 2021-09-07 20:01:58 -07:00
Drashna Jaelre 0b8d6df390 [Keyboard] Fix issues with 3w6 rev2 matrix (#14346) 2021-09-08 02:53:55 +01:00
Joel Challis 60c5bd7b5e handwired/dactyl - Refactor use of legacy i2c implementation (#14344) 2021-09-07 18:23:11 -07:00
Joel Challis 04c0704b28 3w6 - Refactor use of AVR only I2C functions (#14339)
* Refactor use of legacy i2c functions

* Align rev2

* Review fixes
2021-09-07 16:35:13 +01:00
Joel Challis e7a5c006d9 Refactor use of legacy i2c implementation (#14341) 2021-09-07 16:34:59 +01:00
Joel Challis 2d6635214a ergodone - Refactor use of legacy i2c implementation (#14340)
* Refactor use of legacy i2c implementation

* copy-paste error
2021-09-07 16:33:29 +01:00
shiftux 1dbe4e7dd0 [Keyboard] Redox media (#13084)
* adding a new revision 'media' to the redox keyboard

* readme update

* encoder fix

* video link

* drashna change requests

* removing SPLIT_USB_TIMEOUT

* intermediate rename

* lowercase

* drashna comments

* include if defined KEYBOARD_redox_media

* lowercase readme, tmp step

* lowercase readme

* drashna changes

* more drashna comments

* readme update

* readme update

* fauxpark and drashna comments

* fauxpark comments

* Update keyboards/redox/media/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-06 12:44:39 -07:00
Monksoffunk 85a14ac25b [Keyboard] Zinc: fix RGBLED_NUM bug (#13287) 2021-09-06 06:49:09 -07:00
Joel Challis 1a494da288 Fix eeprom for Durgod boards (#14324) 2021-09-05 23:56:10 +01:00
Drashna Jaelre 1e1be4c229 [Bug] Fix compile issues for boards with custom matrix (#14323) 2021-09-05 23:35:42 +01:00
Joel Challis 8d6d8cfadf Tidy up defines within STM EEPROM emulation (#14275)
* Tidy up defines within stm eeprom emulation

* Fix tests

* Resolve todo

* Still use page notion in clear

* Remove more f4 refs
2021-09-05 21:36:43 +01:00
Ryan fe6d6cf76d Remove empty override functions (#14312)
* Remove empty override functions, 0-9

* Remove empty override functions, A-D

* Remove empty override functions, E-H

* Remove empty override functions, handwired

* Remove empty override functions, I-L

* Remove empty override functions, M-P

* Remove empty override functions, Q-T

* Remove empty override functions, U-Z
2021-09-05 21:36:31 +01:00
Niko Wenselowski 8a8fdd9a72 Highlight keycode (#14317)
This should make it consistent with other docs and hopefully will make less people miss this detail.
2021-09-05 20:36:16 +01:00
JayceFayne 767f2c0284 [Core] Add is_oled_scrolling (#14305) 2021-09-05 09:09:20 -07:00
kb-elmo 0471429c01 [Keyboard] Fix rotary encoder function for Voice65 (#14316)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-05 09:05:55 -07:00
JayceFayne 014aa0661e Fix Space Cadet md link (#14300) 2021-09-04 15:01:56 +01:00
Albert Y c9262cf7f8 Enable extra keys for Technik ortho and stagger (#14282)
* Extra keys for technik ortho

* Extra keys for technik staggered

Co-authored-by: filterpaper <filterpaper@localhost>
2021-09-04 03:02:15 +01:00
James Young b15bd128a5 FJLabs Ready100 Configurator Fixes (#14291)
* grid-align keycodes; use short-form keycodes

No logic change.

* info.json: correct layout macro reference

* info.json: correct LAYOUT_64key data

Removes an extra key from the layout data.

* 64_ansi Community Layout support

* rename LAYOUT_64key to LAYOUT_64_ansi (with alias for backwards compatibility)
* add LAYOUTS = 64_ansi to rules.mk

* remove width and height keys from info.json
2021-09-03 21:03:15 +01:00
James Young 06c89e8abf Naiping NPhhkb: 60_tsangan_hhkb Community Layout support (#14292)
* 60_tsangan_hhkb Community Layout support

* rename LAYOUT to LAYOUT_60_tsangan_hhkb
* add LAYOUTS = 60_tsangan_hhkb to rules.mk

* correct maintainer field in info.json

* remove width and height keys from info.json

* fix GitHub account link on readme
2021-09-03 21:01:50 +01:00
James Young 90909fbaf7 takashicompany/endzone34: correct QMK Configurator key sequence (#14290)
* update info.json formatting

* convert tabs to spaces
* apply human-friendly formatting

* correct Configurator key sequence

* remove width and height keys from info.json
2021-09-03 21:00:29 +01:00
James Young 5f6d9913f8 OwLab Voice65 Hotswap: 65_ansi_blocker Community Layout support (#14293)
* 65_ansi_blocker Community Layout support

* rename LAYOUT to LAYOUT_65_ansi_blocker (with alias for backwards compatibility)
* add LAYOUTS = 65_ansi_blocker to rules.mk

* remove width and height keys from info.json
2021-09-03 11:48:10 -07:00
Ryan 8574bf20d3 Remove more cruft in keyboard files (#14288) 2021-09-03 17:09:30 +01:00
jhauh a01057d19d [Keymap] Update iris fluffactually keymap (#14265)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-02 10:50:17 -07:00
Drashna Jaelre 956cf8d7bf [Keyboard] Work Louder board fixup (#14247)
* [Keyboard] Add some last minute tweaks to Work board

* Additional fixes

* Fix rgb pin

* Fix ws2812 hackery

* additional led tweaks

* Add indicator LEDs

* fix bootmagic settings

* Fix up RGB stuff

* Limit power draw for entire board

* fixup lights and such

* change LED order on loop

* Fix indicators if via is not enabled

* Enable Sleep for rgb matrix

* Even more LED tweaks

* Final tweaks?

* Tweak keycodes
2021-09-02 10:49:44 -07:00
James Young d36a7c512d PistachioPro: correct Configurator key sequence (#14277)
* info.json: apply human-friendly formatting

* correct LAYOUT key sequence

Moves the Enter key object to the correct place in sequence.
2021-09-02 10:17:35 -07:00
James Young ebfa7e14f3 Matrix Falcon info.json fixes (#14273)
* apply human-friendly formatting to info.json

* update key labels; correct maintainer field

* add LAYOUT_all data to info.json

* remove width and height keys from info.json (per fauxpark)

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-02 18:09:38 +01:00
James Young 0290dd3547 Yoichiro Lunakey Macro: correct Configurator key sequence (#14276)
* apply human-friendly formatting to info.json

* correct Configurator key sequence
2021-09-02 18:08:35 +01:00
jonavin 98a2e9dc0e [Keymap] new murphpad landscape keymap with encoder enhanced functions (#14103)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jonavin <=>
2021-09-01 21:12:57 -07:00
peott-fr e056ae58a0 [Keymap] Fine-tuning Nyquist keymap. (#14269) 2021-09-01 21:12:15 -07:00
Drashna Jaelre 37aef4ebe1 [Keymap] Fix Drashna Keymap issues missed before Develop merge (#14271) 2021-09-01 21:08:58 -07:00
James Young c1e5c920a9 naiping/np64: 64_ansi Community Layout support and codebase touch-up (#14264) 2021-09-01 20:50:44 -07:00
James Young b55154fb0a neson design/n6: Extended Community Layout Support and Layout Macro Fix (#14266) 2021-09-01 20:47:28 -07:00
James Young c0eab2a504 wuque/serneity65: Layout Macro rework and Configurator fix (#14267) 2021-09-01 20:46:53 -07:00
hvp cb53c4fd41 [Keymap] hvp keymap for Cornelius, updated ut47.2 and userspace (#14187) 2021-09-01 20:44:36 -07:00
peott-fr 872414f454 [Keymap] Add peott-fr H87 keymap (#14232) 2021-09-01 20:44:12 -07:00
jonavin b6ca21c65c [Keymap] Jonavin keymap gmmk pro (#14220)
add rgb nightmode and optional colemak layer 

Co-authored-by: Jonavin <=>
2021-09-01 20:42:31 -07:00
Christian Eiden cded3b7582 [Keymap] own scylla keymap (#14224)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-01 20:41:17 -07:00
qieq bb356a1584 [Docs] Update path to keycode.h (#14263) 2021-09-01 20:40:12 -07:00
James Young 7575bc23a6 MatchstickWorks SouthPad: correct Configurator key sequence (#14255)
* matchstickworks/southpad: correct Configurator key sequence

* replace tabs with spaces; apply four-space indent
2021-09-01 10:44:03 -07:00
James Young 583f07ac58 owl8: add info.json file (#14256)
* owl8: add info.json file

* remove width and height keys (per fauxpark)

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-01 13:20:56 +01:00
Jay Greco c573926e05 Fix snailmap compilation error (#14250)
* Fix snailmap compilation error

* Update keymap.c with correct OLED_ENABLE defines
2021-09-01 10:48:14 +01:00
James Young 8d97c54770 mnk50: Configurator Fix and Layout Macro Additions (#14257)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-01 12:50:32 +10:00
Casey Webster c5ec423438 [Keymap] cwebster2 Keymap and userspace updates (#14258) 2021-08-31 17:50:42 -07:00
Andre Brait fac5ec4656 Move GMMK Pro layouts to the correct subdir (#14241)
Also fix a compilation issue in the mike1808 keymap
2021-09-01 00:18:35 +01:00
Drashna Jaelre b7693c971c [Keyboard] Disable console on Iris Rev5 (#14249) 2021-08-31 15:25:46 -07:00
James Young 92106ee038 emi20: remove dead space from Configurator layout (#14254) 2021-08-31 19:29:49 +01:00
Felix Jen b6d7b13a7a [Keyboard] Add FJLabs KF87 PCB (#14179)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-08-31 11:24:41 -07:00
Ibnu Daru Aji 6f5428687c [Keymap] reflects current rick's keymap (#14169) 2021-08-31 11:23:02 -07:00
Salicylic-acid3 bdd0a6c097 [Keyboard] Addition of VIA keymap and a few fixes for naked60 (#14225)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-30 22:19:21 -07:00
Joel Challis f2c9e82e5b cherry pick tidy up (#14244) 2021-08-31 00:25:41 +01:00
coliss86 1e7117317f Documentation: Fix links in key overrides (#14228)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-31 09:13:19 +10:00
JX 5ed8edae49 Update ws2812_spi.c (#14237) 2021-08-30 20:34:19 +01:00
Danny 2dc07391bd [Keyboard] Add Iris Rev. 5 (#13934)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-30 11:49:46 -07:00
dogspace 27aebba1b1 [Keymap] Add new snailmap keymap to nullbitsco/nibble keyboard (#14024)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-30 11:42:04 -07:00
kb-elmo c9283f4c1f [Keyboard] Add OwLab Jelly Epoch (#14190)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-30 11:29:15 -07:00
Rifaa Subekti b63114ea29 [Keyboard] add slamz keyboard (#14188)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-30 11:28:54 -07:00
Purdea Andrei 9583f9f589 [Bug] Fix build error when enabling NO_HAPTIC_MOD (#14178)
Without this build would fail, if a keyboard had haptic feedback enabled,
TAPPING_TOGGLE was not overridden in a config.h, and if NO_HAPTIC_MOD was
defined in config.h.
2021-08-30 11:22:53 -07:00
Felix Jen 949cfd4632 [Keyboard] add maker keyboards alexa (#14165) 2021-08-30 11:05:13 -07:00
peott-fr 557fce7a8e [Keymap] Add peott-fr keymap for Kbd6x (#14164) 2021-08-30 11:04:42 -07:00
Vincent Vorholter 9d32cb68c3 [Keyboard] Changed ProductID on basketweav keyboards (#14162)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Vince Vorholter <vince@28east.co.za>
2021-08-30 11:03:53 -07:00
Zach White baa423004a ensure that the directory for sys.executable is in the user's path (#14229) 2021-08-29 16:46:36 -07:00
Zach White b705020daf move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07:00
peott-fr 13a2da973f Nyquist (#14202)
* adding my Nyquist keymap

* Updating Nyquist keymap with licensing.

* Cleaning-up and improving Nyquist keymap.

* Cleaning-up and improving Nyquist keymap.
2021-08-29 22:52:49 +01:00
Sergey Vlasov a1866a962c Update the nix-shell environment (#13316)
* Nix: Allow calls to `bin/qmk` even when the build was started by `qmk`

The `$PATH` modifications performed by the Nix wrapper for the `qmk`
executable prevent `bin/qmk` from working properly (the changed `$PATH`
contains a wrong `python3` executable which does not have the needed
Python modules in its module path).  As a workaround, disable the
generation of that wrapper for the `qmk` Python package (there is yet
another wrapper generated while building the Python environment, which
would still set the Python module path properly when running `qmk`).

Although `bin/qmk` is officially deprecated, QMK CLI still invokes it in
some cases (at least `qmk doctor` and `qmk pytest`), therefore keeping
these invocations working is useful.

* Nix: Update `util/nix/pyproject.toml` to match `requirements*.txt`

Update the Python dependency information used by Poetry to match the
current state of the qmk_firmware code.

* Nix: Bump QMK CLI dependency to 1.0.0; bump other Python deps

Update Python dependencies for nix-shell to the most recent releases:

 - dotty-dict: 1.3.0 -> no longer used
 - milc: 1.4.2 -> 1.6.2
 - pep8-naming: 0.11.1 -> 0.12.1
 - pygments: 2.9.0 -> 2.10.0
 - pyrsistent: 0.17.3 -> 0.18.0
 - pyusb: 1.1.1 -> 1.2.1
 - setuptools-scm: 6.0.1 -> no longer used
 - qmk: 0.1.0 -> 1.0.0
 - qmk-dotty-dict: not used -> 1.3.0.post1
 - yapf: 0.30.0 -> 0.31.0

Note to self: The command to update Python dependencies changed to:

    ( cd util/nix && nix run 'nixpkgs#poetry' -- update --lock )
2021-08-29 22:24:43 +01:00
J.Flanagan ef7fdee6c8 [Keyboard] Add Viktus SP Mini (#14069)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-08-29 12:18:56 -07:00
Trent Hoh f87cd8e8a0 [Keyboard] Corrected layout for np24 by YMDK (#14096)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-29 04:09:43 -07:00
peott-fr 94d7635a4a [Keymap] My Prime E keymap (#14117) 2021-08-29 04:08:23 -07:00
Weirdo 5d5668c3f8 [Keyboard] Add kelownaRGB64 (#14141)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-29 04:07:54 -07:00
Takeshi ISHII 9afc64cd61 [Keyboard] fix compile error make helix/rev2/sc:all (#14214) 2021-08-29 15:06:00 +09:00
Nick Brassel dd8922d482 Fixup upstream paths for submodules. (#14205) 2021-08-29 10:51:53 +10:00
Nick Brassel 6caebb7b61 Bootmagic lite docs clarity. (#14204) 2021-08-29 09:47:48 +10:00
Nick Brassel f061ca4974 Breaking changes develop merge to master, 2021Q3 edition. (#14196) 2021-08-29 08:20:25 +10:00
Nick Brassel 4bad375d7c 2021Q3 pre-merge develop changelog, keyboard aliases (#14198)
* Initial changelog.

* Data driven.

* Submodule update.

* Updated breaking changes docs.

* Aliases.

* Aliases.
2021-08-29 08:18:18 +10:00
Drashna Jaelre 29ec2d8f42 [Docs] Add examples to RGB Matrix Indicators docs (#12797) 2021-08-27 06:41:33 +10:00
QMK Bot 7e1634e2a6 Merge remote-tracking branch 'origin/master' into develop 2021-08-26 17:50:09 +00:00
jackytrabbit ff65185dec Add support for lazydesigners/cassette8 (#14145)
* Add support for lazydesigners/cassette8

Add support for lazydesigners/cassette8

* Update keyboards/lazydesigners/cassette8/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/lazydesigners/cassette8/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/lazydesigners/cassette8/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/lazydesigners/cassette8/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/lazydesigners/cassette8/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/lazydesigners/cassette8/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/lazydesigners/cassette8/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-26 18:49:36 +01:00
QMK Bot a13b0d8a6c Merge remote-tracking branch 'origin/master' into develop 2021-08-26 17:47:28 +00:00
jpuerto96 3fce5e6912 New Keyboard - V4n4g0rth0n (#14152)
* General: Initial commit for v4n4g0rth0n

* Remove unecessary things|

* General: Fix info.json

* Finalize changes

* Update keyboards/v4n4g0rth0n/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/v4n4g0rth0n/v1/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/v4n4g0rth0n/v4n4g0rth0n.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/v4n4g0rth0n/v4n4g0rth0n.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/v4n4g0rth0n/v2/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/v4n4g0rth0n/v1/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-26 18:45:48 +01:00
Joel Challis 87cdb1cf9a Update readme files (#14172) 2021-08-26 16:53:24 +01:00
Joel Challis 48d0ad28e7 Move to correct location (#14171) 2021-08-26 14:14:48 +01:00
QMK Bot 6d646880a4 Merge remote-tracking branch 'origin/master' into develop 2021-08-26 11:38:28 +00:00
kb-elmo edf35615cf Skeletn87 - Fix RGB pin (#14170)
* add Skeletn87

* update skeletn87 files

* update skeletn87 soldered

* update readme image

* update readme (again)

* fix skeletn87 indicator LEDs

* fix led pin for production PCB
2021-08-26 12:37:55 +01:00
QMK Bot 2bc978437e Merge remote-tracking branch 'origin/master' into develop 2021-08-25 23:56:39 +00:00
Charles ee3a1133f1 [keyboard] Add 0x3E (#14088)
* Add 0x3E - default config

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Apply suggestions from code review 2

Firmware size optimization

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Rename files as per project guidelines + remove empty

* Update link in readme.md

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-08-26 00:56:09 +01:00
QMK Bot 0c97bc5179 Merge remote-tracking branch 'origin/master' into develop 2021-08-25 23:40:04 +00:00
8bits4ever 4c5334cb9e [converter/a1200] Changing layout macro reference info.json (#14143)
* Rename keyboards/converter/a1200/config.h to keyboards/converter/a1200/teensy2pp/config.h

* Rename keyboards/converter/a1200/rules.mk to keyboards/converter/a1200/teensy2pp/rules.mk

* Create dummy

* Add files via upload

* Delete dummy

* Update readme.md

* Update info.json
2021-08-26 00:39:34 +01:00
QMK Bot 329c130202 Merge remote-tracking branch 'origin/master' into develop 2021-08-25 19:04:06 +00:00
MechMaster48 89f2b9486f [Keymap] mechmaster48 keymap for OLKB Preonic rev3 (#14137) 2021-08-25 12:03:27 -07:00
Joel Challis 527b1e52aa Move nix folder alongside vagrant (#14132) 2021-08-25 15:27:48 +01:00
Joel Challis a84de5e22b Revert 14083 && 14144 (#14150)
* Revert "Short term bodge for firmware size bloat (#14144)"

This reverts commit a8d6547346.

* Revert "Tidy up quantum.c now some of tmk_core has been merged (#14083)"

This reverts commit c4dbf4bf01.
2021-08-25 01:16:59 +01:00
QMK Bot 3855713ca0 Merge remote-tracking branch 'origin/master' into develop 2021-08-24 22:10:04 +00:00
Albert Y bb1b822247 [Keyboard] Update Technik ortholinear RGB matrix points (#14124)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-08-24 15:09:26 -07:00
Joel Challis 622c3cac3a Fix merge artifacts (#14146) 2021-08-24 17:18:25 +01:00
Joel Challis 2cade3a483 Align some quantum sub-directories (#14134)
* Misc folder tidy

* Review comments

* Remove redundant entry
2021-08-24 17:07:11 +01:00
QMK Bot 2827a3cf75 Merge remote-tracking branch 'origin/master' into develop 2021-08-24 15:44:36 +00:00
Yoichiro Tanaka b4867e1600 [Keyboard] Add yoichiro/lunakey_macro (#13849)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-24 08:44:00 -07:00
Joel Challis a8d6547346 Short term bodge for firmware size bloat (#14144) 2021-08-24 16:09:23 +01:00
Drashna Jael're e3b68ddfe8 Merge remote-tracking branch 'origin/master' into develop 2021-08-24 07:32:31 -07:00
Takeshi ISHII c9c60d227e add wait_cpuclock() macro for AVR and CPU_CLOCK macro (#12755) 2021-08-24 14:34:24 +01:00
Joel Challis c4dbf4bf01 Tidy up quantum.c now some of tmk_core has been merged (#14083) 2021-08-24 14:28:37 +01:00
GG 097e85e930 [Keyboard] Add serneity65 (#13889) 2021-08-24 02:50:56 -07:00
Xelus22 c4a2dc9a2d fix (#14142) 2021-08-24 19:39:24 +10:00
Christian Sandven 3ef978cb13 [Keyboard] Fix keyprez qmk configurator (#14119) 2021-08-24 01:54:17 -07:00
kb-elmo a4aa6ccf7b [Keyboard] Add QEZ keyboard (#14131) 2021-08-24 01:49:50 -07:00
Albert Y b8c74d6b5d [Keyboard] Update Technik staggered RGB matrix points (#14125)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-08-24 01:49:13 -07:00
stickandgum eaad654798 [Keymap] Fixed GMMK Pro -> stickandgum keymap readme.md (#14123)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-08-24 01:48:35 -07:00
Rifaa Subekti e1c264f579 [Keyboard] Update info.json for ocean/gin_v2 (#14121)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-24 01:42:23 -07:00
Drashna Jaelre bc239cd520 [Keymap] Drashna keymap fixups (#14140) 2021-08-24 01:37:14 -07:00
Drashna Jaelre 3455e2408d [Keyboard] Fix default keymap for quark squared keyboard (#14139) 2021-08-24 01:19:00 -07:00
Xelus22 4e1c5887c5 [Core] Refactor OLED to allow easy addition of other types (#13454)
* add docs

* core changes

* update keyboards to new OLED

* updated users to new OLED

* update layouts to new OLED

* fixup docs

* drashna's suggestion

* fix up docs

* new keyboards with oled

* core split changes

* remaining keyboard files

* Fix The Helix keyboards oled options

* reflect develop

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
2021-08-24 16:28:26 +10:00
Joel Challis 47a38c3f0e Remove more unused files (#14135) 2021-08-24 14:02:53 +10:00
Drashna Jaelre 6fd20acf4b Fix Mouse Shared EP functionality (#14136)
Specifically, if you enable the shared endpoint for mouse reports (or keyboard, which force enables it for mouse), and you don't have mousekeys enabled, it does not properly enable shared mouse EP for pointing device (which uses mouse reports).   This cause it to error out in compiling.  This fixes up some of the logic to ensure that all use cases are supported, and consolidates some of the code.
2021-08-24 11:40:24 +10:00
lalalademaxiya1 e3483b4126 [Keyboard] Add new keyboard version: keychron/q1/rev_0102 (#14029)
* Add keyboard Q1

* Update keyboards/keychron/q1/readme.md

* Update keyboards/keychron/q1/rev_0100/rules.mk

* Update keyboards/keychron/q1/readme.md

* Change layer switch function to "default_layout_set"

* Update keyboards/keychron/q1/rev_0100/info.json

* Update keyboards/keychron/q1/q1.c

* Mask out the DIP switch to fix sleeping issue when switch is ON

* Added and changed readme.md

Added keyboards\q1\rev_0100\readme.md
Changed keyboards\q1\readme.md since different MCU may used in other version.

* update

* update keymap name

* update keymap for keychron/q1/rev_0102

* Update info.json
2021-08-23 17:32:15 -07:00
Drashna Jaelre d57d9aec4f Fix bootloadHID comments breaking :flash (#14133) 2021-08-23 23:46:06 +01:00
Donald Kjer e756a21636 eeprom_stm32: implement high density wear leveling (#12567)
* eeprom_stm32: implement wear leveling
Update EECONFIG_MAGIC_NUMBER
eeprom_stm32: check emulated eeprom size is large enough
* eeprom_stm32: Increasing simulated EEPROM density on stm32
* Adding utility script to decode emulated eeprom
* Adding unit tests
* Applying qmk cformat changes
* cleaned up flash mocking
* Fix for stm32eeprom_parser.py checking via signature with wrong base
* Fix for nk65 keyboard

Co-authored-by: Ilya Zhuravlev <whatever@xyz.is>
Co-authored-by: zvecr <git@zvecr.com>
2021-08-23 23:15:34 +01:00
QMK Bot 2481e109a0 Merge remote-tracking branch 'origin/master' into develop 2021-08-23 22:06:37 +00:00
Path Nirvana f314705921 adding uf2 flash support for blackpill 401 (#13968)
* adding uf2 flash support for blackpill 401

* forgot to add blackpill to keyboard header file

* making changes requested by drashna

* fixing tzarc s comments

* removing the keyboard

* undo the change to dactyl_manuform.h
2021-08-24 08:05:10 +10:00
QMK Bot 718f0a2482 Merge remote-tracking branch 'origin/master' into develop 2021-08-23 14:26:24 +00:00
Nick Brassel d8778eba92 Fixup line endings. 2021-08-23 19:37:16 +10:00
stickandgum 71df135254 [Keymap] Feature rich keymap for GMMK Pro (ANSI) (#14120)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-08-22 19:19:11 -07:00
QMK Bot 355872cc1d Merge remote-tracking branch 'origin/master' into develop 2021-08-23 02:10:58 +00:00
Dasky 9af069ecf3 Fix typo (#14118) 2021-08-23 09:31:38 +10:00
QMK Bot f043b8be38 Merge remote-tracking branch 'origin/master' into develop 2021-08-22 21:43:07 +00:00
QMK Bot 4b87c1f40b Merge remote-tracking branch 'origin/master' into develop 2021-08-22 16:29:18 +00:00
QMK Bot 7dfa93d9b6 Merge remote-tracking branch 'origin/master' into develop 2021-08-22 06:04:52 +00:00
QMK Bot 34d0376ab9 Merge remote-tracking branch 'origin/master' into develop 2021-08-22 05:12:24 +00:00
QMK Bot f709394442 Merge remote-tracking branch 'origin/master' into develop 2021-08-22 05:11:44 +00:00
precondition aedd8cca31 [Keyboard] Kyria default reformat (#14080)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-21 22:11:32 -07:00
peepeetee 78ccd9c201 Organize KPrepublic, K.T.E.C, xiudi boards into directories (#12159)
* reset; redoing my steps; and recommit

* include xd002/.noci
2021-08-22 13:53:49 +10:00
Nick Brassel c70abc8d04 Warn when building a board that uses arm_atsam (#10904)
* Add deprecation warning during build when building a board that uses arm_atsam.

* Rewording.

* Wording.

* Fixup.
2021-08-22 13:49:33 +10:00
Drashna Jaelre dcef03853d [Keyboard] Disable Console on Keebio Quefrency (#14108) 2021-08-22 12:08:05 +10:00
Drashna Jaelre f4a2f2bb7e [Keyboard] Fix compile issues for Tractyl Manuform (#14105) 2021-08-21 18:34:16 -07:00
Drashna Jaelre e08d6a33fc [Core] Fix copypasta issue with pmw3360 sensor config (#14106) 2021-08-21 18:34:04 -07:00
Joakim Tufvegren 0ae20e7457 Make solo half of split keyboards (more) usable. (#13523)
* Make solo half of split keyboards (more) usable.

Using only one half of a split keyboard (that's using the split_common
framework to communicate) is not a great experience, since several read
timeouts per scan cycle cause an unusably slow scan rate.

This change blocks all split communication attempts for 500 ms
(configurable) after an error occurs, causing the scan rate to become at
least _more_ usable, but might need some tweaking to work fully on most
keyboards. One read timeout still needs to occur after the 500 ms has
passed, and if that timeout isn't low enough, some scan cycles may still
be too slow.

* Fix lint complaint.

* Require 25 consecutive comm errors to see comms as disconnected.

The number of max errors can be overridden by defining
`SPLIT_MAX_CONNECTION_ERRORS`.

* Add comments to new defines, and ability to disable disconnection check.

Also increase `SPLIT_MAX_CONNECTION_ERRORS` to 40, since it's divisible
by most relevant numbers for the description.

* Make lint happy ...again

* Only update `connection_check_timer` when needed.

* Add new defines to split keyboard documentation.

* Move connection timeout logic to transport.c, add `is_transport_connected`.

* Use split_common disconnection logic in matrix.c.

Instead of doing more or less the same thing twice.

* Move disconnection logic to `transport_master`.

Is a cleaner implementation, and causes the scan rate while disconnected
to increase instead of decrease.

* Lint fixes.

* Lower default `SERIAL_USART_TIMEOUT` to 20 ms.

The read timeout must be low enough to not cause exessively long scan
cycles when using a solo split half. 10 ms was determined from testing
to work fine even with the slowest defined baudrate of 19200 (5 ms was
too low for that case), so 20 ms should be fine for most cases.

* Remove `SERIAL_USART_TIMEOUT` from ergodox_infinity/config.h

Was somewhat mistakenly included in an earlier PR.

* Fix building with `USE_I2C`.

* Reduce built firmware size.

Not really sure why this works, the idea was taken from tzarc's work on
split disconnection.

* Tweak and improve opt-out for split disconnection logic.

There are now two ways to opt out from this feature:
* Set `SPLIT_MAX_CONNECTION_ERRORS` to 0. This will completely disable
  the connection status checks (also affects the slave matrix reset logic in
  matrix.c, though).
* Set `SPLIT_CONNECTION_CHECK_TIMEOUT` to 0. This will only disable the
  communication throttling while disconnected. Will make the firmware
  smaller.

* Make split disconnection logic work with custom transports.

Includes a fallback implementation for keyboards using a custom
split_util.c but not a custom matrix.c (currently no such keyboard seems
to be merged, though).

* Remove unnecessary include of timer.h

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-22 10:51:17 +10:00
Drashna Jaelre c5f41d42d8 Updated RGB Matrix suspend define part 3 (#13954)
* Updated RGB Matrix suspend define part 3

* Revert "Update config.h for kbdfans/kbd67/mkiirgb/v3 (#13978)"

This reverts commit 80015f7fb0.

* Add additional boards/keymaps
2021-08-22 09:46:35 +10:00
Drashna Jaelre 58a5030661 [Keymap] Drashna's Improve OLEDs and custom Split code (#14063)
* Fill the oleds with right mods

* Enable double mods on x32 oleds

* Disable forced NKRO

* Make oleds fancy only on good MCUs

* Overhaul oled display

* Further enhance oled, with kitty!

* Final oled form

* Not working transport

* Transport id of woring

* Add acceleration

* fix button placement for accel macro

* Fix accelartion location and behavior

* Remove OLED sync code

* Fix alignment issue

* Remove audio hack

* Fix up zima keymap

* Add matrix slave scan function and cleanup drashna.h

* Clean up user space

* Allow userspace sync to be disable-able

* Fix weird issue with audio

* Fix alignment issue with user split sync

* Disable second rgb matrix task

* Disable additional animations

* Change dynamic keymap settings

* Hacky fix for borked corne

* Add Blackpill (F411) support to tractyl manuform

* remove manual via eeprom reset

* Remove all references to rgblight twinkle

* Fix issues with config processing
2021-08-21 13:34:44 -07:00
Drashna Jaelre da1c011afc Improve pmw3360 sensor and make it more hardware agnostic (#14097) 2021-08-20 21:14:23 -07:00
QMK Bot 3452c89c8b Merge remote-tracking branch 'origin/master' into develop 2021-08-21 04:13:34 +00:00
Drashna Jaelre a80d789147 Fix issues with VIA EEPROM init and bring in line with eeconfig functionality (#13243)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-20 21:02:53 -07:00
Nick Brassel afd3bcbf45 Fix up compilation issues. (#14095) 2021-08-21 13:38:38 +10:00
QMK Bot ce379ef458 Merge remote-tracking branch 'origin/master' into develop 2021-08-20 22:32:01 +00:00
Ryan a7d48b063e Fix LED Matrix suspend code (#14090) 2021-08-20 10:43:49 -07:00
QMK Bot e8943a8b0c Merge remote-tracking branch 'origin/master' into develop 2021-08-20 17:33:25 +00:00
Zach White 1ec6ce8c37 Merge remote-tracking branch 'origin/master' into develop
Resolved Conflicts:
	lib/python/qmk/info.py
2021-08-20 08:22:41 -07:00
Drashna Jaelre 92fa07336c [Bug] Fix RGB/LED Matrix Suspend code (#14084) 2021-08-20 06:14:42 -07:00
QMK Bot da11a49905 Merge remote-tracking branch 'origin/master' into develop 2021-08-20 13:14:35 +00:00
Joel Challis 69c71d4843 Align DIP_SWITCH_PINS_RIGHT implementation with encoders (#14079) 2021-08-20 10:15:11 +01:00
Joel Challis b229b0fba7 Fix issues with recent keymap.json changes (#14089)
* Fix issues with recent keymap.json changes

* Allow empty author string
2021-08-20 19:11:49 +10:00
QMK Bot 0741aae1d9 Merge remote-tracking branch 'origin/master' into develop 2021-08-20 04:36:09 +00:00
QMK Bot 8dfd33e3d1 Merge remote-tracking branch 'origin/master' into develop 2021-08-20 04:27:09 +00:00
QMK Bot c6f24f66bd Merge remote-tracking branch 'origin/master' into develop 2021-08-20 04:22:05 +00:00
Simon Arlott 0a1bf7f6aa Support using a timer for wait_us() on ChibiOS-based boards (#12211)
* Support using a timer for wait_us() on ChibiOS-based boards (#12198)

There are spare GPT timers that can be used to get a more accurate
wait_ms() time. This is required for the matrix scan unselect delay (30µs)
to be shorter than the system tick rate of 100µs.

This is limited to the maximum GPT duration of 65535 so values above that
will automatically use the previous implementation based on the system
tick.

Using a specific timer means it can't be shared by another thread at the
same time so when wait_us() is called from anything other than the main
thread it will use the system tick implementation too.

* Update tmk_core/common/chibios/wait.c

* Update tmk_core/common/chibios/wait.c

Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-20 00:31:23 +01:00
moyi4681 462e7f075a move volcano660 to ilumkb folder (#13550)
* move volcano660 to ilumkb folder

* Update rules.mk

* Fix up readme

Co-authored-by: zvecr <git@zvecr.com>
2021-08-19 20:02:07 +01:00
QMK Bot 3413766649 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 18:59:06 +00:00
Dasky 7f1c90b7a8 [Core] Speed up pimoroni trackball driver (#13823) 2021-08-19 11:58:17 -07:00
QMK Bot e988f58374 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 18:45:19 +00:00
James Young 4279b14adf Merge remote-tracking branch 'upstream/master' into develop
Conflicts:
	keyboards/gmmk/pro/ansi/keymaps/jonavin/rules.mk
	keyboards/space_space/rules.mk
2021-08-19 11:32:23 -07:00
XScorpion2 9d1c98c891 Added right vs left specific pin assignments for dip switch (#13074)
* Added right vs left specific pin assignments for dip switch

* Update feature_dip_switch.md

* Ran formatting tools
2021-08-19 18:39:15 +01:00
QMK Bot af3673a5b6 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 17:14:07 +00:00
QMK Bot a85126b79e Merge remote-tracking branch 'origin/master' into develop 2021-08-19 16:41:46 +00:00
Evelien-Lillian Dekkers 81e19d61c0 [Keyboard] Refactor atom47 and add rev4 and rev5 (#13201)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-19 09:40:28 -07:00
QMK Bot 374b388382 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 16:31:49 +00:00
QMK Bot d112935cea Merge remote-tracking branch 'origin/master' into develop 2021-08-19 16:29:30 +00:00
QMK Bot b7a3ddb6d1 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 16:12:49 +00:00
QMK Bot db316716c1 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 16:12:04 +00:00
QMK Bot 1445fd21c8 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 15:53:48 +00:00
QMK Bot a995dd16a2 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 15:51:56 +00:00
QMK Bot 2ff1a6a72f Merge remote-tracking branch 'origin/master' into develop 2021-08-19 15:42:23 +00:00
QMK Bot 7a125872e2 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 15:41:40 +00:00
Takeshi ISHII f86a087127 [Keymap] fix helix:fraanrosi compile error caused by #13677. (#14061)
I'm against using RGBLIGHT_ANIMATIONS because this happens.
See also #8688.
2021-08-19 15:45:47 +09:00
QMK Bot c8e8c21367 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 00:42:53 +00:00
QMK Bot b23a4db47a Merge remote-tracking branch 'origin/master' into develop 2021-08-19 00:38:25 +00:00
QMK Bot c6dc1f7f8d Merge remote-tracking branch 'origin/master' into develop 2021-08-19 00:33:59 +00:00
Joel Challis 2e734fb6b9 Add config.h and rules.mk support for data driven keymaps (#12859)
* Add config.h and rules.mk support for data driven keymaps

* tidy up after rebase

* Rename key as it can contain more than just keyboard overrides

* tidy up after rebase

* Add validation
2021-08-18 21:52:41 +01:00
QMK Bot 10fab4ec07 Merge remote-tracking branch 'origin/master' into develop 2021-08-18 17:35:15 +00:00
QMK Bot 342e765e9c Merge remote-tracking branch 'origin/master' into develop 2021-08-18 08:51:22 +00:00
Ryan b16091659c Move USB Host Shield and Arduino core to lib/ (#13973) 2021-08-18 18:20:25 +10:00
Drashna Jael're cf5e40c251 Merge remote-tracking branch 'origin/master' into develop 2021-08-17 22:33:17 -07:00
Nick Brassel ceb3ebda46 Fixup atsam builds. (#14052) 2021-08-18 01:59:22 +01:00
Joel Challis 58cd8c366c Various fixes from reorg of files (#14051) 2021-08-18 09:54:41 +10:00
tucvbif 703f027717 Allow for removal of hysteresis on 4x encoders (#13698)
* Remove hysteresis on 4x encoders

Sometimes, controller skips encoder pulses and when it returns to default position, the encoder_pulses variable isn't equals 0. And when I turn encoder in opposite direciton, it skips first click becase of encoder_pulses crosses zero. To prevent this, I add the ENCODER_DEFAULT_POS constant, and reset encoder_pulses into 0 when the state variable equals ENCODER_DEFAULT_POS.

* Documentation for ENCODER_DEFAULT_POS
2021-08-18 09:40:00 +10:00
Joel Challis b8e913c8db Migrate platform independent code from tmk_core -> quantum (#13673)
* Migrate action|keyboard|keycode|eeconfig from tmk_core -> quantum
2021-08-18 00:18:58 +01:00
Joel Challis 96e2b13d1d Begin to carve out platform/protocol API - Single main loop (#13843)
* Begin to carve out platform/protocol API

* Fix up after rebase
2021-08-18 00:11:07 +01:00
Joel Challis 4c9003b177 Move chibios board files to allow tmk_core platform migration (#13777)
* Move board files

* fix up after rebase
2021-08-18 00:04:15 +01:00
Drashna Jaelre 4c4f632378 Add a toggle key for GUI On/Off in Magic feature (#13830) 2021-08-18 08:47:50 +10:00
ruro 3b28178deb --parallel improvements (#13800)
* improve make parallel jobs support

* document the --parallel option

* disable the output-sync for interactive targets
2021-08-18 08:46:59 +10:00
Tomas Guinan 999391f3ae Created "paddlegame" keymap (#13629)
* Added gmmk pro paddlegame keymap

* Replaced config.h with my own

* Adjust code to better fit style guide

* Update readme to include layout

* Fixed keymap, was missing a few keys

* Replaced all instances of _isWinKeyDisabled with keymap_config.no_gui

* Update keyboards/gmmk/pro/ansi/keymaps/paddlegame/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Tomas Guinan <bngrybt@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-08-18 08:43:27 +10:00
Joel Challis 1bb7af4d44 Relocate platform specific drivers (#13894)
* Relocate platform specific drivers

* Move stm eeprom

* Tidy up slightly
2021-08-17 23:43:09 +01:00
Donald Kjer 483691dd73 Fixes for clang not being able to run unit tests (#13546) 2021-08-18 07:12:12 +10:00
Mikael Manukyan 857716794b gmmk/pro/mike1808 keymap (#13398)
* Add gmmk/pro/mike1808 keymap

* Add licenses

* Update readme

* Add underglow support for rgb matrix layers

* Change FN to TT

* Fix rgb layer disabling during rgb settings change

* also clean up some code
2021-08-18 07:10:46 +10:00
Nick Brassel 8db1d22117 Fixup massdrop/alt, cest73/tkm. (#14048)
* Fixup massdrop/alt.

* Fixup `cest73/tkm` bootmagic lite.

* Update keyboards/cest73/tkm/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-08-18 06:44:18 +10:00
a-chol 75b49aff56 Digitizer HID interface : absolute coordinates for mouse cursor (#12851)
* Add digitizer HID interface for setting the mouse cursor position at
absolute screen coordinates. Tested on Pro Micro, Proton C and
Blackpill.

* Update docs/feature_digitizer.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update tmk_core/protocol/usb_descriptor.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add missing copyrights
Add V-USB support

* Add support for digitizer dedicated endpoint for lufa and chibios.
Fix formatting issues
Move digitizer_task definition to the feature's base implementation file

* Run cformat on modified files

* Change digitizer report usage to Digitizer instead of Pen to avoid
pointer disappearing on Windows.

* Update tmk_core/protocol/vusb/vusb.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Run cformat from docker image

* Remove send_digitizer from host_driver_t and instead rely on the
declaration being the interface to the implementation in each
HW-specific usb implementation.

* Fix build : send_digitizer shouldn't be static in vusb and add
weak-linkage implementation for tests without usb implementation

* Change digitizer user interface to match pointing device's

* Update documentation with new API

Co-authored-by: a-chol <nothing@none.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-18 04:52:44 +10:00
mechlovin 7794e97f32 Add mechlovin9 rev2 PCB (#12767)
* Add mechlovin9 rev2 PCB

Move mechlovin9 PCB from mechlovin/hannah65/mechlovin9 to mechlovin/mechlovin9
And add mechlovin9 rev.2

* update

* change bootloader and  bootmagic button

* Add mechlovin9 rev2 PCB

Move mechlovin9 PCB from mechlovin/hannah65/mechlovin9 to mechlovin/mechlovin9
And add mechlovin9 rev.2
2021-08-18 04:49:40 +10:00
freqmod 705774f7bf Steno combinedkeys (#12538)
* Add support for steno keys that press adjacent keys simultaniously

* Add some docs for steno combined keys
2021-08-18 04:48:00 +10:00
50an6xy06r6n 4b96d5876e Fix Indicator LED issues (#12097) 2021-08-18 04:44:19 +10:00
Ryan 37496f4b60 Add alternate ldscript for STM32duino (F103xB) (#12914)
* Add alternate ldscript for STM32duino (F103xB)

* Refactor out common ldscript stuff

* Move ldscripts into stm32duino board dir, add search path to ldflags
2021-08-18 04:23:22 +10:00
Drashna Jaelre 7da97c293d Rgb matrix/enable modes explicitly (#13758)
* Change animations to require explicet activation

* Add support for legacy config

* Make default for now

* Add LED Matrix support

* change LED Matrix docs
2021-08-18 04:19:00 +10:00
Drashna Jaelre 85351dc23d [CLI] Add qmk-hid bootloader detection support to qmk console (#14038)
* [CLI] Add qmk-hid bootloader detection support to `qmk console`

* Remove duplicate entry

Co-authored-by: Ryan <fauxpark@gmail.com>

* Begrudgingly add lufa-ms

* Add udev rules for hid bootloaders

* Update util/udev/50-qmk.rules

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Fix VID/PID combos

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-08-18 04:13:54 +10:00
Drashna Jaelre fae5cc6c67 [Keyboard] Fixup Neson Design N6 ISSI includes (#14045) 2021-08-17 10:31:34 -07:00
QMK Bot a6d2993fc5 Merge remote-tracking branch 'origin/master' into develop 2021-08-17 16:14:10 +00:00
QMK Bot aeda1a003e Merge remote-tracking branch 'origin/master' into develop 2021-08-17 16:07:05 +00:00
QMK Bot b87e2947c1 Merge remote-tracking branch 'origin/master' into develop 2021-08-17 15:44:51 +00:00
Drashna Jaelre e443fa2892 Fix wait_us overflow in matrix for dactyl based boards (#14039) 2021-08-17 08:20:01 -07:00
Zach White 8d9bfdc254 Add a lot more data to info.json (#13366)
* add some split data to info.json

* add tags

* add half of config_options.md to info.json

* add support for designating master split

* sort out split transport and primary

* fix bad data in UNUSED_PINS

* fixup custom transport

* wip

* allow for setting split right half keyboard matrix

* add SPLIT_USB_DETECT

* minor cleanup

* fix an erroneous message

* rework split.usb_detect

* adding missing rgblight vars to info.json

* add mouse_key to info.json

* add all remaining options from docs/config_options.md

* fix audio voices

* qmk info: Change text output to use dotted notation

* tweak layout output

* resolve alias names

* break out some functions to make flake8 happy

* add a field for bootloader instructions

* qmk generate-info-json: add a write-to-file argument

Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal.

* -arg_only, +action

Because it was never my intention that one would have to specify a value for the argument that enables writing the file.

* Bring qmk generate-info-json inline with other generate commands

* pytest fixup

* fix esca/getawayvan

* fix data driven errors for bpiphany converters

* features.force_nkro -> usb.force_nkro

* split.primary->split.main

* fix esca/getawayvan_f042

* fix the bpiphany converters for real

* fix bpiphany/tiger_lily

* Apply suggestions from code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

* fix generate-api errors

* fix matrix pin extraction for split boards

* fix ploopyco/trackball_nano/rev1_001

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-16 23:33:30 +01:00
QMK Bot fac717c11c Merge remote-tracking branch 'origin/master' into develop 2021-08-16 20:51:03 +00:00
QMK Bot 3867c70859 Merge remote-tracking branch 'origin/master' into develop 2021-08-16 20:16:47 +00:00
QMK Bot fc50b6d22e Merge remote-tracking branch 'origin/master' into develop 2021-08-16 20:11:52 +00:00
Joel Challis 2bc8215ce5 Unify behaviour of wait on AVR (#14025) 2021-08-16 17:28:12 +01:00
QMK Bot 4818debcd0 Merge remote-tracking branch 'origin/master' into develop 2021-08-16 10:18:27 +00:00
QMK Bot 6c662a600c Merge remote-tracking branch 'origin/master' into develop 2021-08-16 06:44:50 +00:00
QMK Bot 3202b3900e Merge remote-tracking branch 'origin/master' into develop 2021-08-16 02:41:52 +00:00
Joel Challis ab941ce614 Move all the flash logic from tmk_core (#13927) 2021-08-15 21:55:23 +01:00
Drashna Jaelre 4e3726bfe1 Fixup Audio startup and add to documents (#13606)
* Fixup Audio startup and add to documents

* fix doc descriptions
2021-08-15 21:51:50 +01:00
James Young 4b453dca92 Remove MIDI Configuration boilerplate (#11151)
* remove keyboard-level instances of `MIDI_ENABLE = no`

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e  '/^[ #]*MIDI_ENABLE[ \t]*=[ \t]*no/d' {} +
```

Co-Authored-By: Nick Brassel <nick@tzarc.org>

* fix case-sensitivity issues on MIDI_ENABLE

Change instances of `MIDI_ENABLE = YES` to `MIDI_ENABLE = yes`.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE[ \t]*=[ \t]*[Yy][Ee][Ss];MIDI_ENABLE = yes;g' {} +
```

* replace `# MIDI controls` with `# MIDI support`

Replace `# MIDI controls` with `# MIDI support` in keyboard-level `rules.mk` files.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*MIDI[ \t]*\(controls\|support\).*;# MIDI support;g' {} +
```

* align inline comments

Aligns the inline comments to the length used by the QMK AVR rules.mk template.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE *= *yes.*;MIDI_ENABLE = yes           # MIDI support;g'  {} +
```

* remove commented instances of `MIDI_ENABLE` from keyboard `rules.mk` files

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#\([ \t]*MIDI_ENABLE\) = yes; \1 = no ;' {} +
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;^\([ \t]*\)\(MIDI_ENABLE = no\);\2\1;' {} +
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e '/^[ #]\+MIDI_ENABLE *= *no/d' {} +
```

* remove MIDI configuration boilerplate from keyboard config.h files

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-16 06:51:13 +10:00
Zach White fd340f8957 Defer the expensive search for layout macros until info.json has been processed (#14007)
* defer the expensive search for layout macros until info.json has been processed

* fixup names
2021-08-16 06:30:58 +10:00
Drashna Jaelre f56c202fb3 Fix ifdefs for OLED split sync code (#14017) 2021-08-15 00:54:08 -07:00
Drashna Jaelre 488aaa0980 Enable sync of OLED/ST7565 display on/off state on Splits (#13542)
* Enable sync of OLED/ST7565 display on/off state on Splits

* Only send if states are not matched

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-15 15:39:08 +10:00
fauxpark 4b3691e72d Merge remote-tracking branch 'upstream/master' into develop 2021-08-15 15:27:25 +10:00
Zach White 8a54127782 Fix errors that have cropped up in develop (#14005)
* frooastboard: remove duplicate values from config.h

* pistachio_pro: remove unused pin D5
2021-08-15 11:02:46 +10:00
Zach White 60a36863bc [Keyboard] ez_maker/directpins for easy one-offs in qmk_configurator (#13321)
* new keyboard: handwired/directpins

* fix promicro keyboard_name

* add teensy2 and teensy2++ support

* align with handwired/onekey

* tweak pids

* add teensy 3.2 and teensy lc to directpins

* move directpins from handwired to ez_maker

* add docs for easy maker
2021-08-14 08:42:59 -07:00
QMK Bot 110a320321 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 15:08:27 +00:00
QMK Bot a6d77fdf27 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 14:59:20 +00:00
QMK Bot 0bb9a5c128 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 14:18:47 +00:00
QMK Bot 3c013ca7b0 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 13:20:22 +00:00
QMK Bot d1be25e9ab Merge remote-tracking branch 'origin/master' into develop 2021-08-14 09:10:32 +00:00
QMK Bot 4039c5dda9 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 09:03:03 +00:00
QMK Bot e021357299 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 08:48:55 +00:00
QMK Bot 3036189584 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 06:36:00 +00:00
QMK Bot 1715fa0e8b Merge remote-tracking branch 'origin/master' into develop 2021-08-14 04:55:04 +00:00
Pete Sevander fd3dc3a997 Fix combo_disable (#13988)
- Dump key buffer when combos are disabled.
- Recursive calls to `dump_key_buffer` need to start dumping the buffer
  from index i+1 to avoid possible infinite loops.
- Handle combo key releases even though combo processing is disabled.
2021-08-14 14:45:52 +10:00
QMK Bot e80772da40 Merge remote-tracking branch 'origin/master' into develop 2021-08-14 01:15:07 +00:00
QMK Bot 1412a785ed Merge remote-tracking branch 'origin/master' into develop 2021-08-14 00:01:38 +00:00
Drashna Jaelre 7ef4d0c886 Fix pmw3360 code to only output debug info if mouse debugging is enabled (#13993) 2021-08-13 14:20:47 -07:00
Drashna Jael're 7ed235d15d Merge remote-tracking branch 'origin/master' into develop 2021-08-13 14:15:58 -07:00
QMK Bot 854b292873 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 19:30:22 +00:00
QMK Bot fcddaadc56 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 19:29:21 +00:00
QMK Bot bd811f6546 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 19:28:35 +00:00
QMK Bot 5c0daf5442 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 19:27:20 +00:00
QMK Bot 21387a7f59 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 19:26:50 +00:00
QMK Bot a75204743a Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:53:04 +00:00
QMK Bot d358492fb4 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:48:39 +00:00
QMK Bot 72bd653895 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:47:00 +00:00
QMK Bot 924a0b30c3 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:41:31 +00:00
Andre Brait 5711a3bac2 [Keymap] Improve andrebrait keymap (#13985) 2021-08-13 11:33:04 -07:00
QMK Bot fa1ec32e39 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:31:14 +00:00
QMK Bot 349d36ff89 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:30:33 +00:00
Drashna Jaelre 041ff26ff1 [Keyboard] Fixup Ungodly Launch Pad config (#13992) 2021-08-13 11:28:43 -07:00
QMK Bot ad2f3a0cf5 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:23:05 +00:00
QMK Bot 8fea9722dd Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:21:40 +00:00
QMK Bot ceb428c9aa Merge remote-tracking branch 'origin/master' into develop 2021-08-13 18:18:30 +00:00
QMK Bot cdba934f86 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 17:38:51 +00:00
QMK Bot 4adb7d2176 Merge remote-tracking branch 'origin/master' into develop 2021-08-12 20:15:32 +00:00
Drashna Jaelre 477365912d Fix some additional bootmagic settings (#13979) 2021-08-12 13:03:40 -07:00
Drashna Jaelre 799c2bdfa3 [Keyboard] Fix default keymap for GMMK Pro Iso (#13980) 2021-08-13 04:47:20 +10:00
QMK Bot 968a3b324b Merge remote-tracking branch 'origin/master' into develop 2021-08-12 18:04:20 +00:00
Drashna Jael're 8e8ec6338c Merge remote-tracking branch 'origin/master' into develop 2021-08-12 09:18:18 -07:00
QMK Bot 176bce50e9 Merge remote-tracking branch 'origin/master' into develop 2021-08-12 14:43:35 +00:00
QMK Bot cb8be2d468 Merge remote-tracking branch 'origin/master' into develop 2021-08-12 14:25:30 +00:00
QMK Bot fd1b0f91e5 Merge remote-tracking branch 'origin/master' into develop 2021-08-12 13:59:41 +00:00
Andre Brait 33f64903b4 [Keymap] Add andrebrait layout for GMMK Pro (#13932) 2021-08-12 06:55:19 -07:00
QMK Bot 7fe375aef5 Merge remote-tracking branch 'origin/master' into develop 2021-08-12 03:40:49 +00:00
QMK Bot 353c615c29 Merge remote-tracking branch 'origin/master' into develop 2021-08-12 02:45:25 +00:00
QMK Bot d9f2f9d22f Merge remote-tracking branch 'origin/master' into develop 2021-08-12 02:44:46 +00:00
James Young 345f6dc4e6 Merge remote-tracking branch 'upstream/master' into develop
Fixes merge conflicts in:

- keyboards/poker87c/rules.mk and keyboards/poker87d/rules.mk
  - Conflicts from PR 13961
- keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c
  - Conflict from PR 13947
2021-08-11 09:48:25 -07:00
QMK Bot f4c447f2df Merge remote-tracking branch 'origin/master' into develop 2021-08-11 07:19:55 +00:00
QMK Bot 5ed7210d53 Merge remote-tracking branch 'origin/master' into develop 2021-08-11 02:11:51 +00:00
QMK Bot d58dc522a5 Merge remote-tracking branch 'origin/master' into develop 2021-08-11 02:10:38 +00:00
QMK Bot 1537e3975d Merge remote-tracking branch 'origin/master' into develop 2021-08-11 00:31:28 +00:00
QMK Bot 80cb96bb15 Merge remote-tracking branch 'origin/master' into develop 2021-08-10 23:56:43 +00:00
Luigi311 8d1255ccab Handwired/Stream_Cheap/2x4: Add via support (#13297)
* Handwired/Stream_Cheap/2x4: Add via support

Signed-off-by: Luigi311 <luigi311.lg@gmail.com>

* Handwired/Stream_Cheap: Update readme for via

Signed-off-by: Luigi311 <luigi311.lg@gmail.com>

* Handwired/Stream_Cheap/2x4: Add 2x4 to via json

Signed-off-by: Luigi311 <luigi311.lg@gmail.com>

* Handwired/Stream_Cheap/2x4: Add GPL2+ License to keymap

Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-08-11 07:40:30 +10:00
Alin Marin Elena 184c2e35af add support for m65 and simple 5x13 ortholinear (#12315)
* add support for m65 and simple 5x13 ortholinear

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

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

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

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

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

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

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

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

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

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

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

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* updates as per @sigprof review plus reformat

* pins all now are defined at microcontroller level

* profuct id defined at microcontroller level

* put leds on when _ADJ is on

* add danish keymap

* make default uk centric iso as per readme

* default is now iso generic, uk is its own business

* add license

* update imgur links to reflect the layout

* leds for _ADJ layer now do not prevent the other layers leds to get on

* Update keyboards/m65/keymaps/uk/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/m65/keymaps/dk/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/m65/keymaps/uk/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/m65/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* add support for gd32f303cct6 by we act in rev2

* Revert "add support for gd32f303cct6 by we act in rev2"

This reverts commit 4ad3834925508b79f2ff9fd5526dfc39f07fa3bc.

* Update keyboards/m65/rev1/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/m65/keymaps/dk/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/m65/keymaps/uk/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/m65/keymaps/default/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* remove empty hal

* add capslock

* Update keyboards/m65/readme.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/m65/config.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

Co-authored-by: Alin M Elena <alin-marin.elena@stfc.ac.uk>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-08-11 06:59:01 +10:00
QMK Bot d888ac17ea Merge remote-tracking branch 'origin/master' into develop 2021-08-10 14:48:55 +00:00
QMK Bot 5b8f2eccbf Merge remote-tracking branch 'origin/master' into develop 2021-08-10 09:15:00 +00:00
QMK Bot 75a58c3cef Merge remote-tracking branch 'origin/master' into develop 2021-08-10 08:03:36 +00:00
QMK Bot 85090b77af Merge remote-tracking branch 'origin/master' into develop 2021-08-10 05:24:08 +00:00
QMK Bot 3e0517f1ef Merge remote-tracking branch 'origin/master' into develop 2021-08-10 04:07:54 +00:00
QMK Bot f0a2641cf1 Merge remote-tracking branch 'origin/master' into develop 2021-08-09 21:15:07 +00:00
Dasky bb2986c115 Fix compliation for ferris 0.2 bling (#13937)
* Fix include
2021-08-09 14:04:40 -07:00
James Young 7bec943043 Merge remote-tracking branch 'upstream/master' into develop
Fixes merge conflicts in:

- keyboards/bm40hsrgb/config.h
  - Conflict from PR 13132:
    - RGB_DISABLE_WHEN_USB_SUSPENDED signature updated in develop branch, unmodified in master branch
    - updated file with changes from master branch

- keyboards/keebio/iris/keymaps/nstickney/keymap.c
  - Conflict from PR 11456:
    - layer_state_set_user() updated in develop branch, removed in master branch
    - updated file with changes from master branch
2021-08-09 12:14:22 -07:00
Joel Challis c0628c2820 Remove backwards compatibility of debounce names (#13877)
* Remove backwards compatibility of debounce names

* Update docs

* Update keyboards/keymaps
2021-08-09 19:46:18 +01:00
Joel Challis 7c691d82bf Remove ONEHAND_ENABLE (#13920) 2021-08-09 19:46:03 +01:00
Drashna Jaelre 2617ac6041 Fixup rgb matrix config for KBD67 mkII boards (#13931) 2021-08-09 19:26:02 +01:00
QMK Bot 8d19f4f187 Merge remote-tracking branch 'origin/master' into develop 2021-08-09 17:06:58 +00:00
QMK Bot ed7f06bd7b Merge remote-tracking branch 'origin/master' into develop 2021-08-09 17:05:08 +00:00
Andre Brait dbee96098d Make default keymap for GMMK Pro reflect stock (#13850) 2021-08-09 10:04:58 -07:00
QMK Bot f3cede7299 Merge remote-tracking branch 'origin/master' into develop 2021-08-09 17:04:30 +00:00
Zach White 12681bacc4 Merge remote-tracking branch 'origin/master' into develop
Conflicts:
	keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c
2021-08-09 08:34:14 -07:00
Nick Brassel 65e3760853 Fix compilation issue. (#13926) 2021-08-09 13:20:15 +10:00
thpoll83 b43c6bc176 Add support for STM32F407x MCUs. (#13718)
* Add support for STM32F407x MCUs.

* Removing STMF407 MCU variation

* Update quantum/mcu_selection.mk

Remove options for dfu flashing

Co-authored-by: Ryan <fauxpark@gmail.com>

* DISABLE STM32_USB_USE_OTG1

* Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h

Co-authored-by: thomas.pollak <thomas.pollak@dynatrace.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-09 06:52:13 +10:00
QMK Bot ac92ded0cc Merge remote-tracking branch 'origin/master' into develop 2021-08-08 04:42:36 +00:00
QMK Bot 8e5213ca6c Merge remote-tracking branch 'origin/master' into develop 2021-08-08 04:41:43 +00:00
Drashna Jaelre b9dcd5ac38 [Keymap] Drashna split transport improvement (#13905)
* Fix up split stuff

* Fix Split perf issues

* Allow LTO to be disabled

* Fixup WPM and encoders

* Fixup qmk keys per scan

* Add bootloader info

* Change encoder pins

* Fixup corne oled code

* Expand transport sync

* Improve user transport

* Cleanup mouse processing at keymap level

* Improve layer checking for mouse layering
2021-08-07 21:40:48 -07:00
QMK Bot 100333818f Merge remote-tracking branch 'origin/master' into develop 2021-08-08 04:15:54 +00:00
QMK Bot 21b71932f7 Merge remote-tracking branch 'origin/master' into develop 2021-08-08 04:13:48 +00:00
QMK Bot 6c5ef3ce30 Merge remote-tracking branch 'origin/master' into develop 2021-08-08 03:38:09 +00:00
QMK Bot d0f1a4c48a Merge remote-tracking branch 'origin/master' into develop 2021-08-08 03:24:59 +00:00
Drashna Jaelre d06f50a31a [Keyboard] Fix matrix_output_unselect_delay for handwired/xealousbrown (#13913) 2021-08-08 01:36:38 +10:00
QMK Bot 243e75659c Merge remote-tracking branch 'origin/master' into develop 2021-08-07 14:57:43 +00:00
Drashna Jaelre 6fb9842936 Clean up remaining RGB_DISABLE_WHEN_USB_SUSPENDED defines Part 2 (#13912) 2021-08-07 15:18:06 +01:00
Liyang HU 383fae55c5 Refactor quantum/command.{c,h} for code size & {read,maintain}ability (#11842)
* quantum/command.c: coalesce `print()`s in `command_common_help()` & `print_version()`

Also undo some damage by clang-format in b624f32f94

* quantum/command.c: replace `print(…); print_{,val_}{dec,hex}*(…);` sequences with single `xprintf(…)`

`print_{dec,hex}*(…)` are just `#define`s for `xprintf(…)` anyway.

Each additional `xprintf(…)` costs ~8 bytes: the call instructions,
plus an additional NUL terminator.

This _really_ adds up: this commit saves 814 bytes on my ATmega32.

* quantum/command.c: optimise `mousekey_console()` for size & legibility

Made various tweaks to the interface, but still functionally identical.

Assume `KC_1`…`KC_0` to be contiguous, and removed `numkey2num(…)` entirely.
It was exported in `command.h` by 1a0bac8bcc for no obvious reason, before
which it was `static`. I doubt anyone uses it.

`mousekey_console()` is now enabled regardless of `MK_3_SPEED`.
Needs fleshing out for things other than the X11 variant though.

This commit saves 638 bytes on my ATmega32.
2021-08-07 17:12:57 +10:00
James Young a03aa301de Remove Full Bootmagic (#13846)
* disambiguate Bootmagic rules in keymaps

The files edited by this commit were added at a point in time where `BOOTMAGIC_ENABLE = yes` enabled full Bootmagic.

This commit edits the files to specify that full Bootmagic is intended.

* remove BOOTMAGIC_ENABLE=full setting

* unify commented BOOTMAGIC_ENABLE rules in keyboards

Explicitly sets `BOOTMAGIC_ENABLE = no` in keyboards where the rule was commented out.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-zA-Z]\+\).*;\1 = no       # Virtual DIP switch configuration;g' {} +
```

* remove commented Bootmagic rules from keymap/user level

Command:

```
find keyboards/ layouts/ users/ -type f -name 'rules.mk' -exec sed -i -e '/#.*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*/d' {} +
```

* update keyboard BOOTMAGIC_ENABLE rule formatting

Sets the formatting of BOOTMAGIC_ENABLE rules to `BOOTMAGIC_ENABLE = [value]`, without the inline comments (which will be replaced later).

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
```

* update keyboards' BOOTMAGIC_ENABLE settings

Updates keyboard `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = \)full;\1lite;g' '{}' +
```

* update keymap/user BOOTMAGIC_ENABLE settings

Updates keymap/user `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used.

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' +
find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' +
```

* remove and replace inline comments in keyboards and keymap/user files

Removes and replaces the inline comments, which have been updated to read `Enable Bootmagic Lite`.

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = lite\);\1     # Enable Bootmagic Lite;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = yes\);\1      # Enable Bootmagic Lite;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = no\);\1       # Enable Bootmagic Lite;g' '{}' +
```

* rename improperly named makefiles

Some files intended to be used as makefiles had improper names causing them to not be used as intended when building.

This commit corrects the filenames of the affected files.

* update renamed file with new rule formatting

* update QMK's template files

Updates QMK's `rules.mk` templates to use the new inline comment.

* update QMK Docs

- remove documentation of full Bootmagic
- update links to Bootmagic Lite doc
- add doc for Magic Keycodes

* rules.mk patch for coarse/ixora and coarse/vinta
2021-08-06 23:59:56 -07:00
QMK Bot 0bc9090b1f Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:52:44 +00:00
QMK Bot 7b709aaecc Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:52:11 +00:00
QMK Bot 1f94e99565 Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:51:32 +00:00
QMK Bot 07a7724f2b Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:50:18 +00:00
QMK Bot 58bb1dbde7 Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:07:10 +00:00
QMK Bot e8112e49cd Merge remote-tracking branch 'origin/master' into develop 2021-08-07 05:59:33 +00:00
QMK Bot e2ac8d5f3e Merge remote-tracking branch 'origin/master' into develop 2021-08-07 05:48:48 +00:00
QMK Bot b38fdc0a57 Merge remote-tracking branch 'origin/master' into develop 2021-08-07 04:48:50 +00:00
QMK Bot 36b2f06d9e Merge remote-tracking branch 'origin/master' into develop 2021-08-07 00:03:19 +00:00
QMK Bot 25425dc9bc Merge remote-tracking branch 'origin/master' into develop 2021-08-07 00:02:28 +00:00
Sergey Vlasov 610035dce8 Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404)
* Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys

Implement an additional option for dual-role keys which converts the
dual-role key press into a hold action immediately when another key is
pressed (this is different from the existing PERMISSIVE_HOLD option,
which selects the hold action when another key is tapped (pressed and
then released) while the dual-role key is pressed).  The Mod-Tap keys
already behave in a similar way, unless the IGNORE_MOD_TAP_INTERRUPT
option is enabled (but with some additional delays); the added option
makes this behavior available for all other kinds of dual-role keys.

* [Docs] Update tap-hold docs for HOLD_ON_OTHER_KEY_PRESS

Document the newly added HOLD_ON_OTHER_KEY_PRESS option and update the
documentation for closely related options (PERMISSIVE_HOLD and
IGNORE_MOD_TAP_INTERRUPT).

Use Layer Tap instead of Mod Tap in examples for PERMISSIVE_HOLD and
HOLD_ON_OTHER_KEY_PRESS, because the effect of using these options with
Mod Tap keys is mostly invisible without IGNORE_MOD_TAP_INTERRUPT.

Add comments before return statements in sample implementations of
`get_ignore_mod_tap_interrupt()`, `get_hold_on_other_key_press()` and
`get_permissive_hold()`.

Thanks to @Erovia and @precondition for comments and suggestions to
improve the documentation.
2021-08-07 09:16:26 +10:00
Gigahawk 13b94b468d Copy GMMK Pro screw specs to ISO readme (#13908) 2021-08-07 08:11:17 +10:00
QMK Bot 9e7bfdf6c6 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 11:55:12 +00:00
Nick Brassel f24bca5bb3 Update ChibiOS-Contrib, mirroring script. (#13896) 2021-08-06 16:40:12 +10:00
QMK Bot 538d9d7890 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 05:54:10 +00:00
QMK Bot 3ba2ce40a5 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 05:18:45 +00:00
Drashna Jaelre ea5d778f90 [Keyboard] Remove console from keebio via keyboards (#13901) 2021-08-05 21:29:29 -07:00
QMK Bot 293168f444 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 04:28:58 +00:00
Nick Brassel 0dafd83f72 Fix up builds after #8591 (#13900) 2021-08-06 09:57:09 +10:00
Pete Sevander 7e983796e1 Process combos earlier & overlapping combos (#8591)
* Combo processing improvements.

Now it is possible to use ModTap and LayerTap keys as part of combos.
Overlapping combos also don't trigger all the combos, just exactly the
one that you press.

New settings:
- COMBO_MUST_HOLD_MODS
- COMBO_MOD_TERM
- COMBO_TERM_PER_COMBO
- COMBO_MUST_HOLD_PER_COMBO
- COMBO_STRICT_TIMER
- COMBO_NO_TIMER

* Remove the size flags from combo_t struct boolean members.

This in the end actually saves space as the members are accessed so many
times. The amount of operations needed to access the bits uses more
memory than setting the size saves.

* Fix `process_combo_key_release` not called correctly with tap-only combos

* Fix not passing a pointer when NO_ACTION_TAPPING is defined.

* Docs for `COMBO_ONLY_FROM_LAYER`

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update quantum/process_keycode/process_combo.c

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Add `EXTRA_SHORT_COMBOS` option.

Stuff combo's `disabled` and `active` flags into `state`. Possibly can
save some space.

* Add more examples and clarify things with dict management system.

- Simple examples now has a combo that has modifiers included.
- The slightly more advanced examples now are actually more advanced
  instead of just `tap_code16(<modded-keycode>)`.
- Added a note that `COMBO_ACTION`s are not needed anymore as you can
  just use custom keycodes.
- Added a note that the `g/keymap_combo.h` macros use the
  `process_combo_event` function and that it is not usable in one's
  keymap afterwards.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Change "the" combo action example to "email" example.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Fix sneaky infinite loop with `combo_disable()`

No need to call `dump_key_buffer` when disabling combos because the
buffer is either being dumped if a combo-key was pressed, or the buffer is empty
if a non-combo-key is pressed.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-08-06 09:44:57 +10:00
Juan Pablo Kutianski 07553b41f0 [Feature] Swap buttons on PS2 Mouse/Trackball (#9205)
* [Feature Request] Swap buttons on PS2 Mouse/Trackball

* [Feature Request] Swap buttons on PS2 Mouse/Trackball

* Added id: to the doc

* Missing space

* Solve comment
https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783182

* Solve comments https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783182 & https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783884

* Format code more according to https://docs.qmk.fm/#/coding_conventions_c

* change logic to LUT

* WIP: Clean up

* WIP: Solution with xor operators to mask the change

* delete #endif & added the missed xor operator (ahhh)

* Variable (mouse_report->buttons): avoid setting twice https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783884

* Update tmk_core/protocol/ps2_mouse.c

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: juank <juank@fktech.net>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-06 09:09:58 +10:00
Takeshi ISHII 339675693b add yaml_build_options target (#10533)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-06 08:18:32 +10:00
Nick Brassel 6aaf3e84e9 Rework as per 9824 (#13898) 2021-08-06 08:14:43 +10:00
JohSchneider bcb6e23387 Arm ps2 mouse interrupt (#6490)
* ps2_mouse on ARM: an interrupt-version of the ps2-mouse code ported to ARM/chibios

* ps2_mouse on ARM: link EXT callback-channel selection to the user defined PS2_LINE_CLOCK

* ps2_mouse on ARM: replace DELAY_X defines with hardware-agnostic wait_X

* ps2_mouse on ARM: replace chibios-specific defines for the pins/lines with defines from quantum/config_common.h

and drop the '_LINE' component from teh define name

* ps2_mouse on ARM: expose the software-intterupt port as a user editable define

* Update docs/feature_ps2_mouse.md

Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com>

* Update feature_ps2_mouse.md

* use a define to deduce the PS_DATA_PORT instead

* reduce all-zero extcfg to oneliner

* ps2_mouse: use generic wait instead of avr-delay

* Update docs/feature_ps2_mouse.md

* ps2_mouse: changes for new chibios version

(17.6.0 -> 19.1.0)
replacing the legacy externa-interrupt driver with pal-callbacks

* ps2_mouse: use PLATFORM_KEY

Co-Authored-By: Joel Challis <git@zvecr.com>

* ps2_mouse: clang-format corrections

* ps2_mouse: add systemlocks

using the chibios equivalent to AVRs cli: chSys[Unl|L]ock

Co-authored-by: Johannes <you@example.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-06 07:51:24 +10:00
Joel Challis 5bbc527460 Bump gtest (#13885)
* Bump gtest

* Pin to latest release
2021-08-05 10:46:14 +10:00
Joel Challis bdaea259af Tidy up rgbkb/mun (#13801)
* Tidy up rgbkb/mun
2021-08-05 00:59:50 +01:00
QMK Bot cb4d91f85f Merge remote-tracking branch 'origin/master' into develop 2021-08-04 21:33:19 +00:00
Dasky 3917fd5639 [Keyboard] Fix knops keymaps (#13872) 2021-08-04 12:10:31 -07:00
Drashna Jaelre 3568eafd65 [Keyboard] Switch Draculad to using WPM char hack (#13886) 2021-08-04 11:30:49 -07:00
QMK Bot 6525b82f5f Merge remote-tracking branch 'origin/master' into develop 2021-08-04 12:25:28 +00:00
QMK Bot d9f30d366a Merge remote-tracking branch 'origin/master' into develop 2021-08-04 10:35:54 +00:00
QMK Bot d27ab328dc Merge remote-tracking branch 'origin/master' into develop 2021-08-04 02:10:01 +00:00
QMK Bot 600faab707 Merge remote-tracking branch 'origin/master' into develop 2021-08-04 00:23:25 +00:00
QMK Bot 4ffc9d8288 Merge remote-tracking branch 'origin/master' into develop 2021-08-03 23:30:12 +00:00
QMK Bot 2dbc71f037 Merge remote-tracking branch 'origin/master' into develop 2021-08-03 22:54:45 +00:00
QMK Bot c48d9c2b2a Merge remote-tracking branch 'origin/master' into develop 2021-08-03 21:40:39 +00:00
Joakim Tufvegren 982b782ce3 Trigger a wakeup after USB Reset on ChibiOS. (#12831)
After a USB Reset event the device must, according to the spec wake up
from any suspend state, so the Configured event that arrives afterwards
should be interpreted as an implicit wakeup.
2021-08-04 07:39:34 +10:00
Joakim Tufvegren 1409b36851 Remove the #10088 hotfix for Teensy 3.1-like Input:Club keyboards (#12870)
* Remove the #10088 hotfix for K20x MCU:s.

It seems to _cause_ the issue it intended to solve there.

* Cleaner way of removing #10088 hotfix.

Now only affects Ergodox Infinity, Whitefox and K-type, though.

Switches over Ergodox Infinity to the `IC_TEENSY_3_1` board, since that
was a nice place to implement the `restart_usb_driver` override.
However, I would guess this issue is present for other K20x/Teensy 3.1
boards as well...

* Fix comment regarding `IC_TEENSY_3_1` for all keyboards using it.
2021-08-04 07:38:37 +10:00
Joel Challis 34de7ca224 Move print/debug files to quantum (#12069)
* move print/debug files to quantum

* Update comments
2021-08-03 18:49:33 +01:00
Joel Challis 3f419dc872 Unconditionally call led_init_ports (#12116)
* Unconditionally call led_init_ports

* Another call to led_init_ports
2021-08-03 18:34:32 +01:00
QMK Bot 2bc7511b9e Merge remote-tracking branch 'origin/master' into develop 2021-08-03 17:21:26 +00:00
QMK Bot 51eb5285a6 Merge remote-tracking branch 'origin/master' into develop 2021-08-03 17:04:00 +00:00
QMK Bot 738e8e72ba Merge remote-tracking branch 'origin/master' into develop 2021-08-03 16:40:14 +00:00
QMK Bot 6961976855 Merge remote-tracking branch 'origin/master' into develop 2021-08-03 07:04:43 +00:00
QMK Bot a14f331c0a Merge remote-tracking branch 'origin/master' into develop 2021-08-03 03:17:45 +00:00
QMK Bot 79c88767dd Merge remote-tracking branch 'origin/master' into develop 2021-08-03 01:02:06 +00:00
QMK Bot a174d20d06 Merge remote-tracking branch 'origin/master' into develop 2021-08-03 00:53:24 +00:00
QMK Bot 5decdad8c6 Merge remote-tracking branch 'origin/master' into develop 2021-08-02 08:24:57 +00:00
QMK Bot 83bd56e68c Merge remote-tracking branch 'origin/master' into develop 2021-08-02 04:28:52 +00:00
Nick Brassel ee3c138385 Merge remote-tracking branch 'upstream/master' into develop 2021-08-02 13:55:36 +10:00
a_p_u_r_o 26b62f7a6c Fix alignment of USB out report buffer 2 -> 4 (#13838) 2021-08-02 00:32:26 +01:00
Drashna Jaelre ebed2e9a81 [BUG] Fix Key Override includes (#13831)
* [BUG] Fix Key Override includes

* simplify includes
2021-08-01 16:29:23 +01:00
Jonavin 53683e8d20 fix develop branch move file (#13832)
Co-authored-by: zvecr <git@zvecr.com>
2021-08-01 22:37:59 +10:00
Drashna Jaelre 41a770ded3 [Keyboard] Fix SRC include for matrix/m20add issi driver (#13826) 2021-07-31 12:18:11 -07:00
Drashna Jaelre 7bcbeffc2d Fix compile issues due to LED changes (#13821) 2021-07-31 17:30:13 +01:00
Joel Challis 70fb3e1aaf __flash? (#13799) 2021-07-31 14:35:30 +01:00
Joel Challis 206a995ccd Move some led drivers to common folder (#13749)
* Move some led drivers to common folder
2021-07-31 14:31:09 +01:00
Dasky aeb252435d [develop] Fix pimoroni trackball read address (#13810) 2021-07-31 06:12:19 -07:00
Drashna Jaelre f587ee5b5b Update LUFA Submodule (2021-07-30) (#13819) 2021-07-31 06:08:44 -07:00
QMK Bot 6c33290ffa Merge remote-tracking branch 'origin/master' into develop 2021-07-31 09:47:25 +00:00
ruro 52dad230d6 [CLI] Make qmk doctor more lenient about system config (#13804) 2021-07-30 21:43:42 -07:00
QMK Bot 6d82c92476 Merge remote-tracking branch 'origin/master' into develop 2021-07-31 00:34:43 +00:00
QMK Bot 7c70a90867 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 23:22:11 +00:00
QMK Bot 99fc2173a4 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 23:15:44 +00:00
QMK Bot f1af7da9ba Merge remote-tracking branch 'origin/master' into develop 2021-07-30 21:00:46 +00:00
Ryan b021c2f2c5 Port new_keyboard.sh to CLI (#13706)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-07-30 21:57:40 +01:00
QMK Bot 770a525425 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 18:45:24 +00:00
QMK Bot de1898e69e Merge remote-tracking branch 'origin/master' into develop 2021-07-30 18:18:01 +00:00
QMK Bot d34e61a43c Merge remote-tracking branch 'origin/master' into develop 2021-07-30 18:17:17 +00:00
QMK Bot 70dceefa01 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 18:16:50 +00:00
QMK Bot 701808372e Merge remote-tracking branch 'origin/master' into develop 2021-07-30 17:10:40 +00:00
QMK Bot 3461bdad43 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 17:02:12 +00:00
QMK Bot e6c884415d Merge remote-tracking branch 'origin/master' into develop 2021-07-30 16:54:23 +00:00
QMK Bot 04a2fa8ff3 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 15:13:15 +00:00
QMK Bot dfb370402e Merge remote-tracking branch 'origin/master' into develop 2021-07-30 15:12:13 +00:00
QMK Bot f87c72ef8f Merge remote-tracking branch 'origin/master' into develop 2021-07-30 15:11:30 +00:00
QMK Bot 4735aab75b Merge remote-tracking branch 'origin/master' into develop 2021-07-30 13:48:29 +00:00
QMK Bot ba1fdf97b1 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 07:17:44 +00:00
QMK Bot 38686dd0c5 Merge remote-tracking branch 'origin/master' into develop 2021-07-30 07:07:41 +00:00
James Young 80d8c4a483 Merge remote-tracking branch 'upstream/master' into develop 2021-07-29 23:04:06 -07:00
Ryan 25f43837d2 Remove references to info.json width and height in CLI (#13728) 2021-07-29 22:37:18 -07:00
QMK Bot 441914e0ad Merge remote-tracking branch 'origin/master' into develop 2021-07-29 17:45:54 +00:00
QMK Bot d243512ad6 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 16:50:56 +00:00
QMK Bot 703d886c21 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 16:12:56 +00:00
QMK Bot ae6a3ae20e Merge remote-tracking branch 'origin/master' into develop 2021-07-29 16:12:19 +00:00
QMK Bot 5bb736d1d6 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 16:04:06 +00:00
QMK Bot 935079f266 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:50:58 +00:00
QMK Bot 957bd4d1d1 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:50:24 +00:00
QMK Bot faf4f6d005 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:49:11 +00:00
QMK Bot 58baf5a3d8 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:48:22 +00:00
QMK Bot 04a0f0cb18 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:47:52 +00:00
QMK Bot 1df2f23ab4 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:43:12 +00:00
QMK Bot 5418777454 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:29:02 +00:00
QMK Bot ec8d08810f Merge remote-tracking branch 'origin/master' into develop 2021-07-29 15:23:56 +00:00
QMK Bot 614c627114 Merge remote-tracking branch 'origin/master' into develop 2021-07-29 02:01:05 +00:00
QMK Bot 69661eb5ab Merge remote-tracking branch 'origin/master' into develop 2021-07-28 23:34:48 +00:00
QMK Bot aabbaf11aa Merge remote-tracking branch 'origin/master' into develop 2021-07-28 11:02:58 +00:00
Joel Challis 4ef8ff458d Minor tidy up of key overrides (#13747)
* Minor tidy up of key overrides

* Update quantum/quantum.c

* Update quantum/quantum.c
2021-07-28 12:01:49 +01:00
QMK Bot 50964ae821 Merge remote-tracking branch 'origin/master' into develop 2021-07-28 11:01:28 +00:00
Joel Challis 03d258c222 matrix_scan_x -> x_task (#13748) 2021-07-28 12:01:23 +01:00
Drashna Jaelre c52c69d45f Allow for higher USB Polling rate on ATSAM boards (#13755) 2021-07-28 12:00:16 +01:00
QMK Bot 2f4361c88f Merge remote-tracking branch 'origin/master' into develop 2021-07-28 07:25:28 +00:00
Joel Challis 7ac7ca96e9 Remove some legacy files (#13715) 2021-07-27 23:57:42 +01:00
Joel Challis 3858a784c7 Align AW20216 driver (#13712)
* Align AW20216 driver

* Update drivers/awinic/aw20216.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Review comments

* formatting fixes

* stop if start failed?

* review comments

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-27 23:55:51 +01:00
Ryan 56443fe3cf Fix typo in Dactyl Manuform (#13740) 2021-07-27 08:16:41 -07:00
Ryan 468f705455 Dactyl Manuform cleanup (#13686) 2021-07-27 22:00:38 +10:00
QMK Bot 95de60513d Merge remote-tracking branch 'origin/master' into develop 2021-07-27 02:45:36 +00:00
QMK Bot 998ac203e4 Merge remote-tracking branch 'origin/master' into develop 2021-07-27 02:44:18 +00:00
Albert Y be34fdea4b [Keyboard] Add RGB matrix support for Kyria (#12789)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: filterpaper <filterpaper@localhost>
2021-07-26 19:42:34 -07:00
Drashna Jaelre 3affdcb45b Reduce firmware size in prep for #12670 (#13724)
* Reduce firmware size in pre for #12670

* Also disable pixel mode, just in case
2021-07-27 12:41:28 +10:00
Albert Y e032fbe326 [Keyboard] Update kyria make path example (#13720)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-07-26 18:01:16 -07:00
Drashna Jaelre eb46c954dc [Keymap] Drashna's Defaults cleanup (#13722) 2021-07-26 17:59:49 -07:00
Joel Challis 368efb5d2b Remove legacy BACKLIGHT_CUSTOM_DRIVER option (#13731) 2021-07-27 10:17:58 +10:00
Nick Brassel 394272a266 Merge remote-tracking branch 'upstream/master' into develop 2021-07-27 10:11:52 +10:00
Xelus22 e0375c0b71 [Keyboard Update] Change to L422 (#13717)
* change to L422

* Add bootloader

Co-authored-by: Ryan <fauxpark@gmail.com>

* add bootloader

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-26 16:05:13 +10:00
Xelus22 b9902a3f59 [Keyboard] Valor Rev 2 (#13551)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-25 22:34:39 -07:00
Drashna Jaelre 9e782e4f14 [Bug] Include gpio.h in solenoid driver for GPIO Control functions (#13716) 2021-07-25 21:24:47 -07:00
Joel Challis f945c352e7 Haptic: driver-> feature (#13713) 2021-07-25 19:14:58 -07:00
Drashna Jaelre 4bb595f94b [Keyboard] Fix up SplitKB keyboards (#13511) 2021-07-25 18:18:39 -07:00
QMK Bot d908970522 Merge remote-tracking branch 'origin/master' into develop 2021-07-25 16:18:46 +00:00
Drashna Jaelre 71e9f8fc11 Update LUFA (18-07-2021) and add QMK-HID Bootloader support (#13588)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-24 23:00:57 -07:00
Drashna Jaelre a030950fd6 [Keyboard] Fix compile size for the Vitamins Included via keymap (#13696) 2021-07-25 14:19:38 +10:00
Marc Tamsky 958483a4ba docs/cli_commands: fix typo (#13697) 2021-07-25 13:51:40 +10:00
Dasky a938c54512 dirty fix (#13695) 2021-07-25 12:33:30 +10:00
Nick Brassel 4ec8764c70 Merge remote-tracking branch 'upstream/master' into develop 2021-07-25 12:17:15 +10:00
Drashna Jaelre fdf3ce3cd1 [Keyboard] Fix compile size for the Lets Split Sockets via keymap (#13691) 2021-07-25 11:05:48 +10:00
Drashna Jaelre 210da7b233 [Keyboard] Fix Compile size on ungodly Launch Pad (#13692) 2021-07-25 11:05:19 +10:00
Ryan 8cc568bc29 Fix & clean up tronguylabs/m122_3270 (#13684) 2021-07-25 11:02:36 +10:00
Drashna Jaelre 95730d4f96 [Keyboard] Fix compile size for the Merge UM70 via keymap (#13690) 2021-07-25 11:01:13 +10:00
Drashna Jaelre 0b95ac2e4b Clean up remaining RGB_DISABLE_WHEN_USB_SUSPENDED defines (#13689) 2021-07-24 20:17:04 +01:00
Dasky ab42945c9a [Keyboard] Fix Q1 change dip switch to bool (#13687) 2021-07-24 10:45:34 -07:00
Dasky d972919204 [Docs] Fix typo in dip switch example (#13688) 2021-07-24 10:44:31 -07:00
QMK Bot 93fc2cbc8a Merge remote-tracking branch 'origin/master' into develop 2021-07-24 16:37:57 +00:00
QMK Bot e681c4368b Merge remote-tracking branch 'origin/master' into develop 2021-07-24 15:40:38 +00:00
QMK Bot 7aa1938fa4 Merge remote-tracking branch 'origin/master' into develop 2021-07-24 15:39:35 +00:00
Joel Challis e562238309 Fix up xd002 rgb keymaps (#13685) 2021-07-24 15:50:32 +01:00
Joel Challis 567da49ed0 Avoid LTO conficts on arm_atsam (#13676) 2021-07-24 12:13:06 +01:00
Drashna Jaelre 7907a72584 [Keyboard] Reduce compile size for dz60rgb v2.1 (#13680) 2021-07-24 19:36:41 +10:00
Drashna Jaelre a2d0efe5ad [Keyboard] Fix type on pandora via keymap (#13681) 2021-07-24 18:06:56 +10:00
Drashna Jaelre b8a1e14f53 Remove deprecated callbacks for encoders and dip switches (#13404) 2021-07-24 00:37:19 -07:00
Drashna Jaelre 73d4d7dc2b [Keyboard] Quick hack to fix Astro65 board (#13665)
* [Keyboard] Quick hack to fix Astro65 board

* Use proper pins
2021-07-23 23:38:54 -07:00
QMK Bot b7fe93c4b8 Merge remote-tracking branch 'origin/master' into develop 2021-07-24 03:45:59 +00:00
Nick Brassel 489c0f969d Disables rgblight twinkle by default. (#13677)
This takes up about 700 bytes of space, and needs to be swapped to
opt-in, rather than opt-out. Build failures in general on AVR due to the
scarcity of available flash. People can re-enable it by adding to their
keymap's config.h files:

```
  #define RGBLIGHT_EFFECT_TWINKLE
```
2021-07-24 13:40:00 +10:00
Drashna Jaelre 83a0d85f2b [Keyboard] Fix split matrix for sekigon grs 70ec (#13672) 2021-07-23 18:06:06 -07:00
Drashna Jaelre e35672169e [Keyboard] Fix matrix delay on Drop boards (#13671) 2021-07-23 23:36:39 +01:00
Drashna Jaelre 8f1ebdb718 [Keyboard] Disable console by default on all Keebio boards (#13649) 2021-07-23 14:57:24 -07:00
Erovia fdcea06336 CLI/Docs: Fix the format commands' name (#13668)
PR #13296 changed the name of the `cformat` and `pyformat` commands to
`format-c` and `format-py` respectively. This PR updates the documentation
and some parts of the CLI to use the new names.
Also add documentation for the new `format-text` subcommand, introduced
in the same PR.
2021-07-23 21:41:33 +01:00
Drashna Jaelre 164a74a078 [Keyboard] Enable LTO by default on BastardKB Scylla (#13664) 2021-07-23 11:28:41 -07:00
Takeshi ISHII 5b904a92c4 [Keyboard] Fix symmetric70_proto build break on develop branch (#13667)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-23 09:05:06 -07:00
Nick Brassel 6747890562 [Keyboard] Remove broken, unmaintained converter/ibm_5291 (#13658) 2021-07-23 08:17:15 -07:00
QMK Bot 8ea31698c9 Merge remote-tracking branch 'origin/master' into develop 2021-07-23 15:11:42 +00:00
Zach White fa32c66e9d [Keyboard] Fix dc01/left so that it doesn't throw a warning (#13653) 2021-07-23 08:06:12 -07:00
QMK Bot 4ff4c05719 Merge remote-tracking branch 'origin/master' into develop 2021-07-23 04:45:49 +00:00
Drashna Jaelre 816accda3d Fix errors with matrix_output_unselect_delay function calls (#13645) 2021-07-22 21:42:59 -07:00
QMK Bot 750f40566a Merge remote-tracking branch 'origin/master' into develop 2021-07-23 04:24:47 +00:00
Drashna Jaelre 21e0a9780d [Keyboard] Fix matrix issues with Promethium (#13648) 2021-07-22 21:02:50 -07:00
Drashna Jaelre bf57c552c9 [Keyboard] Fix Matrix Row number for ggkeyboards/genisis (#13647) 2021-07-22 21:02:16 -07:00
Drashna Jaelre 7f8bc83b30 [Keyboard] Fix default keymap for 0xCB 1337 keyboard (#13646) 2021-07-22 20:59:55 -07:00
Zach White 677222301e [Keyboard] Remove the vision_division keyboard (#13571) 2021-07-22 19:19:47 -07:00
QMK Bot 94065ca64a Merge remote-tracking branch 'origin/master' into develop 2021-07-23 01:51:40 +00:00
QMK Bot e1eb307d74 Merge remote-tracking branch 'origin/master' into develop 2021-07-23 01:48:06 +00:00
Albert Y b057c93caa Include lib8tion.c into RGB/LED matrix build list (#12699)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-07-22 18:37:22 -07:00
QMK Bot 490fa5a9e3 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 22:01:53 +00:00
QMK Bot 34a9acd090 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 16:39:42 +00:00
Dasky f33532764f [Keyboard][Bug] Add timer_avr to includes for broken builds (#13641) 2021-07-22 09:39:27 -07:00
QMK Bot 3316ac3f42 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 16:36:05 +00:00
QMK Bot 62099dc120 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 08:11:39 +00:00
Xelus22 6e9f667672 [Bug] Develop - DC01 left (#13597) 2021-07-22 01:06:03 -07:00
QMK Bot 78fb223da7 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 07:53:44 +00:00
QMK Bot 44ea6d0442 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 07:18:21 +00:00
Donald Kjer 13a514923a [Keyboard] Add Durgod Taurus K310 keyboard (#12314)
Co-authored-by: Tyler Tidman <tyler.tidman@draak.ca>
Co-authored-by: Simon Arlott <sa.me.uk>
2021-07-22 00:09:00 -07:00
QMK Bot 931bf52b74 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 06:58:28 +00:00
QMK Bot b5a1db9c05 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 06:48:20 +00:00
Patrick Stadler fb9a254a43 Retain brightness with lighting layers (#13025)
Add guard `RGBLIGHT_LAYERS_RETAIN_VAL` to retain the currently used val
when applying lighting layers.
2021-07-21 23:46:12 -07:00
QMK Bot 85128302c8 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 06:40:51 +00:00
QMK Bot a2d94371c6 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 06:40:15 +00:00
QMK Bot 0753cbc77f Merge remote-tracking branch 'origin/master' into develop 2021-07-22 06:31:35 +00:00
QMK Bot 5c42446508 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 06:22:35 +00:00
QMK Bot 203c4fdf58 Merge remote-tracking branch 'origin/master' into develop 2021-07-22 05:57:21 +00:00
QMK Bot 71560853ce Merge remote-tracking branch 'origin/master' into develop 2021-07-22 05:46:45 +00:00
QMK Bot b28c5e6acb Merge remote-tracking branch 'origin/master' into develop 2021-07-22 05:40:08 +00:00
QMK Bot 874a3df950 Merge remote-tracking branch 'origin/master' into develop 2021-07-21 18:30:35 +00:00
QMK Bot 201b4dc7ab Merge remote-tracking branch 'origin/master' into develop 2021-07-21 18:26:05 +00:00
Ryan 78265ea742 Fix MATRIX_COLS for aeboards/constellation/rev2 (#13633) 2021-07-21 19:26:00 +01:00
QMK Bot d2cdb0b1d3 Merge remote-tracking branch 'origin/master' into develop 2021-07-21 17:14:33 +00:00
QMK Bot df37ce4ea2 Merge remote-tracking branch 'origin/master' into develop 2021-07-21 15:36:02 +00:00
QMK Bot 531886b984 Merge remote-tracking branch 'origin/master' into develop 2021-07-21 05:28:30 +00:00
QMK Bot 793fabc449 Merge remote-tracking branch 'origin/master' into develop 2021-07-21 05:05:45 +00:00
QMK Bot 598fa867d1 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 20:10:21 +00:00
AlisGraveNil c98e25887c [Keyboard] GameBuddy v1.M (#12637)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 13:10:15 -07:00
QMK Bot 200f1e8e6a Merge remote-tracking branch 'origin/master' into develop 2021-07-20 20:08:44 +00:00
Zach White 4ab8734d6e Move all our CLI file formatters to the format dir (#13296)
* move all our file formatters to the format dir

* Apply suggestions from code review

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-07-20 11:52:14 -07:00
QMK Bot c4db9f7fb2 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 17:48:49 +00:00
QMK Bot 32a44b6a2c Merge remote-tracking branch 'origin/master' into develop 2021-07-20 17:47:04 +00:00
QMK Bot 362bbe53c7 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 17:44:20 +00:00
QMK Bot 11334ef6af Merge remote-tracking branch 'origin/master' into develop 2021-07-20 17:25:14 +00:00
QMK Bot 14a839e39c Merge remote-tracking branch 'origin/master' into develop 2021-07-20 17:12:47 +00:00
QMK Bot 638fda5946 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 16:59:21 +00:00
Jsully 4188d2272c [Keyboard] Add Durgod Hades, Galaxy and Venus Keyboards (#12893)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Don Kjer <don.kjer@gmail.com>
2021-07-20 09:44:22 -07:00
QMK Bot 6fa53023cb Merge remote-tracking branch 'origin/master' into develop 2021-07-20 16:41:40 +00:00
QMK Bot 154c7bc3e2 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 16:35:24 +00:00
QMK Bot 02f8bbee45 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 16:34:49 +00:00
QMK Bot dbaba42175 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 16:19:56 +00:00
QMK Bot 8925199ae8 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 16:17:22 +00:00
fauxpark 2e673c419a Merge remote-tracking branch 'upstream/master' into develop 2021-07-20 23:13:39 +10:00
QMK Bot 52ce2088e8 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 05:29:00 +00:00
QMK Bot 8109363148 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 05:27:43 +00:00
QMK Bot 36e2666cba Merge remote-tracking branch 'origin/master' into develop 2021-07-20 05:26:56 +00:00
QMK Bot 692e80d3c0 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 05:26:17 +00:00
QMK Bot 80c8a99204 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 05:25:11 +00:00
QMK Bot 9c5a0fb0b2 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 04:05:10 +00:00
QMK Bot 18ae1f423f Merge remote-tracking branch 'origin/master' into develop 2021-07-20 04:02:05 +00:00
QMK Bot cf4a121700 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 03:50:18 +00:00
QMK Bot d5907a674f Merge remote-tracking branch 'origin/master' into develop 2021-07-20 03:46:37 +00:00
Joakim Tufvegren 1414e9736d Switch Ergodox Infinity over to split_common (#13481) 2021-07-19 18:54:32 -07:00
QMK Bot 85621311db Merge remote-tracking branch 'origin/master' into develop 2021-07-20 01:49:28 +00:00
QMK Bot 6b2b42678d Merge remote-tracking branch 'origin/master' into develop 2021-07-20 01:48:31 +00:00
Gigahawk b994921703 [Keyboard] Split GMMK Pro PCBs into separate revisions (#13570)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-19 17:57:19 -07:00
QMK Bot 5753226588 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 00:52:37 +00:00
QMK Bot a480520e4e Merge remote-tracking branch 'origin/master' into develop 2021-07-20 00:32:52 +00:00
QMK Bot f9332747e3 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 00:30:40 +00:00
QMK Bot f493f560cc Merge remote-tracking branch 'origin/master' into develop 2021-07-20 00:27:04 +00:00
QMK Bot 85c4672981 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 00:07:14 +00:00
QMK Bot 2a3dde1d94 Merge remote-tracking branch 'origin/master' into develop 2021-07-20 00:06:21 +00:00
QMK Bot 1ece36549a Merge remote-tracking branch 'origin/master' into develop 2021-07-20 00:05:18 +00:00
Xelus22 b73a29aaea [Bug] Develop - Change uint32_t to layer_state_t (#13596)
* fix sat75

* update uint32_t to layer_state
2021-07-19 09:50:55 -07:00
QMK Bot f792aee954 Merge remote-tracking branch 'origin/master' into develop 2021-07-18 00:41:56 +00:00
QMK Bot 1374722033 Merge remote-tracking branch 'origin/master' into develop 2021-07-17 23:26:23 +00:00
QMK Bot 2eb8349437 Merge remote-tracking branch 'origin/master' into develop 2021-07-17 23:18:15 +00:00
QMK Bot c329b549e4 Merge remote-tracking branch 'origin/master' into develop 2021-07-17 17:16:52 +00:00
QMK Bot 4be8eec4f2 Merge remote-tracking branch 'origin/master' into develop 2021-07-17 08:43:29 +00:00
Ryan 777fffb067 Revert "Add rgblight to RGB Matrix VPATH" (#13559) 2021-07-17 13:39:52 +10:00
QMK Bot d1295ffe9a Merge remote-tracking branch 'origin/master' into develop 2021-07-17 03:13:57 +00:00
QMK Bot cdae9a7b19 Merge remote-tracking branch 'origin/master' into develop 2021-07-16 19:16:39 +00:00
QMK Bot 3495ffab77 Merge remote-tracking branch 'origin/master' into develop 2021-07-16 16:49:59 +00:00
QMK Bot edefcdc94f Merge remote-tracking branch 'origin/master' into develop 2021-07-16 16:43:21 +00:00
Ryan 332a5aa7cb Move SENDSTRING_BELL code to send_string.h (#13566) 2021-07-16 09:40:20 -07:00
QMK Bot 4bef126293 Merge remote-tracking branch 'origin/master' into develop 2021-07-16 16:40:05 +00:00
QMK Bot ff33eaea41 Merge remote-tracking branch 'origin/master' into develop 2021-07-16 16:38:29 +00:00
Johannes Choo 10d7eca5af Fix LED Hit Counter for LED/RGB Matrix (#12674) 2021-07-16 09:37:18 -07:00
QMK Bot 4066662bdf Merge remote-tracking branch 'origin/master' into develop 2021-07-16 16:09:10 +00:00
Ryan 7ed5ac4a60 Use string literals for SERIAL_NUMBER (#13403) 2021-07-16 19:43:18 +10:00
QMK Bot f0198ad15e Merge remote-tracking branch 'origin/master' into develop 2021-07-16 03:55:56 +00:00
Nick Brassel 610788184a Merge remote-tracking branch 'upstream/master' into develop 2021-07-16 09:11:51 +10:00
Chris Cullin 70267b35c3 Dual RGB Matrix IS31FL3737 driver support to address #13442 (#13457)
* initial commit

* removed changes to write_pwm_buffer

* backward compatbility added

* fixed issue with backward compatibility

* documentation update

* removed unneccessary comment. branched from master

* updated per comments #13457

* removed blank line

* cformat on diff files
2021-07-15 22:52:05 +01:00
QMK Bot e07401bb5a Merge remote-tracking branch 'origin/master' into develop 2021-07-15 16:55:32 +00:00
QMK Bot b7ec43ed14 Merge remote-tracking branch 'origin/master' into develop 2021-07-15 04:24:45 +00:00
QMK Bot f134c5e124 Merge remote-tracking branch 'origin/master' into develop 2021-07-14 20:56:59 +00:00
QMK Bot 21b3234780 Merge remote-tracking branch 'origin/master' into develop 2021-07-14 20:55:48 +00:00
Ryan fd8628ccdc Migrate more fn_actions stuff (#13502) 2021-07-15 03:52:45 +10:00
QMK Bot e69c325a9c Merge remote-tracking branch 'origin/master' into develop 2021-07-14 17:50:47 +00:00
Zach White 44d322623e Merge remote-tracking branch 'origin/master' into develop
Resolved Conflicts:
	keyboards/checkerboards/nop60/info.json
2021-07-14 10:30:28 -07:00
Jonas Gessner 52cfc9259b [Feature] Key Overrides (#11422) 2021-07-13 10:13:51 -07:00
XScorpion2 1ae4d52013 Keyboards/sol rev2 fix (#13533)
* Fixed a recent develop error

* minor fix cause I am tired
2021-07-13 18:45:31 +10:00
Takeshi ISHII ac2e6e01f1 Change the prototype of matrix_output_unselect_delay() (#13045)
The prototype of matrix_output_unselect_delay() has been changed as follows.

```c
void matrix_output_unselect_delay(uint8_t line, bool key_pressed);
```

Currently, no keyboard seems to be redefining `matrix_output_unselect_delay()`, so there is no change in the system behavior.

With this change, the keyboard level code can get some optimization hints, for example, the following.

```c
 void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
     /* If none of the keys are pressed,
      *  there is no need to wait for time for the next line. */
     if (key_pressed) {
 #ifdef MATRIX_IO_DELAY
 #  if MATRIX_IO_DELAY > 0
         wait_us(MATRIX_IO_DELAY);
 #  endif
 #else
         wait_us(30);
 #endif
     }
}
```
2021-07-13 16:50:25 +09:00
QMK Bot a62b10176e Merge remote-tracking branch 'origin/master' into develop 2021-07-12 17:15:14 +00:00
Alex Marmon 00e97aae67 [Keymap] add simple gmmk pro macos keymap with rgb (#13504) 2021-07-12 09:36:24 -07:00
QMK Bot 9d282d81ac Merge remote-tracking branch 'origin/master' into develop 2021-07-12 15:53:05 +00:00
Chris Cullin 9c74fd14bc Enable g_is31_leds PROGMEM for RGB Matrix IS31FL3737 driver (#13480) 2021-07-12 08:51:23 -07:00
Joakim Tufvegren 4706231831 Fix two out of bounds accesses from #13330. (#13525)
Two occurrences of `MATRIX_ROWS` weren't properly changed to
`ROWS_PER_HAND` in #13330, causing a crash during boot on at least my
Ergodox Infinity (including #13481).
2021-07-12 08:43:05 -07:00
QMK Bot 89980ff004 Merge remote-tracking branch 'origin/master' into develop 2021-07-12 07:24:08 +00:00
Drashna Jaelre ccc0b23a75 Unify matrix for split common and regular matrix (#13330) 2021-07-11 14:31:35 -07:00
Zach White 0b06452d00 Matrix consistency check (#13470)
* Add a check to make sure the matrix sizes match the actual matrix size

* make flake8 happy
2021-07-11 09:43:58 -07:00
QMK Bot fd284c43a5 Merge remote-tracking branch 'origin/master' into develop 2021-07-11 16:42:52 +00:00
QMK Bot 14ba806140 Merge remote-tracking branch 'origin/master' into develop 2021-07-11 15:50:47 +00:00
QMK Bot ca0c57125f Merge remote-tracking branch 'origin/master' into develop 2021-07-11 15:47:49 +00:00
Zach White adf0d70da4 first pass: matrix consistency improvements (#13471) 2021-07-11 08:41:57 -07:00
QMK Bot 5a50a28962 Merge remote-tracking branch 'origin/master' into develop 2021-07-11 07:52:16 +00:00
QMK Bot 36890181f7 Merge remote-tracking branch 'origin/master' into develop 2021-07-11 05:37:58 +00:00
QMK Bot 0bfb14409a Merge remote-tracking branch 'origin/master' into develop 2021-07-11 05:08:58 +00:00
Erovia e05f9c4a08 CLI: Add git and venv info to doctor's output (#13405)
Most of the checks are saved from zvecr's retired 'up/status'
subcommand PR.
2021-07-10 16:04:50 +01:00
QMK Bot 789be4f114 Merge remote-tracking branch 'origin/master' into develop 2021-07-10 07:36:22 +00:00
QMK Bot ee44df5b91 Merge remote-tracking branch 'origin/master' into develop 2021-07-10 01:33:32 +00:00
QMK Bot 9cb8f6d781 Merge remote-tracking branch 'origin/master' into develop 2021-07-09 16:11:26 +00:00
QMK Bot 5179d573aa Merge remote-tracking branch 'origin/master' into develop 2021-07-09 09:41:24 +00:00
QMK Bot 8ffdf83015 Merge remote-tracking branch 'origin/master' into develop 2021-07-08 17:59:15 +00:00
QMK Bot ff61b870cf Merge remote-tracking branch 'origin/master' into develop 2021-07-08 08:47:41 +00:00
QMK Bot 1fd1198522 Merge remote-tracking branch 'origin/master' into develop 2021-07-08 08:46:57 +00:00
Joakim Tufvegren e675a9fc60 Use the new ST7565 driver on Ergodox Infinity (#13165) 2021-07-07 18:05:35 +10:00
QMK Bot 90af59ea9d Merge remote-tracking branch 'origin/master' into develop 2021-07-07 01:28:42 +00:00
QMK Bot dd0df14d89 Merge remote-tracking branch 'origin/master' into develop 2021-07-07 01:27:51 +00:00
QMK Bot ab43bfe9c9 Merge remote-tracking branch 'origin/master' into develop 2021-07-07 01:07:10 +00:00
QMK Bot eac5af5c23 Merge remote-tracking branch 'origin/master' into develop 2021-07-07 01:06:24 +00:00
QMK Bot 99d1475141 Merge remote-tracking branch 'origin/master' into develop 2021-07-07 01:05:02 +00:00
QMK Bot 0aa963c740 Merge remote-tracking branch 'origin/master' into develop 2021-07-06 22:20:51 +00:00
QMK Bot 2048c28f78 Merge remote-tracking branch 'origin/master' into develop 2021-07-06 21:47:54 +00:00
QMK Bot 26bb2d7063 Merge remote-tracking branch 'origin/master' into develop 2021-07-06 17:48:01 +00:00
QMK Bot 150f4ef5dc Merge remote-tracking branch 'origin/master' into develop 2021-07-06 14:56:47 +00:00
QMK Bot fc4f03086f Merge remote-tracking branch 'origin/master' into develop 2021-07-06 05:34:38 +00:00
Thomas Weißschuh a535d24ecf core: chibios: bootloader: use integer pointers as volatile (#13450)
This prevents gcc from incorrectly trying to validate array bounds.

```
tmk_core/common/chibios/bootloader.c: error: '__builtin_memcpy' offset [0, 21] is out of the bounds [0, 0] [-Werror=array-bounds]
  107 |     __builtin_memcpy((void *) VBAT, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578#c16
Fixes #12925
2021-07-06 00:24:48 +01:00
Ryan 82137e14f2 Migrate SHIFT_ESC and RGB fn_actions to Grave Escape and RGB keycodes (#13360) 2021-07-06 09:08:08 +10:00
Ryan 50d4dfd2e6 keymap_extras: Remove deprecated defines (#12949) 2021-07-06 09:05:11 +10:00
QMK Bot ca1b114297 Merge remote-tracking branch 'origin/master' into develop 2021-07-05 17:15:57 +00:00
fauxpark 0386aea09f Merge remote-tracking branch 'upstream/master' into develop 2021-07-05 21:57:13 +10:00
QMK Bot bcf09d9f68 Merge remote-tracking branch 'origin/master' into develop 2021-07-05 10:08:07 +00:00
QMK Bot da7cba40a3 Merge remote-tracking branch 'origin/master' into develop 2021-07-05 04:12:23 +00:00
QMK Bot 83c8e750de Merge remote-tracking branch 'origin/master' into develop 2021-07-05 00:34:58 +00:00
Jameson Thatcher 550d9253b0 Allow invert of SPLIT_HAND_PIN logic (#13433)
* added support for inverting the hand pin for split keyboards

* Added docs about SPLIT_HAND_LOW_IS_LEFT

* Update docs/feature_split_keyboard.md

bring #define for split hand pin low for left half name in line with grid pin define

Co-authored-by: Joel Challis <git@zvecr.com>

* Update quantum/split_common/split_util.c

update split hand pin low is left name to match split hand grid define

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2021-07-05 09:06:40 +10:00
QMK Bot 40c5f97871 Merge remote-tracking branch 'origin/master' into develop 2021-07-04 22:41:06 +00:00
QMK Bot 08e4808bf5 Merge remote-tracking branch 'origin/master' into develop 2021-07-04 15:35:18 +00:00
QMK Bot 6e00b5aaed Merge remote-tracking branch 'origin/master' into develop 2021-07-04 03:24:49 +00:00
QMK Bot 99ce5446ad Merge remote-tracking branch 'origin/master' into develop 2021-07-04 03:14:17 +00:00
QMK Bot c022821c76 Merge remote-tracking branch 'origin/master' into develop 2021-07-04 02:55:03 +00:00
QMK Bot ef7862280d Merge remote-tracking branch 'origin/master' into develop 2021-07-04 01:06:32 +00:00
QMK Bot def12e2287 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 23:49:24 +00:00
QMK Bot b635ca4976 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 16:45:04 +00:00
QMK Bot 55837093d5 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 16:09:35 +00:00
QMK Bot 6b59220097 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 16:05:07 +00:00
QMK Bot a39c445c26 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 15:18:57 +00:00
QMK Bot c82e0d64a2 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 15:14:07 +00:00
QMK Bot 19daf3da23 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 15:03:31 +00:00
Gigahawk 6ac037aa3c AW20216 use register increment for framebuffer flushes (#13430) 2021-07-03 08:01:23 -07:00
Drashna Jaelre 0b22783c64 Improve 'show_build_options' target (#13425)
* Improve 'show_build_options' target

* Align the output to maximize readibility
* Add Bootloader to listed output

* Also alighn build options

Thanks mtei!
2021-07-03 07:43:49 -07:00
QMK Bot 4459f91dc2 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 08:37:05 +00:00
QMK Bot 4f0a7e4364 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 08:16:45 +00:00
QMK Bot 8465d28d0f Merge remote-tracking branch 'origin/master' into develop 2021-07-03 08:07:02 +00:00
QMK Bot b45b9ed536 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 08:01:00 +00:00
QMK Bot 4ba56d7219 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 07:59:58 +00:00
QMK Bot 15bcae710e Merge remote-tracking branch 'origin/master' into develop 2021-07-03 07:58:41 +00:00
QMK Bot 3824651f3b Merge remote-tracking branch 'origin/master' into develop 2021-07-03 07:57:54 +00:00
Koichi Katano 9d61043363 [Keyboard] Add Bakeneko65 V3 and revision folders (#13228) 2021-07-03 00:57:50 -07:00
SergioPoverony ca4536e492 [Keyboard] Add Creator Pro by SergioPoverony (#13154)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-03 00:55:39 -07:00
QMK Bot eea89cc636 Merge remote-tracking branch 'origin/master' into develop 2021-07-03 07:51:01 +00:00
Thomas Weißschuh b5c361542e mousekey: expose current report to users (#13069) 2021-07-03 00:50:47 -07:00
Drashna Jaelre 3ab805fc67 Add support for NO_PIN to all matrix types (#12238)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-07-03 00:20:11 -07:00
Drashna Jaelre 8da8aabbe5 Improve layer mask handling (#13065) 2021-07-03 00:19:52 -07:00
fauxpark 03807c2c6e Merge remote-tracking branch 'upstream/master' into develop 2021-07-03 16:38:05 +10:00
team0110 7629b7f52a [Keyboard] Relocalize and Update p1800fl (#12425)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: marhalloweenvt <marhalloweenvt@gmail.com>
Co-authored-by: Drashna Jael're <drashna@live.com>
2021-07-02 21:46:28 -07:00
William Ehman ad30218701 [Keyboard] manyboard macro (#11896)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-02 20:53:13 -07:00
Stefan Kerkmann 04bc74d8f5 Switch split_common to CRC subsystem (#13418) 2021-07-02 22:28:32 +01:00
QMK Bot 638373a16c Merge remote-tracking branch 'origin/master' into develop 2021-07-02 13:01:28 +00:00
QMK Bot abe8b080bf Merge remote-tracking branch 'origin/master' into develop 2021-07-02 06:21:57 +00:00
QMK Bot 371d3bfbdd Merge remote-tracking branch 'origin/master' into develop 2021-07-02 06:09:01 +00:00
Ryan b721e054a2 Add rgblight to RGB Matrix VPATH (#13371) 2021-07-02 16:08:45 +10:00
QMK Bot 348750294b Merge remote-tracking branch 'origin/master' into develop 2021-07-02 00:46:10 +00:00
Stefan Kerkmann 117bff17ba [Core] Unite half-duplex and full-duplex serial drivers (#13081)
* Unite half-duplex and full-duplex serial driver.

* Add full duplex operation mode to the interrupt based driver
* Delete DMA UART based full duplex driver
* The new driver targets #11930

* Fix freezes with failing transactions in half-duplex

* Increase default serial TX/RX buffer size to 128 bytes

* Correctly use bool instead of size_t

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-07-02 08:24:08 +10:00
QMK Bot 47b12470e7 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 19:39:55 +00:00
QMK Bot 8f018c2863 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 19:17:58 +00:00
QMK Bot 0b7936c4e8 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 17:12:52 +00:00
Drashna Jaelre 0bde920817 Convert Dip Switch callbacks to boolean functions (#13399) 2021-07-01 08:22:21 -07:00
QMK Bot 8f78be076d Merge remote-tracking branch 'origin/master' into develop 2021-07-01 10:48:20 +00:00
QMK Bot b6348ffffd Merge remote-tracking branch 'origin/master' into develop 2021-07-01 09:23:16 +00:00
QMK Bot 2bf8671293 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 09:22:38 +00:00
QMK Bot b22fc58f25 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 09:21:48 +00:00
QMK Bot 5ca893bd55 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 08:24:38 +00:00
QMK Bot 70b1d7e459 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 08:23:37 +00:00
QMK Bot dddefa2fd7 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 08:22:19 +00:00
QMK Bot 7fdb95af36 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 08:08:12 +00:00
QMK Bot af13b7bf05 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 08:06:43 +00:00
QMK Bot 896f11b2bd Merge remote-tracking branch 'origin/master' into develop 2021-07-01 07:54:37 +00:00
QMK Bot 425c0dad01 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 07:45:16 +00:00
QMK Bot 29228e5b78 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 07:42:50 +00:00
Drashna Jaelre b7cf9a888a Drashna's split updates (#13350)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-01 00:42:32 -07:00
QMK Bot bbe45185e3 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 07:30:05 +00:00
QMK Bot 2b7172cbff Merge remote-tracking branch 'origin/master' into develop 2021-07-01 07:13:28 +00:00
QMK Bot 8b2e5d622c Merge remote-tracking branch 'origin/master' into develop 2021-07-01 06:42:24 +00:00
Ryan 44260c3414 Remove API_SYSEX_ENABLEs from rules.mk (#13389) 2021-06-30 23:30:42 -07:00
QMK Bot 70cc5809f9 Merge remote-tracking branch 'origin/master' into develop 2021-07-01 05:05:13 +00:00
Nick Brassel 8bb231aa1c Adds support for STM32L412xB, STM32L422xB. (#13383)
* Adds support for STM32L412xB, STM32L422xB.

* Add to list of supported MCUs.

* Disable SPI1 by default.
2021-06-30 10:07:40 +10:00
QMK Bot 8596504361 Merge remote-tracking branch 'origin/master' into develop 2021-06-29 23:31:17 +00:00
Michael Stapelberg f533d9e033 add kinT kinesis keyboard controller (kint41 variant) (#13333)
fixes https://github.com/kinx-project/kint/issues/5
2021-06-30 08:54:45 +10:00
QMK Bot 76ed98c51d Merge remote-tracking branch 'origin/master' into develop 2021-06-29 22:37:42 +00:00
Ryan 653082235a Relocate RGB/HSV color defs to a more fitting place (#13377) 2021-06-29 19:15:58 +01:00
QMK Bot 1e2378fe7f Merge remote-tracking branch 'origin/master' into develop 2021-06-29 17:19:42 +00:00
QMK Bot 888cec0290 Merge remote-tracking branch 'origin/master' into develop 2021-06-29 03:39:53 +00:00
QMK Bot 8b919aa5d6 Merge remote-tracking branch 'origin/master' into develop 2021-06-29 03:31:16 +00:00
QMK Bot 3f813f87cd Merge remote-tracking branch 'origin/master' into develop 2021-06-29 03:25:00 +00:00
QMK Bot 8080bc17d0 Merge remote-tracking branch 'origin/master' into develop 2021-06-29 01:55:05 +00:00
QMK Bot 2665b4e487 Merge remote-tracking branch 'origin/master' into develop 2021-06-28 17:32:05 +00:00
Ryan cb23fe9fc1 Move RGBLight code into its own folder (#13312) 2021-06-28 15:15:24 +10:00
QMK Bot 5a5015594f Merge remote-tracking branch 'origin/master' into develop 2021-06-27 03:22:31 +00:00
Joakim Tufvegren ed56fc7da1 Fix building layouts from JSON (#13310)
Broken by #12632.
2021-06-27 12:52:38 +10:00
QMK Bot 023b85db96 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 19:08:13 +00:00
Ryan bbe43a91eb CLI: Add subcommand to generate version.h (#13151) 2021-06-27 02:29:02 +10:00
Zach White 546f5f2c4f Error log cleanup (#13349)
* error log cleanup: 40percentclub/25

40percentclub/25: Claims to support a community layout that does not exist: ortho_5x5

* error log cleanup: 40percentclub/4x4

☒ 40percentclub/4x4: Claims to support a community layout that does not exist: ortho_4x8
☒ 40percentclub/4x4: Claims to support a community layout that does not exist: ortho_4x16

* error log cleanup: 40percentclub/5x5

☒ 40percentclub/5x5: Claims to support a community layout that does not exist: ortho_5x5

* error log cleanup: 40percentclub/nori

☒ 40percentclub/nori: Claims to support a community layout that does not exist: ortho_4x8

* error log cleanup: barracuda

☒ barracuda: Claims to support a community layout that does not exist: ortho_3x11

* error log cleanup: bpiphany/frosty_flake

☒ keyboards/bpiphany/frosty_flake/frosty_flake.h: LAYOUT_tkl_ansi: Nested layout macro detected. Matrix data not available!

* error log cleanup: bpiphany/pegasushoof/2013

☒ keyboards/bpiphany/pegasushoof/2013/2013.h: LAYOUT_tkl_ansi: Nested layout macro detected. Matrix data not available!

* error cleanup: bpiphany/pegasushoof/2015

☒ keyboards/bpiphany/pegasushoof/2015/2015.h: LAYOUT_tkl_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/bpiphany/pegasushoof/2015/2015.h: LAYOUT_tkl_iso: Nested layout macro detected. Matrix data not available!

* error log cleanup: 40percentclub

☒ 40percentclub/25: Claims to support a community layout that does not exist: ortho_5x10
☒ 40percentclub/5x5: Claims to support a community layout that does not exist: ortho_5x10

* error cleanup: converter/usb_usb

☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_iso: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_jis: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_iso: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_jis: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_iso: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_jis: Nested layout macro detected. Matrix data not available!

* error cleanup: ergo42

☒ ergo42/rev1: Claims to support a community layout that does not exist: ortho_4x14

* error cleanup: handwired/412_64

☒ handwired/412_64: Claims to support a community layout that does not exist: ortho_4x16

* error log cleanup: handwired/tritium_numpad
☒ handwired/tritium_numpad: Claims to support a community layout that does not exist: nontra_6x4

* error log cleanup: handwired/xealous/rev1
☒ handwired/xealous/rev1: Claims to support a community layout that does not exist: split60

* error log cleanup: kbdfans/kbd67/rev2

⚠ kbdfans/kbd67/rev2: info.json uses alias name LAYOUT_65_ansi_blocker_splitbs instead of LAYOUT_65_ansi_blocker_split_bs

* error cleanup: keebio/nyquist

☒ keyboards/keebio/nyquist/nyquist.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
☒ keyboards/keebio/nyquist/nyquist.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
☒ keyboards/keebio/nyquist/nyquist.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!

* error cleanup: kindakeyboards/conone65

☒ kindakeyboards/conone65: Claims to support a community layout that does not exist: 65_iso_split_bs

* error cleanup: latinpadble

☒ latinpadble: Claims to support a community layout that does not exist: pad

* error cleanup: masterworks/classy_tkl/rev_a

☒ masterworks/classy_tkl/rev_a: Claims to support a community layout that does not exist: tkl_ansi_wkl

* error cleanup: meira

⚠ meira/featherble: info.json uses alias name LAYOUT_ortho_4x12 instead of LAYOUT
⚠ meira/promicro: info.json uses alias name LAYOUT_ortho_4x12 instead of LAYOUT

* error cleanup: nopunin10did/jabberwocky

⚠ nopunin10did/jabberwocky: MANUFACTURER in config.h is overwriting manufacturer in info.json

* error cleanup: ok60

☒ ok60: Claims to support a community layout that does not exist: 60_ansi_split_bksp_rshift

* error cleanup: ok60

☒ ok60: Claims to support a community layout that does not exist: 60_ansi_split_bksp_rshift

* error cleanup: planck

☒ keyboards/planck/ez/ez.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
☒ keyboards/planck/ez/ez.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
⚠ planck/thk: DEBOUNCE in config.h is overwriting debounce in info.json
⚠ planck/thk: DEVICE_VER in config.h is overwriting usb.device_ver in info.json
⚠ planck/thk: DIODE_DIRECTION in config.h is overwriting diode_direction in info.json
⚠ planck/thk: MANUFACTURER in config.h is overwriting manufacturer in info.json
⚠ planck/thk: PRODUCT_ID in config.h is overwriting usb.pid in info.json
⚠ planck/thk: VENDOR_ID in config.h is overwriting usb.vid in info.json
⚠ planck/thk: QMK_ESC_OUTPUT in config.h is overwriting qmk_lufa_bootloader.esc_output in info.json
⚠ planck/thk: QMK_ESC_INPUT in config.h is overwriting qmk_lufa_bootloader.esc_input in info.json
⚠ planck/thk: QMK_LED in config.h is overwriting qmk_lufa_bootloader.led in info.json
⚠ planck/thk: QMK_SPEAKER in config.h is overwriting qmk_lufa_bootloader.speaker in info.json
⚠ planck/thk: Matrix pins are specified in both info.json and config.h, the config.h values win.
⚠ planck/thk: LAYOUTS in rules.mk is overwriting community_layouts in info.json
⚠ planck/thk: Feature mousekey is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature extrakey is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature console is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature command is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature sleep_led is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature nkro is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature backlight is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature rgblight is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature bluetooth is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature audio is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature encoder is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature dip_switch is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature bootmagic_lite is specified in both info.json and rules.mk, the rules.mk value wins.

* error cleanup: primekb/prime_m

☒ primekb/prime_m: Claims to support a community layout that does not exist: ortho_5x6

* error cleanup: rgbkb/sol/rev2

⚠ rgbkb/sol/rev2: RGBLED_NUM->rgblight.led_count: invalid literal for int() with base 10: '(BACKLIGHT_LEDS + FULLHAND_LEDS)'

* error log cleanup: shk9

☒ shk9: Claims to support a community layout that does not exist: ortho_3x3

* error log cleanup: sowbug

⚠ sowbug/68keys: RGBLED_NUM->rgblight.led_count: invalid literal for int() with base 10: 'DRIVER_LED_TOTAL'
⚠ sowbug/ansi_tkl: RGBLED_NUM->rgblight.led_count: invalid literal for int() with base 10: '(DRIVER_LED_TOTAL)'

* error log cleanup: torn

☒ torn: Claims to support a community layout that does not exist: split_3x6_4

* error cleanup: ymdk/np24/u4rgb6

☒ ymdk/np24/u4rgb6: Claims to support a community layout that does not exist: ortho_4x6

* error cleanup: masterworks/classy_tkl/rev_a

☒ masterworks/classy_tkl/rev_a: Claims to support a community layout that does not exist: tkl_iso_wkl
2021-06-26 08:38:14 -07:00
QMK Bot 5489c47a27 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 10:49:16 +00:00
QMK Bot 298b383126 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 05:48:19 +00:00
Dasky cd30861394 Fix CRC for AVR and enable again. (#13253) 2021-06-25 22:26:19 -07:00
XScorpion2 8b059088ba Keyboards/RGBKB/Mün (#13239) 2021-06-25 22:00:21 -07:00
QMK Bot f8c01a8e5a Merge remote-tracking branch 'origin/master' into develop 2021-06-26 04:42:38 +00:00
QMK Bot 580999661f Merge remote-tracking branch 'origin/master' into develop 2021-06-26 04:28:08 +00:00
QMK Bot 363c11622e Merge remote-tracking branch 'origin/master' into develop 2021-06-26 04:13:03 +00:00
QMK Bot c19a221719 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 04:07:05 +00:00
QMK Bot e64705d2f4 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 03:58:15 +00:00
QMK Bot d6592d8988 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 03:57:18 +00:00
QMK Bot 259b8d355e Merge remote-tracking branch 'origin/master' into develop 2021-06-26 03:31:19 +00:00
QMK Bot 5adb288bb3 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 03:25:18 +00:00
QMK Bot 5ba9f43590 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 01:53:46 +00:00
QMK Bot 9337aab038 Merge remote-tracking branch 'origin/master' into develop 2021-06-26 01:39:01 +00:00
QMK Bot 0ef0c03a46 Merge remote-tracking branch 'origin/master' into develop 2021-06-25 03:52:10 +00:00
Zach White b908275354 Optimize our jsonschema by using refs (#13271)
* fix some broken info.json files

* optimize our jsonschema using refs

* fix formatting after vscode broke it

* make flake8 happy

* cleanup

* make our schema validation more compact and flexible
2021-06-24 20:48:53 -07:00
QMK Bot 9d4412cb8b Merge remote-tracking branch 'origin/master' into develop 2021-06-25 03:32:21 +00:00
QMK Bot 0412c92b68 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 23:15:36 +00:00
QMK Bot e8d1c0e300 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 14:59:59 +00:00
QMK Bot ae5755d27a Merge remote-tracking branch 'origin/master' into develop 2021-06-24 12:55:22 +00:00
QMK Bot 3d7e062baa Merge remote-tracking branch 'origin/master' into develop 2021-06-24 12:54:22 +00:00
QMK Bot 6418c1fde9 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 04:34:20 +00:00
QMK Bot 8d87bfd46a Merge remote-tracking branch 'origin/master' into develop 2021-06-24 03:36:07 +00:00
QMK Bot 9b65154e58 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:55:14 +00:00
Michael Stapelberg 143ded332d kint36: set correct EEPROM size (#12946)
The Teensy 3.6 comes with 4096 bytes of EEPROM.

This is commit 1 of 2 to make the EEPROM work.
The next commit changes the core code to wire up the EEPROM.
2021-06-24 12:54:18 +10:00
QMK Bot c6d5049fb1 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:54:06 +00:00
QMK Bot 08b62c5f5a Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:51:44 +00:00
QMK Bot a7b54d288f Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:49:19 +00:00
QMK Bot 635f32b219 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:46:37 +00:00
QMK Bot b351338558 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:33:18 +00:00
QMK Bot 8024f2683b Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:28:59 +00:00
QMK Bot ba3c5ec84e Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:27:43 +00:00
QMK Bot 53ca79b922 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:27:20 +00:00
QMK Bot 7313fee181 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:26:58 +00:00
QMK Bot 054f1ccbdf Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:25:25 +00:00
QMK Bot 54abf60e04 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:24:38 +00:00
QMK Bot 303132fa8d Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:24:08 +00:00
QMK Bot 7e7e6d1a02 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:23:10 +00:00
QMK Bot b69fa51ec3 Merge remote-tracking branch 'origin/master' into develop 2021-06-24 02:22:11 +00:00
Gigahawk 1ea01765e1 Allow settable SPI divisor for AW20216 driver, set default to 4 (#13309) 2021-06-23 19:57:46 +10:00
QMK Bot 531f34d2a0 Merge remote-tracking branch 'origin/master' into develop 2021-06-23 09:52:39 +00:00
QMK Bot 38d979189b Merge remote-tracking branch 'origin/master' into develop 2021-06-23 09:45:48 +00:00
QMK Bot c742d0bde4 Merge remote-tracking branch 'origin/master' into develop 2021-06-23 03:31:18 +00:00
Ryan 4319aca91c Fix linker error when rgblight and RGB Matrix are both enabled (#13304) 2021-06-23 10:53:00 +10:00
QMK Bot 973a006c45 Merge remote-tracking branch 'origin/master' into develop 2021-06-23 00:45:47 +00:00
Ryan 791363a680 Remove rgblight stubs (#13302) 2021-06-23 10:16:41 +10:00
QMK Bot 540d95125c Merge remote-tracking branch 'origin/master' into develop 2021-06-22 23:34:48 +00:00
QMK Bot 010715877f Merge remote-tracking branch 'origin/master' into develop 2021-06-22 23:33:12 +00:00
Zach White df794fa5cc Remove the redundant pin name validation (#13251)
* remove the redundant pin name validation

* fix submodules
2021-06-22 12:02:12 -07:00
Zach White e87d231645 Refactor doctor.py into a directory (#13298) 2021-06-22 19:50:53 +01:00
Ryan d61e5c0027 Move LED/RGB Matrix code into their own directories (#13257) 2021-06-22 18:26:23 +10:00
QMK Bot c03cb4edd7 Merge remote-tracking branch 'origin/master' into develop 2021-06-22 02:42:29 +00:00
Purdea Andrei dd16d3cc7e eeprom_i2c driver: added EXTERNAL_EEPROM_WP_PIN configuration option. (#12617) 2021-06-21 19:34:28 -07:00
Nick Brassel 0e3ae2cde0 Skip EEPROM writes once done. (#13293) 2021-06-22 09:37:28 +10:00
QMK Bot a89eaceb59 Merge remote-tracking branch 'origin/master' into develop 2021-06-21 22:09:45 +00:00
QMK Bot 40e80455c9 Merge remote-tracking branch 'origin/master' into develop 2021-06-21 20:48:18 +00:00
QMK Bot 96ea3c1a03 Merge remote-tracking branch 'origin/master' into develop 2021-06-21 20:33:28 +00:00
QMK Bot e28d7ab58c Merge remote-tracking branch 'origin/master' into develop 2021-06-21 20:00:32 +00:00
Drashna Jaelre 6901411bca Move optical sensor code to drivers folder (#13044) 2021-06-21 21:00:11 +01:00
QMK Bot b491c7994a Merge remote-tracking branch 'origin/master' into develop 2021-06-21 16:25:33 +00:00
QMK Bot 26357ddca8 Merge remote-tracking branch 'origin/master' into develop 2021-06-21 16:23:38 +00:00
QMK Bot c6fb96fb9f Merge remote-tracking branch 'origin/master' into develop 2021-06-21 16:04:56 +00:00
fauxpark eaba4d327f Merge remote-tracking branch 'upstream/master' into develop 2021-06-21 21:17:26 +10:00
Ryan e4a2cfd853 Remove dfu-util arguments from mcu_selection (#13150) 2021-06-21 19:56:55 +10:00
QMK Bot 8d30209260 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 18:37:17 +00:00
QMK Bot 40bf61118e Merge remote-tracking branch 'origin/master' into develop 2021-06-20 16:38:52 +00:00
QMK Bot c234341cf6 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 15:30:49 +00:00
QMK Bot 291455098f Merge remote-tracking branch 'origin/master' into develop 2021-06-20 13:30:43 +00:00
QMK Bot 8f36af8409 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 08:01:01 +00:00
QMK Bot 25f1c242f8 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:50:19 +00:00
QMK Bot f80ee5639e Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:37:50 +00:00
QMK Bot 085db5ec8d Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:17:15 +00:00
QMK Bot 8f1eccc59b Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:15:10 +00:00
QMK Bot 2cb4301656 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 07:14:00 +00:00
QMK Bot f106f77692 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 03:09:08 +00:00
Roland Huber e4c5b1bbbb Add Per Key exclusions for Haptic Feedback (#12386)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-06-19 19:28:54 -07:00
QMK Bot f6ac5abd95 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:21:53 +00:00
QMK Bot 18f6ded5fa Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:21:20 +00:00
QMK Bot 67af692c97 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:19:07 +00:00
Joakim Tufvegren 8d9f527081 Add sync_timer support over serial_link (i.e. Ergodox Infinity) (#12845) 2021-06-19 19:18:00 -07:00
QMK Bot fc749b40e6 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:14:49 +00:00
QMK Bot 76e856d052 Merge remote-tracking branch 'origin/master' into develop 2021-06-20 02:13:09 +00:00
fauxpark e3030bff5e Merge remote-tracking branch 'upstream/master' into develop 2021-06-20 12:10:59 +10:00
XScorpion2 5b7cf9fdc8 RGB Matrix eeprom write limiting (#13238) 2021-06-19 19:03:06 -07:00
Joel Challis 3c790123ce Temporary disable of CRC (#13252) 2021-06-20 09:31:18 +10:00
Donald Kjer 1272ecd73c Fixing incorrect keymap build when switching between multiple keymap.jsons (#12632) 2021-06-19 15:30:23 -07:00
Michael Stapelberg 7c5ef4060e allow LINE_PINxx for Teensy 4.x pins (#13247)
fixes https://github.com/qmk/qmk_firmware/issues/13052
2021-06-19 15:21:56 -07:00
Jean-Sebastien Paquet 8dc036c2e4 Upgrades Vagrant box to Debian 10 to fix Docker build error on Debian 9. (#13236) 2021-06-19 13:52:34 +01:00
Ryan 37fba09021 ST7565 invert (#13237) 2021-06-19 18:51:35 +10:00
Ignaz Kevenaar 0311c8036d Add oled_invert (#13172)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-06-19 01:08:22 +10:00
Nick Brassel 172e6a7030 Extensible split data sync (#11930)
* Extensible split data sync capability through transactions.

- Split common transport has been split up between the transport layer
  and data layer.
- Split "transactions" model used, with convergence between I2C and
  serial data definitions.
- Slave matrix "generation count" is used to determine if the full slave
  matrix needs to be retrieved.
- Encoders get the same "generation count" treatment.
- All other blocks of data are synchronised when a change is detected.
- All transmissions have a globally-configurable deadline before a
  transmission is forced (`FORCED_SYNC_THROTTLE_MS`, default 100ms).
- Added atomicity for all core-synced data, preventing partial updates
- Added retries to AVR i2c_master's i2c_start, to minimise the number of
  failed transactions when interrupts are disabled on the slave due to
  atomicity checks.
- Some keyboards have had slight modifications made in order to ensure
  that they still build due to firmware size restrictions.

* Fixup LED_MATRIX compile.

* Parameterise ERROR_DISCONNECT_COUNT.
2021-06-18 09:10:06 +10:00
Stefan Kerkmann ef92c9ee2c Add CRC8 calculation subsystem to quantum (#12641)
* Intended usage is data validation in split transport code.
* Default space efficient algorithm.
* Opt-in fast table based algorithmn with #define CRC8_USE_TABLE switch.
* Define switches for size and speed optimized versions, the default is size
  optimized by using uint_least8_t as datatype for calculations.
  * #define CRC8_OPTIMIZE_SPEED uses uint_fast8_t as datatype for
    calculations, this only affects 32-bit Archs like ARM and RISC-V.
* Placeholder crc_init() function for hardware backed crc calculation,
  not implemented yet.
2021-06-18 00:09:43 +01:00
Nick Brassel 67fa2568fe ChibiOS SVN mirror script. (#13070) 2021-06-18 00:04:17 +01:00
QMK Bot 658ab47908 Merge remote-tracking branch 'origin/master' into develop 2021-06-17 17:05:15 +00:00
fauxpark d04f7bc160 Merge remote-tracking branch 'upstream/master' into develop 2021-06-17 17:22:01 +10:00
Michael Stapelberg 9956ff4e03 core: wire up flash make target for Teensy 4.x (#13077)
related to https://github.com/kinx-project/kint/issues/5
2021-06-17 04:15:45 +10:00
Jonathan Rascher d59f8d1c02 Fix overrun in st7565_write_raw when not at (0, 0) (#13209) 2021-06-15 22:30:27 -07:00
QMK Bot f8d0ea9206 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:21:59 +00:00
QMK Bot 706c8bebca Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:21:26 +00:00
QMK Bot 25004123ce Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:19:41 +00:00
QMK Bot d150595f29 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:15:23 +00:00
QMK Bot a61c38c7ec Merge remote-tracking branch 'origin/master' into develop 2021-06-16 05:07:37 +00:00
QMK Bot 03f7bec6c8 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:55:03 +00:00
Michael Stapelberg e2c5893405 core: make RESET key work with Teensy 4.x (#13076)
related to https://github.com/kinx-project/kint/issues/5
2021-06-15 21:53:27 -07:00
QMK Bot d37900b906 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:28:45 +00:00
QMK Bot 06971da0be Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:20:45 +00:00
QMK Bot 2d6fe6eed4 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:20:30 +00:00
QMK Bot 346f4548db Merge remote-tracking branch 'origin/master' into develop 2021-06-16 04:18:48 +00:00
Albert Y ff61df103e Limit saturation for RGB_MATRIX_JELLYBEAN_RAINDROPS (#12669)
* Set saturation limit to jellybean_raindrops_anim.h

* Use faster bit-shift maths and qadd8

* Remove extra parenthesis

* Single bitmask operation is sufficient.

Co-authored-by: filterpaper <filterpaper@localhost>
2021-06-16 14:04:21 +10:00
Simon Arlott a0959f1b33 Add asym_eager_defer_pk debounce type (#12689) 2021-06-16 14:00:37 +10:00
QMK Bot b151153211 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:54:19 +00:00
QMK Bot 41ba616463 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:39:48 +00:00
QMK Bot d82e5055dd Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:36:03 +00:00
QMK Bot 3be3cdafa2 Merge remote-tracking branch 'origin/master' into develop 2021-06-16 03:34:34 +00:00
James f5c2f7153d [Keyboard] Moved tokyo60/ into tokyokeyboard/tokyo60/. (#12023)
* Moved tokyo60/ into tokyokeyboard/tokyo60/.

* Updated make instruction, fixed broken image link

* Fixed still broken image link.
2021-06-15 20:21:13 -07:00
QMK Bot 640f0fc7c6 Merge remote-tracking branch 'origin/master' into develop 2021-06-15 21:43:53 +00:00
QMK Bot d7ecfa8382 Merge remote-tracking branch 'origin/master' into develop 2021-06-15 03:07:31 +00:00
QMK Bot a2a524afbb Merge remote-tracking branch 'origin/master' into develop 2021-06-14 23:52:31 +00:00
QMK Bot 8d0a610f6e Merge remote-tracking branch 'origin/master' into develop 2021-06-14 06:32:22 +00:00
QMK Bot 6dc94019e4 Merge remote-tracking branch 'origin/master' into develop 2021-06-14 03:20:48 +00:00
Gigahawk fda4149cc3 Fix LED mapping for GMMK Pro (#13189) 2021-06-14 12:38:20 +10:00
QMK Bot 836b8f7d64 Merge remote-tracking branch 'origin/master' into develop 2021-06-14 00:53:06 +00:00
QMK Bot 52028ceea1 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:15:34 +00:00
QMK Bot f8acb1ee10 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:12:28 +00:00
QMK Bot dc17180f84 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:10:49 +00:00
QMK Bot 421fd75541 Merge remote-tracking branch 'origin/master' into develop 2021-06-12 19:09:03 +00:00
QMK Bot 0f226a30be Merge remote-tracking branch 'origin/master' into develop 2021-06-11 10:35:43 +00:00
QMK Bot 641141c519 Merge remote-tracking branch 'origin/master' into develop 2021-06-10 21:50:54 +00:00
Joakim Tufvegren 6fe3943ad3 Migrate keyboards using uGFX to LED_MATRIX (#9657) 2021-06-10 17:46:09 +10:00
Ryan b2fdd48744 Add ST7565 LCD driver (#13089)
Co-authored-by: Joakim Tufvegren <jocke@barbanet.com>
2021-06-10 17:16:09 +10:00
QMK Bot cfc7ee61c5 Merge remote-tracking branch 'origin/master' into develop 2021-06-10 06:06:03 +00:00
Drashna Jaelre 7a6e630ffd Fix RGB/LED Suspend defines (#13146) 2021-06-09 22:59:19 -07:00
Gigahawk 32b2ac0a80 GMMK Pro RGB Support (#13147)
* Enable SPI1 for GMMK pro

* Setup initial boilerplate for new LED driver

* RGB matrix minimally functional

* Map full LED matrix

* Return keymap to default

* Fix printscreen LED mapping

* Reduce max brightness

* Default values for AW20216

* Add documentation for AW20216

* Disable console and warnings

* Run cformat

* Update drivers/awinic/aw20216.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* make aw struct match issi struct

Co-authored-by: Drashna Jaelre <drashna@live.com>

* add led location defines

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Use led pin definitions in keyboard.c

* Add driver indices to led map

* Fix elif typo

* Run cformat

* Update docs

* Fix typo in docs

* Document global brightness limits

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-06-10 11:40:25 +10:00
QMK Bot e21a039901 Merge remote-tracking branch 'origin/master' into develop 2021-06-09 17:48:11 +00:00
Carlos Martins ca0070d11c Updated encoder_update_user on my keymap to follow the new signature on quantum (#13152) 2021-06-10 03:32:16 +10:00
QMK Bot a47f482d24 Merge remote-tracking branch 'origin/master' into develop 2021-06-09 09:15:29 +00:00
QMK Bot 9177e22d2c Merge remote-tracking branch 'origin/master' into develop 2021-06-09 07:25:59 +00:00
Simon Arlott b829a1d264 Avoid 8-bit timer overflows in debounce algorithms (#12240)
* Add fast_timer_t that is 16-bit or 32-bit based on architecture

A 16-bit timer will overflow sooner but be faster to compare on AVR.

* Avoid 8-bit timer overflows in debounce algorithms

Count down remaining elapsed time instead of trying to do 8-bit timer
comparisons.

Add a "none" implementation that is automatically used if DEBOUNCE is
0 otherwise it will break the _pk/_pr count down.

* Avoid unnecessary polling of the entire matrix in sym_eager_pk

The matrix only needs to be updated when a debounce timer expires.

* Avoid unnecessary polling of the entire matrix in sym_eager_pr

The matrix only needs to be updated when a debounce timer expires.

The use of the "needed_update" variable is trying to do what
"matrix_need_update" was added to fix but didn't work because it only
applied when all keys finished debouncing.

* Fix sym_defer_g timing inconsistency compared to other debounce algorithms

DEBOUNCE=5 should process the key after 5ms, not 6ms

* Add debounce tests
2021-06-09 17:23:21 +10:00
Nick Brassel f287597c19 Use single memcmp to determine if matrix changed. (#13064)
* Use memcmp to determine if matrix changed.

* Firmware size issues.

* Add documentation for the lack of need of MATRIX_ROW_PINS/MATRIX_COL_PINS, when overriding low-level matrix functions.
2021-06-09 17:19:42 +10:00
QMK Bot cbfa2dba25 Merge remote-tracking branch 'origin/master' into develop 2021-06-09 07:19:28 +00:00
QMK Bot d9add95037 Merge remote-tracking branch 'origin/master' into develop 2021-06-08 19:07:33 +00:00
Ryan 17d0fad762 spi_master Kinetis support (#13098) 2021-06-08 19:54:33 +10:00
QMK Bot 13defb0bef Merge remote-tracking branch 'origin/master' into develop 2021-06-08 09:49:23 +00:00
QMK Bot 84e691717c Merge remote-tracking branch 'origin/master' into develop 2021-06-07 23:38:33 +00:00
QMK Bot f3fb3849a2 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 23:31:29 +00:00
QMK Bot c508da8a8e Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:43:48 +00:00
QMK Bot 9399865b0d Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:42:07 +00:00
QMK Bot 827e742bd4 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:40:30 +00:00
QMK Bot 5e3ec2faf0 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:39:16 +00:00
QMK Bot 2f910e1b2a Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:37:20 +00:00
QMK Bot f922133d30 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 17:35:21 +00:00
QMK Bot 5686a00a9c Merge remote-tracking branch 'origin/master' into develop 2021-06-07 10:47:09 +00:00
Takeshi ISHII b72f10c635 Add readPort() and some API to 'tmk_core/common/*/gpio.h' (#12754)
* add readPort() and some API to 'tmk_core/common/*/gpio.h'

The following macros have been added to gpio.h.

* readPort(port)
* setPortBitInput(port, bit)
* setPortBitInputHigh(port, bit)
* setPortBitOutput(port, bit)
* writePortBitLow(port, bit)
* writePortBitHigh(port, bit)

* add data type 'port_data_t' into gpio.h

* rename qmk_pin to pin
2021-06-07 18:23:21 +09:00
QMK Bot 59862d30d0 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 06:53:52 +00:00
Sergey Vlasov 680cc1fab4 Fix firmware size check with avr-libc 1:2.0.0+Atmel3.6.2-1.1 (Debian bullseye) (#12951)
Debian bullseye (testing at the moment, but seems close to release) has
avr-libc 1:2.0.0+Atmel3.6.2-1.1 with some changes taken from the
Atmel-distributed toolchain.  In particular, the <avr/io.h> header for
ATmega32A (avr/iom32a.h) now defines the FLASHEND constant as `0x7FFFU`,
and that `U` suffix breaks the firmware size check code, because the
shell arithmetic expansion that is used to calculate `MAX_SIZE` does not
support those C-specific suffixes.

As a workaround, add `-D__ASSEMBLER__` to the C preprocessor invocation
that is used to expand those macros; in this case avr/iom32a.h defines
`FLASHEND` without the `U` suffix, and everything works as it did before
with older avr-libc versions.

The exact same code is present in two places; they are both changed,
even though the code in `tmk_core/avr.mk` is actually never used for
ATmega32A (and the header for ATmega32U4 does not add that `U` suffix to
`FLASHEND` for some reason).
2021-06-06 22:42:08 -07:00
Carlos Martins 2e68897a62 [Keymap] RGB Matrix working for Sofle RGB (#12861)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-06-06 22:30:48 -07:00
Stefan Kerkmann 49fd3c0760 [Core] ChibiOS fix O3 and LTO breakage of extra keys and joystick (#12819) 2021-06-06 22:16:55 -07:00
QMK Bot 415dd21206 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 05:11:07 +00:00
QMK Bot 102442a841 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 05:08:50 +00:00
QMK Bot fff115c1a4 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 04:55:22 +00:00
QMK Bot c7277a1420 Merge remote-tracking branch 'origin/master' into develop 2021-06-07 03:38:32 +00:00
Michael Stapelberg 7e4f01f454 core: bump USB spec version in device descriptor to 2.0 (#13078)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-06-07 08:48:26 +10:00
QMK Bot 56ce0e4e33 Merge remote-tracking branch 'origin/master' into develop 2021-06-06 20:14:07 +00:00
QMK Bot a1e575780d Merge remote-tracking branch 'origin/master' into develop 2021-06-05 22:27:07 +00:00
QMK Bot 3d3b9807ab Merge remote-tracking branch 'origin/master' into develop 2021-06-05 18:37:16 +00:00
QMK Bot 3e1e64ca19 Merge remote-tracking branch 'origin/master' into develop 2021-06-05 18:17:12 +00:00
QMK Bot 25fffb7da8 Merge remote-tracking branch 'origin/master' into develop 2021-06-05 15:09:04 +00:00
QMK Bot c38332a5c7 Merge remote-tracking branch 'origin/master' into develop 2021-06-04 03:03:05 +00:00
QMK Bot 01cb2867db Merge remote-tracking branch 'origin/master' into develop 2021-06-04 00:30:59 +00:00
QMK Bot 17f51fa9df Merge remote-tracking branch 'origin/master' into develop 2021-06-03 18:40:18 +00:00
QMK Bot a6f030fb42 Merge remote-tracking branch 'origin/master' into develop 2021-06-03 15:53:38 +00:00
QMK Bot 2344d06475 Merge remote-tracking branch 'origin/master' into develop 2021-06-03 06:27:15 +00:00
QMK Bot eaa2e0cb24 Merge remote-tracking branch 'origin/master' into develop 2021-06-03 06:07:03 +00:00
QMK Bot 65fe74fde0 Merge remote-tracking branch 'origin/master' into develop 2021-06-02 23:48:58 +00:00
QMK Bot b8711b9726 Merge remote-tracking branch 'origin/master' into develop 2021-06-02 21:00:26 +00:00
QMK Bot 9544b41640 Merge remote-tracking branch 'origin/master' into develop 2021-06-01 08:12:46 +00:00
Nick Brassel e5d3e5a989 Add weak refs on reading rows/cols. (#13062) 2021-06-01 15:10:39 +10:00
QMK Bot d64a853b55 Merge remote-tracking branch 'origin/master' into develop 2021-06-01 04:56:53 +00:00
Nick Brassel 554c36a055 Update ChibiOS, ChibiOS-Contrib. (#13056)
* Update ChibiOS, ChibiOS-Contrib.

* Add instructions.

* Wrong remote name

* Explicit version tag.

* Add link to procedure on the breaking changes page.
2021-06-01 08:11:50 +10:00
QMK Bot 5c6c37e3a9 Merge remote-tracking branch 'origin/master' into develop 2021-05-31 04:16:56 +00:00
QMK Bot c22f4aeb8e Merge remote-tracking branch 'origin/master' into develop 2021-05-31 04:04:59 +00:00
QMK Bot 234d37ec16 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:59:09 +00:00
QMK Bot bc01ee2a6e Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:58:08 +00:00
QMK Bot aa923b2034 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:56:39 +00:00
QMK Bot 160f9144c2 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 21:48:16 +00:00
QMK Bot 0d74ed3c35 Merge remote-tracking branch 'origin/master' into develop 2021-05-30 15:18:09 +00:00
QMK Bot a72172a8fd Merge remote-tracking branch 'origin/master' into develop 2021-05-29 21:39:21 +00:00
James Young 7d1194de01 run: qmk cformat --core-only 2021-05-29 13:53:10 -07:00
James Young e628051505 Restore standard readme 2021-05-29 12:58:42 -07:00
James Young 275996f4c1 Add changelog for 2021-05-29 Breaking Changes merge (#12939)
* Add ChangeLog for 2021-05-29 Breaking Changes Merge: initial version

* Add recent develop changes

* Sort recent develop changes

* Remove sections for ChibiOS changes per tzarc

No ChibiOS changes this round.

* Add and sort recent develop changes

* add notes about keyboard moves/deletions

* import changelog for PR 12172

Documents the change to BOOTMAGIC_ENABLE.

* update section headings

* re-sort changelog

* add additional note regarding Bootmagic changes

* remove changelog timestamp

* update dates in main Breaking Changes docs

* fix broken section anchors in previous changelogs

* add link to backlight/eeprom patch to changelog

* highlight some more changes

* link PRs from section headers

Co-authored-by: Zach White <skullydazed@gmail.com>
2021-05-29 12:30:31 -07:00
QMK Bot 3ea3f32dfe Merge remote-tracking branch 'origin/master' into develop 2021-05-29 19:06:14 +00:00
Ryan d66090af19 backlight.c: include eeprom.h (#13024) 2021-05-28 09:04:13 -07:00
Drashna Jaelre b963049305 Fix keyboards/keymaps for boolean encoder callback changes (#12985) 2021-05-27 21:30:47 -07:00
Albert Y 5386c4c7b2 [Keyboard] Remove redundant legacy and common headers for crkbd (#13023)
Was causing compiler errors on some systems.

Co-authored-by: filterpaper <filterpaper@localhost>
2021-05-27 21:27:16 -07:00
QMK Bot c1a3060431 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 16:43:10 +00:00
Drashna Jaelre b769b36202 Add dire message about LUFA mass storage bootloader (#13014) 2021-05-27 09:20:47 -07:00
QMK Bot 879185a214 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 15:46:56 +00:00
QMK Bot 726368ce67 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:31:07 +00:00
QMK Bot 995c9dff49 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:26:24 +00:00
QMK Bot 69604e1750 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:22:29 +00:00
Ryan 06aea834c4 Backlight: add defines for default level and breathing state (#12560) 2021-05-26 22:21:15 -07:00
QMK Bot e128d45420 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:20:39 +00:00
QMK Bot 0717890353 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:17:47 +00:00
QMK Bot cd78ab25a9 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:14:01 +00:00
QMK Bot beaebdf8eb Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:12:06 +00:00
QMK Bot a5c2a74b8c Merge remote-tracking branch 'origin/master' into develop 2021-05-27 05:11:33 +00:00
peepeetee ebaba80287 Document LED_MATRIX_FRAMEBUFFER_EFFECTS (#12987) 2021-05-26 21:22:56 -07:00
QMK Bot 15e408a6a5 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:21:21 +00:00
QMK Bot 1593e78c97 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:20:40 +00:00
QMK Bot 452a5216e2 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:17:34 +00:00
QMK Bot 769396839b Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:07:29 +00:00
QMK Bot 17991629c1 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:03:42 +00:00
QMK Bot 513f5b0655 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:02:15 +00:00
QMK Bot b158afee93 Merge remote-tracking branch 'origin/master' into develop 2021-05-27 04:00:46 +00:00
QMK Bot 57306fb61c Merge remote-tracking branch 'origin/master' into develop 2021-05-27 03:48:46 +00:00
Stefan Kerkmann d9610120de Add Full-duplex serial driver for ARM boards (#9842) 2021-05-26 20:37:54 -07:00
QMK Bot a78964c918 Merge remote-tracking branch 'origin/master' into develop 2021-05-26 18:50:04 +00:00
Drashna Jaelre f461adbd1d [Keymap] Update to Drashna keymap and user code (based on develop) (#12936) 2021-05-25 09:24:01 -07:00
QMK Bot cc815c4d83 Merge remote-tracking branch 'origin/master' into develop 2021-05-25 09:52:37 +00:00
Zach White 5cecfe8c9b Merge remote-tracking branch 'origin/master' into develop 2021-05-24 23:39:24 -07:00
Drashna Jaelre 57158cc3bc [Keyboard] Corne - Remove legacy revision support (#12226) 2021-05-24 23:23:20 -07:00
QMK Bot 8e22da67c1 Merge remote-tracking branch 'origin/master' into develop 2021-05-25 02:39:02 +00:00
Drashna Jaelre 330fe1d1cc Do not hard set config in CPTC files (#11864) 2021-05-22 19:43:54 -07:00
QMK Bot f5820059e4 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 19:03:28 +00:00
QMK Bot 54c368d3aa Merge remote-tracking branch 'origin/master' into develop 2021-05-22 17:19:26 +00:00
Ryan 8f4767d966 [Keyboard] Fix Terrazzo build failure (#12977) 2021-05-21 23:56:17 -07:00
QMK Bot 9ce4bdfd6a Merge remote-tracking branch 'origin/master' into develop 2021-05-22 06:53:54 +00:00
Drashna Jaelre a0fed0ea17 Convert Encoder callbacks to be boolean functions (#12805)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-05-21 23:17:32 -07:00
QMK Bot 76c23b15ab Merge remote-tracking branch 'origin/master' into develop 2021-05-22 06:13:13 +00:00
QMK Bot 4c1ea0a522 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 06:12:29 +00:00
QMK Bot c01f873978 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:43:00 +00:00
QMK Bot 924c25e702 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:33:55 +00:00
QMK Bot 95d2f7c3c5 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:30:46 +00:00
QMK Bot 3d49563535 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:30:09 +00:00
QMK Bot ca570947b0 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 05:29:17 +00:00
QMK Bot 31130b9031 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 04:44:51 +00:00
Donald Kjer 8e96c5a060 Add support for up to 4 IS31FL3733 drivers (#12342)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-05-21 21:42:39 -07:00
QMK Bot 81821f0a12 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 04:39:17 +00:00
QMK Bot e1500ce493 Merge remote-tracking branch 'origin/master' into develop 2021-05-22 04:33:46 +00:00
Zach White 4c0d8ae8d7 ensure we do not conflict with existing keymap aliases (#12976) 2021-05-21 16:59:10 -07:00
QMK Bot de8fada3a3 Merge remote-tracking branch 'origin/master' into develop 2021-05-20 11:47:42 +00:00
QMK Bot aeaa209b9d Merge remote-tracking branch 'origin/master' into develop 2021-05-20 10:04:45 +00:00
Zach White 6955c5a002 Merge remote-tracking branch 'origin/master' into develop
Resolved Conflicts:
	lib/python/qmk/tests/test_cli_commands.py
	util/install/fedora.sh
2021-05-19 15:49:11 -07:00
Michael Stapelberg 82aa9ad4a5 matrix: wait for row signal to go HIGH for every row (#12945)
I noticed this discrepancy (last row of the matrix treated differently than the
others) when optimizing the input latency of my keyboard controller, see also
https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/

Before this commit, when tuning the delays I noticed ghost key presses when
pressing the F2 key, which is on the last row of the keyboard matrix: the
dead_grave key, which is on the first row of the keyboard matrix, would be
incorrectly detected as pressed.

After this commit, all keyboard matrix rows are interpreted correctly.

I suspect that my setup is more susceptible to this nuance than others because I
use GPIO_INPUT_PIN_DELAY=0 and hence don’t have another delay that might mask
the problem.
2021-05-20 06:43:36 +10:00
QMK Bot 068af97b7a Merge remote-tracking branch 'origin/master' into develop 2021-05-19 19:01:52 +00:00
QMK Bot e756586f41 Merge remote-tracking branch 'origin/master' into develop 2021-05-18 19:26:46 +00:00
Nick Brassel 58142f0726 Fixup housekeeping from being invoked twice per loop. (#12933) 2021-05-18 17:02:28 +10:00
QMK Bot 6cdc996e0b Merge remote-tracking branch 'origin/master' into develop 2021-05-17 23:52:14 +00:00
QMK Bot 7e06393407 Merge remote-tracking branch 'origin/master' into develop 2021-05-17 22:54:15 +00:00
QMK Bot b098757a7e Merge remote-tracking branch 'origin/master' into develop 2021-05-17 15:52:41 +00:00
QMK Bot 8508fc8b98 Merge remote-tracking branch 'origin/master' into develop 2021-05-17 08:56:10 +00:00
Matthes W 6c7450dad7 Add function to allow repeated blinking of one layer (#12237)
* Implement function rgblight_blink_layer_repeat to allow repeated blinking of one layer at a time

* Update doc

* Rework rgblight blinking according to requested change

* optimize storage
2021-05-16 20:59:02 -04:00
QMK Bot c14fa1e28f Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:44:12 +00:00
QMK Bot e6887f4260 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:34:45 +00:00
QMK Bot d8e38ef0b1 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:34:14 +00:00
QMK Bot 39b2b2b010 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:31:26 +00:00
QMK Bot fef78c41cd Merge remote-tracking branch 'origin/master' into develop 2021-05-16 22:20:57 +00:00
Zach White de5c30a9ba Use milc.subcommand.config instead of qmk.cli.config (#12915)
* Use milc.subcommand.config instead

* pyformat

* remove the config test
2021-05-16 11:06:57 -07:00
QMK Bot 8761e973ec Merge remote-tracking branch 'origin/master' into develop 2021-05-16 01:57:14 +00:00
QMK Bot 433834fb8b Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:35:33 +00:00
QMK Bot 86422f87c6 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:29:33 +00:00
QMK Bot 388c151de7 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:19:04 +00:00
QMK Bot 396abb0244 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:15:19 +00:00
QMK Bot 7599cd4e50 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:14:49 +00:00
QMK Bot de2294413f Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:09:46 +00:00
QMK Bot 4e32465f06 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:08:53 +00:00
QMK Bot 08ec7618a1 Merge remote-tracking branch 'origin/master' into develop 2021-05-16 00:05:11 +00:00
QMK Bot 2bc35205a7 Merge remote-tracking branch 'origin/master' into develop 2021-05-15 23:52:01 +00:00
QMK Bot 14c0f4e44b Merge remote-tracking branch 'origin/master' into develop 2021-05-15 18:52:47 +00:00
fauxpark d6b707403e Merge remote-tracking branch 'upstream/master' into develop 2021-05-15 13:43:46 +10:00
QMK Bot 1dca3a8e3a Merge remote-tracking branch 'origin/master' into develop 2021-05-14 22:44:36 +00:00
Dave Vandyke 75da5e9742 [Keymap] Fix QWERTY/DVORAK status output for kzar keymap (#12895) 2021-05-14 08:30:21 -07:00
QMK Bot 36a2297deb Merge remote-tracking branch 'origin/master' into develop 2021-05-14 04:10:46 +00:00
QMK Bot 16014fe31c Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:54:43 +00:00
QMK Bot 188bcf7636 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:21:19 +00:00
QMK Bot 4a5f575ef4 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:12:06 +00:00
QMK Bot 8bf7a1452d Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:10:57 +00:00
QMK Bot 2fcf761f33 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:48:33 +00:00
QMK Bot 70bbcdf084 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:46:09 +00:00
QMK Bot 178fbdac16 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:40:36 +00:00
QMK Bot 5f9906eccc Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:34:21 +00:00
QMK Bot 16c4590396 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:22:22 +00:00
QMK Bot 8d85171f16 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:21:08 +00:00
QMK Bot eeb8ba4e62 Merge remote-tracking branch 'origin/master' into develop 2021-05-14 02:00:53 +00:00
QMK Bot 19810f4a8b Merge remote-tracking branch 'origin/master' into develop 2021-05-13 18:08:17 +00:00
QMK Bot c48ce4c259 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:54:55 +00:00
QMK Bot 75ffb4b7e2 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:52:38 +00:00
QMK Bot 929d06a65f Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:46:41 +00:00
Joakim Tufvegren cbdc3fb81b Fix spelling mistake regarding LED Matrix in split_common. (#12888) 2021-05-14 03:37:24 +10:00
Ryan 04ab5de73c Deprecate send_unicode_hex_string() (#12602) 2021-05-14 03:25:40 +10:00
QMK Bot cae9eb4d8d Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:23:24 +00:00
QMK Bot f70dc8435a Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:22:42 +00:00
QMK Bot 673c12fa3b Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:20:16 +00:00
QMK Bot 008d8a740e Merge remote-tracking branch 'origin/master' into develop 2021-05-13 17:13:20 +00:00
QMK Bot b4039ec515 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 16:36:43 +00:00
QMK Bot f8f0ca458d Merge remote-tracking branch 'origin/master' into develop 2021-05-13 16:29:39 +00:00
QMK Bot 40907fa98a Merge remote-tracking branch 'origin/master' into develop 2021-05-13 06:53:27 +00:00
QMK Bot 89a3ef7699 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 05:38:06 +00:00
QMK Bot 1dd6adffbe Merge remote-tracking branch 'origin/master' into develop 2021-05-13 04:15:42 +00:00
Ryan 7078d5a5bd LED Matrix: Documentation (#12685) 2021-05-13 12:57:57 +10:00
QMK Bot dbfe2d7e9e Merge remote-tracking branch 'origin/master' into develop 2021-05-13 02:36:23 +00:00
QMK Bot c24d29ef54 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 02:30:14 +00:00
QMK Bot 2d29ce5de1 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 01:54:43 +00:00
QMK Bot 54a8b5af01 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 01:32:21 +00:00
QMK Bot bc9cd3e997 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 01:27:46 +00:00
Drashna Jaelre da0c551692 Add missing LED Matrix suspend code to suspend.c (#12878)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-13 11:24:44 +10:00
noclew d200e3de8e [Keyboard] updated a vendor name / fixed minor keymap issues (#12881) 2021-05-12 17:19:48 -07:00
QMK Bot 49bc835aa9 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 00:18:40 +00:00
QMK Bot 536df7c240 Merge remote-tracking branch 'origin/master' into develop 2021-05-13 00:02:42 +00:00
QMK Bot 9c80db1fdc Merge remote-tracking branch 'origin/master' into develop 2021-05-12 23:25:56 +00:00
QMK Bot 53075ccc5d Merge remote-tracking branch 'origin/master' into develop 2021-05-12 23:25:03 +00:00
Ryan 92fbadeb1b Rename point_t -> led_point_t (#12864) 2021-05-13 09:17:18 +10:00
QMK Bot 07800e82c9 Merge remote-tracking branch 'origin/master' into develop 2021-05-12 16:50:09 +00:00
Zach White 6da60d4a5d Add setup, clone, and env to the list of commands we allow even with broken modules (#12868) 2021-05-12 09:40:58 -07:00
QMK Bot 3a1ce81d29 Merge remote-tracking branch 'origin/master' into develop 2021-05-12 00:52:47 +00:00
QMK Bot 4bb00c6a0a Merge remote-tracking branch 'origin/master' into develop 2021-05-11 18:43:25 +00:00
Zach White 38d8d5445e Remove KEYMAP and LAYOUT_kc (#12160)
* alias KEYMAP to LAYOUT

* remove KEYMAP and LAYOUT_kc
2021-05-11 10:10:31 -07:00
Ryan d84cbc3cec Fix syntax error when compiling for ARM (#12866) 2021-05-11 08:17:28 -07:00
Ryan 3edc43964d LED Matrix: Effects! (#12651) 2021-05-11 13:41:06 +10:00
Nick Brassel f41fc6b70c Fixup build errors on develop branch. (#12723) 2021-05-11 11:01:58 +10:00
QMK Bot 0432bde962 Merge remote-tracking branch 'origin/master' into develop 2021-05-11 00:33:02 +00:00
QMK Bot 17586ea7c4 Merge remote-tracking branch 'origin/master' into develop 2021-05-10 22:43:41 +00:00
Lukas Reineke 069cfb61b8 [Keymap] Turn OLED off on suspend in soundmonster keymap (#10419) 2021-05-10 15:40:18 -07:00
QMK Bot 6bb9113e27 Merge remote-tracking branch 'origin/master' into develop 2021-05-10 22:38:06 +00:00
Zach White 0e7c66e891 Merge remote-tracking branch 'origin/master' into develop
Conflicts:
	bin/qmk
	lib/python/qmk/cli/__init__.py

Merge conflicts fixed by skullydazed.
2021-05-10 12:16:04 -07:00
QMK Bot 911b45ce3b Merge remote-tracking branch 'origin/master' into develop 2021-05-10 18:19:15 +00:00
QMK Bot cfc6e4bfac Merge remote-tracking branch 'origin/master' into develop 2021-05-10 17:37:36 +00:00
Sergey Vlasov ffe81cbec1 Fix another bin/qmk reference (#12856) 2021-05-10 09:21:13 -07:00
Drashna Jaelre f0b30e0027 Make Swap Hands use PROGMEM (#12284)
This converts the array that the Swap Hands feature uses to use PROGMEM,
and to read from that array, as such. Since this array never changes at
runtime, there is no reason to keep it in memory. Especially for AVR
boards, as memory is a precious resource.
2021-05-09 23:21:09 -07:00
QMK Bot 40d1506527 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 20:40:22 +00:00
QMK Bot 2549b4b082 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 19:16:57 +00:00
QMK Bot 201dc6d024 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 18:30:52 +00:00
QMK Bot 2f367bab98 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 17:20:16 +00:00
QMK Bot ad1244e2cf Merge remote-tracking branch 'origin/master' into develop 2021-05-09 17:15:32 +00:00
Ryan 62c3e3d11f Remove pointless SERIAL_LINK_ENABLE rules (#12846) 2021-05-10 02:53:21 +10:00
QMK Bot 12292ba264 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 15:07:13 +00:00
QMK Bot bfb052db1d Merge remote-tracking branch 'origin/master' into develop 2021-05-09 13:53:46 +00:00
QMK Bot a0c95cb07e Merge remote-tracking branch 'origin/master' into develop 2021-05-09 10:58:43 +00:00
Zach White 7a25dcacff New command: qmk console (#12828)
* stash poc

* stash

* tidy up implementation

* Tidy up slightly for review

* Tidy up slightly for review

* Bodge environment to make tests pass

* Refactor away from asyncio due to windows issues

* Filter devices

* align vid/pid printing

* Add hidapi to the installers

* start preparing for multiple hid_listeners

* udev rules for hid_listen

* refactor to move closer to end state

* very basic implementation of the threaded model

* refactor how vid/pid/index are supplied and parsed

* windows improvements

* read the report directly when usage page isn't available

* add per-device colors, the choice to show names or numbers, and refactor

* add timestamps

* Add support for showing bootloaders

* tweak the color for bootloaders

* Align bootloader disconnect with connect color

* add support for showing all bootloaders

* fix the pyusb check

* tweaks

* fix exception

* hide a stack trace behind -v

* add --no-bootloaders option

* add documentation for qmk console

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* pyformat

* clean up and flesh out KNOWN_BOOTLOADERS

Co-authored-by: zvecr <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-08 20:56:07 -07:00
QMK Bot d0a3bca9ec Merge remote-tracking branch 'origin/master' into develop 2021-05-09 03:46:23 +00:00
QMK Bot 0e6359bce9 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 03:00:40 +00:00
Zach White 767089384f Resolve a number of warnings in qmk generate-api (#12833) 2021-05-08 12:44:05 -07:00
Zach White 3e9f809988 fix some references to bin/qmk that slipped in (#12832) 2021-05-08 12:25:04 -07:00
QMK Bot a871444743 Merge remote-tracking branch 'origin/master' into develop 2021-05-08 17:27:30 +00:00
QMK Bot fd5da75bdd Merge remote-tracking branch 'origin/master' into develop 2021-05-08 16:35:59 +00:00
Barabas fca7cc1747 Added OLED fade out support (#12086) 2021-05-08 12:27:13 +02:00
QMK Bot 992b146bc4 Merge remote-tracking branch 'origin/master' into develop 2021-05-07 17:22:41 +00:00
QMK Bot 5d7b026ce2 Merge remote-tracking branch 'origin/master' into develop 2021-05-07 09:52:46 +00:00
QMK Bot 8c2db395c4 Merge remote-tracking branch 'origin/master' into develop 2021-05-06 21:08:29 +00:00
QMK Bot c820a5732c Merge remote-tracking branch 'origin/master' into develop 2021-05-06 18:17:55 +00:00
QMK Bot 447bd64013 Merge remote-tracking branch 'origin/master' into develop 2021-05-06 16:16:51 +00:00
QMK Bot 45f710f3ff Merge remote-tracking branch 'origin/master' into develop 2021-05-05 23:27:27 +00:00
QMK Bot 15f4ab6a3f Merge remote-tracking branch 'origin/master' into develop 2021-05-04 19:39:11 +00:00
QMK Bot 65ee9d1b09 Merge remote-tracking branch 'origin/master' into develop 2021-05-04 08:40:56 +00:00
QMK Bot 084d0ae96e Merge remote-tracking branch 'origin/master' into develop 2021-05-04 00:32:09 +00:00
Zach White 5d27c772fd Fix comment parsing (#12750)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-05-03 19:09:53 +02:00
QMK Bot 0ec438289d Merge remote-tracking branch 'origin/master' into develop 2021-05-02 15:59:41 +00:00
QMK Bot 79e86adfb6 Merge remote-tracking branch 'origin/master' into develop 2021-05-02 15:44:16 +00:00
github-actions[bot] f5b6bef4b3 [CI] Format code according to conventions (#12772)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-05-02 05:15:50 +10:00
XScorpion2 3c2e69af79 Fixing transport's led/rgb matrix suspend state logic (#12770) 2021-05-01 12:14:17 -07:00
QMK Bot e9b0e9286e Merge remote-tracking branch 'origin/master' into develop 2021-05-01 01:00:34 +00:00
QMK Bot 876352a030 Merge remote-tracking branch 'origin/master' into develop 2021-04-30 20:24:18 +00:00
QMK Bot 109b462789 Merge remote-tracking branch 'origin/master' into develop 2021-04-30 17:46:15 +00:00
QMK Bot fc29068986 Merge remote-tracking branch 'origin/master' into develop 2021-04-29 18:26:09 +00:00
QMK Bot c05fef752e Merge remote-tracking branch 'origin/master' into develop 2021-04-29 16:55:32 +00:00
QMK Bot 9d5cd52284 Merge remote-tracking branch 'origin/master' into develop 2021-04-29 16:49:03 +00:00
QMK Bot b481f554a0 Merge remote-tracking branch 'origin/master' into develop 2021-04-29 10:39:51 +00:00
github-actions[bot] 39bc8163d0 [CI] Format code according to conventions (#12731)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-29 13:36:47 +10:00
Drashna Jaelre d8167779cd Change RGB/LED Matrix to use a simple define for USB suspend (#12697) 2021-04-29 12:39:54 +10:00
QMK Bot 7409f03cbf Merge remote-tracking branch 'origin/master' into develop 2021-04-28 10:46:45 +00:00
Nick Brassel 0a8e37509b Fix bad PR merge for #6580. (#12721) 2021-04-28 11:42:53 +01:00
QMK Bot cd6168ee64 Merge remote-tracking branch 'origin/master' into develop 2021-04-28 01:39:39 +00:00
QMK Bot d89d341541 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 20:55:11 +00:00
QMK Bot e95c76aaed Merge remote-tracking branch 'origin/master' into develop 2021-04-27 19:37:23 +00:00
QMK Bot eea33df1f9 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 18:37:47 +00:00
QMK Bot 3e43a7f044 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 17:42:03 +00:00
QMK Bot f30637ee11 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 17:24:11 +00:00
QMK Bot 86ab4fcb71 Merge remote-tracking branch 'origin/master' into develop 2021-04-27 06:45:17 +00:00
QMK Bot a8c0954db5 Merge remote-tracking branch 'origin/master' into develop 2021-04-26 19:18:51 +00:00
QMK Bot 171f3e840b Merge remote-tracking branch 'origin/master' into develop 2021-04-26 17:24:58 +00:00
JTM 54c1548247 Updated Function96 with V2 files and removed chconf.h and halconf.h (#12613)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: JuanTapMan <68515848+JuanTapMan@users.noreply.github.com>
2021-04-26 10:38:13 +02:00
Xelus22 9cf82fae95 Add STM32L433 and L443 support (#12063)
* initial L433 commit

* change to XC

* fix L433

* disable all peripherals

* update system and peripheral clocks

* 433 change

* use its own board  files

* revert its own board files

* l433 specific change

* fix stm32l432xx define

* remove duplicate #define

* fix bootloader jump

* move to L443xx and add i2c2, spi2, usart3 to mcuconf.h

* move to L443

* move to L443

* fix sdmmc in mcuconf.h

* include STM32L443

* add L443

* Include L443 in compatible microcontrollers

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Include L443 in compatible microcontrollers

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update config bootloader jump description

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update ChibiOS define reasoning

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update quantum/mcu_selection.mk

Co-authored-by: Nick Brassel <nick@tzarc.org>

* fix git conflict

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-04-26 13:07:15 +10:00
QMK Bot 5168af9a9b Merge remote-tracking branch 'origin/master' into develop 2021-04-26 02:52:29 +00:00
QMK Bot 61a1915cce Merge remote-tracking branch 'origin/master' into develop 2021-04-25 20:46:54 +00:00
github-actions[bot] 03db48af75 Format code according to conventions (#12687)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 19:01:49 +10:00
github-actions[bot] 8c12fa2e59 Format code according to conventions (#12682)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 19:00:22 +10:00
Purdea Andrei 3f7350732c Add support for MCU = STM32F446 (#12619)
* Add support for MCU = STM32F446

* Update platforms/chibios/GENERIC_STM32_F446XE/configs/config.h

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Restore mcuconf.h to the one used by RT-STM32F446RE-NUCLEO64

* stm32f446: update mcuconf.h and board.h for 16MHz operation, with USB enabled, and other peripherals disabled.

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-04-25 18:59:25 +10:00
QMK Bot 5b1c3e360a Merge remote-tracking branch 'origin/master' into develop 2021-04-25 08:57:56 +00:00
Purdea Andrei 412e7a03e4 eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671) 2021-04-25 18:57:49 +10:00
QMK Bot 23e70fa857 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 04:03:14 +00:00
QMK Bot ee26e3df60 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 04:00:00 +00:00
QMK Bot ab6d07b585 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:42:04 +00:00
Nick Brassel 891d18d356 Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) (#12600)
* Add support for jumping to tinyuf2 bootloader. Adds blackpill UF2 example.

* Update flashing.md

* Update chconf.h

* Update config.h

* Update halconf.h

* Update mcuconf.h
2021-04-25 13:40:56 +10:00
QMK Bot 2a61a500de Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:16:16 +00:00
QMK Bot 64a9cf18e1 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:12:09 +00:00
QMK Bot 19b3aa3a12 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:48:16 +00:00
QMK Bot 7718b1598e Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:16:24 +00:00
Sergey Vlasov 65c9752762 Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403)
* Fix default ADC_RESOLUTION for ADCv3 (and ADCv4)

Recent ChibiOS update removed ADC_CFGR1_RES_10BIT from the ADCv3 headers
(that macro should not have been there, because ADCv3 has CFGR instead of
CFGR1).  Fix the default value for ADC_RESOLUTION to use ADC_CFGR_RES_10BITS
if it is defined (that name is used for ADCv3 and ADCv4).

* Update ADC docs to match the actually used resolution

ADC driver for ChibiOS actually uses the 10-bit resolution by default
(probably to match AVR); fix the documentation accordingly.  Also add
both ADC_CFGR_RES_10BITS and ADC_CFGR1_RES_10BIT constants (these names
differ according to the ADC implementation in the particular MCU).

* Fix pinToMux() for B12 and B13 on STM32F3xx

Testing on STM32F303CCT6 revealed that the ADC mux values for B12 and
B13 pins were wrong.

* Add support for all possible analog pins on STM32F1xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 on STM32F1xx
(they are the same at least for STM32F103x8 and larger F103 devices, and
also F102, F105, F107 families).  Actually tested on STM32F103C8T6
(therefore pins C0...C5 were not tested).

Pins F6...F10, which are present on STM32F103x[C-G] in 144-pin packages,
cannot be supported at the moment, because those pins are connected only
to ADC3, but the ChibiOS ADC driver for STM32F1xx supports only ADC1.

* Add support for all possible analog pins on STM32F4xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 and optionally
F3...F10 (if STM32_ADC_USE_ADC3 is enabled).  These mux values are
apparently the same for all F4xx devices, except some smaller devices may
not have ADC3.

Actually tested on STM32F401CCU6, STM32F401CEU6, STM32F411CEU6 (using
various WeAct “Blackpill” boards); only pins A0...A7, B0, B1 were tested.

Pins F3...F10 are inside `#if STM32_ADC_USE_ADC3` because some devices
which don't have ADC3 also don't have the GPIOF port, therefore the code
which refers to Fx pins does not compile.

* Fix STM32F3xx ADC mux table in documentation

The ADC driver documentation had some errors in the mux table for STM32F3xx.
Fix this table to match the datasheet and the actual code (mux settings for
B12 and B13 were also tested on a real STM32F303CCT6 chip).

* Add STM32F1xx ADC pins to the documentation

* Add STM32F4xx ADC pins to the documentation
2021-04-25 11:15:37 +10:00
QMK Bot f12aea5dfb Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:14:55 +00:00
QMK Bot 7845cf1fac Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:05:05 +00:00
QMK Bot 33a5468a60 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:02:27 +00:00
QMK Bot 34b63cecb1 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:01:19 +00:00
QMK Bot 7748a093cb Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:00:39 +00:00
github-actions[bot] d8f113bf98 Format code according to conventions (#12680)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 10:34:38 +10:00
Daniel Rodríguez Rivero 26b9b3aa23 feat: infinite timeout for leader key (#6580)
* feat: implement leader_no_timeout logic

* docs(leader_key): infinite leader timeout docs
2021-04-25 10:22:47 +10:00
QMK Bot 8f5cc8d762 Merge remote-tracking branch 'origin/master' into develop 2021-04-22 21:16:12 +00:00
QMK Bot 6be87836dc Merge remote-tracking branch 'origin/master' into develop 2021-04-22 17:14:44 +00:00
QMK Bot 417803d7ae Merge remote-tracking branch 'origin/master' into develop 2021-04-22 14:58:49 +00:00
github-actions[bot] 15ff1927db [CI] Format code according to conventions (#12650)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-22 19:26:17 +10:00
Ryan d6ab908272 LED Matrix: Split (#12633) 2021-04-22 19:21:13 +10:00
QMK Bot 5d458c6c8a Merge remote-tracking branch 'origin/master' into develop 2021-04-21 23:51:07 +00:00
QMK Bot fbc5a6c24b Merge remote-tracking branch 'origin/master' into develop 2021-04-20 19:02:29 +00:00
QMK Bot 15872bde61 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 18:13:34 +00:00
QMK Bot b09d068bf6 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:52:32 +00:00
QMK Bot f7f8f97e6a Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:50:40 +00:00
QMK Bot 2927af43e1 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:48:10 +00:00
QMK Bot 7795e167ab Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:46:58 +00:00
QMK Bot b68ed9ebea Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:25:10 +00:00
QMK Bot ed59337239 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:23:34 +00:00
QMK Bot 120b15458c Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:23:01 +00:00
QMK Bot 19887f2d35 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:22:13 +00:00
QMK Bot a9e6dc3629 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:18:12 +00:00
Michael Stapelberg c922fc2cf3 [Keyboard] kint2pp: reduce input latency by ≈10ms (#12625) 2021-04-20 10:08:29 -07:00
Michael Stapelberg 3d32cbb0dc [Keyboard] kint36: switch to sym_eager_pk debouncing (#12626) 2021-04-20 10:08:01 -07:00
QMK Bot 8da2c48650 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:59:38 +00:00
QMK Bot 5aa3fd5ac7 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:57:07 +00:00
QMK Bot 6620b6c515 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:32:55 +00:00
QMK Bot e31f210b59 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:24:28 +00:00
QMK Bot 39e80a3f5c Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:15:59 +00:00
QMK Bot bc66d71dae Merge remote-tracking branch 'origin/master' into develop 2021-04-20 16:12:25 +00:00
QMK Bot 427bff8504 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 15:18:18 +00:00
Ryan cb19c0906e LED Matrix: Reactive effect buffers & advanced indicators (#12588) 2021-04-20 17:38:44 +10:00
QMK Bot b1f48da5ee Merge remote-tracking branch 'origin/master' into develop 2021-04-20 04:13:18 +00:00
Drashna Jaelre c02137a0d2 Add Per Key functionality for AutoShift (#11536)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 20:34:14 -07:00
QMK Bot 49efd6abb0 Merge remote-tracking branch 'origin/master' into develop 2021-04-20 02:40:47 +00:00
QMK Bot 663664e48f Merge remote-tracking branch 'origin/master' into develop 2021-04-19 18:04:50 +00:00
QMK Bot c3d1456615 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 16:40:51 +00:00
Purdea Andrei dcb8407ed6 Apply the "NO_LIMITED_CONTROLLER_CONNECT" fix to atmega16u2 (#12482)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 09:33:24 -07:00
github-actions[bot] 230f09ca17 [CI] Format code according to conventions (#12623)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-19 20:19:16 +10:00
QMK Bot d562b4fdc5 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 10:15:56 +00:00
QMK Bot 46318f36ac Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:23:28 +00:00
QMK Bot 97e7defaae Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:22:54 +00:00
QMK Bot 56fff80e71 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:21:56 +00:00
QMK Bot 42808238c1 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:20:46 +00:00
QMK Bot 34df6743f6 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 08:21:39 +00:00
QMK Bot 2c0b3649fb Merge remote-tracking branch 'origin/master' into develop 2021-04-19 07:32:45 +00:00
QMK Bot 0235fc7ab2 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:43:21 +00:00
Drashna Jaelre 180a32ec59 Enhancement of WPM feature (#11727) 2021-04-18 23:26:37 -07:00
QMK Bot f65a5d2fb5 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:18:08 +00:00
QMK Bot 6e5fd1a210 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:13:00 +00:00
QMK Bot a66947b7d6 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:12:34 +00:00
QMK Bot 86ece8e98e Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:04:50 +00:00
QMK Bot 5632c5db31 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 06:00:42 +00:00
QMK Bot ca9da27e16 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:44:51 +00:00
QMK Bot 54521bd04b Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:31:08 +00:00
QMK Bot 2e7fd319a1 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:25:03 +00:00
QMK Bot 21997e8894 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 05:05:55 +00:00
QMK Bot ea29874099 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 04:54:01 +00:00
QMK Bot ca11abc201 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 04:02:42 +00:00
QMK Bot 8ecdc66700 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:54:31 +00:00
QMK Bot 9484c46555 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:45:01 +00:00
QMK Bot c2d7ebc3df Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:37:16 +00:00
QMK Bot 7728b0f966 Merge remote-tracking branch 'origin/master' into develop 2021-04-19 03:08:31 +00:00
QMK Bot 0a9e18fae1 Merge remote-tracking branch 'origin/master' into develop 2021-04-18 22:40:16 +00:00
QMK Bot 924b9fcf05 Merge remote-tracking branch 'origin/master' into develop 2021-04-18 22:23:25 +00:00
QMK Bot 884f8658ef Merge remote-tracking branch 'origin/master' into develop 2021-04-18 22:14:59 +00:00
QMK Bot 99ce84827a Merge remote-tracking branch 'origin/master' into develop 2021-04-18 15:52:15 +00:00
QMK Bot 7f809c013a Merge remote-tracking branch 'origin/master' into develop 2021-04-17 15:47:13 +00:00
QMK Bot 40365f8297 Merge remote-tracking branch 'origin/master' into develop 2021-04-16 14:26:52 +00:00
QMK Bot 1ac030b119 Merge remote-tracking branch 'origin/master' into develop 2021-04-16 14:24:18 +00:00
Joshua Diamond e2289ffac0 Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes (#11935)
* Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes

* Better comment

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-15 19:32:17 -04:00
QMK Bot 1629c9b71a Merge remote-tracking branch 'origin/master' into develop 2021-04-15 17:20:12 +00:00
QMK Bot 42a57b37fb Merge remote-tracking branch 'origin/master' into develop 2021-04-15 17:05:00 +00:00
QMK Bot be1b5c5a54 Merge remote-tracking branch 'origin/master' into develop 2021-04-15 17:01:54 +00:00
Ryan 53eb35b6cf LED Matrix: Task system (#12580) 2021-04-15 12:08:52 +10:00
QMK Bot 2c0aa27e6c Merge remote-tracking branch 'origin/master' into develop 2021-04-15 02:00:59 +00:00
QMK Bot 19b143688f Merge remote-tracking branch 'origin/master' into develop 2021-04-14 21:51:45 +00:00
QMK Bot 3c08d27abb Merge remote-tracking branch 'origin/master' into develop 2021-04-14 20:39:01 +00:00
QMK Bot 98dd9b6614 Merge remote-tracking branch 'origin/master' into develop 2021-04-14 03:09:16 +00:00
QMK Bot 4ed273699a Merge remote-tracking branch 'origin/master' into develop 2021-04-14 01:32:38 +00:00
github-actions[bot] 333cd4ec9b [CI] Format code according to conventions (#12570)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-13 19:58:34 +10:00
QMK Bot 30f38c4952 Merge remote-tracking branch 'origin/master' into develop 2021-04-13 09:52:45 +00:00
Ryan a28fbcda23 Terrazzo: Fix wrong LED Matrix function names (#12561) 2021-04-13 19:51:31 +10:00
Ryan ce99f98bb5 LED Matrix: suspend code (#12509) 2021-04-13 19:51:03 +10:00
Dave Vandyke 15f7cc3bde [Keymap] Add kzar keymap for Kinesis Advantage (#12444) 2021-04-13 11:39:39 +02:00
James Young a8d64c8b89 Change BOOTMAGIC_ENABLE=yes to use Bootmagic Lite (#12172) 2021-04-12 21:18:52 +02:00
QMK Bot f5aaecfdfc Merge remote-tracking branch 'origin/master' into develop 2021-04-12 18:41:12 +00:00
QMK Bot ebdf750cdd Merge remote-tracking branch 'origin/master' into develop 2021-04-12 17:56:32 +00:00
QMK Bot 79bdfc1110 Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:51:12 +00:00
QMK Bot 90875997ac Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:49:39 +00:00
QMK Bot f02af23973 Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:47:14 +00:00
QMK Bot c9d7a4af45 Merge remote-tracking branch 'origin/master' into develop 2021-04-11 10:45:56 +00:00
QMK Bot 34323ecd8b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 16:34:58 +00:00
QMK Bot d5a8431af4 Merge remote-tracking branch 'origin/master' into develop 2021-04-10 15:04:12 +00:00
QMK Bot 2e2dd3113b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 13:23:47 +00:00
QMK Bot 11e5bb2d8a Merge remote-tracking branch 'origin/master' into develop 2021-04-10 05:58:04 +00:00
QMK Bot 29d537ce7b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 00:38:17 +00:00
QMK Bot 688fb1999b Merge remote-tracking branch 'origin/master' into develop 2021-04-09 21:36:55 +00:00
QMK Bot bcfa3fb9f2 Merge remote-tracking branch 'origin/master' into develop 2021-04-09 21:32:31 +00:00
QMK Bot 58afb87288 Merge remote-tracking branch 'origin/master' into develop 2021-04-09 19:05:51 +00:00
QMK Bot 0a453194e8 Merge remote-tracking branch 'origin/master' into develop 2021-04-09 18:49:03 +00:00
QMK Bot 3190c2f98d Merge remote-tracking branch 'origin/master' into develop 2021-04-09 02:42:00 +00:00
QMK Bot d4b3d00d88 Merge remote-tracking branch 'origin/master' into develop 2021-04-08 16:48:07 +00:00
QMK Bot 15674d0259 Merge remote-tracking branch 'origin/master' into develop 2021-04-08 04:16:47 +00:00
QMK Bot 52e8875eba Merge remote-tracking branch 'origin/master' into develop 2021-04-07 13:58:12 +00:00
Ryan 40c314fe5c LED Matrix: Implement CIE1931 curve (#12417) 2021-04-07 20:06:11 +10:00
QMK Bot 69bc465ace Merge remote-tracking branch 'origin/master' into develop 2021-04-07 10:04:21 +00:00
Nick Brassel 96acb499d2 Fix up builds that are now too big for develop branch. (#12495) 2021-04-06 16:39:31 +10:00
Nick Brassel 64a0f5a659 Add support for producing UF2-format binaries. (#12435)
* First stab at enabling builds of UF2-format binaries.

* Add description on producing a UF2 file.
2021-04-06 16:39:15 +10:00
QMK Bot 3ce8c9fc8f Merge remote-tracking branch 'origin/master' into develop 2021-04-04 09:10:07 +00:00
QMK Bot 8428cedc83 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 19:43:05 +00:00
QMK Bot 9bedc6300d Merge remote-tracking branch 'origin/master' into develop 2021-04-03 16:29:37 +00:00
QMK Bot cc4066189a Merge remote-tracking branch 'origin/master' into develop 2021-04-03 16:16:12 +00:00
github-actions[bot] 733c861052 Format code according to conventions (#12467)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-03 08:35:26 -07:00
QMK Bot dd7f18f65f Merge remote-tracking branch 'origin/master' into develop 2021-04-03 15:29:28 +00:00
QMK Bot e90ec6a474 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 13:51:51 +00:00
fauxpark 638cc50727 Merge remote-tracking branch 'upstream/master' into develop 2021-04-03 20:15:54 +11:00
QMK Bot 1444ebb7f1 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 06:20:42 +00:00
QMK Bot 028a0dcd3d Merge remote-tracking branch 'origin/master' into develop 2021-04-03 05:12:49 +00:00
QMK Bot 655927ab15 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 05:06:28 +00:00
QMK Bot 051e23c782 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 04:45:06 +00:00
QMK Bot 887d0fca0e Merge remote-tracking branch 'origin/master' into develop 2021-04-03 04:21:01 +00:00
QMK Bot 358b040157 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 04:18:44 +00:00
QMK Bot 184c553cab Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:59:15 +00:00
QMK Bot fc8495a744 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:57:51 +00:00
QMK Bot 428e9e7886 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:48:53 +00:00
QMK Bot d475f04c78 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 03:44:40 +00:00
QMK Bot 39e1b5b962 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 02:04:56 +00:00
QMK Bot c375ae3ec7 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 02:03:00 +00:00
QMK Bot f561b857f2 Merge remote-tracking branch 'origin/master' into develop 2021-04-03 00:52:10 +00:00
Ryan 8880e89bcd Big quantum_keycodes cleanup (#12249) 2021-04-02 17:45:56 -07:00
QMK Bot 4c981953ac Merge remote-tracking branch 'origin/master' into develop 2021-04-03 00:26:01 +00:00
QMK Bot 41723340de Merge remote-tracking branch 'origin/master' into develop 2021-04-02 21:45:17 +00:00
QMK Bot 56560a859b Merge remote-tracking branch 'origin/master' into develop 2021-04-02 21:26:07 +00:00
QMK Bot 65fab0ef5b Merge remote-tracking branch 'origin/master' into develop 2021-04-02 21:24:42 +00:00
QMK Bot 6e531d0ccc Merge remote-tracking branch 'origin/master' into develop 2021-04-02 10:45:01 +00:00
QMK Bot c1ea97e15d Merge remote-tracking branch 'origin/master' into develop 2021-04-01 01:59:03 +00:00
QMK Bot da51302345 Merge remote-tracking branch 'origin/master' into develop 2021-03-31 13:09:34 +00:00
Michael Stapelberg 9d3b11d485 add kinesis/kint36 (#10171)
This moves the config_common.h into the files that include ../config.h,
so that the kint36/config.h does not include it (which would cause
compilation errors).
2021-03-31 10:41:41 +11:00
QMK Bot a8889718aa Merge remote-tracking branch 'origin/master' into develop 2021-03-30 23:17:00 +00:00
QMK Bot 1704eb16cd Merge remote-tracking branch 'origin/master' into develop 2021-03-30 22:34:06 +00:00
Michael Stapelberg e95a4f4f52 core: add pin_defs for MK66F18 (#12419)
This is in preparation for https://github.com/qmk/qmk_firmware/pull/10171
2021-03-30 21:11:40 +11:00
QMK Bot c738d60cef Merge remote-tracking branch 'origin/master' into develop 2021-03-29 03:46:52 +00:00
Ryan 2ae38e9c43 LED Matrix: Config functions (#12361) 2021-03-28 17:59:44 +11:00
QMK Bot 0d1162f180 Merge remote-tracking branch 'origin/master' into develop 2021-03-27 15:56:21 +00:00
QMK Bot ea472b46c9 Merge remote-tracking branch 'origin/master' into develop 2021-03-27 08:04:42 +00:00
QMK Bot 76f8e84edd Merge remote-tracking branch 'origin/master' into develop 2021-03-26 17:58:46 +00:00
QMK Bot 3d957a33fa Merge remote-tracking branch 'origin/master' into develop 2021-03-26 12:37:54 +00:00
QMK Bot 0eb36b5e9a Merge remote-tracking branch 'origin/master' into develop 2021-03-26 02:22:03 +00:00
github-actions[bot] 67252c246c Format code according to conventions (#12381)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-25 23:44:37 +11:00
Oleg Senchenko b05565f368 Fix connection issue in split keyboards when slave and OLED display are connected via I2C, fix #9335 (#11487)
* In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335

* Revert "In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335"

This reverts commit 3ee639e1f35fb0fe257fc3ba1095124e039af7d7.

* In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335

* Update drivers/oled/oled_driver.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: osenchenko <osechenko@chiefmate.io>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-25 23:42:25 +11:00
QMK Bot e2b652d95f Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:41:48 +00:00
QMK Bot 56dee4acc6 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:40:23 +00:00
QMK Bot d0d77e8c60 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:39:14 +00:00
Liyang HU 3143846ba4 keyboards/xd60/readme.md: link to schematic on EasyEDA (#12018) 2021-03-25 23:38:54 +11:00
QMK Bot 25f1a3d759 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:20:42 +00:00
QMK Bot 5a0be4c6d8 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:14:17 +00:00
QMK Bot 2df1b124a7 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:11:36 +00:00
QMK Bot f2729e8974 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:08:38 +00:00
QMK Bot aa85b5ee1e Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:05:42 +00:00
QMK Bot fd24546787 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:04:35 +00:00
QMK Bot 9294c5aa0a Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:03:24 +00:00
QMK Bot 712c9fc848 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:02:24 +00:00
QMK Bot 96a6214316 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 12:01:35 +00:00
QMK Bot d2b405066d Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:55:36 +00:00
QMK Bot ea1ed13bc8 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:53:33 +00:00
QMK Bot 6ad0b004fa Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:52:32 +00:00
QMK Bot c3483458fe Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:51:33 +00:00
QMK Bot ba5aacbb95 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:50:49 +00:00
QMK Bot a2165b38a0 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:49:40 +00:00
QMK Bot e86b7d0c13 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:47:36 +00:00
QMK Bot 5bc5921af4 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:46:26 +00:00
QMK Bot 76db2bb39b Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:44:56 +00:00
QMK Bot a3760c0891 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:39:24 +00:00
QMK Bot a747ef966b Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:38:44 +00:00
QMK Bot 87f6df0655 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:36:57 +00:00
QMK Bot 25b7a5d531 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:36:29 +00:00
QMK Bot c7436e667d Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:35:49 +00:00
QMK Bot 183dde75de Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:35:06 +00:00
QMK Bot 8086837f69 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:34:28 +00:00
XScorpion2 ff41c22fdc Adding keyboard level weak function for slave matrix scan (#12317) 2021-03-25 22:33:18 +11:00
QMK Bot 2f6236d1ea Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:31:17 +00:00
QMK Bot 921f1ba4cf Merge remote-tracking branch 'origin/master' into develop 2021-03-25 07:06:41 +00:00
QMK Bot 1bb04ea598 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 05:29:33 +00:00
QMK Bot 600fc8be2b Merge remote-tracking branch 'origin/master' into develop 2021-03-25 03:34:00 +00:00
QMK Bot c823160d94 Merge remote-tracking branch 'origin/master' into develop 2021-03-25 01:33:46 +00:00
QMK Bot d6b18ebfe7 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 19:47:14 +00:00
QMK Bot b515651feb Merge remote-tracking branch 'origin/master' into develop 2021-03-24 19:39:16 +00:00
QMK Bot 0dc0516f0c Merge remote-tracking branch 'origin/master' into develop 2021-03-24 16:27:28 +00:00
QMK Bot 743d6c430b Merge remote-tracking branch 'origin/master' into develop 2021-03-24 10:13:37 +00:00
QMK Bot 87aa3282f0 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 09:07:46 +00:00
QMK Bot bbc48b0ef5 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 04:25:05 +00:00
Ryan bd18405cf0 LED Matrix: Fix up eeconfig code (#12327) 2021-03-24 13:09:56 +11:00
QMK Bot dd5a732eac Merge remote-tracking branch 'origin/master' into develop 2021-03-24 02:04:16 +00:00
QMK Bot 862b01d4c0 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 02:00:40 +00:00
QMK Bot 9afbbf21fd Merge remote-tracking branch 'origin/master' into develop 2021-03-23 18:19:00 +00:00
QMK Bot b2cfb629e4 Merge remote-tracking branch 'origin/master' into develop 2021-03-23 15:11:57 +00:00
QMK Bot 34423580e0 Merge remote-tracking branch 'origin/master' into develop 2021-03-23 07:01:25 +00:00
QMK Bot e6d83644e8 Merge remote-tracking branch 'origin/master' into develop 2021-03-23 01:59:02 +00:00
QMK Bot fe58770df8 Merge remote-tracking branch 'origin/master' into develop 2021-03-21 02:43:41 +00:00
Donald Kjer 00a0c81f8e Durgod keyboard refactor in preparation for adding additional durgod keyboards (#11978)
* Durgod keyboard refactor in preparation for adding additional durgod keyboards

* Moving Durgod board configuration into a common location
* Reformatting layout macro whitespace
* Moving TGUI key functionality to the keyboard level
* Replacing default keymap.c with keymap.json
* Changing default and default_toggle_mac_windows keymaps to LAYOUT_all
* Increasing EEPROM size to support more VIA layers
* Fixing media keys; KC_MRWD/KC_MFFD => KC_MPRV/KC_NXT

* Move ISO Enter key to the correct row in Durgod K320

* Minor whitespace and readme cleanup for K320

* Changing durgod/k320 debounce back to default

* Simplifying DURGOD_STM32_F070's chconf.h

Co-authored-by: Simon Arlott <sa.me.uk>
Co-authored-by: Tyler Tidman <tyler.tidman@draak.ca>
2021-03-21 11:11:22 +11:00
QMK Bot 945b7a0613 Merge remote-tracking branch 'origin/master' into develop 2021-03-20 03:53:28 +00:00
Ryan ed28795651 LED Matrix: Additional common_features.mk tweaks (#12187) 2021-03-20 14:52:33 +11:00
QMK Bot 9d547a8443 Merge remote-tracking branch 'origin/master' into develop 2021-03-20 00:13:10 +00:00
QMK Bot c2dc3008b5 Merge remote-tracking branch 'origin/master' into develop 2021-03-19 19:37:22 +00:00
github-actions[bot] 32f0567ca5 Format code according to conventions (#12292)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-19 16:24:36 +00:00
Xelus22 6f7466b6dd ARM WS2812 SPI config (baudrate and circular buffer) (#12216)
* initial commit

* include circular buffer command

* add endif

* circular buffer mode

* remove untrue comment

* revamp and add documentation

* do not allow WS2812_SPI_SYNC & CIRCULAR_BUFFER
2021-03-19 19:29:18 +11:00
Zach White f2715a0593 Consistently use bin/qmk when that script is called (#12286)
* Pass QMK_BIN down to build_keyboard.mk

* choose the correct qmk script
2021-03-18 16:10:40 -07:00
QMK Bot 90b1e271a8 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 17:25:01 +00:00
QMK Bot d97a9fb4ff Merge remote-tracking branch 'origin/master' into develop 2021-03-18 14:26:24 +00:00
QMK Bot 6d050b7282 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 13:17:59 +00:00
QMK Bot 74c89de3e9 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 03:38:43 +00:00
QMK Bot af5c10ef0c Merge remote-tracking branch 'origin/master' into develop 2021-03-18 01:29:25 +00:00
QMK Bot 4aa57e9e46 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 00:48:52 +00:00
QMK Bot d0c2f3c403 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 22:33:49 +00:00
QMK Bot 31b657e8ea Merge remote-tracking branch 'origin/master' into develop 2021-03-17 17:08:39 +00:00
QMK Bot 3367705ac2 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 17:02:38 +00:00
QMK Bot 6671344602 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 16:44:59 +00:00
XScorpion2 60837c9d0f [Keyboard] Split RGB Matrix Zygomorph support (#11083) 2021-03-16 23:56:39 -07:00
QMK Bot d4ac56226d Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:50:58 +00:00
QMK Bot 29589ce832 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:48:33 +00:00
QMK Bot 5e7a7c7e2f Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:47:59 +00:00
QMK Bot 71b38e0cee Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:32:31 +00:00
QMK Bot 8c00003466 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:23:19 +00:00
QMK Bot 33852d14af Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:18:20 +00:00
QMK Bot 6bc4528776 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 06:01:16 +00:00
QMK Bot b4b3be4f05 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 04:58:19 +00:00
QMK Bot 6817771df7 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 04:57:18 +00:00
QMK Bot ed8ffa4bb4 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 03:10:20 +00:00
QMK Bot 3c92142f12 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 03:06:02 +00:00
QMK Bot c680c84a31 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 02:50:20 +00:00
QMK Bot da752e5d7d Merge remote-tracking branch 'origin/master' into develop 2021-03-17 02:44:50 +00:00
QMK Bot cefa23e4eb Merge remote-tracking branch 'origin/master' into develop 2021-03-17 02:24:08 +00:00
QMK Bot 07ea935533 Merge remote-tracking branch 'origin/master' into develop 2021-03-17 01:39:42 +00:00
Michael Stapelberg 1d341ffbb0 core: add support for MK66F18 (Teensy 3.6) micro controller (#12258)
This is in preparation for https://github.com/qmk/qmk_firmware/pull/10171
2021-03-17 06:45:21 +11:00
QMK Bot 319031154d Merge remote-tracking branch 'origin/master' into develop 2021-03-16 07:01:35 +00:00
QMK Bot 2defbde5ab Merge remote-tracking branch 'origin/master' into develop 2021-03-15 23:10:08 +00:00
QMK Bot c12eae0c5e Merge remote-tracking branch 'origin/master' into develop 2021-03-15 23:03:53 +00:00
QMK Bot 56d193c5c8 Merge remote-tracking branch 'origin/master' into develop 2021-03-15 17:42:47 +00:00
QMK Bot c3a2a7659e Merge remote-tracking branch 'origin/master' into develop 2021-03-15 08:25:35 +00:00
QMK Bot 8b9419aaf7 Merge remote-tracking branch 'origin/master' into develop 2021-03-15 08:07:38 +00:00
QMK Bot 2f59e1c1d9 Merge remote-tracking branch 'origin/master' into develop 2021-03-15 01:21:48 +00:00
QMK Bot 998c58e89b Merge remote-tracking branch 'origin/master' into develop 2021-03-15 01:19:36 +00:00
QMK Bot 35db567c9c Merge remote-tracking branch 'origin/master' into develop 2021-03-14 21:51:52 +00:00
QMK Bot 93929e8d01 Merge remote-tracking branch 'origin/master' into develop 2021-03-14 20:19:39 +00:00
QMK Bot 75867ff164 Merge remote-tracking branch 'origin/master' into develop 2021-03-14 20:17:43 +00:00
QMK Bot 78be537eff Merge remote-tracking branch 'origin/master' into develop 2021-03-14 19:56:33 +00:00
QMK Bot d036ebeaf6 Merge remote-tracking branch 'origin/master' into develop 2021-03-14 19:24:07 +00:00
Ryan f236395176 LED Matrix: Clean up includes (#12197) 2021-03-13 11:38:26 +11:00
QMK Bot 5590c40b5b Merge remote-tracking branch 'origin/master' into develop 2021-03-13 00:38:14 +00:00
QMK Bot 71bb07d10a Merge remote-tracking branch 'origin/master' into develop 2021-03-12 22:38:13 +00:00
QMK Bot e83f4e0173 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 21:58:40 +00:00
QMK Bot 0ee473afd1 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 21:50:57 +00:00
QMK Bot f279f4731b Merge remote-tracking branch 'origin/master' into develop 2021-03-12 21:48:20 +00:00
QMK Bot d95df57297 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 07:44:20 +00:00
QMK Bot 71f8f5048b Merge remote-tracking branch 'origin/master' into develop 2021-03-12 07:04:21 +00:00
QMK Bot 183c49f352 Merge remote-tracking branch 'origin/master' into develop 2021-03-12 06:34:50 +00:00
QMK Bot 97268662fe Merge remote-tracking branch 'origin/master' into develop 2021-03-11 18:02:34 +00:00
QMK Bot b113772bb1 Merge remote-tracking branch 'origin/master' into develop 2021-03-10 22:48:53 +00:00
Joel Challis 40c7ecfdea Move gpio wait logic to wait.h (#12067) 2021-03-10 22:47:36 +00:00
Ryan 2e24cfadb7 Remove FUNC() (#12161) 2021-03-11 05:21:28 +11:00
QMK Bot bb01ea3809 Merge remote-tracking branch 'origin/master' into develop 2021-03-10 05:18:14 +00:00
QMK Bot 25ec655162 Merge remote-tracking branch 'origin/master' into develop 2021-03-09 21:37:12 +00:00
QMK Bot 4496983233 Merge remote-tracking branch 'origin/master' into develop 2021-03-09 18:37:19 +00:00
QMK Bot 7b91af780a Merge remote-tracking branch 'origin/master' into develop 2021-03-09 16:07:25 +00:00
Ryan 9155b59e1a LED Matrix: decouple from Backlight (#12054) 2021-03-08 16:55:00 +11:00
Zach White b0069c5c05 Begin the process of deprecating bin/qmk in favor of the global cli (#12109)
* Begin the process of deprecating bin/qmk in favor of the global cli

* Correctly set the qmk bin
2021-03-07 19:10:03 -08:00
QMK Bot 7d45b7f269 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 23:34:13 +00:00
QMK Bot 43b47495e3 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 20:20:33 +00:00
Zach White b15288fb87 trivial change to trigger api update 2021-03-07 12:01:13 -08:00
QMK Bot e6e572bf5c Merge remote-tracking branch 'origin/master' into develop 2021-03-07 16:15:38 +00:00
QMK Bot 37d1fa53e0 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 06:40:08 +00:00
QMK Bot f48d95b415 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 05:26:50 +00:00
QMK Bot 5fb16e3442 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 05:22:57 +00:00
QMK Bot d170a1c0e2 Merge remote-tracking branch 'origin/master' into develop 2021-03-07 05:18:28 +00:00
QMK Bot fbd6b28633 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 23:57:11 +00:00
QMK Bot 56d5131715 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 23:13:57 +00:00
QMK Bot bee226b3ee Merge remote-tracking branch 'origin/master' into develop 2021-03-06 21:04:21 +00:00
QMK Bot 6e19dbc923 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 18:57:16 +00:00
QMK Bot cde4165097 Merge remote-tracking branch 'origin/master' into develop 2021-03-06 08:50:30 +00:00
QMK Bot c375a8d75b Merge remote-tracking branch 'origin/master' into develop 2021-03-06 06:45:23 +00:00
Drashna Jaelre b7f2f40ae5 Set default OLED Update Interval for Split Keyboards (#12107)
Because the matrix scanning is slower for splits, in general,
the frequent updating of the OLEDs can slow down the matrix scanning.
To help prevent that, set the update interval for the OLEDs to not
update as frequently.
2021-03-05 16:26:57 -08:00
QMK Bot 6e938f1f24 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 22:23:19 +00:00
QMK Bot e1ce619bf7 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 20:26:58 +00:00
QMK Bot 3acb3a09fc Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:43:45 +00:00
QMK Bot 7ca9604422 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:30:41 +00:00
QMK Bot ebfd555ad1 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:26:10 +00:00
QMK Bot f8f2cf7500 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 18:04:50 +00:00
QMK Bot cc6cd394e5 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 05:16:14 +00:00
QMK Bot 7e051e0619 Merge remote-tracking branch 'origin/master' into develop 2021-03-05 04:25:54 +00:00
QMK Bot a71fb6057d Merge remote-tracking branch 'origin/master' into develop 2021-03-04 23:04:36 +00:00
QMK Bot 474cffbc0f Merge remote-tracking branch 'origin/master' into develop 2021-03-04 23:00:06 +00:00
QMK Bot 4fcc709f4e Merge remote-tracking branch 'origin/master' into develop 2021-03-04 19:08:37 +00:00
QMK Bot 01c5ee6f7d Merge remote-tracking branch 'origin/master' into develop 2021-03-04 18:16:03 +00:00
QMK Bot 8f54152fab Merge remote-tracking branch 'origin/master' into develop 2021-03-04 15:20:45 +00:00
QMK Bot 54f6ff3bd5 Merge remote-tracking branch 'origin/master' into develop 2021-03-04 04:10:10 +00:00
QMK Bot d3092ced99 Merge remote-tracking branch 'origin/master' into develop 2021-03-04 01:02:37 +00:00
Nick Brassel 6c3af2670e Fixup line endings. 2021-03-04 10:35:02 +11:00
QMK Bot 6a4960889e Merge remote-tracking branch 'origin/master' into develop 2021-03-03 21:33:06 +00:00
QMK Bot 064265166c Merge remote-tracking branch 'origin/master' into develop 2021-03-03 21:32:18 +00:00
QMK Bot 9f6ce448bd Merge remote-tracking branch 'origin/master' into develop 2021-03-03 21:15:31 +00:00
QMK Bot c26344fc93 Merge remote-tracking branch 'origin/master' into develop 2021-03-03 20:38:58 +00:00
QMK Bot 4235160dcf Merge remote-tracking branch 'origin/master' into develop 2021-03-03 20:37:52 +00:00
QMK Bot 73120947cf Merge remote-tracking branch 'origin/master' into develop 2021-03-03 20:28:54 +00:00
QMK Bot 5762bc4a5f Merge remote-tracking branch 'origin/master' into develop 2021-03-03 18:52:36 +00:00
Drashna Jaelre 41933efbf0 [Keyboard] Enable RGB Matrix for Corne (#12091) 2021-03-03 10:38:21 -08:00
Sergey Vlasov 18a333ec6b Add support for complementary outputs to the WS2812 PWM driver (#11988) 2021-03-02 20:26:06 -08:00
QMK Bot 8f5d2e546e Merge remote-tracking branch 'origin/master' into develop 2021-03-03 04:07:13 +00:00
QMK Bot 4132dd87a4 Merge remote-tracking branch 'origin/master' into develop 2021-03-03 02:59:37 +00:00
github-actions[bot] d950b97115 Format code according to conventions (#12088)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-03 07:54:11 +11:00
XScorpion2 cde2859a65 Split RGB Matrix (#11055)
* Split RGB Matrix

* Suspend State sync for rgb matrix
2021-03-03 07:32:15 +11:00
QMK Bot 967d7c47dc Merge remote-tracking branch 'origin/master' into develop 2021-03-02 14:33:32 +00:00
QMK Bot 4c04c848b5 Merge remote-tracking branch 'origin/master' into develop 2021-03-02 14:32:29 +00:00
QMK Bot 27d2fb88ca Merge remote-tracking branch 'origin/master' into develop 2021-03-02 05:29:53 +00:00
QMK Bot de585e3109 Merge remote-tracking branch 'origin/master' into develop 2021-03-02 04:34:43 +00:00
QMK Bot e662de94f6 Merge remote-tracking branch 'origin/master' into develop 2021-03-02 03:10:19 +00:00
QMK Bot 4fedf6efbd Merge remote-tracking branch 'origin/master' into develop 2021-03-02 01:18:42 +00:00
QMK Bot 1beb6b686a Merge remote-tracking branch 'origin/master' into develop 2021-03-01 19:57:19 +00:00
github-actions[bot] 50290c78b6 Format code according to conventions (#12076)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-01 18:08:18 +00:00
Drashna Jaelre 0e984b6e7e Add ability to toggle One Shot functionality (#4198)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-01 08:57:02 -08:00
QMK Bot 86f6f68274 Merge remote-tracking branch 'origin/master' into develop 2021-03-01 05:04:27 +00:00
QMK Bot 93a1d4f156 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 21:25:41 +00:00
QMK Bot 80e8e20a89 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 20:19:42 +00:00
QMK Bot 0efafdd408 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 20:12:15 +00:00
QMK Bot 3718f5149a Merge remote-tracking branch 'origin/master' into develop 2021-02-28 16:16:16 +00:00
QMK Bot 3b8ca5f343 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 16:01:51 +00:00
github-actions[bot] b2f5bd7c60 Format code according to conventions (#12056)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-28 15:53:54 +00:00
Joel Challis 5ba4391cf2 Refactor of USB code within split_common (#11890)
* Initial refactor of usb code within split_common

* Add headers

* Correct disable condition

* Format

* Align func name
2021-02-28 15:52:58 +00:00
Joel Challis 415a8bc249 ARM - Refactor SLEEP_LED to support more platforms (#8403)
* Initial refactor of ARM SLEEP_LED to enable more platforms

* fix build issues

* Disable SLEEP_LED for boards with no caps lock code

* Enable GPT14 for boards with caps lock code and SLEEP_LED enabled

* Enable GPT for boards with caps lock code and SLEEP_LED enabled
2021-02-28 15:52:43 +00:00
Joel Challis a3cbc8a004 Overhaul bootmagic logic to have single entrypoint (#8532)
* Relocate bootmagic logic to have single entrypoint

* Align init of layer state
2021-02-28 15:50:15 +00:00
QMK Bot 02dc3b6722 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:16:09 +00:00
QMK Bot 0f084751b4 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:13:59 +00:00
QMK Bot d57b44153e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:13:24 +00:00
QMK Bot fcf1ec132f Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:12:24 +00:00
QMK Bot 4a31d0a9c9 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:11:35 +00:00
QMK Bot 656c39909a Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:10:56 +00:00
QMK Bot 70bdf25284 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:10:13 +00:00
QMK Bot 15af423d86 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:08:29 +00:00
QMK Bot 8428dee47e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:07:06 +00:00
QMK Bot cf8097138e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:05:14 +00:00
QMK Bot c4c3e774cd Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:04:19 +00:00
QMK Bot a19363ab25 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:03:04 +00:00
QMK Bot b6a39f61e5 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 06:02:30 +00:00
QMK Bot 13d44a2281 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:57:31 +00:00
QMK Bot fad596a159 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:51:25 +00:00
QMK Bot 55d85b89c0 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:50:33 +00:00
QMK Bot 43bd843f37 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:44:26 +00:00
QMK Bot 85dd0556d7 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:42:46 +00:00
QMK Bot e86e7c351d Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:39:17 +00:00
QMK Bot c2f446f40e Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:38:43 +00:00
QMK Bot d9d03d5af8 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:36:34 +00:00
QMK Bot b64fd093ad Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:32:12 +00:00
QMK Bot bd4b7f8b25 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:30:56 +00:00
QMK Bot 93d3cf52ab Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:04:17 +00:00
QMK Bot 33c7d6eb93 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 05:00:12 +00:00
QMK Bot 9525d5b5ae Merge remote-tracking branch 'origin/master' into develop 2021-02-28 04:54:08 +00:00
QMK Bot 00cb9029f5 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 04:48:45 +00:00
QMK Bot 72abf86870 Merge remote-tracking branch 'origin/master' into develop 2021-02-28 00:17:42 +00:00
QMK Bot 605fd0eda8 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 23:26:10 +00:00
QMK Bot 4db695f932 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:36:14 +00:00
QMK Bot 89936c66b0 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:34:01 +00:00
QMK Bot 37690f2651 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:21:12 +00:00
QMK Bot 6ae72f3980 Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:08:25 +00:00
QMK Bot 06071dc76d Merge remote-tracking branch 'origin/master' into develop 2021-02-27 22:02:34 +00:00
James Young c7a7982e23 Branch point for 2021 May 29 Breaking Change 2021-02-27 12:54:23 -08:00
9102 changed files with 126174 additions and 74599 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ on:
jobs:
api_data:
runs-on: ubuntu-latest
container: qmkfm/base_container
container: qmkfm/qmk_cli
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
+2 -2
View File
@@ -16,7 +16,7 @@ jobs:
test:
runs-on: ubuntu-latest
container: qmkfm/base_container
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
@@ -25,4 +25,4 @@ jobs:
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Run tests
run: bin/qmk pytest
run: qmk pytest
+1 -1
View File
@@ -12,7 +12,7 @@ on:
jobs:
api_data:
runs-on: ubuntu-latest
container: qmkfm/base_container
container: qmkfm/qmk_cli
# protect against those who work in their fork on develop
if: github.repository == 'qmk/qmk_firmware'
+1 -1
View File
@@ -14,7 +14,7 @@ on:
jobs:
generate:
runs-on: ubuntu-latest
container: qmkfm/base_container
container: qmkfm/qmk_cli
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
+7 -7
View File
@@ -16,7 +16,7 @@ jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/base_container
container: qmkfm/qmk_cli
steps:
- uses: rlespinasse/github-slug-action@v3.x
@@ -31,12 +31,12 @@ jobs:
output: ' '
fileOutput: ' '
- name: Run qmk cformat and qmk pyformat
- name: Run qmk format-c and qmk format-python
shell: 'bash {0}'
run: |
qmk cformat --core-only -n $(< ~/files.txt)
cformat_exit=$?
qmk pyformat -n
pyformat_exit=$?
qmk format-c --core-only -n $(< ~/files.txt)
format_c_exit=$?
qmk format-python -n
format_python_exit=$?
exit $((cformat_exit + pyformat_exit))
exit $((format_c_exit + format_python_exit))
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/base_container
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
-1
View File
@@ -20,7 +20,6 @@
api_data/v1
doxygen/
quantum/version.h
!quantum/tools/eeprom_reset.hex
*.bin
*.eep
*.hex
-24
View File
@@ -1,24 +0,0 @@
# Code Of Conduct
QMK strives to be an inclusive, tolerant, and welcoming community. We encourage participation from anyone regardless of age, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, political belief, race, religion, or sexual identity and orientation.
> “A gentle word turns away wrath, but a harsh word stirs up anger."
Our users, contributors, and collaborators are expected to treat each other with kindness and respect, to assume good intentions, and to gently correct, where possible, rather than react with escalation. While our goal is to be as accurate as possible, kindness and understanding are more valuable than correctness. Some examples of behavior we will not tolerate include, but is not limited to:
* The use of sexualized language or imagery
* Unwelcome advances, sexual or otherwise
* Deliberate intimidation, stalking, or following
* Insults or derogatory comments, or personal or political attacks
* Publishing others private information without explicit permission
* Sustained disruption of talks or other events
* Other conduct which could reasonably be considered inappropriate in a professional setting
* Advocating for, or encouraging, any of the above behaviour
# Reporting
If someone is violating this Code of Conduct, please email hello@qmk.fm or reach out to one of the Collaborators to bring it to our attention. All complaints will be reviewed and investigated.
QMK will seek to use the least punitive means available to resolve an issue. If the circumstances require asking an offender to leave, we will do that.
Reports will be taken and kept in strict confidence. You will not be required to confront an offender directly.
+2 -3
View File
@@ -1,7 +1,6 @@
FROM qmkfm/base_container
FROM qmkfm/qmk_cli
VOLUME /qmk_firmware
WORKDIR /qmk_firmware
COPY . .
CMD make all:default
CMD qmk compile -kb all -km default
+7 -51
View File
@@ -303,37 +303,8 @@ define PARSE_KEYBOARD
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
# this might be needed, but in a different form
#KEYMAPS := $$(sort $$(filter-out $$(KEYBOARD_FOLDER_1) $$(KEYBOARD_FOLDER_2) \
$$(KEYBOARD_FOLDER_3) $$(KEYBOARD_FOLDER_4) $$(KEYBOARD_FOLDER_5), $$(KEYMAPS)))
KEYBOARD_LAYOUTS :=
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1)
LAYOUT_KEYMAPS :=
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
@@ -557,29 +528,14 @@ git-submodule:
git submodule sync --recursive
git submodule update --init --recursive --progress
# Generate the version.h file
ifdef SKIP_GIT
VERSION_H_FLAGS := --skip-git
endif
ifdef SKIP_VERSION
VERSION_H_FLAGS := --skip-all
SKIP_GIT := yes
endif
# Generate the version.h file
ifndef SKIP_GIT
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
CHIBIOS_VERSION := $(shell cd lib/chibios && git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
CHIBIOS_CONTRIB_VERSION := $(shell cd lib/chibios-contrib && git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
else
GIT_VERSION := NA
CHIBIOS_VERSION := NA
CHIBIOS_CONTRIB_VERSION := NA
endif
ifndef SKIP_VERSION
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
else
BUILD_DATE := 2020-01-01-00:00:00
endif
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o quantum/version.h)
include $(ROOT_DIR)/testlist.mk
Vendored
+3 -3
View File
@@ -6,7 +6,7 @@ Vagrant.configure(2) do |config|
config.vm.define "qmk_firmware"
# VMware/Virtualbox ( and also Hyperv/Parallels) 64 bit
config.vm.box = "generic/debian9"
config.vm.box = "generic/debian10"
config.vm.synced_folder '.', '/vagrant'
@@ -68,13 +68,13 @@ Vagrant.configure(2) do |config|
["virtualbox", "vmware_workstation", "vmware_fusion"].each do |type|
config.vm.provider type do |virt, override|
override.vm.provision "docker" do |d|
d.run "qmkfm/base_container",
d.run "qmkfm/qmk_cli",
cmd: "tail -f /dev/null",
args: "--privileged -v /dev:/dev -v '/vagrant:/vagrant'"
end
override.vm.provision "shell", inline: <<-SHELL
echo 'docker restart qmkfm-base_container && exec docker exec -it qmkfm-base_container /bin/bash -l' >> ~vagrant/.bashrc
echo 'docker restart qmkfm-qmk_cli && exec docker exec -it qmkfm-qmk_cli /bin/bash -l' >> ~vagrant/.bashrc
SHELL
end
end
+23 -17
View File
@@ -21,18 +21,19 @@
# Current options:
#
# AVR:
# halfkay PJRC Teensy
# caterina Pro Micro (Sparkfun/generic)
# atmel-dfu Atmel factory DFU
# lufa-dfu LUFA DFU
# qmk-dfu QMK DFU (LUFA + blinkenlight)
# bootloadHID HIDBootFlash compatible (ATmega32A)
# USBasp USBaspLoader (ATmega328P)
# halfkay PJRC Teensy
# caterina Pro Micro (Sparkfun/generic)
# atmel-dfu Atmel factory DFU
# lufa-dfu LUFA DFU
# qmk-dfu QMK DFU (LUFA + blinkenlight)
# qmk-hid QMK HID (LUFA + blinkenlight)
# bootloadhid HIDBootFlash compatible (ATmega32A)
# usbasploader USBaspLoader (ATmega328P)
# ARM:
# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
# stm32duino STM32Duino (STM32F103x8)
# stm32-dfu STM32 USB DFU in ROM
# apm32-dfu APM32 USB DFU in ROM
# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
# stm32duino STM32Duino (STM32F103x8)
# stm32-dfu STM32 USB DFU in ROM
# apm32-dfu APM32 USB DFU in ROM
#
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list
@@ -51,22 +52,27 @@ ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE = 4096
BOOTLOADER_SIZE ?= 4096
endif
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE = 8192
BOOTLOADER_SIZE ?= 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
OPT_DEFS += -DBOOTLOADER_QMK_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE = 4096
BOOTLOADER_SIZE ?= 4096
endif
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE = 8192
BOOTLOADER_SIZE ?= 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), qmk-hid)
OPT_DEFS += -DBOOTLOADER_QMK_HID
OPT_DEFS += -DBOOTLOADER_HID
BOOTLOADER_SIZE ?= 4096
endif
ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
ifeq ($(strip $(MCU)), atmega32u4)
@@ -80,11 +86,11 @@ ifeq ($(strip $(BOOTLOADER)), caterina)
OPT_DEFS += -DBOOTLOADER_CATERINA
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), bootloadHID)
ifneq (,$(filter $(BOOTLOADER), bootloadhid bootloadHID))
OPT_DEFS += -DBOOTLOADER_BOOTLOADHID
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), USBasp)
ifneq (,$(filter $(BOOTLOADER), usbasploader USBasp))
OPT_DEFS += -DBOOTLOADER_USBASP
BOOTLOADER_SIZE = 4096
endif
-14
View File
@@ -1,31 +1,17 @@
# Look for a json keymap file
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
endif
# Load the keymap-level rules.mk if exists
ifneq ("$(wildcard $(KEYMAP_PATH))", "")
-include $(KEYMAP_PATH)/rules.mk
endif
# Generate the keymap.c
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)
+43 -13
View File
@@ -23,6 +23,15 @@ KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
# Force expansion
TARGET := $(TARGET)
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
# Object files and generated keymap directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
# For split boards we need to set a master half.
MASTER ?= left
ifdef master
@@ -100,7 +109,7 @@ MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
# Pull in rules from info.json
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_rules.mk)
include $(INFO_RULES_MK)
# Check for keymap.json first, so we can regenerate keymap.c
@@ -137,16 +146,35 @@ ifeq ("$(wildcard $(KEYMAP_PATH))", "")
endif
endif
# Have we found a keymap.json?
ifneq ("$(wildcard $(KEYMAP_JSON))", "")
KEYMAP_C := $(KEYMAP_OUTPUT)/src/keymap.c
KEYMAP_H := $(KEYMAP_OUTPUT)/src/config.h
# Load the keymap-level rules.mk if exists
-include $(KEYMAP_PATH)/rules.mk
# Load any rules.mk content from keymap.json
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_OUTPUT)/src/rules.mk)
include $(INFO_RULES_MK)
# Add rules to generate the keymap files - indentation here is important
$(KEYMAP_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)
$(KEYMAP_OUTPUT)/src/config.h: $(KEYMAP_JSON)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H)
generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c
endif
ifeq ($(strip $(CTPC)), yes)
CONVERT_TO_PROTON_C=yes
endif
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
include platforms/chibios/QMK_PROTON_C/convert_to_proton_c.mk
endif
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
include platforms/chibios/boards/QMK_PROTON_C/convert_to_proton_c.mk
endif
include quantum/mcu_selection.mk
@@ -232,6 +260,7 @@ ifdef MCU_FAMILY
PLATFORM=CHIBIOS
PLATFORM_KEY=chibios
FIRMWARE_FORMAT?=bin
OPT_DEFS += -DMCU_$(MCU_FAMILY)
else ifdef ARM_ATSAM
PLATFORM=ARM_ATSAM
PLATFORM_KEY=arm_atsam
@@ -327,19 +356,19 @@ endif
# Disable features that a keyboard doesn't support
-include disable_features.mk
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H += $(KEYMAP_PATH)/config.h
endif
ifneq ("$(KEYMAP_H)","")
CONFIG_H += $(KEYMAP_H)
endif
# project specific files
SRC += $(KEYBOARD_SRC) \
SRC += \
$(KEYBOARD_SRC) \
$(KEYMAP_C) \
$(QUANTUM_SRC)
$(QUANTUM_SRC) \
$(QUANTUM_DIR)/main.c \
# Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax
@@ -374,6 +403,7 @@ ifneq ($(strip $(PROTOCOL)),)
else
include $(TMK_PATH)/protocol/$(PLATFORM_KEY).mk
endif
-include $(TOP_DIR)/platforms/$(PLATFORM_KEY)/flash.mk
# TODO: remove this bodge?
PROJECT_DEFS := $(OPT_DEFS)
-4
View File
@@ -7,7 +7,6 @@ define SEARCH_LAYOUTS_REPO
LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","")
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
@@ -31,6 +30,3 @@ ifneq ($(FORCE_LAYOUT),)
endif
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
# Use rule from build_json.mk, but update prerequisite in case KEYMAP_JSON was updated
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
+3 -1
View File
@@ -53,8 +53,10 @@ endif
include common_features.mk
include $(TMK_PATH)/common.mk
include $(QUANTUM_PATH)/debounce/tests/rules.mk
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
include $(TMK_PATH)/common/test/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include build_full_test.mk
endif
@@ -62,7 +64,7 @@ endif
$(TEST)_SRC += \
tests/test_common/main.c \
$(LIB_PATH)/printf/printf.c \
$(COMMON_DIR)/printf.c
$(QUANTUM_PATH)/logging/print.c
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
+3
View File
@@ -12,6 +12,9 @@ QUANTUM_PATH = $(QUANTUM_DIR)
DRIVER_DIR = drivers
DRIVER_PATH = $(DRIVER_DIR)
PLATFORM_DIR = platforms
PLATFORM_PATH = $(PLATFORM_DIR)
BUILD_DIR := .build
COMMON_VPATH := $(TOP_DIR)
+112 -61
View File
@@ -20,8 +20,23 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/send_string.c \
$(QUANTUM_DIR)/bitwise.c \
$(QUANTUM_DIR)/led.c \
$(QUANTUM_DIR)/action.c \
$(QUANTUM_DIR)/action_layer.c \
$(QUANTUM_DIR)/action_macro.c \
$(QUANTUM_DIR)/action_tapping.c \
$(QUANTUM_DIR)/action_util.c \
$(QUANTUM_DIR)/eeconfig.c \
$(QUANTUM_DIR)/keyboard.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
$(QUANTUM_DIR)/keycode_config.c \
$(QUANTUM_DIR)/logging/debug.c \
$(QUANTUM_DIR)/logging/sendchar.c \
VPATH += $(QUANTUM_DIR)/logging
# Fall back to lib/printf if there is no platform provided print
ifeq ("$(wildcard $(TMK_PATH)/common/$(PLATFORM_KEY)/printf.mk)","")
include $(QUANTUM_PATH)/logging/print.mk
endif
ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes)
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
@@ -102,13 +117,13 @@ endif
ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
OPT_DEFS += -DMOUSEKEY_ENABLE
OPT_DEFS += -DMOUSE_ENABLE
MOUSE_ENABLE := yes
SRC += $(QUANTUM_DIR)/mousekey.c
endif
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
OPT_DEFS += -DPOINTING_DEVICE_ENABLE
OPT_DEFS += -DMOUSE_ENABLE
MOUSE_ENABLE := yes
SRC += $(QUANTUM_DIR)/pointing_device.c
endif
@@ -170,6 +185,7 @@ else
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
OPT_DEFS += -DEEPROM_DRIVER
COMMON_VPATH += $(DRIVER_PATH)/eeprom
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else
# This will effectively work the same as "transient" if not supported by the chip
@@ -196,10 +212,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
ifeq ($(filter $(RGBLIGHT_DRIVER),$(VALID_RGBLIGHT_TYPES)),)
$(error RGBLIGHT_DRIVER="$(RGBLIGHT_DRIVER)" is not a valid RGB type)
else
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight_post_config.h
COMMON_VPATH += $(QUANTUM_DIR)/rgblight
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight.c
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
endif
@@ -230,21 +247,25 @@ ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
SRC += $(QUANTUM_DIR)/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix_drivers.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c
SRC += $(LIB_PATH)/lib8tion/lib8tion.c
CIE1931_CURVE := yes
ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3731-simple.c
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
RGB_MATRIX_ENABLE ?= no
VALID_RGB_MATRIX_TYPES := IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
@@ -255,36 +276,47 @@ ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c
SRC += $(LIB_PATH)/lib8tion/lib8tion.c
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGB_MATRIX_DRIVER)), AW20216)
OPT_DEFS += -DAW20216 -DSTM32_SPI -DHAL_USE_SPI=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += aw20216.c
QUANTUM_LIB_SRC += spi_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3731.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3733)
OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737)
OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3737.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3741)
OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3741.c
QUANTUM_LIB_SRC += i2c_master.c
endif
@@ -342,11 +374,6 @@ ifeq ($(strip $(LCD_ENABLE)), yes)
CIE1931_CURVE := yes
endif
# backward compat
ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
BACKLIGHT_DRIVER := custom
endif
VALID_BACKLIGHT_TYPES := pwm timer software custom
BACKLIGHT_ENABLE ?= no
@@ -406,7 +433,7 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
endif
ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes)
COMMON_VPATH += $(DRIVER_PATH)/apa102
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += apa102.c
endif
@@ -462,18 +489,15 @@ ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c
endif
VALID_MAGIC_TYPES := yes full lite
VALID_MAGIC_TYPES := yes lite
BOOTMAGIC_ENABLE ?= no
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
ifeq ($(filter $(BOOTMAGIC_ENABLE),$(VALID_MAGIC_TYPES)),)
$(error BOOTMAGIC_ENABLE="$(BOOTMAGIC_ENABLE)" is not a valid type of magic)
endif
ifneq ($(strip $(BOOTMAGIC_ENABLE)), full)
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
OPT_DEFS += -DBOOTMAGIC_LITE
QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/bootmagic_lite.c
else
OPT_DEFS += -DBOOTMAGIC_ENABLE
QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/bootmagic_full.c
endif
endif
COMMON_VPATH += $(QUANTUM_DIR)/bootmagic
@@ -494,42 +518,31 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes)
# if 'lite' then skip the actual matrix implementation
ifneq ($(strip $(CUSTOM_MATRIX)), lite)
# Include the standard or split matrix code if needed
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/matrix.c
else
QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
endif
QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
endif
endif
# Support for translating old names to new names:
ifeq ($(strip $(DEBOUNCE_TYPE)),sym_g)
DEBOUNCE_TYPE:=sym_defer_g
else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pk)
DEBOUNCE_TYPE:=sym_eager_pk
else ifeq ($(strip $(DEBOUNCE_TYPE)),sym_pk)
DEBOUNCE_TYPE:=sym_defer_pk
else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pr)
DEBOUNCE_TYPE:=sym_eager_pr
endif
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
# Debounce Modules. Set DEBOUNCE_TYPE=custom if including one manually.
DEBOUNCE_TYPE?= sym_defer_g
DEBOUNCE_TYPE ?= sym_defer_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
QUANTUM_SRC += $(QUANTUM_DIR)/debounce/$(strip $(DEBOUNCE_TYPE)).c
endif
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
POST_CONFIG_H += $(QUANTUM_DIR)/split_common/post_config.h
OPT_DEFS += -DSPLIT_KEYBOARD
CRC_ENABLE := yes
# Include files used by all split keyboards
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_util.c
# Determine which (if any) transport files are required
ifneq ($(strip $(SPLIT_TRANSPORT)), custom)
QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/transport.c
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/transport.c \
$(QUANTUM_DIR)/split_common/transactions.c
OPT_DEFS += -DSPLIT_COMMON_TRANSACTIONS
# Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
# Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
ifeq ($(PLATFORM),AVR)
@@ -550,11 +563,17 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif
ifeq ($(strip $(CRC_ENABLE)), yes)
OPT_DEFS += -DCRC_ENABLE
SRC += crc.c
endif
HAPTIC_ENABLE ?= no
ifneq ($(strip $(HAPTIC_ENABLE)),no)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
OPT_DEFS += -DHAPTIC_ENABLE
SRC += $(QUANTUM_DIR)/haptic.c
SRC += $(QUANTUM_DIR)/process_keycode/process_haptic.c
endif
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
@@ -569,15 +588,33 @@ ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += drivers/avr/hd44780.c
SRC += platforms/avr/drivers/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
endif
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
OPT_DEFS += -DOLED_DRIVER_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled
QUANTUM_LIB_SRC += i2c_master.c
SRC += oled_driver.c
VALID_OLED_DRIVER_TYPES := SSD1306 custom
OLED_DRIVER ?= SSD1306
ifeq ($(strip $(OLED_ENABLE)), yes)
ifeq ($(filter $(OLED_DRIVER),$(VALID_OLED_DRIVER_TYPES)),)
$(error OLED_DRIVER="$(OLED_DRIVER)" is not a valid OLED driver)
else
OPT_DEFS += -DOLED_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled
OPT_DEFS += -DOLED_DRIVER_$(strip $(shell echo $(OLED_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(OLED_DRIVER)), SSD1306)
SRC += ssd1306_sh1106.c
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
endif
ifeq ($(strip $(ST7565_ENABLE)), yes)
OPT_DEFS += -DST7565_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled # For glcdfont.h
COMMON_VPATH += $(DRIVER_PATH)/lcd
QUANTUM_LIB_SRC += spi_master.c
SRC += st7565.c
endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
@@ -632,6 +669,11 @@ ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
endif
ifeq ($(strip $(KEY_OVERRIDE_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_key_override.c
OPT_DEFS += -DKEY_OVERRIDE_ENABLE
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
OPT_DEFS += -DTAP_DANCE_ENABLE
@@ -656,19 +698,28 @@ ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
endif
JOYSTICK_ENABLE ?= no
ifneq ($(strip $(JOYSTICK_ENABLE)), no)
VALID_JOYSTICK_TYPES := analog digital
JOYSTICK_DRIVER ?= analog
ifeq ($(strip $(JOYSTICK_ENABLE)), yes)
ifeq ($(filter $(JOYSTICK_DRIVER),$(VALID_JOYSTICK_TYPES)),)
$(error "$(JOYSTICK_DRIVER)" is not a valid joystick driver)
endif
OPT_DEFS += -DJOYSTICK_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c
SRC += $(QUANTUM_DIR)/joystick.c
ifeq ($(strip $(JOYSTICK_DRIVER)), analog)
OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
SRC += analog.c
endif
ifeq ($(strip $(JOYSTICK_DRIVER)), digital)
OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
endif
endif
ifeq ($(strip $(JOYSTICK_ENABLE)), analog)
OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
SRC += analog.c
endif
ifeq ($(strip $(JOYSTICK_ENABLE)), digital)
OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
DIGITIZER_ENABLE ?= no
ifneq ($(strip $(DIGITIZER_ENABLE)), no)
SRC += $(QUANTUM_DIR)/digitizer.c
endif
USBPD_ENABLE ?= no
+54 -4
View File
@@ -1,21 +1,48 @@
# This file maps keys between `config.h` and `info.json`. It is used by QMK
# This file maps keys between `config.h` and `info.json`. It is used by QMK
# to correctly and consistently map back and forth between the two systems.
{
# Format:
# <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
# value_type: one of "array", "array.int", "int", "hex", "list", "mapping"
# value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping"
# to_json: Default `true`. Set to `false` to exclude this mapping from info.json
# to_c: Default `true`. Set to `false` to exclude this mapping from config.h
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
"DEBOUNCE": {"info_key": "debounce", "value_type": "int"}
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
"BACKLIGHT_PIN": {"info_key": "backlight.pin"},
"COMBO_COUNT": {"info_key": "combo.count", "value_type": "int"},
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
"DEBOUNCE": {"info_key": "debounce", "value_type": "int"},
"DEVICE_VER": {"info_key": "usb.device_ver", "value_type": "hex"},
"DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false},
"DIODE_DIRECTION": {"info_key": "diode_direction"},
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},
"DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"},
"DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"},
"IGNORE_MOD_TAP_INTERRUPT": {"info_key": "tapping.ignore_mod_tap_interrupt", "value_type": "bool"},
"IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "tapping.ignore_mod_tap_interrupt_per_key", "value_type": "bool"},
"LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"},
"LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "bool"},
"LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "bool"},
"LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"},
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
"LED_SCROLL_LOCK_PIN": {"info_key": "indicators.scroll_lock"},
"MANUFACTURER": {"info_key": "manufacturer"},
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"},
"MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},
"MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"},
"MOUSEKEY_INTERVAL": {"info_key": "mousekey.interval", "value_type": "int"},
"MOUSEKEY_MAX_SPEED": {"info_key": "mousekey.max_speed", "value_type": "int"},
"MOUSEKEY_TIME_TO_MAX": {"info_key": "mousekey.time_to_max", "value_type": "int"},
"MOUSEKEY_WHEEL_DELAY": {"info_key": "mousekey.wheel_delay", "value_type": "int"},
"ONESHOT_TIMEOUT": {"info_key": "oneshot.timeout", "value_type": "int"},
"ONESHOT_TAP_TOGGLE": {"info_key": "oneshot.tap_toggle", "value_type": "int"},
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "bool"},
"PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "bool"},
"RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "bool"},
"RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "bool"},
"RGB_DI_PIN": {"info_key": "rgblight.pin"},
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
"RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"},
@@ -30,17 +57,40 @@
"RGBLIGHT_EFFECT_SNAKE": {"info_key": "rgblight.animations.snake", "value_type": "bool"},
"RGBLIGHT_EFFECT_STATIC_GRADIENT": {"info_key": "rgblight.animations.static_gradient", "value_type": "bool"},
"RGBLIGHT_EFFECT_TWINKLE": {"info_key": "rgblight.animations.twinkle"},
"RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "bool"},
"RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "bool"},
"RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "bool"},
"RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"},
"RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"},
"RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"},
"RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"},
"RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"},
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"},
"PRODUCT": {"info_key": "keyboard_folder", "to_json": false},
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"},
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"},
"QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"},
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int"},
"QMK_LED": {"info_key": "qmk_lufa_bootloader.led"},
"QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"}
"QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"},
"SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"},
"SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"},
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"},
"SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"},
"SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"},
"SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"},
"SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
"TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"},
"TAP_HOLD_CAPS_DELAY": {"info_key": "qmk.tap_capslock_delay", "value_type": "int"},
"TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool"},
"TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool"},
"TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"},
"TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "bool"},
"TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"},
"USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"},
"USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"},
"USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"},
}
+12 -2
View File
@@ -1,15 +1,25 @@
# This file maps keys between `rules.mk` and `info.json`. It is used by QMK
# This file maps keys between `rules.mk` and `info.json`. It is used by QMK
# to correctly and consistently map back and forth between the two systems.
{
# Format:
# <rules.mk key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
# value_type: one of "array", "array.int", "int", "list", "hex", "mapping"
# value_type: one of "array", "array.int", "bool", "int", "list", "hex", "mapping"
# to_json: Default `true`. Set to `false` to exclude this mapping from info.json
# to_c: Default `true`. Set to `false` to exclude this mapping from rules.mk
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
"BOARD": {"info_key": "board"},
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
"BLUETOOTH": {"info_key": "bluetooth.driver"},
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
"KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"},
"MOUSE_SHARED_EP": {"info_key": "usb.shared_endpoint.mouse", "value_type": "bool"},
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
"LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"},
"LTO_ENABLE": {"info_key": "build.lto", "value_type": "bool"},
"MCU": {"info_key": "processor", "warn_duplicate": false},
"MOUSEKEY_ENABLE": {"info_key": "mouse_key.enabled", "value_type": "bool"},
"NO_USB_STARTUP_CHECK": {"info_key": "usb.no_startup_check", "value_type": "bool"},
"SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "value_type": "str", "to_c": false},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}
}
+118
View File
@@ -11,6 +11,9 @@
'2_milk': {
target: 'spaceman/2_milk'
},
'aeboards/constellation': {
target: 'aeboards/constellation/rev1'
},
'aeboards/ext65': {
target: 'aeboards/ext65/rev1'
},
@@ -38,9 +41,36 @@
'atom47/rev3': {
target: 'maartenwut/atom47/rev3'
},
bakeneko65: {
target: 'bakeneko65/rev2'
},
bear_face: {
target: 'bear_face/v1'
},
bm16a: {
target: 'kprepublic/bm16a'
},
bm16s: {
target: 'kprepublic/bm16s'
},
bm40hsrgb: {
target: 'kprepublic/bm40hsrgb'
},
bm43a: {
target: 'kprepublic/bm43a'
},
bm60poker: {
target: 'kprepublic/bm60poker'
},
bm60rgb: {
target: 'kprepublic/bm60rgb'
},
bm60rgb_iso: {
target: 'kprepublic/bm60rgb_iso'
},
bm68rgb: {
target: 'kprepublic/bm68rgb'
},
'bpiphany/pegasushoof': {
target: 'bpiphany/pegasushoof/2013'
},
@@ -56,15 +86,27 @@
canoe: {
target: 'percent/canoe'
},
'clawsome/gamebuddy': {
target: 'clawsome/gamebuddy/v1_0'
},
'cmm_studio/saka68': {
target: 'cmm_studio/saka68/solder'
},
'cospad': {
target: 'kprepublic/cospad'
},
'crkbd/rev1/legacy': {
target: 'crkbd/rev1'
},
'crkbd/rev1/common': {
target: 'crkbd/rev1'
},
'custommk/genesis': {
target: 'custommk/genesis/rev1'
},
'daisy': {
target: 'ktec/daisy'
},
'doro67/multi': {
layouts: {
LAYOUT_ansi: 'LAYOUT_65_ansi_blocker'
@@ -83,6 +125,9 @@
drakon: {
target: 'jagdpietr/drakon'
},
'durgod/k320': {
target: 'durgod/k3x0/k320'
},
'dztech/dz60rgb': {
target: 'dztech/dz60rgb/v1'
},
@@ -95,9 +140,15 @@
'dztech/dz65rgb': {
target: 'dztech/dz65rgb/v1'
},
'dztech/volcano660': {
target: 'ilumkb/volcano660'
},
eek: {
target: 'eek/silk_down'
},
'ergodone': {
target: 'ktec/ergodone'
},
ergoinu: {
target: 'dm9records/ergoinu'
},
@@ -107,9 +158,15 @@
gh60: {
target: 'gh60/revc'
},
'gmmk/pro': {
target: 'gmmk/pro/ansi'
},
'handwired/ferris': {
target: 'ferris/0_1'
},
'handwired/p1800fl': {
target: 'team0110/p1800fl'
},
'helix/pico/sc/back': {
target: 'helix/pico/sc'
},
@@ -158,6 +215,15 @@
LAYOUT: 'LAYOUT_all'
}
},
'jj40': {
target: 'kprepublic/jj40'
},
'jj4x4': {
target: 'kprepublic/jj4x4'
},
'jj50': {
target: 'kprepublic/jj50'
},
jones: {
target: 'jones/v03_1'
},
@@ -182,6 +248,12 @@
kudox: {
target: 'kudox/rev1'
},
'kyria': {
target: 'splitkb/kyria'
},
'lazydesigners/the60': {
target: 'lazydesigners/the60/rev1'
},
'lfkeyboards/lfk78': {
target: 'lfkeyboards/lfk78/revj'
},
@@ -251,6 +323,9 @@
'maartenwut/wonderland': {
target: 'evyd13/wonderland'
},
'matrix/m12og': {
target: 'matrix/m12og/rev1'
},
'mechlovin/hannah910': {
target: 'mechlovin/hannah910/rev1'
},
@@ -266,6 +341,9 @@
'mechlovin/hannah60rgb': {
target: 'mechlovin/hannah60rgb/rev1'
},
'mechlovin/hannah65/mechlovin9': {
target: 'mechlovin/mechlovin9/rev1'
},
'melgeek/z70ultra': {
target: 'melgeek/z70ultra/rev1'
},
@@ -304,6 +382,9 @@
'pancake/promicro': {
target: 'spaceman/pancake/promicro'
},
'peiorisboards/ixora': {
target: 'coarse/ixora'
},
'percent/canoe': {
layouts: {
LAYOUT_iso: 'LAYOUT_65_iso_blocker'
@@ -366,6 +447,9 @@
'ramonimbao/herringbone': {
target: 'ramonimbao/herringbone/v1'
},
'ramonimbao/mona': {
target: 'ramonimbao/mona/v1'
},
'rgbkb/pan': {
target: 'rgbkb/pan/rev1/32a'
},
@@ -387,6 +471,9 @@
speedo: {
target: 'cozykeys/speedo/v2'
},
'staryu': {
target: 'ktec/staryu'
},
stoutgat: {
target: 'tkw/stoutgat/v1'
},
@@ -405,10 +492,14 @@
'tkw/stoutgat/v2': {
target: 'tkw/stoutgat/v2/f411'
},
'tokyo60': {
target: 'tokyokeyboard/tokyo60'
},
underscore33: {
target: 'underscore33/rev1'
},
vinta: {
target: 'coarse/vinta',
layouts: {
LAYOUT_67_ansi: 'LAYOUT_65_ansi_blocker'
}
@@ -422,6 +513,33 @@
'whale/sk': {
target: 'whale/sk/v3'
},
'xd002': {
target: 'xiudi/xd002'
},
'xd004': {
target: 'xiudi/xd004'
},
'xd60': {
target: 'xiudi/xd60'
},
'xd68': {
target: 'xiudi/xd68'
},
'xd75': {
target: 'xiudi/xd75'
},
'xd84': {
target: 'xiudi/xd84'
},
'xd84pro': {
target: 'xiudi/xd84pro'
},
'xd87': {
target: 'xiudi/xd87'
},
'xd96': {
target: 'xiudi/xd96'
},
'xelus/dawn60': {
target: 'xelus/dawn60/rev1'
},
+16 -28
View File
@@ -1,34 +1,22 @@
{
"$id": "qmk.api.keyboard.v1",
"allOf": [
{ "$ref": "qmk.keyboard.v1" },
{"$ref": "qmk.keyboard.v1"},
{
"$id": "qmk.api.keyboard.v1",
"keymaps": {
"type": "string"
},
"parse_errors": {
"type": "array",
"items": {
"type": "string"
}
},
"parse_warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"processor_type": {
"type": "string"
},
"protocol": {
"type": "string"
},
"keyboard_folder": {
"type": "string"
},
"platform": {
"type": "string"
"properties": {
"keymaps": {
"type": "object",
"properties": {
"url": {"type": "string"}
}
},
"parse_errors": {"$ref": "qmk.definitions.v1#/string_array"},
"parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"},
"processor_type": {"type": "string"},
"protocol": {"type": "string"},
"keyboard_folder": {"type": "string"},
"platform": {"type": "string"}
}
}
]
+107
View File
@@ -0,0 +1,107 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "qmk.definitions.v1",
"title": "Common definitions used across QMK's jsonschemas.",
"type": "object",
"boolean_array": {
"type": "object",
"additionalProperties": {"type": "boolean"}
},
"filename": {
"type": "string",
"minLength": 1,
"pattern": "^[0-9a-z_]*$"
},
"hex_number_2d": {
"type": "string",
"pattern": "^0x[0-9A-F]{2}$"
},
"hex_number_4d": {
"type": "string",
"pattern": "^0x[0-9A-F]{4}$"
},
"text_identifier": {
"type": "string",
"minLength": 1,
"maxLength": 250
},
"layout_macro": {
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
},
{
"type": "string",
"pattern": "^LAYOUT_[0-9a-z_]*$"
}
]
},
"key_unit": {
"type": "number",
"min": 0.25
},
"mcu_pin_array": {
"type": "array",
"items": {"$ref": "#/mcu_pin"}
},
"mcu_pin": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
{
"type": "string",
"pattern": "^LINE_PIN\\d{1,2}$"
},
{
"type": "number",
"multipleOf": 1
},
{
"type": "null"
}
]
},
"signed_decimal": {
"type": "number"
},
"signed_int": {
"type": "number",
"multipleOf": 1
}
"signed_int_8": {
"type": "number",
"min": -127,
"max": 127,
"multipleOf": 1
}
"string_array": {
"type": "array",
"items": {
"type": "string"
}
},
"string_object": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"unsigned_decimal": {
"type": "number",
"min": 0
},
"unsigned_int": {
"type": "number",
"min": 0,
"multipleOf": 1
}
"unsigned_int_8": {
"type": "number",
"min": 0,
"max": 255,
"multipleOf": 1
}
}
+245 -210
View File
@@ -1,31 +1,53 @@
{
"$schema": "http://json-schema.org/schema#",
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "qmk.keyboard.v1",
"title": "Keyboard Information",
"type": "object",
"properties": {
"keyboard_name": {
"type": "string",
"minLength": 2,
"maxLength": 250
},
"maintainer": {
"type": "string",
"minLength": 2,
"maxLength": 250
},
"manufacturer": {
"type": "string",
"minLength": 2,
"maxLength": 250
},
"keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"url": {
"type": "string",
"format": "uri"
},
"processor": {
"type": "string",
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66F18", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L433", "STM32L443", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66F18", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L433", "STM32L443", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
},
"audio": {
"type": "object",
"additionalProperties": false,
"properties": {
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"voices": {"type": "boolean"}
}
},
"backlight": {
"type": "object",
"additionalProperties": false,
"properties": {
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"levels": {
"type": "number",
"min": 1,
"max": 31,
"multipleOf": 1
},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
}
},
"bluetooth": {
"type": "object",
"additionalProperties": false,
"properties": {
"driver": {
"type": "string",
"enum": ["AdafruitBLE", "RN42"]
},
"lto": {"type": "boolean"},
}
},
"board": {
"type": "string",
@@ -34,68 +56,55 @@
},
"bootloader": {
"type": "string",
"enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp", "tinyuf2"]
"enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "unknown", "usbasploader", "USBasp", "tinyuf2"],
},
"bootloader_instructions": {
"type": "string",
"description": "Instructions for putting the keyboard into a mode that allows for firmware flashing."
},
"build": {
"type": "object",
"additionalProperties": false,
"properties": {
"debounce_type": {
"type": "string",
"enum": ["custom", "eager_pk", "eager_pr", "sym_defer_pk", "sym_eager_pk"]
},
"firmware_format": {
"type": "string",
"enum": ["bin", "hex", "uf2"]
},
"lto": {"type": "boolean"},
}
},
"diode_direction": {
"type": "string",
"enum": ["COL2ROW", "ROW2COL"]
},
"debounce": {
"type": "number",
"min": 0,
"multipleOf": 1
},
"height": {
"type": "number",
"min": 0.25
},
"width": {
"type": "number",
"min": 0.25
"debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"combo": {
"type": "object",
"properties": {
"count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"term": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"community_layouts": {
"type": "array",
"items": {
"type": "string",
"minLength": 2,
"pattern": "^[0-9a-z_]*$"
}
},
"features": {
"type": "object",
"additionalProperties": {"type": "boolean"}
"items": {"$ref": "qmk.definitions.v1#/filename"}
},
"features": {"$ref": "qmk.definitions.v1#/boolean_array"},
"indicators": {
"type": "object",
"properties": {
"caps_lock": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"num_lock": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"scroll_lock": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
}
"caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}
}
},
"layout_aliases": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
},
{
"type": "string",
"pattern": "^LAYOUT_[0-9a-z_]*$"
}
]
}
"additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"}
},
"layouts": {
"type": "object",
@@ -109,11 +118,6 @@
"c_macro": {
"type": "boolean"
},
"key_count": {
"type": "number",
"min": 0,
"multipleOf": 1
},
"layout": {
"type": "array",
"items": {
@@ -131,101 +135,60 @@
"multipleOf": 1
}
},
"h": {
"type": "number",
"min": 0.25
},
"r": {
"type": "number",
"min": 0
},
"rx": {
"type": "number",
"min": 0
},
"ry": {
"type": "number",
"min": 0
},
"w": {
"type": "number",
"min": 0.25
},
"x": {
"type": "number",
"min": 0
},
"y": {
"type": "number",
"min": 0
}
"r": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"h": {"$ref": "qmk.definitions.v1#/key_unit"},
"w": {"$ref": "qmk.definitions.v1#/key_unit"},
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "qmk.definitions.v1#/key_unit"}
}
}
}
}
}
},
"leader_key": {
"type": "object",
"properties": {
"timing": {"type": "boolean"},
"strict_processing": {"type": "boolean"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"matrix_pins": {
"type": "object",
"additionalProperties": false,
"properties": {
"custom": {"type": "boolean"},
"custom_lite": {"type": "boolean"},
"ghost": {"type": "boolean"},
"io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"direct": {
"type": "array",
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
{
"type": "number",
"multipleOf": 1
},
{
"type": "null"
}
]
}
}
"items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
},
"cols": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
{
"type": "number",
"multipleOf": 1
},
{
"type": "null"
}
]
}
},
"rows": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
{
"type": "number",
"multipleOf": 1
},
{
"type": "null"
}
]
}
}
"cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
},
"mouse_key": {
"type": "object",
"properties": {
"enabled": {"type": "boolean"},
"delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
},
"oneshot": {
"type": "object",
"properties": {
"tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"rgblight": {
@@ -238,88 +201,160 @@
"type": "boolean"
}
},
"brightness_steps": {
"type": "number",
"min": 0,
"multipleOf": 1
},
"hue_steps": {
"type": "number",
"min": 0,
"multipleOf": 1
},
"led_count": {
"type": "number",
"min": 0,
"multipleOf": 1
},
"max_brightness": {
"type": "number",
"min": 0,
"max": 255,
"multipleOf": 1
},
"pin": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"saturation_steps": {
"type": "number",
"min": 0,
"multipleOf": 1
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"layers": {
"type": "object",
"additionalProperties": false,
"properties": {
"blink": {"type": "boolean"},
"enabled": {"type": "boolean"},
"max": {
"type": "number",
"min": 1,
"max": 32,
"multipleOf": 1
},
"override_rgb": {"type": "boolean"}
}
},
"led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"rgbw": {"type": "boolean"},
"saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sleep": {"type": "boolean"},
"split": {"type": "boolean"},
"split_count": {
"type": "array",
"minLength": 2,
"maxLength": 2,
"items": {
"type": "number",
"min": 0,
"multipleOf": 1
"items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
}
},
"split": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"matrix_grid": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
},
"matrix_pins": {
"type": "object",
"additionalProperties": false,
"properties": {
"right": {
"type": "object",
"additionalProperties": false,
"properties": {
"direct": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
},
"cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
}
}
},
"main": {
"type": "string",
"enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
},
"soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"soft_serial_speed": {
"type": "number",
"min": 0,
"max": 5,
"multipleOf": 1
},
"transport": {
"type": "object",
"additionalProperties": false,
"properties": {
"protocol": {
"type": "string",
"enum": ["custom", "i2c", "serial", "serial_usart"]
},
"sync_matrix_state": {"type": "boolean"},
"sync_modifiers": {"type": "boolean"}
}
},
"usb_detect": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
}
}
},
"tags": {
"type": "array",
"items": {"type": "string"}
},
"tapping": {
"type": "object",
"properties": {
"force_hold": {"type": "boolean"},
"force_hold_per_key": {"type": "boolean"},
"ignore_mod_tap_interrupt": {"type": "boolean"},
"ignore_mod_tap_interrupt_per_key": {"type": "boolean"},
"permissive_hold": {"type": "boolean"},
"permissive_hold_per_key": {"type": "boolean"},
"retro": {"type": "boolean"},
"retro_per_key": {"type": "boolean"},
"term": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"term_per_key": {"type": "boolean"},
"toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
}
},
"usb": {
"type": "object",
"additionalProperties": false,
"properties": {
"device_ver": {
"type": "string",
"pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
"device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"force_nkro": {"type": "boolean"},
"pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"no_startup_check": {"type": "boolean"},
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"shared_endpoint": {
"type": "object",
"additionalProperties": false,
"properties": {
"keyboard": {"type": "boolean"},
"mouse": {"type": "boolean"}
}
},
"pid": {
"type": "string",
"pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
},
"vid": {
"type": "string",
"pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
}
"suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"wait_for": {"type": "boolean"},
}
},
"qmk": {
"type": "object",
"additionalProperties": false,
"properties": {
"keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
}
},
"qmk_lufa_bootloader": {
"type": "object",
"additionalProperties": false,
"properties": {
"esc_output": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"esc_input": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"led": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"speaker": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
}
"esc_output": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"esc_input": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"led": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"speaker": {"$ref": "qmk.definitions.v1#/mcu_pin"}
}
}
}
+24
View File
@@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "qmk.keymap.v1",
"title": "Keymap Information",
"type": "object",
"properties": {
"author": {"type": "string"},
"keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
"layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
"layers": {
"type": "array",
"items": {
"type": "array",
"items": {"type": "string"}
}
},
"config": {"$ref": "qmk.keyboard.v1"},
"notes": {
"type": "string",
"description": "asdf"
}
}
}
+21
View File
@@ -0,0 +1,21 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
@@ -2,8 +2,6 @@
"keyboard_name": "%KEYBOARD%",
"url": "",
"maintainer": "%YOUR_NAME%",
"width": 3,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [
@@ -2,12 +2,12 @@
MCU = atmega32a
# Bootloader selection
BOOTLOADER = bootloadHID
BOOTLOADER = bootloadhid
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
+557
View File
@@ -0,0 +1,557 @@
# QMK Breaking Changes - 2021 August 28 Changelog
## Notable Features :id=notable-features
### Combo processing improvements ([#8591](https://github.com/qmk/qmk_firmware/pull/8591)) :id=combo-processing-improvements
Combo processing has been reordered with respect to keypress handling, allowing for much better compatibility with mod taps.
It is also now possible to define combos that have keys overlapping with other combos, triggering only one. For example, a combo of `A`, `B` can coexist with a longer combo of `A`, `B`, `C` -- previous functionality would trigger both combos if all three keys were pressed.
### Key Overrides ([#11422](https://github.com/qmk/qmk_firmware/pull/11422)) :id=key-overrides
QMK now has a new feature: [key overrides](https://docs.qmk.fm/#/feature_key_overrides). This feature allows for overriding the output of key combinations involving modifiers. As an example, pressing <kbd>Shift+2</kbd> normally results in an <kbd>@</kbd> on US-ANSI keyboard layouts -- the new key overrides allow for adding similar functionality, but for any <kbd>modifier + key</kbd> press.
To illustrate, it's now possible to use the key overrides feature to translate <kbd>Shift + Backspace</kbd> into <kbd>Delete</kbd> -- an often-requested example of where this functionality comes in handy.
There's far more to describe that what lives in this changelog, so head over to the [key overrides documentation](https://docs.qmk.fm/#/feature_key_overrides) for more examples and info.
### Digitizer support ([#12851](https://github.com/qmk/qmk_firmware/pull/12851))
QMK gained the ability to pretend to be a digitizer device -- much like a tablet device. A mouse uses delta-coordinates -- move up, move right -- but a digitizer works with absolute coordinates -- top left, bottom right.
## Changes Requiring User Action :id=changes-requiring-user-action
### Updated Keyboard Codebases :id=updated-keyboard-codebases
The following keyboards have had their source moved within QMK:
Old Keyboard Name | New Keyboard Name
------------------------------|---------------------------------------------------------
aeboards/constellation | aeboards/constellation/rev1, aeboards/constellation/rev2
bakeneko65 | bakeneko65/rev2, bakeneko65/rev3
bm16a | kprepublic/bm16a
bm16s | kprepublic/bm16s
bm40hsrgb | kprepublic/bm40hsrgb
bm43a | kprepublic/bm43a
bm60poker | kprepublic/bm60poker
bm60rgb | kprepublic/bm60rgb
bm60rgb_iso | kprepublic/bm60rgb_iso
bm68rgb | kprepublic/bm68rgb
clawsome/gamebuddy | clawsome/gamebuddy/v1_0, clawsome/gamebuddy/v1_m
cospad | kprepublic/cospad
custommk/genesis | custommk/genesis/rev1, custommk/genesis/rev2
daisy | ktec/daisy
durgod/k320 | durgod/k3x0/k320
dztech/volcano660 | ilumkb/volcano660
ergodone | ktec/ergodone
gmmk/pro | gmmk/pro/ansi, gmmk/pro/iso
handwired/p1800fl | team0110/p1800fl
jj40 | kprepublic/jj40
jj4x4 | kprepublic/jj4x4
jj50 | kprepublic/jj50
kyria | splitkb/kyria
lazydesigners/the60 | lazydesigners/the60/rev1, lazydesigners/the60/rev2
matrix/m12og | matrix/m12og/rev1, matrix/m12og/rev2
mechlovin/hannah65/mechlovin9 | mechlovin/mechlovin9/rev1, mechlovin/mechlovin9/rev2
peiorisboards/ixora | coarse/ixora
ramonimbao/mona | ramonimbao/mona/v1, ramonimbao/mona/v1_1
staryu | ktec/staryu
tokyo60 | tokyokeyboard/tokyo60
vinta | coarse/vinta
xd002 | xiudi/xd002
xd004 | xiudi/xd004
xd60 | xiudi/xd60
xd68 | xiudi/xd68
xd75 | xiudi/xd75
xd84 | xiudi/xd84
xd84pro | xiudi/xd84pro
xd87 | xiudi/xd87
xd96 | xiudi/xd96
### Bootmagic Full Removal ([#13846](https://github.com/qmk/qmk_firmware/pull/13846)) :id=bootmagic-full-removal
As noted during last breaking changes cycle, QMK has decided to deprecate the full Bootmagic feature and leave Bootmagic Lite as the only remaining option.
This pull request changes the behavior of `BOOTMAGIC_ENABLE` such that specifying `full` results in an error, allowing only `no`, `yes`, or `lite`.
Currently `lite` is the equivalent of `yes` in `rules.mk`. Next cycle the use of the `lite` keyword will be prevented in favour of `yes` -- any new submissions should now be using `yes` or `no` to minimise disruption.
#### Bootmagic Full Deprecation Schedule
This is the current roadmap for the behavior of `BOOTMAGIC_ENABLE`:
- (done) From 2021 May 29, setting `BOOTMAGIC_ENABLE = yes` will enable Bootmagic Lite instead of full Bootmagic.
- (now) From 2021 Aug 28, `BOOTMAGIC_ENABLE` must be either `yes`, `lite`, or `no` setting `BOOTMAGIC_ENABLE = full` will cause compilation to fail.
- (next) From 2021 Nov 27, `BOOTMAGIC_ENABLE` must be either `yes` or `no` setting `BOOTMAGIC_ENABLE = lite` will cause compilation to fail.
### DIP switch callbacks are now boolean ([#13399](https://github.com/qmk/qmk_firmware/pull/13399)) :id=dip-switch-boolean
To match the encoder change last breaking changes cycle, DIP switch callbacks now return `bool`, too.
Example code before change:
```c
void dip_switch_update_kb(uint8_t index, bool active) {
dip_switch_update_user(index, active);
}
void dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0:
if(active) { audio_on(); } else { audio_off(); }
break;
}
}
void dip_switch_update_mask_kb(uint32_t state) {
dip_switch_update_mask_user(state);
}
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);
}
}
```
Example code after change:
```c
bool dip_switch_update_kb(uint8_t index, bool active) {
if !(dip_switch_update_user(index, active)) { return false; }
return true;
}
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0:
if(active) { audio_on(); } else { audio_off(); }
break;
}
return true; // Returning true allows keyboard code to execute, false will tell the keyboard code "I've already handled it".
}
bool dip_switch_update_mask_kb(uint32_t state) {
if (!dip_switch_update_mask_user(state)) { return false; }
return true;
}
bool 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);
}
return true; // Returning true allows keyboard code to execute, false will tell the keyboard code "I've already handled it".
}
```
## Notable core changes :id=notable-core
### Split transport improvements :id=split-transport-improvements
Split keyboards gained a significant amount of improvements during this breaking changes cycle, specifically:
* Extensible split data sync ([#11930](https://github.com/qmk/qmk_firmware/pull/11930)) -- rewritten data sharing between sides, allowing for data transfer only when required, as well as enabling keyboards and keymaps to define their own shared data.
* Full-duplex ARM USART split ([#13081](https://github.com/qmk/qmk_firmware/pull/13081)) -- adds to the previous half-duplex driver and now allows for full-duplex support on ARM.
* Make solo half of split keyboards (more) usable. ([#13523](https://github.com/qmk/qmk_firmware/pull/13523)) -- allows the slave to be disconnected, enabling one-handed use.
* Switch split_common to CRC subsystem ([#13418](https://github.com/qmk/qmk_firmware/pull/13418))
!> If you're updating your split keyboard, you will need to flash both sides of the split with the your firmware.
### Teensy 4.x support ([#13056](https://github.com/qmk/qmk_firmware/pull/13056), [#13076](https://github.com/qmk/qmk_firmware/pull/13076), [#13077](https://github.com/qmk/qmk_firmware/pull/13077)) :id=teensy-4-x-support
Updated ChibiOS and ChibiOS-Contrib, which brought in support for Teensy 4.x dev boards, running NXP i.MX1062.
### Data Driven Improvements ([#13366](https://github.com/qmk/qmk_firmware/pull/13366))
QMK's pursuit of data-driven keyboards has progressed, allowing substantially more configurable options to be specified in `info.json`.
#### Tags
Tags will let you categorize your keyboard, and will be used in the future to allow browsing and sorting through keyboards in QMK. Tags are free-form text identifiers that identify attributes about your keyboard. To add tags you simply add a `tags` key to your `info.json`:
"tags": ["tkl", "backlight", "encoder"]
#### Dot Notation
With this release we are moving towards using JSON dot notation in more places. For example, when using `qmk info -f text`:
```
$ qmk info -f text -kb clueboard/card
bootloader: atmel-dfu
debounce: 20
diode_direction: ROW2COL
features.audio: True
features.backlight: True
features.bluetooth: False
features.bootmagic: False
features.command: True
features.console: True
features.extrakey: True
features.lto: True
features.midi: False
features.mousekey: True
features.nkro: False
features.rgblight: True
features.unicode: False
height: 8
keyboard_folder: clueboard/card
keyboard_name: Cluecard
layout_aliases.LAYOUT: LAYOUT_all
layouts: LAYOUT_all
maintainer: skullydazed
manufacturer: Clueboard
matrix_pins.cols: F1, F6, F7
matrix_pins.rows: B4, F0, F4, F5
platform: unknown
processor: atmega32u4
processor_type: avr
protocol: LUFA
rgblight.brightness_steps: 17
rgblight.hue_steps: 10
rgblight.led_count: 4
rgblight.pin: E6
rgblight.saturation_steps: 17
split.transport.protocol: serial
usb.device_ver: 0x0001
usb.pid: 0x2330
usb.vid: 0xC1ED
width: 10
```
#### New configuration keys
We've added dozens of new keys to `info.json` so that you can configure more than ever without writing a single line of code. A quick overview of the new items you can configure:
* `audio.pins`, `audio.voices`
* `backlight.breathing`, `backlight.breathing_period`, `backlight.levels`, `backlight.pin`,
* `bluetooth.driver`, `bluetooth.lto`
* `bootloader_instructions`
* `build.debounce_type`, `build.firmware_format`, `build.lto`
* `combo.count`, `combo.term`
* `leader_key.timing`, `leader_key.strict_processing`, `leader_key.timeout`
* `matrix.custom`, `matrix.custom_lite`, `matrix.ghost`, `matrix.io_delay`
* `mouse_key.enabled`, `mouse_key.delay`, `mouse_key.interval`, `mouse_key.max_speed`, `mouse_key.time_to_max`, `mouse_key.wheel_delay`
* `oneshot.tap_toggle`, `oneshot.timeout`
* `rgblight.layers.blink`, `rgblight.layers.enabled`, `rgblight.layers.max`, `rgblight.layers.override_rgb`, `rgblight.rgbw`
* `split.enabled`, `split.matrix_grid`, `split.matrix_pins`, `split.main`, `split.soft_serial_pin`, `split.soft_serial_speed`, `split.transport.protocol`, `split.transport.sync_matrix_state`, `split.transport.sync_modifiers`, `split.usb_detect`
* `tapping.force_hold`, `tapping.force_hold_per_key`, `tapping.ignore_mod_tap_interrupt`, `tapping.ignore_mod_tap_interrupt_per_key`, `tapping.permissive_hold`, `tapping.permissive_hold_per_key`, `tapping.retro`, `tapping.retro_per_key`, `tapping.term`, `tapping.term_per_key`, `tapping.toggle`
* `usb.force_nkro`, `usb.max_power`, `usb.no_startup_check`, `usb.polling_interval`, `usb.shared_endpoint.keyboard`, `usb.shared_endpoint.mouse`, `usb.suspend_wakeup_delay`, `usb.wait_for`
* `qmk.keys_per_scan`, `qmk.tap_keycode_delay`, `qmk.tap_capslock_delay`
### Codebase restructure and cleanup :id=codebase-restructure
QMK was originally based on TMK, and has grown in size considerably since its first inception. To keep moving things forward, restructure of some of the core areas of the code is needed to support new concepts and new hardware, and progress is happening along those lines:
* Move RGBLight code into its own folder ([#13312](https://github.com/qmk/qmk_firmware/pull/13312))
* Migrate platform independent code from tmk_core -> quantum ([#13673](https://github.com/qmk/qmk_firmware/pull/13673))
* matrix_scan_x -> x_task ([#13748](https://github.com/qmk/qmk_firmware/pull/13748))
* Move some led drivers to common folder ([#13749](https://github.com/qmk/qmk_firmware/pull/13749))
* Move chibios board files to allow tmk_core platform migration ([#13777](https://github.com/qmk/qmk_firmware/pull/13777))
* Begin to carve out platform/protocol API - Single main loop ([#13843](https://github.com/qmk/qmk_firmware/pull/13843))
* Relocate platform specific drivers ([#13894](https://github.com/qmk/qmk_firmware/pull/13894))
* Move all the flash logic from tmk_core ([#13927](https://github.com/qmk/qmk_firmware/pull/13927))
* Move USB Host Shield and Arduino core to `lib/` ([#13973](https://github.com/qmk/qmk_firmware/pull/13973))
* Unify behaviour of wait on AVR ([#14025](https://github.com/qmk/qmk_firmware/pull/14025))
* Move nix folder alongside vagrant ([#14132](https://github.com/qmk/qmk_firmware/pull/14132))
* Align some quantum sub-directories ([#14134](https://github.com/qmk/qmk_firmware/pull/14134))
---
## Full changelist
Core:
* Arm ps2 mouse interrupt ([#6490](https://github.com/qmk/qmk_firmware/pull/6490))
* Process combos earlier & overlapping combos ([#8591](https://github.com/qmk/qmk_firmware/pull/8591))
* Swap buttons on PS2 Mouse/Trackball ([#9205](https://github.com/qmk/qmk_firmware/pull/9205))
* Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys ([#9404](https://github.com/qmk/qmk_firmware/pull/9404))
* add yaml_build_options target ([#10533](https://github.com/qmk/qmk_firmware/pull/10533))
* Warn when building a board that uses arm_atsam ([#10904](https://github.com/qmk/qmk_firmware/pull/10904))
* Key Overrides ([#11422](https://github.com/qmk/qmk_firmware/pull/11422))
* Refactor `quantum/command.{c,h}` for code size & {read,maintain}ability ([#11842](https://github.com/qmk/qmk_firmware/pull/11842))
* Extensible split data sync ([#11930](https://github.com/qmk/qmk_firmware/pull/11930))
* Move print/debug files to quantum ([#12069](https://github.com/qmk/qmk_firmware/pull/12069))
* Unconditionally call led_init_ports ([#12116](https://github.com/qmk/qmk_firmware/pull/12116))
* Support using a timer for wait_us() on ChibiOS-based boards ([#12211](https://github.com/qmk/qmk_firmware/pull/12211))
* Add support for NO_PIN to all matrix types ([#12238](https://github.com/qmk/qmk_firmware/pull/12238))
* Avoid 8-bit timer overflows in debounce algorithms ([#12240](https://github.com/qmk/qmk_firmware/pull/12240))
* Add Per Key exclusions for Haptic Feedback ([#12386](https://github.com/qmk/qmk_firmware/pull/12386))
* Steno combinedkeys ([#12538](https://github.com/qmk/qmk_firmware/pull/12538))
* eeprom_stm32: implement high density wear leveling ([#12567](https://github.com/qmk/qmk_firmware/pull/12567))
* eeprom_i2c driver: added EXTERNAL_EEPROM_WP_PIN configuration option. ([#12617](https://github.com/qmk/qmk_firmware/pull/12617))
* Add CRC8 calculation subsystem to quantum ([#12641](https://github.com/qmk/qmk_firmware/pull/12641))
* Limit saturation for RGB_MATRIX_JELLYBEAN_RAINDROPS ([#12669](https://github.com/qmk/qmk_firmware/pull/12669))
* Add asym_eager_defer_pk debounce type ([#12689](https://github.com/qmk/qmk_firmware/pull/12689))
* Include lib8tion.c into RGB/LED matrix build list ([#12699](https://github.com/qmk/qmk_firmware/pull/12699))
* Add readPort() and some API to 'tmk_core/common/*/gpio.h' ([#12754](https://github.com/qmk/qmk_firmware/pull/12754))
* add wait_cpuclock() macro for AVR and CPU_CLOCK macro ([#12755](https://github.com/qmk/qmk_firmware/pull/12755))
* Trigger a wakeup after USB Reset on ChibiOS. ([#12831](https://github.com/qmk/qmk_firmware/pull/12831))
* Add sync_timer support over serial_link (i.e. Ergodox Infinity) ([#12845](https://github.com/qmk/qmk_firmware/pull/12845))
* Digitizer HID interface : absolute coordinates for mouse cursor ([#12851](https://github.com/qmk/qmk_firmware/pull/12851))
* Add config.h and rules.mk support for data driven keymaps ([#12859](https://github.com/qmk/qmk_firmware/pull/12859))
* Add alternate ldscript for STM32duino (F103xB) ([#12914](https://github.com/qmk/qmk_firmware/pull/12914))
* `keymap_extras`: Remove deprecated defines ([#12949](https://github.com/qmk/qmk_firmware/pull/12949))
* Retain brightness with lighting layers ([#13025](https://github.com/qmk/qmk_firmware/pull/13025))
* Move optical sensor code to drivers folder ([#13044](https://github.com/qmk/qmk_firmware/pull/13044))
* Change the prototype of matrix_output_unselect_delay() ([#13045](https://github.com/qmk/qmk_firmware/pull/13045))
* Add weak refs on reading rows/cols. ([#13062](https://github.com/qmk/qmk_firmware/pull/13062))
* Use single memcmp to determine if matrix changed. ([#13064](https://github.com/qmk/qmk_firmware/pull/13064))
* Improve layer mask handling ([#13065](https://github.com/qmk/qmk_firmware/pull/13065))
* mousekey: expose current report to users ([#13069](https://github.com/qmk/qmk_firmware/pull/13069))
* ChibiOS SVN mirror script. ([#13070](https://github.com/qmk/qmk_firmware/pull/13070))
* Added right vs left specific pin assignments for dip switch ([#13074](https://github.com/qmk/qmk_firmware/pull/13074))
* make RESET key work with Teensy 4.x ([#13076](https://github.com/qmk/qmk_firmware/pull/13076))
* wire up flash make target for Teensy 4.x ([#13077](https://github.com/qmk/qmk_firmware/pull/13077))
* bump USB spec version in device descriptor to 2.0 ([#13078](https://github.com/qmk/qmk_firmware/pull/13078))
* Unite half-duplex and full-duplex serial drivers ([#13081](https://github.com/qmk/qmk_firmware/pull/13081))
* Add ST7565 LCD driver ([#13089](https://github.com/qmk/qmk_firmware/pull/13089))
* `spi_master` Kinetis support ([#13098](https://github.com/qmk/qmk_firmware/pull/13098))
* GMMK Pro RGB Support ([#13147](https://github.com/qmk/qmk_firmware/pull/13147))
* Remove dfu-util arguments from mcu_selection ([#13150](https://github.com/qmk/qmk_firmware/pull/13150))
* Add subcommand to generate version.h ([#13151](https://github.com/qmk/qmk_firmware/pull/13151))
* Add oled_invert ([#13172](https://github.com/qmk/qmk_firmware/pull/13172))
* ST7565 invert ([#13237](https://github.com/qmk/qmk_firmware/pull/13237))
* RGB Matrix eeprom write limiting ([#13238](https://github.com/qmk/qmk_firmware/pull/13238))
* Temporary disable of CRC ([#13252](https://github.com/qmk/qmk_firmware/pull/13252))
* Move LED/RGB Matrix code into their own directories ([#13257](https://github.com/qmk/qmk_firmware/pull/13257))
* Skip EEPROM writes once done. ([#13293](https://github.com/qmk/qmk_firmware/pull/13293))
* Remove rgblight stubs ([#13302](https://github.com/qmk/qmk_firmware/pull/13302))
* Allow settable SPI divisor for AW20216 driver, set default to 4 ([#13309](https://github.com/qmk/qmk_firmware/pull/13309))
* Move RGBLight code into its own folder ([#13312](https://github.com/qmk/qmk_firmware/pull/13312))
* Unify matrix for split common and regular matrix ([#13330](https://github.com/qmk/qmk_firmware/pull/13330))
* Relocate RGB/HSV color defs to a more fitting place ([#13377](https://github.com/qmk/qmk_firmware/pull/13377))
* Adds support for STM32L412xB, STM32L422xB. ([#13383](https://github.com/qmk/qmk_firmware/pull/13383))
* Convert Dip Switch callbacks to boolean functions ([#13399](https://github.com/qmk/qmk_firmware/pull/13399))
* Use string literals for `SERIAL_NUMBER` ([#13403](https://github.com/qmk/qmk_firmware/pull/13403))
* Switch split_common to CRC subsystem ([#13418](https://github.com/qmk/qmk_firmware/pull/13418))
* Improve 'show_build_options' target ([#13425](https://github.com/qmk/qmk_firmware/pull/13425))
* AW20216 use register increment for framebuffer flushes ([#13430](https://github.com/qmk/qmk_firmware/pull/13430))
* Allow invert of SPLIT_HAND_PIN logic ([#13433](https://github.com/qmk/qmk_firmware/pull/13433))
* chibios: bootloader: use integer pointers as volatile ([#13450](https://github.com/qmk/qmk_firmware/pull/13450))
* Refactor OLED to allow easy addition of other types ([#13454](https://github.com/qmk/qmk_firmware/pull/13454))
* Dual RGB Matrix IS31FL3737 driver support to address #13442 ([#13457](https://github.com/qmk/qmk_firmware/pull/13457))
* Enable g_is31_leds PROGMEM for RGB Matrix IS31FL3737 driver ([#13480](https://github.com/qmk/qmk_firmware/pull/13480))
* Switch Ergodox Infinity over to split_common ([#13481](https://github.com/qmk/qmk_firmware/pull/13481))
* Make solo half of split keyboards (more) usable. ([#13523](https://github.com/qmk/qmk_firmware/pull/13523))
* Enable sync of OLED/ST7565 display on/off state on Splits ([#13542](https://github.com/qmk/qmk_firmware/pull/13542))
* Revert "Add rgblight to RGB Matrix VPATH" ([#13559](https://github.com/qmk/qmk_firmware/pull/13559))
* Move `SENDSTRING_BELL` code to `send_string.h` ([#13566](https://github.com/qmk/qmk_firmware/pull/13566))
* Migrate platform independent code from tmk_core -> quantum ([#13673](https://github.com/qmk/qmk_firmware/pull/13673))
* Avoid LTO conficts on arm_atsam ([#13676](https://github.com/qmk/qmk_firmware/pull/13676))
* Allow for removal of hysteresis on 4x encoders ([#13698](https://github.com/qmk/qmk_firmware/pull/13698))
* Port new_keyboard.sh to CLI ([#13706](https://github.com/qmk/qmk_firmware/pull/13706))
* Align AW20216 driver ([#13712](https://github.com/qmk/qmk_firmware/pull/13712))
* Haptic: driver-> feature ([#13713](https://github.com/qmk/qmk_firmware/pull/13713))
* Add support for STM32F407x MCUs. ([#13718](https://github.com/qmk/qmk_firmware/pull/13718))
* Remove legacy BACKLIGHT_CUSTOM_DRIVER option ([#13731](https://github.com/qmk/qmk_firmware/pull/13731))
* Minor tidy up of key overrides ([#13747](https://github.com/qmk/qmk_firmware/pull/13747))
* matrix_scan_x -> x_task ([#13748](https://github.com/qmk/qmk_firmware/pull/13748))
* Move some led drivers to common folder ([#13749](https://github.com/qmk/qmk_firmware/pull/13749))
* Allow for higher USB Polling rate on ATSAM boards ([#13755](https://github.com/qmk/qmk_firmware/pull/13755))
* Rgb matrix/enable modes explicitly ([#13758](https://github.com/qmk/qmk_firmware/pull/13758))
* Move chibios board files to allow tmk_core platform migration ([#13777](https://github.com/qmk/qmk_firmware/pull/13777))
* __flash? ([#13799](https://github.com/qmk/qmk_firmware/pull/13799))
* `--parallel` improvements ([#13800](https://github.com/qmk/qmk_firmware/pull/13800))
* Speed up pimoroni trackball driver ([#13823](https://github.com/qmk/qmk_firmware/pull/13823))
* Add a toggle key for GUI On/Off in Magic feature ([#13830](https://github.com/qmk/qmk_firmware/pull/13830))
* Begin to carve out platform/protocol API - Single main loop ([#13843](https://github.com/qmk/qmk_firmware/pull/13843))
* Remove Full Bootmagic ([#13846](https://github.com/qmk/qmk_firmware/pull/13846))
* Remove backwards compatibility of debounce names ([#13877](https://github.com/qmk/qmk_firmware/pull/13877))
* Relocate platform specific drivers ([#13894](https://github.com/qmk/qmk_firmware/pull/13894))
* Remove ONEHAND_ENABLE ([#13920](https://github.com/qmk/qmk_firmware/pull/13920))
* Move all the flash logic from tmk_core ([#13927](https://github.com/qmk/qmk_firmware/pull/13927))
* adding uf2 flash support for blackpill 401 ([#13968](https://github.com/qmk/qmk_firmware/pull/13968))
* Unify behaviour of wait on AVR ([#14025](https://github.com/qmk/qmk_firmware/pull/14025))
* Add qmk-hid bootloader detection support to `qmk console` ([#14038](https://github.com/qmk/qmk_firmware/pull/14038))
* Align DIP_SWITCH_PINS_RIGHT implementation with encoders ([#14079](https://github.com/qmk/qmk_firmware/pull/14079))
* Tidy up quantum.c now some of tmk_core has been merged ([#14083](https://github.com/qmk/qmk_firmware/pull/14083))
* Improve pmw3360 sensor and make it more hardware agnostic ([#14097](https://github.com/qmk/qmk_firmware/pull/14097))
* Move nix folder alongside vagrant ([#14132](https://github.com/qmk/qmk_firmware/pull/14132))
* Align some quantum sub-directories ([#14134](https://github.com/qmk/qmk_firmware/pull/14134))
* Revert 14083 && 14144 ([#14150](https://github.com/qmk/qmk_firmware/pull/14150))
CLI:
* allow LINE_PINxx for Teensy 4.x pins ([#13247](https://github.com/qmk/qmk_firmware/pull/13247))
* Remove the redundant pin name validation ([#13251](https://github.com/qmk/qmk_firmware/pull/13251))
* Move all our CLI file formatters to the format dir ([#13296](https://github.com/qmk/qmk_firmware/pull/13296))
* Refactor doctor.py into a directory ([#13298](https://github.com/qmk/qmk_firmware/pull/13298))
* Add git and venv info to doctor's output ([#13405](https://github.com/qmk/qmk_firmware/pull/13405))
* Matrix consistency check ([#13470](https://github.com/qmk/qmk_firmware/pull/13470))
* Remove references to info.json `width` and `height` in CLI ([#13728](https://github.com/qmk/qmk_firmware/pull/13728))
* Make `qmk doctor` more lenient about system config ([#13804](https://github.com/qmk/qmk_firmware/pull/13804))
* Defer the expensive search for layout macros until info.json has been processed ([#14007](https://github.com/qmk/qmk_firmware/pull/14007))
Submodule updates:
* Update ChibiOS, ChibiOS-Contrib. ([#13056](https://github.com/qmk/qmk_firmware/pull/13056))
* Update LUFA (18-07-2021) and add QMK-HID Bootloader support ([#13588](https://github.com/qmk/qmk_firmware/pull/13588))
* Update LUFA Submodule (2021-07-30) ([#13819](https://github.com/qmk/qmk_firmware/pull/13819))
* Bump gtest ([#13885](https://github.com/qmk/qmk_firmware/pull/13885))
* Update ChibiOS-Contrib, mirroring script. ([#13896](https://github.com/qmk/qmk_firmware/pull/13896))
* Move USB Host Shield and Arduino core to `lib/` ([#13973](https://github.com/qmk/qmk_firmware/pull/13973))
Keyboards:
* Migrate keyboards using uGFX to LED_MATRIX ([#9657](https://github.com/qmk/qmk_firmware/pull/9657))
* Remove MIDI Configuration boilerplate ([#11151](https://github.com/qmk/qmk_firmware/pull/11151))
* manyboard macro ([#11896](https://github.com/qmk/qmk_firmware/pull/11896))
* Moved tokyo60/ into tokyokeyboard/tokyo60/. ([#12023](https://github.com/qmk/qmk_firmware/pull/12023))
* Organize KPrepublic, K.T.E.C, xiudi boards into directories ([#12159](https://github.com/qmk/qmk_firmware/pull/12159))
* Add Durgod Taurus K310 keyboard ([#12314](https://github.com/qmk/qmk_firmware/pull/12314))
* add support for m65 and simple 5x13 ortholinear ([#12315](https://github.com/qmk/qmk_firmware/pull/12315))
* Relocalize and Update p1800fl ([#12425](https://github.com/qmk/qmk_firmware/pull/12425))
* GameBuddy v1.M ([#12637](https://github.com/qmk/qmk_firmware/pull/12637))
* Add mechlovin9 rev2 PCB ([#12767](https://github.com/qmk/qmk_firmware/pull/12767))
* Add RGB matrix support for Kyria ([#12789](https://github.com/qmk/qmk_firmware/pull/12789))
* RGB Matrix working for Sofle RGB ([#12861](https://github.com/qmk/qmk_firmware/pull/12861))
* Add Durgod Hades, Galaxy and Venus Keyboards ([#12893](https://github.com/qmk/qmk_firmware/pull/12893))
* kint36: set correct EEPROM size ([#12946](https://github.com/qmk/qmk_firmware/pull/12946))
* Updated encoder_update_user on my keymap to follow the new signature on quantum ([#13152](https://github.com/qmk/qmk_firmware/pull/13152))
* Add Creator Pro by SergioPoverony ([#13154](https://github.com/qmk/qmk_firmware/pull/13154))
* Use the new ST7565 driver on Ergodox Infinity ([#13165](https://github.com/qmk/qmk_firmware/pull/13165))
* Refactor atom47 and add rev4 and rev5 ([#13201](https://github.com/qmk/qmk_firmware/pull/13201))
* Add Bakeneko65 V3 and revision folders ([#13228](https://github.com/qmk/qmk_firmware/pull/13228))
* Keyboards/RGBKB/Mün ([#13239](https://github.com/qmk/qmk_firmware/pull/13239))
* Optimize our jsonschema by using refs ([#13271](https://github.com/qmk/qmk_firmware/pull/13271))
* Handwired/Stream_Cheap/2x4: Add via support ([#13297](https://github.com/qmk/qmk_firmware/pull/13297))
* ez_maker/directpins for easy one-offs in qmk_configurator ([#13321](https://github.com/qmk/qmk_firmware/pull/13321))
* add kinT kinesis keyboard controller (kint41 variant) ([#13333](https://github.com/qmk/qmk_firmware/pull/13333))
* Error log cleanup ([#13349](https://github.com/qmk/qmk_firmware/pull/13349))
* Drashna's split updates ([#13350](https://github.com/qmk/qmk_firmware/pull/13350))
* Migrate SHIFT_ESC and RGB `fn_actions` to Grave Escape and RGB keycodes ([#13360](https://github.com/qmk/qmk_firmware/pull/13360))
* Add a lot more data to info.json ([#13366](https://github.com/qmk/qmk_firmware/pull/13366))
* Remove `API_SYSEX_ENABLE`s from rules.mk ([#13389](https://github.com/qmk/qmk_firmware/pull/13389))
* gmmk/pro/mike1808 keymap ([#13398](https://github.com/qmk/qmk_firmware/pull/13398))
* Remove deprecated callbacks for encoders and dip switches ([#13404](https://github.com/qmk/qmk_firmware/pull/13404))
* first pass: matrix consistency improvements ([#13471](https://github.com/qmk/qmk_firmware/pull/13471))
* Migrate more `fn_actions` stuff ([#13502](https://github.com/qmk/qmk_firmware/pull/13502))
* add simple gmmk pro macos keymap with rgb ([#13504](https://github.com/qmk/qmk_firmware/pull/13504))
* move volcano660 to ilumkb folder ([#13550](https://github.com/qmk/qmk_firmware/pull/13550))
* Valor Rev 2 ([#13551](https://github.com/qmk/qmk_firmware/pull/13551))
* Split GMMK Pro PCBs into separate revisions ([#13570](https://github.com/qmk/qmk_firmware/pull/13570))
* Remove the vision_division keyboard ([#13571](https://github.com/qmk/qmk_firmware/pull/13571))
* Develop - Change uint32_t to layer_state_t ([#13596](https://github.com/qmk/qmk_firmware/pull/13596))
* Develop - DC01 left ([#13597](https://github.com/qmk/qmk_firmware/pull/13597))
* Created "paddlegame" keymap ([#13629](https://github.com/qmk/qmk_firmware/pull/13629))
* Add timer_avr to includes for broken builds ([#13641](https://github.com/qmk/qmk_firmware/pull/13641))
* Disable console by default on all Keebio boards ([#13649](https://github.com/qmk/qmk_firmware/pull/13649))
* Enable LTO by default on BastardKB Scylla ([#13664](https://github.com/qmk/qmk_firmware/pull/13664))
* Reduce compile size for dz60rgb v2.1 ([#13680](https://github.com/qmk/qmk_firmware/pull/13680))
* Clean up remaining RGB_DISABLE_WHEN_USB_SUSPENDED defines ([#13689](https://github.com/qmk/qmk_firmware/pull/13689))
* Remove some legacy files ([#13715](https://github.com/qmk/qmk_firmware/pull/13715))
* [Keyboard Update] Change to L422 ([#13717](https://github.com/qmk/qmk_firmware/pull/13717))
* Update kyria make path example ([#13720](https://github.com/qmk/qmk_firmware/pull/13720))
* Drashna's Defaults cleanup ([#13722](https://github.com/qmk/qmk_firmware/pull/13722))
* Reduce firmware size in prep for #12670 ([#13724](https://github.com/qmk/qmk_firmware/pull/13724))
* Tidy up rgbkb/mun ([#13801](https://github.com/qmk/qmk_firmware/pull/13801))
* Make default keymap for GMMK Pro reflect stock ([#13850](https://github.com/qmk/qmk_firmware/pull/13850))
* Rework as per 9824 ([#13898](https://github.com/qmk/qmk_firmware/pull/13898))
* Remove console from keebio via keyboards ([#13901](https://github.com/qmk/qmk_firmware/pull/13901))
* Drashna split transport improvement ([#13905](https://github.com/qmk/qmk_firmware/pull/13905))
* Copy GMMK Pro screw specs to ISO readme ([#13908](https://github.com/qmk/qmk_firmware/pull/13908))
* Clean up remaining RGB_DISABLE_WHEN_USB_SUSPENDED defines Part 2 ([#13912](https://github.com/qmk/qmk_firmware/pull/13912))
* Add andrebrait layout for GMMK Pro ([#13932](https://github.com/qmk/qmk_firmware/pull/13932))
* Updated RGB Matrix suspend define part 3 ([#13954](https://github.com/qmk/qmk_firmware/pull/13954))
* Improve andrebrait keymap ([#13985](https://github.com/qmk/qmk_firmware/pull/13985))
* Drashna's Improve OLEDs and custom Split code ([#14063](https://github.com/qmk/qmk_firmware/pull/14063))
* Kyria default reformat ([#14080](https://github.com/qmk/qmk_firmware/pull/14080))
* Feature rich keymap for GMMK Pro (ANSI) ([#14120](https://github.com/qmk/qmk_firmware/pull/14120))
Keyboard fixes:
* Fix LED mapping for GMMK Pro ([#13189](https://github.com/qmk/qmk_firmware/pull/13189))
* Fix up SplitKB keyboards ([#13511](https://github.com/qmk/qmk_firmware/pull/13511))
* Keyboards/sol rev2 fix ([#13533](https://github.com/qmk/qmk_firmware/pull/13533))
* Fix MATRIX_COLS for aeboards/constellation/rev2 ([#13633](https://github.com/qmk/qmk_firmware/pull/13633))
* Fix errors with matrix_output_unselect_delay function calls ([#13645](https://github.com/qmk/qmk_firmware/pull/13645))
* Fix default keymap for 0xCB 1337 keyboard ([#13646](https://github.com/qmk/qmk_firmware/pull/13646))
* Fix Matrix Row number for ggkeyboards/genisis ([#13647](https://github.com/qmk/qmk_firmware/pull/13647))
* Fix matrix issues with Promethium ([#13648](https://github.com/qmk/qmk_firmware/pull/13648))
* Fix dc01/left so that it doesn't throw a warning ([#13653](https://github.com/qmk/qmk_firmware/pull/13653))
* Remove broken, unmaintained converter/ibm_5291 ([#13658](https://github.com/qmk/qmk_firmware/pull/13658))
* Quick hack to fix Astro65 board ([#13665](https://github.com/qmk/qmk_firmware/pull/13665))
* Fix symmetric70_proto build break on develop branch ([#13667](https://github.com/qmk/qmk_firmware/pull/13667))
* Fix matrix delay on Drop boards ([#13671](https://github.com/qmk/qmk_firmware/pull/13671))
* Fix split matrix for sekigon grs 70ec ([#13672](https://github.com/qmk/qmk_firmware/pull/13672))
* Fix type on pandora via keymap ([#13681](https://github.com/qmk/qmk_firmware/pull/13681))
* Fix & clean up tronguylabs/m122_3270 ([#13684](https://github.com/qmk/qmk_firmware/pull/13684))
* Fix up xd002 rgb keymaps ([#13685](https://github.com/qmk/qmk_firmware/pull/13685))
* Dactyl Manuform cleanup ([#13686](https://github.com/qmk/qmk_firmware/pull/13686))
* Fix Q1 change dip switch to bool ([#13687](https://github.com/qmk/qmk_firmware/pull/13687))
* Fix compile size for the Merge UM70 via keymap ([#13690](https://github.com/qmk/qmk_firmware/pull/13690))
* Fix compile size for the Lets Split Sockets via keymap ([#13691](https://github.com/qmk/qmk_firmware/pull/13691))
* Fix Compile size on ungodly Launch Pad ([#13692](https://github.com/qmk/qmk_firmware/pull/13692))
* dirty fix ([#13695](https://github.com/qmk/qmk_firmware/pull/13695))
* Fix compile size for the Vitamins Included via keymap ([#13696](https://github.com/qmk/qmk_firmware/pull/13696))
* Fix typo in Dactyl Manuform ([#13740](https://github.com/qmk/qmk_firmware/pull/13740))
* Fix compile issues due to LED changes ([#13821](https://github.com/qmk/qmk_firmware/pull/13821))
* Fix SRC include for matrix/m20add issi driver ([#13826](https://github.com/qmk/qmk_firmware/pull/13826))
* fix develop branch move file ([#13832](https://github.com/qmk/qmk_firmware/pull/13832))
* Fix knops keymaps ([#13872](https://github.com/qmk/qmk_firmware/pull/13872))
* Switch Draculad to using WPM char hack ([#13886](https://github.com/qmk/qmk_firmware/pull/13886))
* Fix up builds after #8591 ([#13900](https://github.com/qmk/qmk_firmware/pull/13900))
* Fix matrix_output_unselect_delay for handwired/xealousbrown ([#13913](https://github.com/qmk/qmk_firmware/pull/13913))
* Fixup rgb matrix config for KBD67 mkII boards ([#13931](https://github.com/qmk/qmk_firmware/pull/13931))
* Fix compliation for ferris 0.2 bling ([#13937](https://github.com/qmk/qmk_firmware/pull/13937))
* Fix some additional bootmagic settings ([#13979](https://github.com/qmk/qmk_firmware/pull/13979))
* Fix default keymap for GMMK Pro Iso ([#13980](https://github.com/qmk/qmk_firmware/pull/13980))
* Fixup Ungodly Launch Pad config ([#13992](https://github.com/qmk/qmk_firmware/pull/13992))
* Fix errors that have cropped up in develop ([#14005](https://github.com/qmk/qmk_firmware/pull/14005))
* Fix wait_us overflow in matrix for dactyl based boards ([#14039](https://github.com/qmk/qmk_firmware/pull/14039))
* Fixup Neson Design N6 ISSI includes ([#14045](https://github.com/qmk/qmk_firmware/pull/14045))
* Fixup `massdrop/alt`, `cest73/tkm`. ([#14048](https://github.com/qmk/qmk_firmware/pull/14048))
* fix helix:fraanrosi compile error caused by #13677. ([#14061](https://github.com/qmk/qmk_firmware/pull/14061))
* Fix compile issues for Tractyl Manuform ([#14105](https://github.com/qmk/qmk_firmware/pull/14105))
* Disable Console on Keebio Quefrency ([#14108](https://github.com/qmk/qmk_firmware/pull/14108))
* Fixed GMMK Pro -> stickandgum keymap readme.md ([#14123](https://github.com/qmk/qmk_firmware/pull/14123))
* Drashna keymap fixups ([#14140](https://github.com/qmk/qmk_firmware/pull/14140))
* fix ([#14142](https://github.com/qmk/qmk_firmware/pull/14142))
* Fix merge artifacts ([#14146](https://github.com/qmk/qmk_firmware/pull/14146))
* Update readme files ([#14172](https://github.com/qmk/qmk_firmware/pull/14172))
Others:
* Add examples to RGB Matrix Indicators docs ([#12797](https://github.com/qmk/qmk_firmware/pull/12797))
Bugs:
* Fix Indicator LED issues ([#12097](https://github.com/qmk/qmk_firmware/pull/12097))
* Fixing incorrect keymap build when switching between multiple keymap.jsons ([#12632](https://github.com/qmk/qmk_firmware/pull/12632))
* Fix LED Hit Counter for LED/RGB Matrix ([#12674](https://github.com/qmk/qmk_firmware/pull/12674))
* ChibiOS fix O3 and LTO breakage of extra keys and joystick ([#12819](https://github.com/qmk/qmk_firmware/pull/12819))
* Remove the #10088 hotfix for Teensy 3.1-like Input:Club keyboards ([#12870](https://github.com/qmk/qmk_firmware/pull/12870))
* Fix firmware size check with avr-libc 1:2.0.0+Atmel3.6.2-1.1 (Debian bullseye) ([#12951](https://github.com/qmk/qmk_firmware/pull/12951))
* Fix RGB/LED Suspend defines ([#13146](https://github.com/qmk/qmk_firmware/pull/13146))
* Fix overrun in st7565_write_raw when not at (0, 0) ([#13209](https://github.com/qmk/qmk_firmware/pull/13209))
* Upgrades Vagrant box to Debian 10 to fix Docker build error on Debian 9. ([#13236](https://github.com/qmk/qmk_firmware/pull/13236))
* Fix issues with VIA EEPROM init and bring in line with eeconfig functionality ([#13243](https://github.com/qmk/qmk_firmware/pull/13243))
* Fix CRC for AVR and enable again. ([#13253](https://github.com/qmk/qmk_firmware/pull/13253))
* Fix linker error when rgblight and RGB Matrix are both enabled ([#13304](https://github.com/qmk/qmk_firmware/pull/13304))
* Fix building layouts from JSON ([#13310](https://github.com/qmk/qmk_firmware/pull/13310))
* Add rgblight to RGB Matrix VPATH ([#13371](https://github.com/qmk/qmk_firmware/pull/13371))
* Fix two out of bounds accesses from #13330. ([#13525](https://github.com/qmk/qmk_firmware/pull/13525))
* Fixes for clang not being able to run unit tests ([#13546](https://github.com/qmk/qmk_firmware/pull/13546))
* Fixup Audio startup and add to documents ([#13606](https://github.com/qmk/qmk_firmware/pull/13606))
* CLI/Docs: Fix the format commands' name ([#13668](https://github.com/qmk/qmk_firmware/pull/13668))
* Disables rgblight twinkle by default. ([#13677](https://github.com/qmk/qmk_firmware/pull/13677))
* Fix typo in dip switch example ([#13688](https://github.com/qmk/qmk_firmware/pull/13688))
* docs/cli_commands: fix typo ([#13697](https://github.com/qmk/qmk_firmware/pull/13697))
* Include gpio.h in solenoid driver for GPIO Control functions ([#13716](https://github.com/qmk/qmk_firmware/pull/13716))
* Fix pimoroni trackball read address ([#13810](https://github.com/qmk/qmk_firmware/pull/13810))
* Fix Key Override includes ([#13831](https://github.com/qmk/qmk_firmware/pull/13831))
* Fix alignment of USB out report buffer 2 -> 4 ([#13838](https://github.com/qmk/qmk_firmware/pull/13838))
* Fix compilation issue. ([#13926](https://github.com/qmk/qmk_firmware/pull/13926))
* Fix `combo_disable` ([#13988](https://github.com/qmk/qmk_firmware/pull/13988))
* Fix pmw3360 code to only output debug info if mouse debugging is enabled ([#13993](https://github.com/qmk/qmk_firmware/pull/13993))
* Fix ifdefs for OLED split sync code ([#14017](https://github.com/qmk/qmk_firmware/pull/14017))
* Various fixes from reorg of files ([#14051](https://github.com/qmk/qmk_firmware/pull/14051))
* Fixup atsam builds. ([#14052](https://github.com/qmk/qmk_firmware/pull/14052))
* Fix RGB/LED Matrix Suspend code ([#14084](https://github.com/qmk/qmk_firmware/pull/14084))
* Fix issues with recent keymap.json changes ([#14089](https://github.com/qmk/qmk_firmware/pull/14089))
* Fix LED Matrix suspend code ([#14090](https://github.com/qmk/qmk_firmware/pull/14090))
* Fix up compilation issues. ([#14095](https://github.com/qmk/qmk_firmware/pull/14095))
* Fix copypasta issue with pmw3360 sensor config ([#14106](https://github.com/qmk/qmk_firmware/pull/14106))
* Fix typo ([#14118](https://github.com/qmk/qmk_firmware/pull/14118))
* Fix bootloadHID comments breaking :flash ([#14133](https://github.com/qmk/qmk_firmware/pull/14133))
* Fix Mouse Shared EP functionality ([#14136](https://github.com/qmk/qmk_firmware/pull/14136))
* Short term bodge for firmware size bloat ([#14144](https://github.com/qmk/qmk_firmware/pull/14144))
* Move to correct location ([#14171](https://github.com/qmk/qmk_firmware/pull/14171))
+6 -1
View File
@@ -36,6 +36,7 @@
* Guides
* [Customizing Functionality](custom_quantum_functions.md)
* [Driver Installation with Zadig](driver_installation_zadig.md)
* [Easy Maker for One Offs](easy_maker.md)
* [Keymap Overview](keymap.md)
* Development Environments
* [Docker Guide](getting_started_docker.md)
@@ -61,6 +62,7 @@
* [Language-Specific Keycodes](reference_keymap_extras.md)
* [Modifier Keys](feature_advanced_keycodes.md)
* [Quantum Keycodes](quantum_keycodes.md)
* [Magic Keycodes](keycodes_magic.md)
* Advanced Keycodes
* [Command](feature_command.md)
@@ -78,6 +80,7 @@
* [Combos](feature_combo.md)
* [Debounce API](feature_debounce_type.md)
* [Key Lock](feature_key_lock.md)
* [Key Overrides](feature_key_overrides.md)
* [Layers](feature_layers.md)
* [One Shot Keys](one_shot_keys.md)
* [Pointing Device](feature_pointing_device.md)
@@ -94,6 +97,7 @@
* Hardware Features
* Displays
* [HD44780 LCD Controller](feature_hd44780.md)
* [ST7565 LCD Driver](feature_st7565.md)
* [OLED Driver](feature_oled_driver.md)
* Lighting
* [Backlight](feature_backlight.md)
@@ -102,8 +106,9 @@
* [RGB Matrix](feature_rgb_matrix.md)
* [Audio](feature_audio.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Bootmagic Lite](feature_bootmagic.md)
* [Custom Matrix](custom_matrix.md)
* [Digitizer](feature_digitizer.md)
* [DIP Switch](feature_dip_switch.md)
* [Encoders](feature_encoders.md)
* [Haptic Feedback](feature_haptic_feedback.md)
+11 -6
View File
@@ -6,6 +6,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
* [2021 Aug 28](ChangeLog/20210828.md)
* [2021 May 29](ChangeLog/20210529.md)
* [2021 Feb 27](ChangeLog/20210227.md)
* [2020 Nov 28](ChangeLog/20201128.md)
@@ -20,12 +21,12 @@ The next Breaking Change is scheduled for August 28, 2021.
### Important Dates
* [x] 2021 May 29 - `develop` is created. Each push to `master` is subsequently merged to `develop`
* [ ] 2021 Jul 31 - `develop` closed to new PR's.
* [ ] 2021 Jul 31 - Call for testers.
* [ ] 2021 Aug 26 - `master` is locked, no PR's merged.
* [ ] 2021 Aug 28 - Merge `develop` to `master`.
* [ ] 2021 Aug 28 - `master` is unlocked. PR's can be merged again.
* [x] 2021 Aug 29 - `develop` is created. Each push to `master` is subsequently merged to `develop`
* [ ] 2021 Oct 31 - `develop` closed to new PR's.
* [ ] 2021 Oct 31 - Call for testers.
* [ ] 2021 Nov 26 - `master` is locked, no PR's merged.
* [ ] 2021 Nov 28 - Merge `develop` to `master`.
* [ ] 2021 Nov 28 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
@@ -99,3 +100,7 @@ This happens immediately after the previous `develop` branch is merged.
* [ ] `git pull --ff-only`
* [ ] `git merge --no-ff develop`
* [ ] `git push upstream master`
## Post-merge operations
* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)
+1
View File
@@ -2,6 +2,7 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
* [2021 Aug 28](ChangeLog/20210828.md) - version 0.14.0
* [2021 May 29](ChangeLog/20210529.md) - version 0.13.0
* [2021 Feb 27](ChangeLog/20210227.md) - version 0.12.0
* [2020 Nov 28](ChangeLog/20201128.md) - version 0.11.0
+56
View File
@@ -0,0 +1,56 @@
# ChibiOS Upgrade Procedure
ChibiOS and ChibiOS-Contrib need to be updated in tandem -- the latter has a branch tied to the ChibiOS version in use and should not be mixed with different versions.
## Getting ChibiOS
* `svn` Initialisation:
* Only needed to be done once
* You might need to separately install `git-svn` package in your OS's package manager
* `git svn init --stdlayout --prefix='svn/' http://svn.osdn.net/svnroot/chibios/`
* `git remote add qmk git@github.com:qmk/ChibiOS.git`
* Updating:
* `git svn fetch`
* First time around this will take several hours
* Subsequent updates will be incremental only
* Tagging example (work out which version first!):
* `git tag -a ver20.3.3 -m ver20.3.3 svn/tags/ver20.3.3`
* `git push qmk ver20.3.3`
* `git tag -a breaking_YYYY_qN -m breaking_YYYY_qN svn/tags/ver20.3.3`
* `git push qmk breaking_YYYY_qN`
## Getting ChibiOS-Contrib
* `git` Initialisation:
* `git clone git@github.com:qmk/ChibiOS-Contrib`
* `git remote add upstream https://github.com/ChibiOS/ChibiOS-Contrib`
* `git checkout -b chibios-20.3.x upstream/chibios-20.3.x`
* Updating:
* `git fetch --all --tags --prune`
* `git checkout chibios-20.3.x`
* `git pull --ff-only`
* `git push origin chibios-20.3.x`
* `git tag -a breaking_YYYY_qN -m breaking_YYYY_qN chibios-20.3.x`
* `git push origin breaking_YYYY_qN`
## Updating submodules
* Update the submodules
* `cd $QMK_FIRMWARE`
* `git checkout develop`
* `git pull --ff-only`
* `git checkout -b chibios-version-bump`
* `cd lib/chibios`
* `git fetch --all --tags --prune`
* `git checkout breaking_YYYY_qN`
* `cd ../chibios-contrib`
* `git fetch --all --tags --prune`
* `git checkout breaking_YYYY_qN`
* Build everything
* `cd $QMK_FIRMWARE`
* `qmk multibuild -j4`
* Make sure there are no errors
* Push to the repo
* `git commit -am 'Update ChibiOS to XXXXXXXXX'`
* `git push --set-upstream origin chibios-version-bump`
* Make a PR to qmk_firmware with the new branch
+36 -14
View File
@@ -17,7 +17,7 @@ qmk compile [-c] <configuratorExport.json>
**Usage for Keymaps**:
```
qmk compile [-c] [-e <var>=<value>] -kb <keyboard_name> -km <keymap_name>
qmk compile [-c] [-e <var>=<value>] [-j <num_jobs>] -kb <keyboard_name> -km <keymap_name>
```
**Usage in Keyboard Directory**:
@@ -73,6 +73,17 @@ $ qmk compile -kb dz60
...
```
**Parallel Compilation**:
It is possible to speed up compilation by adding the `-j`/`--parallel` flag.
```
qmk compile -j <num_jobs> -kb <keyboard_name>
```
The `num_jobs` argument determines the maximum number of jobs that can be used. Setting it to zero will enable parallel compilation without limiting the maximum number of jobs.
```
qmk compile -j 0 -kb <keyboard_name>
```
## `qmk flash`
This command is similar to `qmk compile`, but can also target a bootloader. The bootloader is optional, and is set to `:flash` by default. To specify a different bootloader, use `-bl <bootloader>`. Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders.
@@ -82,13 +93,13 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K
**Usage for Configurator Exports**:
```
qmk flash [-bl <bootloader>] [-c] [-e <var>=<value>] <configuratorExport.json>
qmk flash [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>] <configuratorExport.json>
```
**Usage for Keymaps**:
```
qmk flash -kb <keyboard_name> -km <keymap_name> [-bl <bootloader>] [-c] [-e <var>=<value>]
qmk flash -kb <keyboard_name> -km <keymap_name> [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>]
```
**Listing the Bootloaders**
@@ -109,7 +120,7 @@ qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
## `qmk console`
This command lets you connect to keyboard consoles to get debugging messages. It only works if your keyboard firmware has been compiled with `CONSOLE_ENABLED=yes`.
This command lets you connect to keyboard consoles to get debugging messages. It only works if your keyboard firmware has been compiled with `CONSOLE_ENABLE=yes`.
**Usage**:
@@ -280,12 +291,12 @@ qmk list-keymaps -kb planck/ez
This command creates a new keyboard based on available templates.
This command will prompt for input to guide you though the generation process.
Any arguments that are not provided will prompt for input. If `-u` is not passed and `user.name` is set in .gitconfig, it will be used as the default username in the prompt.
**Usage**:
```
qmk new-keyboard
qmk new-keyboard [-kb KEYBOARD] [-t {avr,ps2avrgb}] -u USERNAME
```
## `qmk new-keymap`
@@ -314,7 +325,18 @@ qmk clean [-a]
# Developer Commands
## `qmk cformat`
## `qmk format-text`
This command formats text files to have proper line endings.
Every text file in the repository needs to have Unix (LF) line ending.
If you are working on **Windows**, you must ensure that line endings are corrected in order to get your PRs merged.
```
qmk format-text
```
## `qmk format-c`
This command formats C code using clang-format.
@@ -325,25 +347,25 @@ Run it with `-a` to format all core code, or pass filenames on the command line
**Usage for specified files**:
```
qmk cformat [file1] [file2] [...] [fileN]
qmk format-c [file1] [file2] [...] [fileN]
```
**Usage for all core files**:
```
qmk cformat -a
qmk format-c -a
```
**Usage for only changed files against origin/master**:
```
qmk cformat
qmk format-c
```
**Usage for only changed files against branch_name**:
```
qmk cformat -b branch_name
qmk format-c -b branch_name
```
## `qmk docs`
@@ -369,7 +391,7 @@ qmk generate-docs
## `qmk generate-rgb-breathe-table`
This command generates a lookup table (LUT) header file for the [RGB Lighting](feature_rgblight.md) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/`.
This command generates a lookup table (LUT) header file for the [RGB Lighting](feature_rgblight.md) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/rgblight/`.
**Usage**:
@@ -399,14 +421,14 @@ $ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk pyformat`
## `qmk format-python`
This command formats python code in `qmk_firmware`.
**Usage**:
```
qmk pyformat
qmk format-python
```
## `qmk pytest`
+2 -2
View File
@@ -188,7 +188,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# Testing, and Linting, and Formatting (oh my!)
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `pyformat` subcommands to run these tests:
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-py` subcommands to run these tests:
### Testing and Linting
@@ -196,7 +196,7 @@ We use nose2, flake8, and yapf to test, lint, and format code. You can use the `
### Formatting
qmk pyformat
qmk format-py
## Formatting Details
+3
View File
@@ -27,10 +27,13 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
* [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html)
* [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html)
* [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html)
* [STM32F407](https://www.st.com/en/microcontrollers-microprocessors/stm32f407-417.html)
* [STM32F411](https://www.st.com/en/microcontrollers-microprocessors/stm32f411.html)
* [STM32F446](https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html)
* [STM32G431](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x1.html)
* [STM32G474](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x4.html)
* [STM32L412](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html)
* [STM32L422](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html)
* [STM32L433](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
* [STM32L443](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
+54 -5
View File
@@ -51,8 +51,10 @@ This is a C header file that is one of the first things included, and will persi
* the number of columns in your keyboard's matrix
* `#define MATRIX_ROW_PINS { D0, D5, B5, B6 }`
* pins of the rows, from top to bottom
* may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }`
* pins of the columns, from left to right
* may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
* `#define MATRIX_IO_DELAY 30`
* the delay in microseconds when between changing matrix pin state and reading values
* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
@@ -186,13 +188,27 @@ If you define these options you will enable the associated feature, which may in
few ms of delay from this. But if you're doing chording on something with 3-4ms
scan times? You probably want this.
* `#define COMBO_COUNT 2`
* Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature.
* Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. Or leave it undefined and programmatically set the count.
* `#define COMBO_TERM 200`
* how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined.
* `#define COMBO_MUST_HOLD_MODS`
* Flag for enabling extending timeout on Combos containing modifers
* `#define COMBO_MOD_TERM 200`
* Allows for extending COMBO_TERM for mod keys while mid-combo.
* `#define COMBO_MUST_HOLD_PER_COMBO`
* Flag to enable per-combo COMBO_TERM extension and `get_combo_must_hold()` function
* `#define COMBO_TERM_PER_COMBO`
* Flag to enable per-combo COMBO_TERM extension and `get_combo_term()` function
* `#define COMBO_STRICT_TIMER`
* Only start the combo timer on the first key press instead of on all key presses.
* `#define COMBO_NO_TIMER`
* Disable the combo timer completely for relaxed combos.
* `#define TAP_CODE_DELAY 100`
* Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
* `#define TAP_HOLD_CAPS_DELAY 80`
* Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
* `#define KEY_OVERRIDE_REPEAT_DELAY 500`
* Sets the key repeat interval for [key overrides](feature_key_overrides.md).
## RGB Light Configuration
@@ -272,7 +288,7 @@ There are a few different ways to set handedness for split keyboards (listed in
### Other Options
* `#define USE_I2C`
* For using I2C instead of Serial (defaults to serial)
* For using I2C instead of Serial (default is serial; serial transport is supported on ARM -- I2C is AVR-only)
* `#define SOFT_SERIAL_PIN D0`
* When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`.
@@ -280,6 +296,7 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define MATRIX_ROW_PINS_RIGHT { <row pins> }`
* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
* If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns.
* may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
* If you want to specify a different direct pinout for the right half than the left half, you can define `DIRECT_PINS_RIGHT`. Currently, the size of `DIRECT_PINS` must be the same as `DIRECT_PINS_RIGHT`.
@@ -300,7 +317,7 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define SPLIT_USB_DETECT`
* Detect (with timeout) USB connection when delegating master/slave
* Default behavior for ARM
* Required for AVR Teensy
* Required for AVR Teensy (without hardware mods)
* `#define SPLIT_USB_TIMEOUT 2000`
* Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
@@ -308,6 +325,34 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define SPLIT_USB_TIMEOUT_POLL 10`
* Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
* `#define FORCED_SYNC_THROTTLE_MS 100`
* Deadline for synchronizing data from master to slave when using the QMK-provided split transport.
* `#define SPLIT_TRANSPORT_MIRROR`
* Mirrors the master-side matrix on the slave when using the QMK-provided split transport.
* `#define SPLIT_LAYER_STATE_ENABLE`
* Ensures the current layer state is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_LED_STATE_ENABLE`
* Ensures the current host indicator state (caps/num/scroll) is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_MODS_ENABLE`
* Ensures the current modifier state (normal, weak, and oneshot) is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_WPM_ENABLE`
* Ensures the current WPM is available on the slave when using the QMK-provided split transport.
* `#define SPLIT_OLED_ENABLE`
* Syncs the on/off state of the OLED between the halves.
* `#define SPLIT_ST7565_ENABLE`
* Syncs the on/off state of the ST7565 screen between the halves.
* `#define SPLIT_TRANSACTION_IDS_KB .....`
* `#define SPLIT_TRANSACTION_IDS_USER .....`
* Allows for custom data sync with the slave when using the QMK-provided split transport. See [custom data sync between sides](feature_split_keyboard.md#custom-data-sync) for more information.
# The `rules.mk` File
This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
@@ -352,8 +397,8 @@ However, this will automatically disable the legacy TMK Macros and Functions fea
* `qmk-dfu`
* `halfkay`
* `caterina`
* `bootloadHID`
* `USBasp`
* `bootloadhid`
* `usbasploader`
## Feature Options :id=feature-options
@@ -373,8 +418,12 @@ Use these to enable or disable building certain features. The more you have enab
* Key combo feature
* `NKRO_ENABLE`
* USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `RING_BUFFERED_6KRO_REPORT_ENABLE`
* USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed.
* `AUDIO_ENABLE`
* Enable the audio subsystem.
* `KEY_OVERRIDE_ENABLE`
* Enable the key override feature
* `RGBLIGHT_ENABLE`
* Enable keyboard underlight functionality
* `LEADER_ENABLE`
+11 -3
View File
@@ -144,6 +144,14 @@ This is useful for setting up stuff that you may need elsewhere, but isn't hardw
* Keyboard/Revision: `void matrix_init_kb(void)`
* Keymap: `void matrix_init_user(void)`
### Low-level Matrix Overrides Function Documentation :id=low-level-matrix-overrides
* GPIO pin initialisation: `void matrix_init_pins(void)`
* This needs to perform the low-level initialisation of all row and column pins. By default this will initialise the input/output state of each of the GPIO pins listed in `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`, based on whether or not the keyboard is set up for `ROW2COL`, `COL2ROW`, or `DIRECT_PINS`. Should the keyboard designer override this function, no initialisation of pin state will occur within QMK itself, instead deferring to the keyboard's override.
* `COL2ROW`-based row reads: `void matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)`
* `ROW2COL`-based column reads: `void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)`
* `DIRECT_PINS`-based reads: `void matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)`
* These three functions need to perform the low-level retrieval of matrix state of relevant input pins, based on the matrix type. Only one of the functions should be implemented, if needed. By default this will iterate through `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`, configuring the inputs and outputs based on whether or not the keyboard is set up for `ROW2COL`, `COL2ROW`, or `DIRECT_PINS`. Should the keyboard designer override this function, no manipulation of matrix GPIO pin state will occur within QMK itself, instead deferring to the keyboard's override.
## Keyboard Post Initialization code
@@ -206,11 +214,11 @@ This is controlled by two functions: `suspend_power_down_*` and `suspend_wakeup_
```c
void suspend_power_down_user(void) {
rgb_matrix_set_suspend_state(true);
// code will run multiple times while keyboard is suspended
}
void suspend_wakeup_init_user(void) {
rgb_matrix_set_suspend_state(false);
// code will run on keyboard wakeup
}
```
@@ -374,7 +382,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
```
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic Lite](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
```c
void eeconfig_init_user(void) { // EEPROM is getting reset!
+4 -4
View File
@@ -88,14 +88,14 @@ qmk compile <configuratorExport.json>
qmk compile -kb <keyboard_name> -km <keymap_name>
```
## `qmk cformat`
## `qmk format-c`
Dieser Befehl formatiert C-Code im clang-Format. Benutze ihn ohne Argumente, um den core-Code zu formatieren, oder benutze Namen von Dateien in der CLI, um den Befehl auf bestimmte Dateien anzuwenden.
**Anwendung**:
```
qmk cformat [file1] [file2] [...] [fileN]
qmk format-c [file1] [file2] [...] [fileN]
```
## `qmk config`
@@ -148,14 +148,14 @@ Dieser Befehl erstellt eine neue Keymap basierend auf einer existierenden Standa
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk pyformat`
## `qmk format-py`
Dieser Befehl formatiert Python-Code in `qmk_firmware`.
**Anwendung**:
```
qmk pyformat
qmk format-py
```
## `qmk pytest`
+30 -29
View File
@@ -8,8 +8,8 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have
## Installation
Put your keyboard into bootloader mode, either by hitting the `RESET` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic](feature_bootmagic.md) docs for more details). Some boards use [Command](feature_command.md) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
Put your keyboard into bootloader mode, either by hitting the `RESET` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](feature_bootmagic.md) docs for more details). Some boards use [Command](feature_command.md) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](feature_bootmagic.md) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
Alternatively, hold `BOOT` while inserting the USB cable.
@@ -68,30 +68,31 @@ This is a list of known bootloader devices and their USB vendor and product IDs,
The device name here is the name that appears in Zadig, and may not be what the Device Manager or QMK Toolbox displays.
|Bootloader |Device Name |VID/PID |Driver |
|-------------|------------------------------|--------------|-------|
|`atmel-dfu` |ATmega16u2 DFU |`03EB:2FEF` |libusb0|
|`atmel-dfu` |ATmega32U2 DFU |`03EB:2FF0` |libusb0|
|`atmel-dfu` |ATm16U4 DFU V1.0.2 |`03EB:2FF3` |libusb0|
|`atmel-dfu` |ATm32U4DFU |`03EB:2FF4` |libusb0|
|`atmel-dfu` |*none* (AT90USB64) |`03EB:2FF9` |libusb0|
|`atmel-dfu` |AT90USB128 DFU |`03EB:2FFB` |libusb0|
|`qmk-dfu` |(keyboard name) Bootloader |As `atmel-dfu`|libusb0|
|`halfkay` |*none* |`16C0:0478` |HidUsb |
|`caterina` |Pro Micro 3.3V |`1B4F:9203` |usbser |
|`caterina` |Pro Micro 5V |`1B4F:9205` |usbser |
|`caterina` |LilyPadUSB |`1B4F:9207` |usbser |
|`caterina` |Pololu A-Star 32U4 Bootloader |`1FFB:0101` |usbser |
|`caterina` |Arduino Leonardo |`2341:0036` |usbser |
|`caterina` |Arduino Micro |`2341:0037` |usbser |
|`caterina` |Adafruit Feather 32u4 |`239A:000C` |usbser |
|`caterina` |Adafruit ItsyBitsy 32u4 3V |`239A:000D` |usbser |
|`caterina` |Adafruit ItsyBitsy 32u4 5V |`239A:000E` |usbser |
|`caterina` |Arduino Leonardo |`2A03:0036` |usbser |
|`caterina` |Arduino Micro |`2A03:0037` |usbser |
|`bootloadHID`|HIDBoot |`16C0:05DF` |HidUsb |
|`USBasp` |USBasp |`16C0:05DC` |libusbK|
|`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB |
|`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB |
|`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB |
|`stm32duino` |Maple 003 |`1EAF:0003` |WinUSB |
|Bootloader |Device Name |VID/PID |Driver |
|--------------|------------------------------|--------------|-------|
|`atmel-dfu` |ATmega16u2 DFU |`03EB:2FEF` |libusb0|
|`atmel-dfu` |ATmega32U2 DFU |`03EB:2FF0` |libusb0|
|`atmel-dfu` |ATm16U4 DFU V1.0.2 |`03EB:2FF3` |libusb0|
|`atmel-dfu` |ATm32U4DFU |`03EB:2FF4` |libusb0|
|`atmel-dfu` |*none* (AT90USB64) |`03EB:2FF9` |libusb0|
|`atmel-dfu` |AT90USB128 DFU |`03EB:2FFB` |libusb0|
|`qmk-dfu` |(keyboard name) Bootloader |As `atmel-dfu`|libusb0|
|`halfkay` |*none* |`16C0:0478` |HidUsb |
|`caterina` |Pro Micro 3.3V |`1B4F:9203` |usbser |
|`caterina` |Pro Micro 5V |`1B4F:9205` |usbser |
|`caterina` |LilyPadUSB |`1B4F:9207` |usbser |
|`caterina` |Pololu A-Star 32U4 Bootloader |`1FFB:0101` |usbser |
|`caterina` |Arduino Leonardo |`2341:0036` |usbser |
|`caterina` |Arduino Micro |`2341:0037` |usbser |
|`caterina` |Adafruit Feather 32u4 |`239A:000C` |usbser |
|`caterina` |Adafruit ItsyBitsy 32u4 3V |`239A:000D` |usbser |
|`caterina` |Adafruit ItsyBitsy 32u4 5V |`239A:000E` |usbser |
|`caterina` |Arduino Leonardo |`2A03:0036` |usbser |
|`caterina` |Arduino Micro |`2A03:0037` |usbser |
|`bootloadhid` |HIDBoot |`16C0:05DF` |HidUsb |
|`usbasploader`|USBasp |`16C0:05DC` |libusbK|
|`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB |
|`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB |
|`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB |
|`stm32duino` |Maple 003 |`1EAF:0003` |WinUSB |
|`qmk-hid` |(keyboard name) Bootloader |`03EB:2067` |HidUsb |
+31
View File
@@ -0,0 +1,31 @@
# Easy Maker - Build One-Off Projects In Configurator
Have you ever needed an easy way to program a controller, such as a Proton C or Teensy 2.0, for a one-off project you're building? QMK has you covered with the Easy Maker. Now you can create a firmware in minutes using QMK Configurator.
There are different styles of Easy Maker available depending on your needs:
* [Direct Pin](https://config.qmk.fm/#/?filter=ez_maker/direct) - Connect a single switch to a single pin
* Direct Pin + Backlight (Coming Soon) - Like Direct Pin but dedicates a single pin to [Backlight](feature_backlight.md) control
* Direct Pin + Numlock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Numlock LED
* Direct Pin + Capslock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Numlock LED
* Direct Pin + Encoder (Coming Soon) - Like Direct Pin but uses 2 pins to add a single rotary encoder
## Quickstart
The easiest way to get started is with the Direct Pin boards. This will assign a single key to each pin and you can short that pin to ground to activate it. Select your MCU from the Keyboard dropdown here:
* <https://config.qmk.fm/#/?filter=ez_maker/direct>
For more details see the [Direct Pin](#direct-pin) section.
# Direct Pin
As its name implies Direct Pin works by connecting one switch per pin. The other side of the switch should be connected to ground (VSS or GND.) You don't need any other components, your MCU has internal pull-up resistors so that the switch sensing can work.
Here is a schematic showing how we connect a single button to pin A3 on a ProMicro:
![Schematic diagram showing a ProMicro with a wire coming out of A3, connecting to the left side of a switch. Another wire comes out of the right side of the switch to connect to the Ground Plane.](https://i.imgur.com/JcDhZll.png)
Once you have wired your switches you can assign keycodes to each pin and build a firmware by selecting the MCU you are using from the Keyboard dropdown. Use this link to show only Easy Maker Direct Pin:
* <https://config.qmk.fm/#/?filter=ez_maker/direct>
+3
View File
@@ -31,6 +31,9 @@ Currently QMK supports 24xx-series chips over I2C. As such, requires a working i
`#define EXTERNAL_EEPROM_PAGE_SIZE` | Page size of the EEPROM in bytes, as specified in the datasheet | 32
`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | The number of bytes to transmit for the memory location within the EEPROM | 2
`#define EXTERNAL_EEPROM_WRITE_TIME` | Write cycle time of the EEPROM, as specified in the datasheet | 5
`#define EXTERNAL_EEPROM_WP_PIN` | If defined the WP pin will be toggled appropriately when writing to the EEPROM. | _none_
Some I2C EEPROM manufacturers explicitly recommend against hardcoding the WP pin to ground. This is in order to protect the eeprom memory content during power-up/power-down/brown-out conditions at low voltage where the eeprom is still operational, but the i2c master output might be unpredictable. If a WP pin is configured, then having an external pull-up on the WP pin is recommended.
Default values and extended descriptions can be found in `drivers/eeprom/eeprom_i2c.h`.
+18 -16
View File
@@ -6,26 +6,28 @@ Si aún no lo has hecho, debes leer las [Pautas de teclados](hardware_keyboard_g
## Añadir tu Teclado AVR a QMK
QMK tiene varias características para simplificar el trabajo con teclados AVR. Para la mayoría de los teclados no tienes que escribir ni una sola línea de código. Para empezar, ejecuta el archivo `util/new_keyboard.sh`:
QMK tiene varias características para simplificar el trabajo con teclados AVR. Para la mayoría de los teclados no tienes que escribir ni una sola línea de código. Para empezar, ejecuta `qmk new-keyboard`:
```
$ ./util/new_keyboard.sh
Generating a new QMK keyboard directory
$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory
Keyboard Name: mycoolkb
Keyboard Type [avr]:
Your Name [John Smith]:
Keyboard Name: mycoolkeeb
Keyboard Type:
1. avr
2. ps2avrgb
Please enter your choice: [1]
Your Name: [John Smith]
Ψ Copying base template files...
Ψ Copying avr template files...
Ψ Renaming keyboard.[ch] to mycoolkeeb.[ch]...
Ψ Replacing %YEAR% with 2021...
Ψ Replacing %KEYBOARD% with mycoolkeeb...
Ψ Replacing %YOUR_NAME% with John Smith...
Copying base template files... done
Copying avr template files... done
Renaming keyboard files... done
Replacing %KEYBOARD% with mycoolkb... done
Replacing %YOUR_NAME% with John Smith... done
Created a new keyboard called mycoolkb.
To start working on things, cd into keyboards/mycoolkb,
or open the directory in your favourite text editor.
Ψ Created a new keyboard called mycoolkeeb.
Ψ To start working on things, `cd` into keyboards/mycoolkeeb,
Ψ or open the directory in your preferred text editor.
```
Esto creará todos los archivos necesarios para tu nuevo teclado, y rellenará la configuración con valores predeterminados. Ahora sólo tienes que personalizarlo para tu teclado.
+2 -2
View File
@@ -5,7 +5,7 @@ This page covers questions people often have about keymaps. If you haven't you s
## What Keycodes Can I Use?
See [Keycodes](keycodes.md) for an index of keycodes available to you. These link to more extensive documentation when available.
Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h).
Keycodes are actually defined in [quantum/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/keycode.h).
## What Are the Default Keycodes?
@@ -31,7 +31,7 @@ QMK has two features, Bootmagic and Command, which allow you to change the behav
As a quick fix try holding down `Space`+`Backspace` while you plug in your keyboard. This will reset the stored settings on your keyboard, returning those keys to normal operation. If that doesn't work look here:
* [Bootmagic](feature_bootmagic.md)
* [Bootmagic Lite](feature_bootmagic.md)
* [Command](feature_command.md)
## The Menu Key Isn't Working
+26
View File
@@ -167,6 +167,32 @@ The available keycodes for audio are:
!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely.
## Audio Config
| Settings | Default | Description |
|---------------------------------|----------------------|-------------------------------------------------------------------------------|
|`AUDIO_PIN` | *Not defined* |Configures the pin that the speaker is connected to. |
|`AUDIO_PIN_ALT` | *Not defined* |Configures the pin for a second speaker or second pin connected to one speaker.|
|`AUDIO_PIN_ALT_AS_NEGATIVE` | *Not defined* |Enables support for one speaker connected to two pins. |
|`AUDIO_INIT_DELAY` | *Not defined* |Enables delay during startup song to accomidate for USB startup issues. |
|`AUDIO_ENABLE_TONE_MULTIPLEXING` | *Not defined* |Enables time splicing/multiplexing to create multiple tones simutaneously. |
|`STARTUP_SONG` | `STARTUP_SOUND` |Plays when the keyboard starts up (audio.c) |
|`GOODBYE_SONG` | `GOODBYE_SOUND` |Plays when you press the RESET key (quantum.c) |
|`AG_NORM_SONG` | `AG_NORM_SOUND` |Plays when you press AG_NORM (process_magic.c) |
|`AG_SWAP_SONG` | `AG_SWAP_SOUND` |Plays when you press AG_SWAP (process_magic.c) |
|`CG_NORM_SONG` | `AG_NORM_SOUND` |Plays when you press CG_NORM (process_magic.c) |
|`CG_SWAP_SONG` | `AG_SWAP_SOUND` |Plays when you press CG_SWAP (process_magic.c) |
|`MUSIC_ON_SONG` | `MUSIC_ON_SOUND` |Plays when music mode is activated (process_music.c) |
|`MUSIC_OFF_SONG` | `MUSIC_OFF_SOUND` |Plays when music mode is deactivated (process_music.c) |
|`MIDI_ON_SONG` | `MUSIC_ON_SOUND` |Plays when midi mode is activated (process_music.c) |
|`MIDI_OFF_SONG` | `MUSIC_OFF_SOUND` |Plays when midi mode is deactivated (process_music.c) |
|`CHROMATIC_SONG` | `CHROMATIC_SOUND` |Plays when the chromatic music mode is selected (process_music.c) |
|`GUITAR_SONG` | `GUITAR_SOUND` |Plays when the guitar music mode is selected (process_music.c) |
|`VIOLIN_SONG` | `VIOLIN_SOUND` |Plays when the violin music mode is selected (process_music.c) |
|`MAJOR_SONG` | `MAJOR_SOUND` |Plays when the major music mode is selected (process_music.c) |
|`DEFAULT_LAYER_SONGS` | *Not defined* |Plays song when switched default layers with [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer)(quantum.c) |
|`SENDSTRING_BELL` | *Not defined* |Plays chime when the "enter" ("\a") character is sent (send_string.c) |
## Tempo
the 'speed' at which SONGs are played is dictated by the set Tempo, which is measured in beats-per-minute. Note lengths are defined relative to that.
The initial/default tempo is set to 120 bpm, but can be configured by setting `TEMPO_DEFAULT` in `config.c`.
+13 -128
View File
@@ -1,136 +1,15 @@
# Bootmagic
There are three separate but related features that allow you to change the behavior of your keyboard without reflashing. While each of them have similar functionality, it is accessed in different ways depending on how your keyboard is configured.
**Bootmagic** is a system for configuring your keyboard while it initializes. To trigger a Bootmagic command, hold down the Bootmagic key and one or more command keys.
**Bootmagic Keycodes** are prefixed with `MAGIC_`, and allow you to access the Bootmagic functionality *after* your keyboard has initialized. To use the keycodes, assign them to your keymap as you would any other keycode.
**Command**, formerly known as **Magic**, is another feature that allows you to control different aspects of your keyboard. While it shares some functionality with Bootmagic, it also allows you to do things that Bootmagic does not, such as printing version information to the console. For more information, see [Command](feature_command.md).
On some keyboards Bootmagic is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk` with:
```make
BOOTMAGIC_ENABLE = full
```
?> You may see `yes` being used in place of `full`, and this is okay. However, `yes` is deprecated, and ideally `full` (or `lite`) should be used instead.
Additionally, you can use [Bootmagic Lite](#bootmagic-lite) (a scaled down, very basic version of Bootmagic) by adding the following to your `rules.mk` file:
```make
BOOTMAGIC_ENABLE = lite
```
## Hotkeys
Hold down the Bootmagic key (Space by default) and the desired hotkey while plugging in your keyboard. For example, holding Space+`B` should cause it to enter the bootloader.
|Hotkey |Description |
|------------------|---------------------------------------------|
|Escape |Ignore Bootmagic configuration in EEPROM |
|`B` |Enter the bootloader |
|`D` |Toggle debugging over serial |
|`X` |Toggle key matrix debugging |
|`K` |Toggle keyboard debugging |
|`M` |Toggle mouse debugging |
|`L` |Set "Left Hand" for EE_HANDS handedness |
|`R` |Set "Right Hand" for EE_HANDS handedness |
|Backspace |Clear the EEPROM |
|Caps Lock |Toggle treating Caps Lock as Left Control |
|Left Control |Toggle swapping Caps Lock and Left Control |
|Left Alt |Toggle swapping Left Alt and Left GUI |
|Right Alt |Toggle swapping Right Alt and Right GUI |
|Left GUI |Toggle the GUI keys (useful when gaming) |
|<code>&#96;</code>|Toggle swapping <code>&#96;</code> and Escape|
|`\` |Toggle swapping `\` and Backspace |
|`N` |Toggle N-Key Rollover (NKRO) |
|`0` |Make layer 0 the default layer |
|`1` |Make layer 1 the default layer |
|`2` |Make layer 2 the default layer |
|`3` |Make layer 3 the default layer |
|`4` |Make layer 4 the default layer |
|`5` |Make layer 5 the default layer |
|`6` |Make layer 6 the default layer |
|`7` |Make layer 7 the default layer |
## Keycodes :id=keycodes
|Key |Aliases |Description |
|----------------------------------|---------|--------------------------------------------------------------------------|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` |`CL_SWAP`|Swap Caps Lock and Left Control |
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |`CL_NORM`|Unswap Caps Lock and Left Control |
|`MAGIC_CAPSLOCK_TO_CONTROL` |`CL_CTRL`|Treat Caps Lock as Control |
|`MAGIC_UNCAPSLOCK_TO_CONTROL` |`CL_CAPS`|Stop treating Caps Lock as Control |
|`MAGIC_SWAP_LCTL_LGUI` |`LCG_SWP`|Swap Left Control and GUI |
|`MAGIC_UNSWAP_LCTL_LGUI` |`LCG_NRM`|Unswap Left Control and GUI |
|`MAGIC_SWAP_RCTL_RGUI` |`RCG_SWP`|Swap Right Control and GUI |
|`MAGIC_UNSWAP_RCTL_RGUI` |`RCG_NRM`|Unswap Right Control and GUI |
|`MAGIC_SWAP_CTL_GUI` |`CG_SWAP`|Swap Control and GUI on both sides |
|`MAGIC_UNSWAP_CTL_GUI` |`CG_NORM`|Unswap Control and GUI on both sides |
|`MAGIC_TOGGLE_CTL_GUI` |`CG_TOGG`|Toggle Control and GUI swap on both sides |
|`MAGIC_SWAP_LALT_LGUI` |`LAG_SWP`|Swap Left Alt and GUI |
|`MAGIC_UNSWAP_LALT_LGUI` |`LAG_NRM`|Unswap Left Alt and GUI |
|`MAGIC_SWAP_RALT_RGUI` |`RAG_SWP`|Swap Right Alt and GUI |
|`MAGIC_UNSWAP_RALT_RGUI` |`RAG_NRM`|Unswap Right Alt and GUI |
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap on both sides |
|`MAGIC_NO_GUI` |`GUI_OFF`|Disable the GUI keys |
|`MAGIC_UNNO_GUI` |`GUI_ON` |Enable the GUI keys |
|`MAGIC_SWAP_GRAVE_ESC` |`GE_SWAP`|Swap <code>&#96;</code> and Escape |
|`MAGIC_UNSWAP_GRAVE_ESC` |`GE_NORM`|Unswap <code>&#96;</code> and Escape |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` |`BS_SWAP`|Swap `\` and Backspace |
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|`BS_NORM`|Unswap `\` and Backspace |
|`MAGIC_HOST_NKRO` |`NK_ON` |Enable N-key rollover |
|`MAGIC_UNHOST_NKRO` |`NK_OFF` |Disable N-key rollover |
|`MAGIC_TOGGLE_NKRO` |`NK_TOGG`|Toggle N-key rollover |
|`MAGIC_EE_HANDS_LEFT` |`EH_LEFT`|Set the master half of a split keyboard as the left hand (for `EE_HANDS`) |
|`MAGIC_EE_HANDS_RIGHT` |`EH_RGHT`|Set the master half of a split keyboard as the right hand (for `EE_HANDS`)|
## Configuration
If you would like to change the hotkey assignments for Bootmagic, `#define` these in your `config.h` at either the keyboard or keymap level.
|Define |Default |Description |
|----------------------------------------|-------------|---------------------------------------------------|
|`BOOTMAGIC_KEY_SALT` |`KC_SPACE` |The Bootmagic key |
|`BOOTMAGIC_KEY_SKIP` |`KC_ESC` |Ignore Bootmagic configuration in EEPROM |
|`BOOTMAGIC_KEY_EEPROM_CLEAR` |`KC_BSPACE` |Clear the EEPROM configuration |
|`BOOTMAGIC_KEY_BOOTLOADER` |`KC_B` |Enter the bootloader |
|`BOOTMAGIC_KEY_DEBUG_ENABLE` |`KC_D` |Toggle debugging over serial |
|`BOOTMAGIC_KEY_DEBUG_MATRIX` |`KC_X` |Toggle matrix debugging |
|`BOOTMAGIC_KEY_DEBUG_KEYBOARD` |`KC_K` |Toggle keyboard debugging |
|`BOOTMAGIC_KEY_DEBUG_MOUSE` |`KC_M` |Toggle mouse debugging |
|`BOOTMAGIC_KEY_EE_HANDS_LEFT` |`KC_L` |Set "Left Hand" for EE_HANDS handedness |
|`BOOTMAGIC_KEY_EE_HANDS_RIGHT` |`KC_R` |Set "Right Hand" for EE_HANDS handedness |
|`BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK` |`KC_LCTRL` |Swap Left Control and Caps Lock |
|`BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL` |`KC_CAPSLOCK`|Toggle treating Caps Lock as Left Control |
|`BOOTMAGIC_KEY_SWAP_LALT_LGUI` |`KC_LALT` |Toggle swapping Left Alt and Left GUI (for macOS) |
|`BOOTMAGIC_KEY_SWAP_RALT_RGUI` |`KC_RALT` |Toggle swapping Right Alt and Right GUI (for macOS)|
|`BOOTMAGIC_KEY_NO_GUI` |`KC_LGUI` |Toggle the GUI keys (useful when gaming) |
|`BOOTMAGIC_KEY_SWAP_GRAVE_ESC` |`KC_GRAVE` |Toggle swapping <code>&#96;</code> and Escape |
|`BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE`|`KC_BSLASH` |Toggle swapping `\` and Backspace |
|`BOOTMAGIC_HOST_NKRO` |`KC_N` |Toggle N-Key Rollover (NKRO) |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_0` |`KC_0` |Make layer 0 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_1` |`KC_1` |Make layer 1 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_2` |`KC_2` |Make layer 2 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_3` |`KC_3` |Make layer 3 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_4` |`KC_4` |Make layer 4 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_5` |`KC_5` |Make layer 5 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_6` |`KC_6` |Make layer 6 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_7` |`KC_7` |Make layer 7 the default layer |
# Bootmagic Lite :id=bootmagic-lite
In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause.
The Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button, giving you a way to jump into the bootloader
To enable this version of Bootmagic, you need to enable it in your `rules.mk` with:
On some keyboards Bootmagic Lite is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk` with:
```make
BOOTMAGIC_ENABLE = lite
BOOTMAGIC_ENABLE = yes
```
?> You may see `lite` being used in place of `yes`.
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
```c
@@ -142,7 +21,7 @@ By default, these are set to 0 and 0, which is usually the "ESC" key on a majori
And to trigger the bootloader, you hold this key down when plugging the keyboard in. Just the single key.
!> Using bootmagic lite will **always reset** the EEPROM, so you will lose any settings that have been saved.
!> Using Bootmagic Lite will **always reset** the EEPROM, so you will lose any settings that have been saved.
## Split Keyboards
@@ -174,4 +53,10 @@ void bootmagic_lite(void) {
}
```
You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
You can additional feature here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
## Addenda
To manipulate settings that were formerly configured through the now-deprecated full Bootmagic feature, see [Magic Keycodes](keycodes_magic.md).
The Command feature, formerly known as Magic, also allows you to control different aspects of your keyboard. While it shares some functionality with Magic Keycodes, it also allows you to do things that Magic Keycodes cannot, such as printing version information to the console. For more information, see [Command](feature_command.md).
+259 -33
View File
@@ -1,24 +1,39 @@
# Combos
The Combo feature is a chording type solution for adding custom actions. It lets you hit multiple keys at once and produce a different effect. For instance, hitting `A` and `S` within the tapping term would hit `ESC` instead, or have it perform even more complex tasks.
The Combo feature is a chording type solution for adding custom actions. It lets you hit multiple keys at once and produce a different effect. For instance, hitting `A` and `S` within the combo term would hit `ESC` instead, or have it perform even more complex tasks.
To enable this feature, you need to add `COMBO_ENABLE = yes` to your `rules.mk`.
Additionally, in your `config.h`, you'll need to specify the number of combos that you'll be using, by adding `#define COMBO_COUNT 1` (replacing 1 with the number that you're using).
<!-- At this time, this is necessary -->
Additionally, in your `config.h`, you'll need to specify the number of combos that you'll be using, by adding `#define COMBO_COUNT 1` (replacing 1 with the number that you're using). It is also possible to not define this and instead set the variable `COMBO_LEN` yourself. There's a trick where we don't need to think about this variable at all. More on this later.
Also, by default, the tapping term for the Combos is set to the same value as `TAPPING_TERM` (200 by default on most boards). But you can specify a different value by defining it in your `config.h`. For instance: `#define COMBO_TERM 300` would set the time out period for combos to 300ms.
Then, your `keymap.c` file, you'll need to define a sequence of keys, terminated with `COMBO_END`, and a structure to list the combination of keys, and it's resulting action.
Then, in your `keymap.c` file, you'll need to define a sequence of keys, terminated with `COMBO_END`, and a structure to list the combination of keys, and its resulting action.
```c
const uint16_t PROGMEM test_combo[] = {KC_A, KC_B, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {COMBO(test_combo, KC_ESC)};
const uint16_t PROGMEM test_combo1[] = {KC_A, KC_B, COMBO_END};
const uint16_t PROGMEM test_combo2[] = {KC_C, KC_D, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {
COMBO(test_combo1, KC_ESC),
COMBO(test_combo2, LCTL(KC_Z)), // keycodes with modifiers are possible too!
};
```
This will send "Escape" if you hit the A and B keys.
This will send "Escape" if you hit the A and B keys, and Ctrl+Z when you hit the C and D keys.
!> This method only supports [basic keycodes](keycodes_basic.md). See the examples for more control.
As of [PR#8591](https://github.com/qmk/qmk_firmware/pull/8591/), it is possible to fire combos from ModTap keys and LayerTap keys. So in the above example you could have keys `LSFT_T(KC_A)` and `LT(_LAYER, KC_B)` and it would work. So Home Row Mods and Home Row Combos at same time is now a thing!
It is also now possible to overlap combos. Before, with the example below both combos would activate when all three keys were pressed. Now only the three key combo will activate.
```c
const uint16_t PROGMEM test_combo1[] = {LSFT_T(KC_A), LT(_LAYER, KC_B), COMBO_END};
const uint16_t PROGMEM test_combo2[] = {LSFT_T(KC_A), LT(_LAYER, KC_B), KC_C, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {
COMBO(test_combo1, KC_ESC)
COMBO(test_combo2, KC_TAB)
};
```
Executing more complex keycodes like ModTaps and LayerTaps is now also possible.
## Examples
@@ -27,63 +42,68 @@ If you want to add a list, then you'd use something like this:
```c
enum combos {
AB_ESC,
JK_TAB
JK_TAB,
QW_SFT,
SD_LAYER,
};
const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END};
const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END};
const uint16_t PROGMEM sd_combo[] = {KC_S, KC_D, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {
[AB_ESC] = COMBO(ab_combo, KC_ESC),
[JK_TAB] = COMBO(jk_combo, KC_TAB)
[JK_TAB] = COMBO(jk_combo, KC_TAB),
[QW_SFT] = COMBO(qw_combo, KC_LSFT)
[SD_LAYER] = COMBO(layer_combo, MO(_LAYER)),
};
```
For a more complicated implementation, you can use the `process_combo_event` function to add custom handling.
Additionally, this example shows how you can leave `COMBO_COUNT` undefined.
```c
enum combo_events {
ZC_COPY,
XV_PASTE
EM_EMAIL,
BSPC_LSFT_CLEAR,
COMBO_LENGTH
};
uint16_t COMBO_LEN = COMBO_LENGTH; // remove the COMBO_COUNT define and use this instead!
const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END};
const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
const uint16_t PROGMEM email_combo[] = {KC_E, KC_M, COMBO_END};
const uint16_t PROGMEM clear_line_combo[] = {KC_BSPC, KC_LSFT, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {
[ZC_COPY] = COMBO_ACTION(copy_combo),
[XV_PASTE] = COMBO_ACTION(paste_combo),
combo_t key_combos[] = {
[EM_EMAIL] = COMBO_ACTION(email_combo),
[BSPC_LSFT_CLEAR] = COMBO_ACTION(clear_line_combo),
};
/* COMBO_ACTION(x) is same as COMBO(x, KC_NO) */
void process_combo_event(uint16_t combo_index, bool pressed) {
switch(combo_index) {
case ZC_COPY:
case EM_EMAIL:
if (pressed) {
tap_code16(LCTL(KC_C));
SEND_STRING("john.doe@example.com");
}
break;
case XV_PASTE:
case BSPC_LSFT_CLEAR:
if (pressed) {
tap_code16(LCTL(KC_V));
tap_code16(KC_END);
tap_code16(S(KC_HOME));
tap_code16(KC_BSPC);
}
break;
}
}
```
This will send Ctrl+C if you hit Z and C, and Ctrl+V if you hit X and V. But you could change this to do stuff like change layers, play sounds, or change settings.
This will send "john.doe@example.com" if you chord E and M together, and clear the current line with Backspace and Left-Shift. You could change this to do stuff like play sounds or change settings.
## Additional Configuration
It is worth noting that `COMBO_ACTION`s are not needed anymore. As of [PR#8591](https://github.com/qmk/qmk_firmware/pull/8591/), it is possible to run your own custom keycodes from combos. Just define the custom keycode, program its functionality in `process_record_user`, and define a combo with `COMBO(<key_array>, <your_custom_keycode>)`.
If you're using long combos, or even longer combos, you may run into issues with this, as the structure may not be large enough to accommodate what you're doing.
In this case, you can add either `#define EXTRA_LONG_COMBOS` or `#define EXTRA_EXTRA_LONG_COMBOS` in your `config.h` file.
You may also be able to enable action keys by defining `COMBO_ALLOW_ACTION_KEYS`.
## Keycodes
You can enable, disable and toggle the Combo feature on the fly. This is useful if you need to disable them temporarily, such as for a game.
## Keycodes
You can enable, disable and toggle the Combo feature on the fly. This is useful if you need to disable them temporarily, such as for a game. The following keycodes are available for use in your `keymap.c`
|Keycode |Description |
|----------|---------------------------------|
@@ -91,6 +111,187 @@ You can enable, disable and toggle the Combo feature on the fly. This is useful
|`CMB_OFF` |Turns off Combo feature |
|`CMB_TOG` |Toggles Combo feature on and off |
# Advanced Configuration
These configuration settings can be set in your `config.h` file.
## Combo Term
By default, the timeout for the Combos to be recognized is set to 50ms. This can be changed if accidental combo misfires are happening or if you're having difficulties pressing keys at the same time. For instance, `#define COMBO_TERM 40` would set the timeout period for combos to 40ms.
## Buffer and state sizes
If you're using long combos, or you have a lot of overlapping combos, you may run into issues with this, as the buffers may not be large enough to accommodate what you're doing. In this case, you can configure the sizes of the buffers used. Be aware, larger combo sizes and larger buffers will increase memory usage!
To configure the amount of keys a combo can be composed of, change the following:
| Keys | Define to be set |
|------|-----------------------------------|
| 6 | `#define EXTRA_SHORT_COMBOS` |
| 8 | QMK Default |
| 16 | `#define EXTRA_LONG_COMBOS` |
| 32 | `#define EXTRA_EXTRA_LONG_COMBOS` |
Defining `EXTRA_SHORT_COMBOS` combines a combo's internal state into just one byte. This can, in some cases, save some memory. If it doesn't, no point using it. If you do, you also have to make sure you don't define combos with more than 6 keys.
Processing combos has two buffers, one for the key presses, another for the combos being activated. Use the following options to configure the sizes of these buffers:
| Define | Default |
|-------------------------------------|------------------------------------------------------|
| `#define COMBO_KEY_BUFFER_LENGTH 8` | 8 (the key amount `(EXTRA_)EXTRA_LONG_COMBOS` gives) |
| `#define COMBO_BUFFER_LENGTH 4` | 4 |
## Modifier Combos
If a combo resolves to a Modifier, the window for processing the combo can be extended independently from normal combos. By default, this is disabled but can be enabled with `#define COMBO_MUST_HOLD_MODS`, and the time window can be configured with `#define COMBO_HOLD_TERM 150` (default: `TAPPING_TERM`). With `COMBO_MUST_HOLD_MODS`, you cannot tap the combo any more which makes the combo less prone to misfires.
## Per Combo Timing, Holding and Tapping
For each combo, it is possible to configure the time window it has to pressed in, if it needs to be held down, or if it needs to be tapped.
For example, tap-only combos are useful if any (or all) of the underlying keys is a Mod-Tap or a Layer-Tap key. When you tap the combo, you get the combo result. When you press the combo and hold it down, the combo doesn't actually activate. Instead the keys are processed separately as if the combo wasn't even there.
In order to use these features, the following configuration options and functions need to be defined. Coming up with useful timings and configuration is left as an exercise for the reader.
| Config Flag | Function | Description |
|-----------------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
| `COMBO_TERM_PER_COMBO` | uint16_t get_combo_term(uint16_t index, combo_t \*combo) | Optional per-combo timeout window. (default: `COMBO_TERM`) |
| `COMBO_MUST_HOLD_PER_COMBO` | bool get_combo_must_hold(uint16_t index, combo_t \*combo) | Controls if a given combo should fire immediately on tap or if it needs to be held. (default: `false`) |
| `COMBO_MUST_TAP_PER_COMBO` | bool get_combo_must_tap(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if tapped within `COMBO_HOLD_TERM`. (default: `false`) |
Examples:
```c
uint16_t get_combo_term(uint16_t index, combo_t *combo) {
// decide by combo->keycode
switch (combo->keycode) {
case KC_X:
return 50;
}
// or with combo index, i.e. its name from enum.
switch (index) {
case COMBO_NAME_HERE:
return 9001;
}
// And if you're feeling adventurous, you can even decide by the keys in the chord,
// i.e. the exact array of keys you defined for the combo.
// This can be useful if your combos have a common key and you want to apply the
// same combo term for all of them.
if (combo->keys[0] == KC_ENTER) { // if first key in the array is KC_ENTER
return 150;
}
return COMBO_TERM;
}
bool get_combo_must_hold(uint16_t index, combo_t *combo) {
// Same as above, decide by keycode, the combo index, or by the keys in the chord.
if (KEYCODE_IS_MOD(combo->keycode) ||
(combo->keycode >= QK_MOMENTARY && combo->keycode <= QK_MOMENTARY_MAX) // MO(kc) keycodes
) {
return true;
}
switch (index) {
case COMBO_NAME_HERE:
return true;
}
return false;
}
bool get_combo_must_tap(uint16_t index, combo_t *combo) {
// If you want all combos to be tap-only, just uncomment the next line
// return true
// If you want *all* combos, that have Mod-Tap/Layer-Tap/Momentary keys in its chord, to be tap-only, this is for you:
uint16_t key;
uint8_t idx = 0;
while ((key = pgm_read_word(&combo->keys[idx])) != COMBO_END) {
switch (key) {
case QK_MOD_TAP...QK_MOD_TAP_MAX:
case QK_LAYER_TAP...QK_LAYER_TAP_MAX:
case QK_MOMENTARY...QK_MOMENTARY_MAX:
return true;
}
idx += 1;
}
return false;
}
```
## Variable Length Combos
If you leave `COMBO_COUNT` undefined in `config.h`, it allows you to programmatically declare the size of the Combo data structure and avoid updating `COMBO_COUNT`. Instead a variable called `COMBO_LEN` has to be set. It can be set with something similar to the following in `keymap.c`: `uint16_t COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]);` or by adding `COMBO_LENGTH` as the *last* entry in the combo enum and then `uint16_t COMBO_LEN = COMBO_LENGTH;` as such:
```c
enum myCombos {
...,
COMBO_LENGTH
};
uint16_t COMBO_LEN = COMBO_LENGTH;
```
Regardless of the method used to declare `COMBO_LEN`, this also requires to convert the `combo_t key_combos[COMBO_COUNT] = {...};` line to `combo_t key_combos[] = {...};`.
## Combo timer
Normally, the timer is started on the first key press and then reset on every subsequent key press within the `COMBO_TERM`.
Inputting combos is relaxed like this, but also slightly more prone to accidental misfires.
The next two options alter the behaviour of the timer.
### `#define COMBO_STRICT_TIMER`
With `COMBO_STRICT_TIMER`, the timer is started only on the first key press.
Inputting combos is now less relaxed; you need to make sure the full chord is pressed within the `COMBO_TERM`.
Misfires are less common but if you type multiple combos fast, there is a
chance that the latter ones might not activate properly.
### `#define COMBO_NO_TIMER`
By defining `COMBO_NO_TIMER`, the timer is disabled completely and combos are activated on the first key release.
This also disables the "must hold" functionalities as they just wouldn't work at all.
## Customizable key releases
By defining `COMBO_PROCESS_KEY_RELEASE` and implementing the function `bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode)`, you can run your custom code on each key release after a combo was activated. For example you could change the RGB colors, activate haptics, or alter the modifiers.
You can also release a combo early by returning `true` from the function.
Here's an example where a combo resolves to two modifiers, and on key releases the modifiers are unregistered one by one, depending on which key was released.
```c
enum combos {
AB_MODS,
COMBO_LENGTH
};
uint16_t COMBO_LEN = COMBO_LENGTH;
const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END};
combo_t key_combos[] = {
[AB_MODS] = COMBO(ab_combo, LCTL(KC_LSFT)),
};
bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) {
switch (combo_index) {
case AB_MODS:
switch(keycode) {
case KC_A:
unregister_mods(MOD_MASK_CTRL);
break;
case KC_B:
unregister_mods(MOD_MASK_SHIFT);
break;
}
return false; // do not release combo
}
return false;
}
```
## Layer independent combos
If you, for example, use multiple base layers for different key layouts, one for QWERTY, and another one for Colemak, you might want your combos to work from the same key positions on all layers. Defining the same combos again for another layout is redundant and takes more memory. The solution is to just check the keycodes from one layer.
With `#define COMBO_ONLY_FROM_LAYER _LAYER_A` the combos' keys are always checked from layer `_LAYER_A` even though the active layer would be `_LAYER_B`.
## User callbacks
In addition to the keycodes, there are a few functions that you can use to set the status, or check it:
@@ -101,3 +302,28 @@ In addition to the keycodes, there are a few functions that you can use to set t
| `combo_disable()` | Disables the combo feature, and clears the combo buffer |
| `combo_toggle()` | Toggles the state of the combo feature |
| `is_combo_enabled()` | Returns the status of the combo feature state (true or false) |
# Dictionary Management
Having 3 places to update when adding new combos or altering old ones does become cumbersome when you have a lot of combos. We can alleviate this with some magic! ... If you consider C macros magic.
First, you need to add `VPATH += keyboards/gboards` to your `rules.mk`. Next, include the file `g/keymap_combo.h` in your `keymap.c`.
!> This functionality uses the same `process_combo_event` function as `COMBO_ACTION` macros do, so you cannot use the function yourself in your keymap. Instead, you have to define the `case`s of the `switch` statement by themselves within `inject.h`, which `g/keymap_combo.h` will then include into the function.
Then, write your combos in `combos.def` file in the following manner:
```c
// name result chord keys
COMB(AB_ESC, KC_ESC, KC_A, KC_B)
COMB(JK_TAB, KC_TAB, KC_J, KC_K)
COMB(JKL_SPC, KC_SPC, KC_J, KC_K, KC_L)
COMB(BSSL_CLR, KC_NO, KC_BSPC, KC_LSFT) // using KC_NO as the resulting keycode is the same as COMBO_ACTION before.
COMB(QW_UNDO, C(KC_Z), KC_Q, KC_W)
SUBS(TH_THE, "the", KC_T, KC_H) // SUBS uses SEND_STRING to output the given string.
...
```
Now, you can update only one place to add or alter combos. You don't even need to remember to update the `COMBO_COUNT` or the `COMBO_LEN` variables at all. Everything is taken care of. Magic!
For small to huge ready made dictionaries of combos, you can check out http://combos.gboards.ca/.
+1 -1
View File
@@ -1,6 +1,6 @@
# Command
Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](feature_bootmagic.md). There is a lot of overlap between this functionality and the [Bootmagic Keycodes](feature_bootmagic.md#keycodes). Wherever possible we encourage you to use that feature instead of Command.
Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic Lite](feature_bootmagic.md). There is a lot of overlap between this functionality and the [Magic Keycodes](keycodes_magic.md). Wherever possible we encourage you to use that feature instead of Command.
On some keyboards Command is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk`:
+2 -19
View File
@@ -92,15 +92,6 @@ susceptible to noise, you must choose a debounce method that will also mitigate
## Debounce algorithms supported by QMK
QMK supports multiple debounce algorithms through its debounce API.
The logic for which debounce method called is below. It checks various defines that you have set in ```rules.mk```
```
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
DEBOUNCE_TYPE?= sym_defer_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
```
### Debounce selection
@@ -121,16 +112,16 @@ DEBOUNCE_TYPE = <name of algorithm>
Where name of algorithm is one of:
* ```sym_defer_g``` - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occurred, all input changes are pushed.
* This is the current default algorithm. This is the highest performance algorithm with lowest memory usage, and it's also noise-resistant.
* ```sym_eager_pr``` - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
* ```sym_eager_pr``` - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be
appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use.
* ```sym_eager_pk``` - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
* ```sym_defer_pk``` - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key status change is pushed.
* ```asym_eager_defer_pk``` - debouncing per key. On a key-down state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key. On a key-up state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key-up status change is pushed.
### A couple algorithms that could be implemented in the future:
* ```sym_defer_pr```
* ```sym_eager_g```
* ```asym_eager_defer_pk```
### Use your own debouncing code
You have the option to implement you own debouncing algorithm. To do this:
@@ -140,11 +131,3 @@ You have the option to implement you own debouncing algorithm. To do this:
* Debouncing occurs after every raw matrix scan.
* Use num_rows rather than MATRIX_ROWS, so that split keyboards are supported correctly.
* If the algorithm might be applicable to other keyboards, please consider adding it to ```quantum/debounce```
### Old names
The following old names for existing algorithms will continue to be supported, however it is recommended to use the new names instead.
* sym_g - old name for sym_defer_g
* eager_pk - old name for sym_eager_pk
* sym_pk - old name for sym_defer_pk
* eager_pr - old name for sym_eager_pr
+35
View File
@@ -0,0 +1,35 @@
## Digitizer
The digitizer HID interface allows setting the mouse cursor position at absolute coordinates, unlike the Pointing Device feature that applies relative displacements.
To enable the digitizer interface, add the following line to your rules.mk:
```makefile
DIGITIZER_ENABLE = yes
```
In order to change the mouse cursor position from your keymap.c file, include the digitizer header :
```c
#include "digitizer.h"
```
This gives you access to the `digitizer` structure which members allow you to change the cursor position.
The coordinates are normalized, meaning there value must be set between 0 and 1. For the `x` coordinate, the value `0` is the leftmost position, whereas the value `1` is the rightmost position.
For the `y` coordinate, `0` is at the top and `1` at the bottom.
Here is an example setting the cursor in the middle of the screen:
```c
digitizer_t digitizer;
digitizer.x = 0.5;
digitizer.y = 0.5;
digitizer.tipswitch = 0;
digitizer.inrange = 1;
digitizer_set_report(digitizer);
```
The `tipswitch` member triggers what equates to a click when set to `1`. The `inrange` member is required for the change in coordinates to be taken. It can then be set to `0` in a new report to signal the end of the digitizer interaction, but it is not strictly required.
Once all members are set to the desired value, the `status` member needs its bitmask `DZ_UPDATED` to be set so the report is sent during the next main loop iteration.
+12 -7
View File
@@ -9,6 +9,8 @@ and this to your `config.h`:
```c
// Connects each switch in the dip switch to the GPIO pin of the MCU
#define DIP_SWITCH_PINS { B14, A15, A10, B9 }
// For split keyboards, you can separately define the right side pins
#define DIP_SWITCH_PINS_RIGHT { ... }
```
or
@@ -23,8 +25,9 @@ or
The callback functions can be inserted into your `<keyboard>.c`:
```c
void dip_switch_update_kb(uint8_t index, bool active) {
dip_switch_update_user(index, active);
bool dip_switch_update_kb(uint8_t index, bool active) {
if (!dip_switch_update_user(index, active)) { return false; }
return true;
}
```
@@ -32,7 +35,7 @@ void dip_switch_update_kb(uint8_t index, bool active) {
or `keymap.c`:
```c
void dip_switch_update_user(uint8_t index, bool active) {
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0:
if(active) { audio_on(); } else { audio_off(); }
@@ -57,6 +60,7 @@ void dip_switch_update_user(uint8_t index, bool active) {
}
break;
}
return true;
}
```
@@ -64,8 +68,9 @@ Additionally, we support bit mask functions which allow for more complex handlin
```c
void dip_switch_update_mask_kb(uint32_t state) {
dip_switch_update_mask_user(state);
bool dip_switch_update_mask_kb(uint32_t state) {
if (!dip_switch_update_mask_user(state)) { return false; }
return true;
}
```
@@ -73,7 +78,7 @@ void dip_switch_update_mask_kb(uint32_t state) {
or `keymap.c`:
```c
void dip_switch_update_mask_user(uint32_t state) {
bool dip_switch_update_mask_user(uint32_t state) {
if (state & (1UL<<0) && state & (1UL<<1)) {
layer_on(_ADJUST); // C on esc
} else {
@@ -89,10 +94,10 @@ void dip_switch_update_mask_user(uint32_t state) {
} else {
layer_off(_TEST_B);
}
return true;
}
```
## Hardware
### Connects each switch in the dip switch to the GPIO pin of the MCU
+7 -1
View File
@@ -38,6 +38,12 @@ It can also be defined per-encoder, by instead defining:
#define ENCODER_RESOLUTIONS { 4, 2 }
```
For 4× encoders you also can assign default position if encoder skips pulses when it changes direction. For example, if your encoder send high level on both pins by default, define this:
```c
#define ENCODER_DEFAULT_POS 0x3
```
## Split Keyboards
If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout (and optionally, resolutions) for the right half like this:
@@ -75,7 +81,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
tap_code(KC_UP);
}
}
return true;
return false;
}
```
+31 -1
View File
@@ -162,4 +162,34 @@ This will set what sequence HPT_RST will set as the active mode. If not defined,
### DRV2605L Continuous Haptic Mode
This mode sets continuous haptic feedback with the option to increase or decrease strength.
This mode sets continuous haptic feedback with the option to increase or decrease strength.
## Haptic Key Exclusion
The Haptic Exclusion is implemented as `__attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record)` in haptic.c. This allows a re-definition at the required level with the specific requirement / exclusion.
### NO_HAPTIC_MOD
With the entry of `#define NO_HAPTIC_MOD` in config.h, the following keys will not trigger feedback:
* Usual modifier keys such as Control/Shift/Alt/Gui (For example `KC_LCTRL`)
* `MO()` momentary keys. See also [Layers](feature_layers.md).
* `LT()` layer tap keys, when held to activate a layer. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered.
* `TT()` layer tap toggle keys, when held to activate a layer. However when tapped `TAPPING_TOGGLE` times to permanently toggle the layer, on the last tap haptic feedback is still triggered.
* `MT()` mod tap keys, when held to keep a usual modifier key pressed. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered. See also [Mod-Tap](mod_tap.md).
### NO_HAPTIC_FN
With the entry of `#define NO_HAPTIC_FN` in config.h, deprecated `fn_actions` type function keys will not trigger a feedback.
### NO_HAPTIC_ALPHA
With the entry of `#define NO_HAPTIC_ALPHA` in config.h, none of the alpha keys (A ... Z) will trigger a feedback.
### NO_HAPTIC_PUNCTUATION
With the entry of `#define NO_HAPTIC_PUNCTUATION` in config.h, none of the following keys will trigger a feedback: Enter, ESC, Backspace, Space, Minus, Equal, Left Bracket, Right Bracket, Backslash, Non-US Hash, Semicolon, Quote, Grave, Comma, Slash, Dot, Non-US Backslash.
### NO_HAPTIC_LOCKKEYS
With the entry of `#define NO_HAPTIC_LOCKKEYS` in config.h, none of the following keys will trigger a feedback: Caps Lock, Scroll Lock, Num Lock.
### NO_HAPTIC_NAV
With the entry of `#define NO_HAPTIC_NAV` in config.h, none of the following keys will trigger a feedback: Print Screen, Pause, Insert, Delete, Page Down, Page Up, Left Arrow, Up Arrow, Right Arrow, Down Arrow, End, Home.
### NO_HAPTIC_NUMERIC
With the entry of `#define NO_HAPTIC_NUMERIC` in config.h, none of the following keys between 0 and 9 (KC_1 ... KC_0) will trigger a feedback.
+2 -3
View File
@@ -2,8 +2,6 @@
The keyboard can be made to be recognized as a joystick HID device by the operating system.
This is enabled by adding `JOYSTICK_ENABLE` to `rules.mk`. You can set this value to `analog`, `digital`, or `no`.
!> Joystick support is not currently available on V-USB devices.
The joystick feature provides two services:
@@ -18,7 +16,8 @@ or send gamepad reports based on values computed by the keyboard.
To use analog input you must first enable it in `rules.mk`:
```makefile
JOYSTICK_ENABLE = analog
JOYSTICK_ENABLE = yes
JOYSTICK_DRIVER = analog # or 'digital'
```
An analog device such as a potentiometer found on a gamepad's analog axes is based on a [voltage divider](https://en.wikipedia.org/wiki/Voltage_divider).
+229
View File
@@ -0,0 +1,229 @@
# Key Overrides
Key overrides allow you to override modifier-key combinations to send a different modifier-key combination or perform completely custom actions. Don't want `shift` + `1` to type `!` on your computer? Use a key override to make your keyboard type something different when you press `shift` + `1`. The general behavior is like this: If `modifiers w` + `key x` are pressed, replace these keys with `modifiers y` + `key z` in the keyboard report.
You can use key overrides in a similar way to momentary layer/fn keys to activate custom keycodes/shortcuts, with a number of benefits: You completely keep the original use of the modifier keys, while being able to save space by removing fn keys from your keyboard. You can also easily configure _combinations of modifiers_ to trigger different actions than individual modifiers, and much more. The possibilities are quite vast and this documentation contains a few examples for inspiration throughout.
##### A few more examples to get started: You could use key overrides to...
- Send `brightness up/down` when pressing `ctrl` + `volume up/down`.
- Send `delete` when pressing `shift` + `backspace`.
- Create custom shortcuts or change existing ones: E.g. Send `ctrl`+`shift`+`z` when `ctrl`+`y` is pressed.
- Run custom code when `ctrl` + `alt` + `esc` is pressed.
## Setup
To enable this feature, you need to add `KEY_OVERRIDE_ENABLE = yes` to your `rules.mk`.
Then, in your `keymap.c` file, you'll need to define the array `key_overrides`, which defines all key overrides to be used. Each override is a value of type `key_override_t`. The array `key_overrides` is `NULL`-terminated and contains pointers to `key_override_t` values (`const key_override_t **`).
## Creating Key Overrides
The `key_override_t` struct has many options that allow you to precisely tune your overrides. The full reference is shown below. Instead of manually creating a `key_override_t` value, it is recommended to use these dedicated initializers:
#### `ko_make_basic(modifiers, key, replacement)`
Returns a `key_override_t`, which sends `replacement` (can be a key-modifer combination), when `key` and `modifiers` are all pressed down. This override still activates if any additional modifiers not specified in `modifiers` are also pressed down. See `ko_make_with_layers_and_negmods` to customize this behavior.
#### `ko_make_with_layers(modifiers, key, replacement, layers)`
Additionally takes a bitmask `layers` that defines on which layers the override is used.
#### `ko_make_with_layers_and_negmods(modifiers, key, replacement, layers, negative_mods)`
Additionally takes a bitmask `negative_mods` that defines which modifiers may not be pressed for this override to activate.
#### `ko_make_with_layers_negmods_and_options(modifiers, key, replacement, layers, negative_mods, options)`
Additionally takes a bitmask `options` that specifies additional options. See `ko_option_t` for available options.
For more customization possibilities, you may directly create a `key_override_t`, which allows you to customize even more behavior. Read further below for details and examples.
## Simple Example
This shows how the mentioned example of sending `delete` when `shift` + `backspace` are pressed is realized:
```c
const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPACE, KC_DELETE);
// This globally defines all key overrides to be used
const key_override_t **key_overrides = (const key_override_t *[]){
&delete_key_override,
NULL // Null terminate the array of overrides!
};
```
## Intermediate Difficulty Examples
### Media Controls & Screen Brightness
In this example a single key is configured to control media, volume and screen brightness by using key overrides.
- The key is set to send `play/pause` in the keymap.
The following key overrides will be configured:
- `Ctrl` + `play/pause` will send `next track`.
- `Ctrl` + `Shift` + `play/pause` will send `previous track`.
- `Alt` + `play/pause` will send `volume up`.
- `Alt` + `Shift` + `play/pause` will send `volume down`.
- `Ctrl` + `Alt` + `play/pause` will send `brightness up`.
- `Ctrl` + `Alt` + `Shift` + `play/pause` will send `brightness down`.
```c
const key_override_t next_track_override =
ko_make_with_layers_negmods_and_options(
MOD_MASK_CTRL, // Trigger modifiers: ctrl
KC_MPLY, // Trigger key: play/pause
KC_MNXT, // Replacement key
~0, // Activate on all layers
MOD_MASK_SA, // Do not activate when shift or alt are pressed
ko_option_no_reregister_trigger); // Specifies that the play key is not registered again after lifting ctrl
const key_override_t prev_track_override = ko_make_with_layers_negmods_and_options(MOD_MASK_CS, KC_MPLY,
KC_MPRV, ~0, MOD_MASK_ALT, ko_option_no_reregister_trigger);
const key_override_t vol_up_override = ko_make_with_layers_negmods_and_options(MOD_MASK_ALT, KC_MPLY,
KC_VOLU, ~0, MOD_MASK_CS, ko_option_no_reregister_trigger);
const key_override_t vol_down_override = ko_make_with_layers_negmods_and_options(MOD_MASK_SA, KC_MPLY,
KC_VOLD, ~0, MOD_MASK_CTRL, ko_option_no_reregister_trigger);
const key_override_t brightness_up_override = ko_make_with_layers_negmods_and_options(MOD_MASK_CA, KC_MPLY,
KC_BRIU, ~0, MOD_MASK_SHIFT, ko_option_no_reregister_trigger);
const key_override_t brightness_down_override = ko_make_basic(MOD_MASK_CSA, KC_MPLY, KC_BRID);
// This globally defines all key overrides to be used
const key_override_t **key_overrides = (const key_override_t *[]){
&next_track_override,
&prev_track_override,
&vol_up_override,
&vol_down_override,
&brightness_up_override,
&brightness_down_override,
NULL
};
```
### Flexible macOS-friendly Grave Escape
The [Grave Escape feature](feature_grave_esc.md) is limited in its configurability and has [bugs when used on macOS](feature_grave_esc.md#caveats). Key overrides can be used to achieve a similar functionality as Grave Escape, but with more customization and without bugs on macOS.
```c
// Shift + esc = ~
const key_override_t tilde_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, S(KC_GRAVE));
// GUI + esc = `
const key_override_t grave_esc_override = ko_make_basic(MOD_MASK_GUI, KC_ESC, KC_GRAVE);
const key_override_t **key_overrides = (const key_override_t *[]){
&tilde_esc_override,
&grave_esc_override,
NULL
};
```
In addition to not encountering unexpected bugs on macOS, you can also change the behavior as you wish. Instead setting `GUI` + `ESC` = `` ` `` you may change it to an arbitrary other modifier, for example `Ctrl` + `ESC` = `` ` ``.
## Advanced Examples
### Modifiers as Layer Keys
Do you really need a dedicated key to toggle your fn layer? With key overrides, perhaps not. This example shows how you can configure to use `rGUI` + `rAlt` (right GUI and right alt) to access a momentary layer like an fn layer. With this you completely eliminate the need to use a dedicated layer key. Of course the choice of modifier keys can be changed as needed, `rGUI` + `rAlt` is just an example here.
```c
// This is called when the override activates and deactivates. Enable the fn layer on activation and disable on deactivation
bool momentary_layer(bool key_down, void *layer) {
if (key_down) {
layer_on((uint8_t)(uintptr_t)layer);
} else {
layer_off((uint8_t)(uintptr_t)layer);
}
return false;
}
const key_override_t fn_override = {.trigger_mods = MOD_BIT(KC_RGUI) | MOD_BIT(KC_RCTL), //
.layers = ~(1 << LAYER_FN), //
.suppressed_mods = MOD_BIT(KC_RGUI) | MOD_BIT(KC_RCTL), //
.options = ko_option_no_unregister_on_other_key_down, //
.negative_mod_mask = (uint8_t) ~(MOD_BIT(KC_RGUI) | MOD_BIT(KC_RCTL)), //
.custom_action = momentary_layer, //
.context = (void *)LAYER_FN, //
.trigger = KC_NO, //
.replacement = KC_NO, //
.enabled = NULL};
```
## Keycodes
You can enable, disable and toggle all key overrides on the fly.
|Keycode |Description |Function Equivalent|
|----------|---------------------------------|--------|
|`KEY_OVERRIDE_ON` |Turns on Key Override feature | `key_override_on(void)`|
|`KEY_OVERRIDE_OFF` |Turns off Key Override feature |`key_override_off(void)`|
|`KEY_OVERRIDE_TOGGLE` |Toggles Key Override feature on and off |`key_override_toggle(void)`|
## Reference for `key_override_t`
Advanced users may need more customization than what is offered by the simple `ko_make` initializers. For this, directly create a `key_override_t` value and set all members. Below is a reference for all members of `key_override_t`.
| Member | Description |
|--------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `uint16_t trigger` | The non-modifier keycode that triggers the override. This keycode, and the necessary modifiers (`trigger_mods`) must be pressed to activate this override. Set this to the keycode of the key that should activate the override. Set to `KC_NO` to require only the necessary modifiers to be pressed and no non-modifier. |
| `uint8_t trigger_mods` | Which mods need to be down for activation. If both sides of a modifier are set (e.g. left ctrl and right ctrl) then only one is required to be pressed (e.g. left ctrl suffices). Use the `MOD_MASK_XXX` and `MOD_BIT()` macros for this. |
| `layer_state_t layers` | This is a BITMASK (!), defining which layers this override applies to. To use this override on layer i set the ith bit `(1 << i)`. |
| `uint8_t negative_mod_mask` | Which modifiers cannot be down. It must hold that `(active_modifiers & negative_mod_mask) == 0`, otherwise the key override will not be activated. An active override will be deactivated once this is no longer true. |
| `uint8_t suppressed_mods` | Modifiers to 'suppress' while the override is active. To suppress a modifier means that even though the modifier key is held down, the host OS sees the modifier as not pressed. Can be used to suppress the trigger modifiers, as a trivial example. |
| `uint16_t replacement` | The complex keycode to send as replacement when this override is triggered. This can be a simple keycode, a key-modifier combination (e.g. `C(KC_A)`), or `KC_NO` (to register no replacement keycode). Use in combination with suppressed_mods to get the correct modifiers to be sent. |
| `ko_option_t options` | Options controlling the behavior of the override, such as what actions are allowed to activate the override. |
| `bool (*custom_action)(bool activated, void *context)` | If not NULL, this function will be called right before the replacement key is registered, along with the provided context and a flag indicating whether the override was activated or deactivated. This function allows you to run some custom actions for specific key overrides. If you return `false`, the replacement key is not registered/unregistered as it would normally. Return `true` to register and unregister the override normally. |
| `void *context` | A context that will be passed to the custom action function. |
| `bool *enabled` | If this points to false this override will not be used. Set to NULL to always have this override enabled. |
### Reference for `ko_option_t`
Bitfield with various options controlling the behavior of a key override.
| Value | Description |
|------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `ko_option_activation_trigger_down` | Allow activating when the trigger key is pressed down. |
| `ko_option_activation_required_mod_down` | Allow activating when a necessary modifier is pressed down. |
| `ko_option_activation_negative_mod_up` | Allow activating when a negative modifier is released. |
| `ko_option_one_mod` | If set, any of the modifiers in `trigger_mods` will be enough to activate the override (logical OR of modifiers). If not set, all the modifiers in `trigger_mods` have to be pressed (logical AND of modifiers). |
| `ko_option_no_unregister_on_other_key_down` | If set, the override will not deactivate when another key is pressed down. Use only if you really know you need this. |
| `ko_option_no_reregister_trigger` | If set, the trigger key will never be registered again after the override is deactivated. |
| `ko_options_default` | The default options used by the `ko_make_xxx` functions |
## For Advanced Users: Inner Workings
This section explains how a key override works in detail, explaining where each member of `key_override_t` comes into play. Understanding this is essential to be able to take full advantage of all the options offered by key overrides.
#### Activation
When the necessary keys are pressed (`trigger_mods` + `trigger`), the override is 'activated' and the replacement key is registered in the keyboard report (`replacement`), while the `trigger` key is removed from the keyboard report. The trigger modifiers may also be removed from the keyboard report upon activation of an override (`suppressed_mods`). The override will not activate if any of the `negative_modifiers` are pressed.
Overrides can activate in three different cases:
1. The trigger key is pressed down and necessary modifiers are already down.
2. A necessary modifier is pressed down, while the trigger key and other necessary modifiers are already down.
3. A negative modifier is released, while all necessary modifiers and the trigger key are already down.
Use the `option` member to customize which of these events are allowed to activate your overrides (default: all three).
In any case, a key override can only activate if the `trigger` key is the _last_ non-modifier key that was pressed down. This emulates the behavior of how standard OSes (macOS, Windows, Linux) handle normal key input (to understand: Hold down `a`, then also hold down `b`, then hold down `shift`; `B` will be typed but not `A`).
#### Deactivation
An override is 'deactivated' when one of the trigger keys (`trigger_mods`, `trigger`) is lifted, another non-modifier key is pressed down, or one of the `negative_modifiers` is pressed down. When an override deactivates, the `replacement` key is removed from the keyboard report, while the `suppressed_mods` that are still held down are re-added to the keyboard report. By default, the `trigger` key is re-added to the keyboard report if it is still held down and no other non-modifier key has been pressed since. This again emulates the behavior of how standard OSes handle normal key input (To understand: hold down `a`, then also hold down `b`, then also `shift`, then release `b`; `A` will not be typed even though you are holding the `a` and `shift` keys). Use the `option` field `ko_option_no_reregister_trigger` to prevent re-registering the trigger key in all cases.
#### Key Repeat Delay
A third way in which standard OS-handling of modifier-key input is emulated in key overrides is with a ['key repeat delay'](https://www.dummies.com/computers/pcs/set-your-keyboards-repeat-delay-and-repeat-rate/). To explain what this is, let's look at how normal keyboard input is handled by mainstream OSes again: If you hold down `a`, followed by `shift`, you will see the letter `a` is first typed, then for a short moment nothing is typed and then repeating `A`s are typed. Take note that, although shift is pressed down just after `a` is pressed, it takes a moment until `A` is typed. This is caused by the aforementioned key repeat delay, and it is a feature that prevents unwanted repeated characters from being typed.
This applies equally to releasing a modifier: When you hold `shift`, then press `a`, the letter `A` is typed. Now if you release `shift` first, followed by `a` shortly after, you will not see the letter `a` being typed, even though for a short moment of time you were just holding down the key `a`. This is because no modified characters are typed until the key repeat delay has passed.
This exact behavior is implemented in key overrides as well: If a key override for `shift` + `a` = `b` exists, and `a` is pressed and held, followed by `shift`, you will not immediately see the letter `b` being typed. Instead, this event is deferred for a short moment, until the key repeat delay has passed, measured from the moment when the trigger key (`a`) was pressed down.
The duration of the key repeat delay is controlled with the `KEY_OVERRIDE_REPEAT_DELAY` macro. Define this value in your `config.h` file to change it. It is 500ms by default.
## Difference to Combos
Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interacton with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable.
+1 -1
View File
@@ -1,6 +1,6 @@
# LED Indicators
?> Currently, this feature is not supported for split keyboards
?> This feature requires additional configuration to work on both halves of a split keyboard see [Data sync options](feature_split_keyboard.md#data-sync-options)
QMK provides methods to read 5 of the LEDs defined in the HID spec:
+4 -38
View File
@@ -52,7 +52,7 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | LED address
@@ -63,7 +63,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
}
```
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/led/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
---
@@ -244,14 +244,7 @@ static bool my_cool_effect2(effect_params_t* params) {
#endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS
```
For inspiration and examples, check out the built-in effects under `quantum/led_matrix_animations/`
For inspiration and examples, check out the built-in effects under `quantum/led_matrix/animations/`.
## Additional `config.h` Options :id=additional-configh-options
@@ -262,7 +255,7 @@ For inspiration and examples, check out the built-in effects under `quantum/led_
#define LED_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects
#define LED_DISABLE_TIMEOUT 0 // number of milliseconds to wait until led automatically turns off
#define LED_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects
#define LED_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define LED_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define LED_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
#define LED_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
#define LED_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs
@@ -350,30 +343,3 @@ void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
LED_MATRIX_INDICATOR_SET_VALUE(index, value);
}
```
## Suspended State :id=suspended-state
To use the suspend feature, make sure that `#define LED_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.
Additionally add this to your `<keyboard>.c`:
```c
void suspend_power_down_kb(void) {
led_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
led_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
```
or add this to your `keymap.c`:
```c
void suspend_power_down_user(void) {
led_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_user(void) {
led_matrix_set_suspend_state(false);
}
```
+22 -4
View File
@@ -18,16 +18,26 @@ Hardware configurations using Arm-based microcontrollers or different sizes of O
## Usage
To enable the OLED feature, there are three steps. First, when compiling your keyboard, you'll need to add the following to your `rules.mk`:
To enable the OLED feature, there are two steps. First, when compiling your keyboard, you'll need to add the following to your `rules.mk`:
```make
OLED_DRIVER_ENABLE = yes
OLED_ENABLE = yes
```
## OLED type
|OLED Driver |Supported Device |
|-------------------|---------------------------|
|SSD1306 (default) |For both SSD1306 and SH1106|
e.g.
```make
OLED_DRIVER = SSD1306
```
Then in your `keymap.c` file, implement the OLED task call. This example assumes your keymap has three layers named `_QWERTY`, `_FN` and `_ADJ`:
```c
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
void oled_task_user(void) {
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
@@ -114,7 +124,7 @@ static void fade_display(void) {
In split keyboards, it is very common to have two OLED displays that each render different content and are oriented or flipped differently. You can do this by switching which content to render by using the return value from `is_keyboard_master()` or `is_keyboard_left()` found in `split_util.h`, e.g:
```c
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
@@ -346,6 +356,14 @@ bool oled_scroll_left(void);
// Returns true if the screen was not scrolling or stops scrolling
bool oled_scroll_off(void);
// Returns true if the oled is currently scrolling, false if it is
// not
bool is_oled_scrolling(void);
// Inverts the display
// Returns true if the screen was or is inverted
bool oled_invert(bool invert);
// Returns the maximum number of characters that will fit on a line
uint8_t oled_max_chars(void);
+36 -2
View File
@@ -50,7 +50,7 @@ In your keyboard config.h:
#endif
```
## Interrupt Version :id=interrupt-version
### Interrupt Version (AVR/ATMega32u4) :id=interrupt-version-avr
The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data.
@@ -88,7 +88,31 @@ In your keyboard config.h:
#endif
```
## USART Version :id=usart-version
### Interrupt Version (ARM chibios) :id=interrupt-version-chibios
Pretty much any two pins can be used for the (software) interrupt variant on ARM cores. The example below uses A8 for clock, and A9 for data.
In rules.mk:
```
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
```
In your keyboard config.h:
```c
#define PS2_CLOCK A8
#define PS2_DATA A9
```
And in the chibios specifig halconf.h:
```c
#define PAL_USE_CALLBACKS TRUE
```
### USART Version :id=usart-version
To use USART on the ATMega32u4, you have to use PD5 for clock and PD2 for data. If one of those are unavailable, you need to use interrupt version.
@@ -246,6 +270,16 @@ Fine control over the scrolling is supported with the following defines:
#define PS2_MOUSE_SCROLL_DIVISOR_V 2
```
### Invert Mouse buttons :id=invert-buttons
To invert the left & right buttons you can put:
```c
#define PS2_MOUSE_INVERT_BUTTONS
```
into config.h.
### Invert Mouse and Scroll Axes :id=invert-mouse-and-scroll-axes
To invert the X and Y axes you can put:
+147 -50
View File
@@ -52,7 +52,7 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -64,7 +64,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
}
```
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3`).
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/led/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3`).
---
### IS31FL3733 :id=is31fl3733
@@ -122,7 +122,7 @@ Currently only 4 drivers are supported, but it would be trivial to support all 8
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -134,7 +134,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
}
```
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/led/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
---
### IS31FL3737 :id=is31fl3737
@@ -145,9 +145,22 @@ There is basic support for addressable RGB matrix lighting with the I2C IS31FL37
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = IS31FL3737
```
You can use between 1 and 2 IS31FL3737 IC's. Do not specify `DRIVER_ADDR_2` define for second IC if not present on your keyboard.
Configure the hardware via your `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
Here is an example using 2 drivers.
```c
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
@@ -159,19 +172,21 @@ Configure the hardware via your `config.h`:
// ADDR represents A3:A0 of the 7-bit address.
// The result is: 0b101(ADDR)
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons.
#define DRIVER_ADDR_2 0b1010001
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 64
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
#define DRIVER_1_LED_TOTAL 30
#define DRIVER_2_LED_TOTAL 36
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
```
!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
Currently only a single drivers is supported, but it would be trivial to support all 4 combinations. For now define `DRIVER_ADDR_2` as `DRIVER_ADDR_1`
Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -183,7 +198,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
}
```
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3737.pdf) and the header file `drivers/issi/is31fl3737.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0` right now).
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3737.pdf) and the header file `drivers/led/issi/is31fl3737.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0`, `1` for now).
---
@@ -227,6 +242,75 @@ Configure the hardware via your `config.h`:
#define DRIVER_LED_TOTAL 70
```
---
### AW20216 :id=aw20216
There is basic support for addressable RGB matrix lighting with the SPI AW20216 RGB controller. To enable it, add this to your `rules.mk`:
```makefile
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = AW20216
```
You can use up to 2 AW20216 IC's. Do not specify `DRIVER_<N>_xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
| `DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line | B13 |
| `DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line | |
| `DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 |
| `DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line | |
| `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | |
| `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
| `AW_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
Here is an example using 2 drivers.
```c
#define DRIVER_1_CS B13
#define DRIVER_2_CS B14
// Hardware enable lines may be connected to the same pin
#define DRIVER_1_EN C13
#define DRIVER_2_EN C13
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 32
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
```
!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const aw_led __flash g_aw_leds[DRIVER_LED_TOTAL] = {
/* Each AW20216 channel is controlled by a register at some offset between 0x00
* and 0xD7 inclusive.
* See drivers/awinic/aw20216.h for the mapping between register offsets and
* driver pin locations.
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{ 0, CS1_SW1, CS2_SW1, CS3_SW1 },
{ 0, CS4_SW1, CS5_SW1, CS6_SW1 },
{ 0, CS7_SW1, CS8_SW1, CS9_SW1 },
{ 0, CS10_SW1, CS11_SW1, CS12_SW1 },
{ 0, CS13_SW1, CS14_SW1, CS15_SW1 },
...
{ 1, CS1_SW1, CS2_SW1, CS3_SW1 },
{ 1, CS13_SW1, CS14_SW1, CS15_SW1 },
{ 1, CS16_SW1, CS17_SW1, CS18_SW1 },
{ 1, CS4_SW2, CS5_SW2, CS6_SW2 },
...
};
```
---
## Common Configuration :id=common-configuration
@@ -478,35 +562,36 @@ static bool my_cool_effect2(effect_params_t* params) {
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
```
For inspiration and examples, check out the built-in effects under `quantum/rgb_matrix_animations/`
For inspiration and examples, check out the built-in effects under `quantum/rgb_matrix/animations/`.
## Colors :id=colors
These are shorthands to popular colors. The `RGB` ones can be passed to the `setrgb` functions, while the `HSV` ones to the `sethsv` functions.
|RGB |HSV |
|-------------------|-------------------|
|`RGB_WHITE` |`HSV_WHITE` |
|`RGB_RED` |`HSV_RED` |
|`RGB_CORAL` |`HSV_CORAL` |
|`RGB_ORANGE` |`HSV_ORANGE` |
|`RGB_GOLDENROD` |`HSV_GOLDENROD` |
|`RGB_GOLD` |`HSV_GOLD` |
|`RGB_YELLOW` |`HSV_YELLOW` |
|`RGB_CHARTREUSE` |`HSV_CHARTREUSE` |
|`RGB_GREEN` |`HSV_GREEN` |
|`RGB_SPRINGGREEN` |`HSV_SPRINGGREEN` |
|`RGB_TURQUOISE` |`HSV_TURQUOISE` |
|`RGB_TEAL` |`HSV_TEAL` |
|`RGB_CYAN` |`HSV_CYAN` |
|`RGB_AZURE` |`HSV_AZURE` |
|`RGB_BLUE` |`HSV_BLUE` |
|`RGB_PURPLE` |`HSV_PURPLE` |
|`RGB_MAGENTA` |`HSV_MAGENTA` |
|`RGB_PINK` |`HSV_PINK` |
|RGB |HSV |
|---------------------|---------------------|
|`RGB_AZURE` |`HSV_AZURE` |
|`RGB_BLACK`/`RGB_OFF`|`HSV_BLACK`/`HSV_OFF`|
|`RGB_BLUE` |`HSV_BLUE` |
|`RGB_CHARTREUSE` |`HSV_CHARTREUSE` |
|`RGB_CORAL` |`HSV_CORAL` |
|`RGB_CYAN` |`HSV_CYAN` |
|`RGB_GOLD` |`HSV_GOLD` |
|`RGB_GOLDENROD` |`HSV_GOLDENROD` |
|`RGB_GREEN` |`HSV_GREEN` |
|`RGB_MAGENTA` |`HSV_MAGENTA` |
|`RGB_ORANGE` |`HSV_ORANGE` |
|`RGB_PINK` |`HSV_PINK` |
|`RGB_PURPLE` |`HSV_PURPLE` |
|`RGB_RED` |`HSV_RED` |
|`RGB_SPRINGGREEN` |`HSV_SPRINGGREEN` |
|`RGB_TEAL` |`HSV_TEAL` |
|`RGB_TURQUOISE` |`HSV_TURQUOISE` |
|`RGB_WHITE` |`HSV_WHITE` |
|`RGB_YELLOW` |`HSV_YELLOW` |
These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h). Feel free to add to this list!
These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h). Feel free to add to this list!
## Additional `config.h` Options :id=additional-configh-options
@@ -657,29 +742,41 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
```
### Suspended state :id=suspended-state
To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.
#### Examples :id=indicator-examples
Additionally add this to your `<keyboard>.c`:
This example sets the modifiers to be a specific color based on the layer state. You can use a switch case here, instead, if you would like. This uses HSV and then converts to RGB, because this allows the brightness to be limited (important when using the WS2812 driver).
```c
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
HSV hsv = {0, 255, 255};
if (layer_state_is(layer_state, 2)) {
hsv = {130, 255, 255};
} else {
hsv = {30, 255, 255};
}
if (hsv.v > rgb_matrix_get_val()) {
hsv.v = rgb_matrix_get_val();
}
RGB rgb = hsv_to_rgb(hsv);
for (uint8_t i = led_min; i <= led_max; i++) {
if (HAS_FLAGS(g_led_config.flags[i], 0x01)) { // 0x01 == LED_FLAG_MODIFIER
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
}
}
```
or add this to your `keymap.c`:
If you want to indicate a Host LED status (caps lock, num lock, etc), you can use something like this to light up the caps lock key:
```c
void suspend_power_down_user(void) {
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_user(void) {
rgb_matrix_set_suspend_state(false);
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) {
RGB_MATRIX_INDICATOR_SET_COLOR(5, 255, 255, 255); // assuming caps lock is at led #5
} else {
RGB_MATRIX_INDICATOR_SET_COLOR(5, 0, 0, 0);
}
}
```
+28 -23
View File
@@ -119,7 +119,7 @@ if `RGBLIGHT_EFFECT_xxxx` or `RGBLIGHT_ANIMATIONS` is defined, you also have a n
Check out [this video](https://youtube.com/watch?v=VKrpPAHlisY) for a demonstration.
Note: For versions older than 0.6.117, The mode numbers were written directly. In `quantum/rgblight.h` there is a contrast table between the old mode number and the current symbol.
Note: For versions older than 0.6.117, The mode numbers were written directly. In `quantum/rgblight/rgblight.h` there is a contrast table between the old mode number and the current symbol.
### Effect and Animation Toggles
@@ -326,9 +326,13 @@ would turn the layer 0 (or 1) on and off again three times when `DEBUG` is press
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `RGB_TOG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
### Retain brightness
Usually lighting layers apply their configured brightness once activated. If you would like lighting layers to retain the currently used brightness (as returned by `rgblight_get_val()`), add `#define RGBLIGHT_LAYERS_RETAIN_VAL` to your `config.h`.
## Functions
If you need to change your RGB lighting in code, for example in a macro to change the color whenever you switch layers, QMK provides a set of functions to assist you. See [`rgblight.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight.h) for the full list, but the most commonly used functions include:
If you need to change your RGB lighting in code, for example in a macro to change the color whenever you switch layers, QMK provides a set of functions to assist you. See [`rgblight.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight/rgblight.h) for the full list, but the most commonly used functions include:
### Utility Functions
|Function |Description |
@@ -449,26 +453,27 @@ rgblight_sethsv_at(HSV_GREEN, 2); // led 2
These are shorthands to popular colors. The `RGB` ones can be passed to the `setrgb` functions, while the `HSV` ones to the `sethsv` functions.
|RGB |HSV |
|-------------------|-------------------|
|`RGB_WHITE` |`HSV_WHITE` |
|`RGB_RED` |`HSV_RED` |
|`RGB_CORAL` |`HSV_CORAL` |
|`RGB_ORANGE` |`HSV_ORANGE` |
|`RGB_GOLDENROD` |`HSV_GOLDENROD` |
|`RGB_GOLD` |`HSV_GOLD` |
|`RGB_YELLOW` |`HSV_YELLOW` |
|`RGB_CHARTREUSE` |`HSV_CHARTREUSE` |
|`RGB_GREEN` |`HSV_GREEN` |
|`RGB_SPRINGGREEN` |`HSV_SPRINGGREEN` |
|`RGB_TURQUOISE` |`HSV_TURQUOISE` |
|`RGB_TEAL` |`HSV_TEAL` |
|`RGB_CYAN` |`HSV_CYAN` |
|`RGB_AZURE` |`HSV_AZURE` |
|`RGB_BLUE` |`HSV_BLUE` |
|`RGB_PURPLE` |`HSV_PURPLE` |
|`RGB_MAGENTA` |`HSV_MAGENTA` |
|`RGB_PINK` |`HSV_PINK` |
|RGB |HSV |
|---------------------|---------------------|
|`RGB_AZURE` |`HSV_AZURE` |
|`RGB_BLACK`/`RGB_OFF`|`HSV_BLACK`/`HSV_OFF`|
|`RGB_BLUE` |`HSV_BLUE` |
|`RGB_CHARTREUSE` |`HSV_CHARTREUSE` |
|`RGB_CORAL` |`HSV_CORAL` |
|`RGB_CYAN` |`HSV_CYAN` |
|`RGB_GOLD` |`HSV_GOLD` |
|`RGB_GOLDENROD` |`HSV_GOLDENROD` |
|`RGB_GREEN` |`HSV_GREEN` |
|`RGB_MAGENTA` |`HSV_MAGENTA` |
|`RGB_ORANGE` |`HSV_ORANGE` |
|`RGB_PINK` |`HSV_PINK` |
|`RGB_PURPLE` |`HSV_PURPLE` |
|`RGB_RED` |`HSV_RED` |
|`RGB_SPRINGGREEN` |`HSV_SPRINGGREEN` |
|`RGB_TEAL` |`HSV_TEAL` |
|`RGB_TURQUOISE` |`HSV_TURQUOISE` |
|`RGB_WHITE` |`HSV_WHITE` |
|`RGB_YELLOW` |`HSV_YELLOW` |
```c
rgblight_setrgb(RGB_ORANGE);
@@ -477,7 +482,7 @@ rgblight_setrgb_at(RGB_GOLD, 3);
rgblight_sethsv_range(HSV_WHITE, 0, 6);
```
These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h). Feel free to add to this list!
These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h). Feel free to add to this list!
## Changing the order of the LEDs
+144 -11
View File
@@ -8,8 +8,7 @@ QMK Firmware has a generic implementation that is usable by any board, as well a
For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards.
!> ARM is not yet fully supported for Split Keyboards and has many limitations. Progress is being made, but we have not yet reached 100% feature parity.
!> ARM split supports most QMK subsystems when using the 'serial' and 'serial_usart' drivers. I2C slave is currently unsupported.
## Compatibility Overview
@@ -90,7 +89,13 @@ You can configure the firmware to read a pin on the controller to determine hand
#define SPLIT_HAND_PIN B7
```
This will read the specified pin. If it's high, then the controller assumes it is the left hand, and if it's low, it's assumed to be the right side.
This will read the specified pin. By default, if it's high, then the controller assumes it is the left hand, and if it's low, it's assumed to be the right side.
This behaviour can be flipped by adding this to you `config.h` file:
```c
#define SPLIT_HAND_PIN_LOW_IS_LEFT
```
#### Handedness by Matrix Pin
@@ -169,7 +174,7 @@ Because not every split keyboard is identical, there are a number of additional
#define USE_I2C
```
This enables I<sup>2</sup>C support for split keyboards. This isn't strictly for communication, but can be used for OLED or other I<sup>2</sup>C-based devices.
This configures the use of I<sup>2</sup>C support for split keyboard transport (AVR only).
```c
#define SOFT_SERIAL_PIN D0
@@ -193,20 +198,148 @@ If you're having issues with serial communication, you can change this value, as
* **`5`**: about 20kbps
```c
#define SPLIT_MODS_ENABLE
#define FORCED_SYNC_THROTTLE_MS 100
```
This enables transmitting modifier state (normal, weak and oneshot) to the non
primary side of the split keyboard. This adds a few bytes of data to the split
communication protocol and may impact the matrix scan speed when enabled.
The purpose of this feature is to support cosmetic use of modifer state (e.g.
displaying status on an OLED screen).
This sets the maximum number of milliseconds before forcing a synchronization of data from master to slave. Under normal circumstances this sync occurs whenever the data _changes_, for safety a data transfer occurs after this number of milliseconds if no change has been detected since the last sync.
```c
#define SPLIT_MAX_CONNECTION_ERRORS 10
```
This sets the maximum number of failed communication attempts (one per scan cycle) from the master part before it assumes that no slave part is connected. This makes it possible to use a master part without the slave part connected.
Set to 0 to disable the disconnection check altogether.
```c
#define SPLIT_CONNECTION_CHECK_TIMEOUT 500
```
How long (in milliseconds) the master part should block all connection attempts to the slave after the communication has been flagged as disconnected (see `SPLIT_MAX_CONNECTION_ERRORS` above).
One communication attempt will be allowed everytime this amount of time has passed since the last attempt. If that attempt succeeds, the communication is seen as working again.
Set to 0 to disable this throttling of communications while disconnected. This can save you a couple of bytes of firmware size.
### Data Sync Options
The following sync options add overhead to the split communication protocol and may negatively impact the matrix scan speed when enabled. These can be enabled by adding the chosen option(s) to your `config.h` file.
```c
#define SPLIT_TRANSPORT_MIRROR
```
This mirrors the master side matrix to the slave side for features that react or require knowledge of master side key presses on the slave side. This adds a few bytes of data to the split communication protocol and may impact the matrix scan speed when enabled. The purpose of this feature is to support cosmetic use of key events (e.g. RGB reacting to Keypresses).
This mirrors the master side matrix to the slave side for features that react or require knowledge of master side key presses on the slave side. The purpose of this feature is to support cosmetic use of key events (e.g. RGB reacting to keypresses).
```c
#define SPLIT_LAYER_STATE_ENABLE
```
This enables syncing of the layer state between both halves of the split keyboard. The main purpose of this feature is to enable support for use of things like OLED display of the currently active layer.
```c
#define SPLIT_LED_STATE_ENABLE
```
This enables syncing of the Host LED status (caps lock, num lock, etc) between both halves of the split keyboard. The main purpose of this feature is to enable support for use of things like OLED display of the Host LED status.
```c
#define SPLIT_MODS_ENABLE
```
This enables transmitting modifier state (normal, weak and oneshot) to the non primary side of the split keyboard. The purpose of this feature is to support cosmetic use of modifer state (e.g. displaying status on an OLED screen).
```c
#define SPLIT_WPM_ENABLE
```
This enables transmitting the current WPM to the slave side of the split keyboard. The purpose of this feature is to support cosmetic use of WPM (e.g. displaying the current value on an OLED screen).
```c
#define SPLIT_OLED_ENABLE
```
This enables transmitting the current OLED on/off status to the slave side of the split keyboard. The purpose of this feature is to support state (on/off state only) syncing.
```c
#define SPLIT_ST7565_ENABLE
```
This enables transmitting the current ST7565 on/off status to the slave side of the split keyboard. The purpose of this feature is to support state (on/off state only) syncing.
### Custom data sync between sides :id=custom-data-sync
QMK's split transport allows for arbitrary data transactions at both the keyboard and user levels. This is modelled on a remote procedure call, with the master invoking a function on the slave side, with the ability to send data from master to slave, process it slave side, and send data back from slave to master.
To leverage this, a keyboard or user/keymap can define a comma-separated list of _transaction IDs_:
```c
// for keyboard-level data sync:
#define SPLIT_TRANSACTION_IDS_KB KEYBOARD_SYNC_A, KEYBOARD_SYNC_B
// or, for user:
#define SPLIT_TRANSACTION_IDS_USER USER_SYNC_A, USER_SYNC_B, USER_SYNC_C
```
These _transaction IDs_ then need a slave-side handler function to be registered with the split transport, for example:
```c
typedef struct _master_to_slave_t {
int m2s_data;
} master_to_slave_t;
typedef struct _slave_to_master_t {
int s2m_data;
} slave_to_master_t;
void user_sync_a_slave_handler(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) {
const master_to_slave_t *m2s = (const master_to_slave_t*)in_data;
slave_to_master_t *s2m = (slave_to_master_t*)out_data;
s2m->s2m_data = m2s->m2s_data + 5; // whatever comes in, add 5 so it can be sent back
}
void keyboard_post_init_user(void) {
transaction_register_rpc(USER_SYNC_A, user_sync_a_slave_handler);
}
```
The master side can then invoke the slave-side handler - for normal keyboard functionality to be minimally affected, any keyboard- or user-level code attempting to sync data should be throttled:
```c
void housekeeping_task_user(void) {
if (is_keyboard_master()) {
// Interact with slave every 500ms
static uint32_t last_sync = 0;
if (timer_elapsed32(last_sync) > 500) {
master_to_slave_t m2s = {6};
slave_to_master_t s2m = {0};
if(transaction_rpc_exec(USER_SYNC_A, sizeof(m2s), &m2s, sizeof(s2m), &s2m)) {
last_sync = timer_read32();
dprintf("Slave value: %d\n", s2m.s2m_data); // this will now be 11, as the slave adds 5
} else {
dprint("Slave sync failed!\n");
}
}
}
}
```
!> It is recommended that any data sync between halves happens during the master side's _housekeeping task_. This ensures timely retries should failures occur.
If only one-way data transfer is needed, helper methods are provided:
```c
bool transaction_rpc_exec(int8_t transaction_id, uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer);
bool transaction_rpc_send(int8_t transaction_id, uint8_t initiator2target_buffer_size, const void *initiator2target_buffer);
bool transaction_rpc_recv(int8_t transaction_id, uint8_t target2initiator_buffer_size, void *target2initiator_buffer);
```
By default, the inbound and outbound data is limited to a maximum of 32 bytes each. The sizes can be altered if required:
```c
// Master to slave:
#define RPC_M2S_BUFFER_SIZE 48
// Slave to master:
#define RPC_S2M_BUFFER_SIZE 48
```
### Hardware Configuration Options
+274
View File
@@ -0,0 +1,274 @@
# ST7565 LCD Driver
## Supported Hardware
LCD modules using ST7565 driver IC, communicating over SPI.
|Module |IC |Size |Notes |
|------------------------------|-------|------|----------------------------------------------------------|
|Newhaven Display NHD-C12832A1Z|ST7565R|128x32|Used by Ergodox Infinity; primary consumer of this feature|
|Zolentech ZLE12864B |ST7565P|128x64|Requires contrast adjustment |
## Usage
To enable the feature, there are three steps. First, when compiling your keyboard, you'll need to add the following to your `rules.mk`:
```make
ST7565_ENABLE = yes
```
Then in your `keymap.c` file, implement the ST7565 task call. This example assumes your keymap has three layers named `_QWERTY`, `_FN` and `_ADJ`:
```c
#ifdef ST7565_ENABLE
void st7565_task_user(void) {
// Host Keyboard Layer Status
st7565_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
st7565_write_P(PSTR("Default\n"), false);
break;
case _FN:
st7565_write_P(PSTR("FN\n"), false);
break;
case _ADJ:
st7565_write_P(PSTR("ADJ\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
st7565_write_ln_P(PSTR("Undefined"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
st7565_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
st7565_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
st7565_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
#endif
```
## Logo Example
In the default font, certain ranges of characters are reserved for a QMK logo. To render this logo to the screen, use the following code example:
```c
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
};
st7565_write_P(qmk_logo, false);
}
```
## Buffer Read Example
For some purposes, you may need to read the current state of the display buffer. The `st7565_read_raw` function can be used to safely read bytes from the buffer.
In this example, calling `fade_display` in the `st7565_task_user` function will slowly fade away whatever is on the screen by turning random pixels off over time.
```c
//Setup some mask which can be or'd with bytes to turn off pixels
const uint8_t single_bit_masks[8] = {127, 191, 223, 239, 247, 251, 253, 254};
static void fade_display(void) {
//Define the reader structure
display_buffer_reader_t reader;
uint8_t buff_char;
if (random() % 30 == 0) {
srand(timer_read());
// Fetch a pointer for the buffer byte at index 0. The return structure
// will have the pointer and the number of bytes remaining from this
// index position if we want to perform a sequential read by
// incrementing the buffer pointer
reader = st7565_read_raw(0);
//Loop over the remaining buffer and erase pixels as we go
for (uint16_t i = 0; i < reader.remaining_element_count; i++) {
//Get the actual byte in the buffer by dereferencing the pointer
buff_char = *reader.current_element;
if (buff_char != 0) {
st7565_write_raw_byte(buff_char & single_bit_masks[rand() % 8], i);
}
//increment the pointer to fetch a new byte during the next loop
reader.current_element++;
}
}
}
```
## Other Examples
In split keyboards, it is very common to have two displays that each render different content and are oriented or flipped differently. You can do this by switching which content to render by using the return value from `is_keyboard_master()` or `is_keyboard_left()` found in `split_util.h`, e.g:
```c
#ifdef ST7565_ENABLE
display_rotation_t st7565_init_user(display_rotation_t rotation) {
if (!is_keyboard_master()) {
return DISPLAY_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
void st7565_task_user(void) {
if (is_keyboard_master()) {
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_logo(); // Renders a static logo
}
}
#endif
```
## Basic Configuration
|Define |Default |Description |
|------------------------|--------------|-----------------------------------------------------------------------------------------------------|
|`ST7565_A0_PIN` |*Not defined* |(Required) The GPIO connected to the display's A0 (data/command) pin |
|`ST7565_RST_PIN` |*Not defined* |(Required) The GPIO connected to the display's reset pin |
|`ST7565_SS_PIN` |*Not defined* |(Required) The GPIO connected to the display's slave select pin |
|`ST7565_SPI_CLK_DIVISOR`|`4` |The SPI clock divisor to use |
|`ST7565_FONT_H` |`"glcdfont.c"`|The font code file to use for custom fonts |
|`ST7565_FONT_START` |`0` |The starting character index for custom fonts |
|`ST7565_FONT_END` |`223` |The ending character index for custom fonts |
|`ST7565_FONT_WIDTH` |`6` |The font width |
|`ST7565_FONT_HEIGHT` |`8` |The font height (untested) |
|`ST7565_TIMEOUT` |`60000` |Turns off the screen after 60000ms of keyboard inactivity. Helps reduce burn-in. Set to 0 to disable.|
|`ST7565_COLUMN_OFFSET` |`0` |Shift output to the right this many pixels. |
|`ST7565_CONTRAST` |`32` |The default contrast level of the display, from 0 to 255. |
|`ST7565_UPDATE_INTERVAL`|`0` |Set the time interval for updating the display in ms. This will improve the matrix scan rate. |
## Custom sized displays
The default display size for this feature is 128x32 and all necessary defines are precalculated with that in mind.
|Define |Default |Description |
|-----------------------|----------|-----------------------------------------------------------------------------------------------------------|
|`ST7565_DISPLAY_WIDTH` |`128` |The width of the display. |
|`ST7565_DISPLAY_HEIGHT`|`32` |The height of the display. |
|`ST7565_MATRIX_SIZE` |`512` |The local buffer size to allocate.<br>`(ST7565_DISPLAY_HEIGHT / 8 * ST7565_DISPLAY_WIDTH)`. |
|`ST7565_BLOCK_TYPE` |`uint16_t`|The unsigned integer type to use for dirty rendering. |
|`ST7565_BLOCK_COUNT` |`16` |The number of blocks the display is divided into for dirty rendering.<br>`(sizeof(ST7565_BLOCK_TYPE) * 8)`.|
|`ST7565_BLOCK_SIZE` |`32` |The size of each block for dirty rendering<br>`(ST7565_MATRIX_SIZE / ST7565_BLOCK_COUNT)`. |
## API
```c
// Rotation enum values are flags
typedef enum {
DISPLAY_ROTATION_0,
DISPLAY_ROTATION_180
} display_rotation_t;
// Initialize the display, rotating the rendered output based on the define passed in.
// Returns true if the was initialized successfully
bool st7565_init(display_rotation_t rotation);
// Called at the start of st7565_init, weak function overridable by the user
// rotation - the value passed into st7565_init
// Return new display_rotation_t if you want to override default rotation
display_rotation_t st7565_init_user(display_rotation_t rotation);
// Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering
void st7565_clear(void);
// Renders the dirty chunks of the buffer to display
void st7565_render(void);
// Moves cursor to character position indicated by column and line, wraps if out of bounds
// Max column denoted by 'st7565_max_chars()' and max lines by 'st7565_max_lines()' functions
void st7565_set_cursor(uint8_t col, uint8_t line);
// Advances the cursor to the next page, writing ' ' if true
// Wraps to the begining when out of bounds
void st7565_advance_page(bool clearPageRemainder);
// Moves the cursor forward 1 character length
// Advance page if there is not enough room for the next character
// Wraps to the begining when out of bounds
void st7565_advance_char(void);
// Writes a single character to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Main handler that writes character data to the display buffer
void st7565_write_char(const char data, bool invert);
// Writes a string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
void st7565_write(const char *data, bool invert);
// Writes a string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Advances the cursor to the next page, wiring ' ' to the remainder of the current page
void st7565_write_ln(const char *data, bool invert);
// Pans the buffer to the right (or left by passing true) by moving contents of the buffer
// Useful for moving the screen in preparation for new drawing
void st7565_pan(bool left);
// Returns a pointer to the requested start index in the buffer plus remaining
// buffer length as struct
display_buffer_reader_t st7565_read_raw(uint16_t start_index);
// Writes a string to the buffer at current cursor position
void st7565_write_raw(const char *data, uint16_t size);
// Writes a single byte into the buffer at the specified index
void st7565_write_raw_byte(const char data, uint16_t index);
// Sets a specific pixel on or off
// Coordinates start at top-left and go right and down for positive x and y
void st7565_write_pixel(uint8_t x, uint8_t y, bool on);
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Remapped to call 'void st7565_write(const char *data, bool invert);' on ARM
void st7565_write_P(const char *data, bool invert);
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Advances the cursor to the next page, wiring ' ' to the remainder of the current page
// Remapped to call 'void st7565_write_ln(const char *data, bool invert);' on ARM
void st7565_write_ln_P(const char *data, bool invert);
// Writes a PROGMEM string to the buffer at current cursor position
void st7565_write_raw_P(const char *data, uint16_t size);
// Can be used to manually turn on the screen if it is off
// Returns true if the screen was on or turns on
bool st7565_on(void);
// Called when st7565_on() turns on the screen, weak function overridable by the user
// Not called if the screen is already on
void st7565_on_user(void);
// Can be used to manually turn off the screen if it is on
// Returns true if the screen was off or turns off
bool st7565_off(void);
// Called when st7565_off() turns off the screen, weak function overridable by the user
// Not called if the screen is already off
void st7565_off_user(void);
// Returns true if the screen is currently on, false if it is
// not
bool st7565_is_on(void);
// Basically it's st7565_render, but with timeout management and st7565_task_user calling!
void st7565_task(void);
// Called at the start of st7565_task, weak function overridable by the user
void st7565_task_user(void);
// Inverts the display
// Returns true if the screen was or is inverted
bool st7565_invert(bool invert);
// Returns the maximum number of characters that will fit on a line
uint8_t st7565_max_chars(void);
// Returns the maximum number of lines that will fit on the display
uint8_t st7565_max_lines(void);
```
+15
View File
@@ -128,3 +128,18 @@ As defined in `keymap_steno.h`.
|`STN_RES1`||(GeminiPR only)|
|`STN_RES2`||(GeminiPR only)|
|`STN_PWR`||(GeminiPR only)|
If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file
|Combined key | Key1 | Key 2 |
|---------------|--------|----------|
|STN_S3 | STN_S1 | STN_S2 |
|STN_TKL | STN_TL | STN_KL |
|STN_PWL | STN_PL | STN_WL |
|STN_HRL | STN_HL | STN_RL |
|STN_FRR | STN_FR | STN_RR |
|STN_PBR | STN_PR | STN_BR |
|STN_LGR | STN_LR | STN_GR |
|STN_TSR | STN_TR | STN_SR |
|STN_DZR | STN_DR | STN_ZR |
|STN_AO | STN_A | STN_O |
|STN_EU | STN_E | STN_U |
+2 -2
View File
@@ -29,7 +29,7 @@ After this, you'll want to use the `tap_dance_actions` array to specify what act
* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action.
* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function when the dance action finishes (like the previous option), and the last function when the tap dance action resets.
* ~~`ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`~~: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`.
* This is deprecated in favor of the Per Key Tapping Term functionality, as outlined [here](custom_quantum_functions.md#Custom_Tapping_Term). You'd want to check for the specific `TD()` macro that you want to use (such as `TD(TD_ESC_CAPS)`) instead of using this specific Tap Dance function.
* This is deprecated in favor of the Per Key Tapping Term functionality, as outlined [here](tap_hold.md#tapping-term). You'd want to check for the specific `TD()` macro that you want to use (such as `TD(TD_ESC_CAPS)`) instead of using this specific Tap Dance function.
The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise.
@@ -50,7 +50,7 @@ The main entry point is `process_tap_dance()`, called from `process_record_quant
This means that you have `TAPPING_TERM` time to tap the key again; you do not have to input all the taps within a single `TAPPING_TERM` timeframe. This allows for longer tap counts, with minimal impact on responsiveness.
Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-dance keys.
Our next stop is `tap_dance_task()`. This handles the timeout of tap-dance keys.
For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros.
+1 -1
View File
@@ -13,7 +13,7 @@ EXTRAKEY_ENABLE = yes
VELOCIKEY_ENABLE = yes
```
Then, while using your keyboard, you need to also turn it on with the VLK_TOG keycode, which toggles the feature on and off.
Then, while using your keyboard, you need to also turn it on with the `VLK_TOG` keycode, which toggles the feature on and off.
The following light effects will all be controlled by Velocikey when it is enabled:
- RGB Breathing
+51 -5
View File
@@ -48,7 +48,7 @@ QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tr
//#define QMK_LED E6
//#define QMK_SPEAKER C6
```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
@@ -127,7 +127,7 @@ To ensure compatibility with the USBasploader bootloader, make sure this block i
```make
# Bootloader selection
BOOTLOADER = USBasp
BOOTLOADER = usbasploader
```
Compatible flashers:
@@ -153,13 +153,13 @@ To ensure compatibility with the bootloadHID bootloader, make sure this block is
```make
# Bootloader selection
BOOTLOADER = bootloadHID
BOOTLOADER = bootloadhid
```
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadHID` target in QMK (recommended command line)
* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadhid` target in QMK (recommended command line)
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash)
Flashing sequence:
@@ -171,6 +171,52 @@ Flashing sequence:
3. Flash a .hex file
4. Reset the device into application mode (may be done automatically)
### QMK HID
QMK maintains [a fork of the LUFA HID bootloader](https://github.com/qmk/lufa/tree/master/Bootloaders/HID), which uses a USB HID Endpoint for flashing in the way that the PJRC's Teensy Loader flasher and HalfKay bootloader work. Additionally, it performs a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening.
To ensure compatibility with the QMK HID bootloader, make sure this block is present in your `rules.mk`:
```make
# Bootloader selection
BOOTLOADER = qmk-hid
```
To enable the additional features, add the following defines to your `config.h`:
```c
#define QMK_ESC_OUTPUT F1 // COL pin if COL2ROW
#define QMK_ESC_INPUT D5 // ROW pin if COL2ROW
// Optional:
//#define QMK_LED E6
//#define QMK_SPEAKER C6
```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
To generate this bootloader, use the `bootloader` target, eg. `make planck/rev4:default:bootloader`. To generate a production-ready .hex file (combining QMK and the bootloader), use the `production` target, eg. `make planck/rev4:default:production`.
Compatible flashers:
* TBD
* Currently, you need to either use the [Python script](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp_python), or compile [`hid_bootloader_cli`](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp), from the LUFA repo. Homebrew may (will) have support for this directly (via `brew install qmk/qmk/hid_bootloader_cli`).
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Press the `RESET` button on the PCB if available
* short RST to GND quickly
2. Wait for the OS to detect the device
3. Flash a .hex file
4. Reset the device into application mode (may be done automatically)
### `make` Targets
* `:qmk-hid`: Checks every 5 seconds until a DFU device is available, and then flashes the firmware.
## STM32/APM32 DFU
All STM32 and APM32 MCUs, except for F103 (see the [STM32duino section](#stm32duino)) come preloaded with a factory bootloader that cannot be modified nor deleted.
@@ -252,7 +298,7 @@ Flashing sequence:
## tinyuf2
Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on the F411 blackpill.
Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on the F401/F411 blackpill.
The `rules.mk` setting for this bootloader is `tinyuf2`, and can be specified at the keymap or user level.
+2 -2
View File
@@ -15,9 +15,9 @@ General flashing sequence:
?> Using the QMK installation script, detailed [here](newbs_getting_started.md), the required bootloadHID tools should be automatically installed.
To flash via the command line, use the target `:bootloadHID` by executing the following command:
To flash via the command line, use the target `:bootloadhid` by executing the following command:
make <keyboard>:<keymap>:bootloadHID
make <keyboard>:<keymap>:bootloadhid
## GUI Flashing
+4 -4
View File
@@ -85,14 +85,14 @@ qmk compile <configuratorExport.json>
qmk compile -kb <keyboard_name> -km <keymap_name>
```
## `qmk cformat`
## `qmk format-c`
Cette commande formatte le code C en utilisant clang-format. Lancez-la sans arguments pour formatter tout le code core, ou passez les noms de fichiers à la ligne de commande pour la lancer sur des fichiers spécifiques.
**Utilisation**:
```
qmk cformat [file1] [file2] [...] [fileN]
qmk format-c [file1] [file2] [...] [fileN]
```
## `qmk config`
@@ -125,14 +125,14 @@ Cette commande crée une nouvelle keymap basée sur une keymap par défaut d'un
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk pyformat`
## `qmk format-py`
Cette commande formate le code python dans `qmk_firmware`.
**Utilisation**:
```
qmk pyformat
qmk format-py
```
## `qmk pytest`
+1 -1
View File
@@ -14,7 +14,7 @@ The full syntax of the `make` command is `<keyboard_folder>:<keymap>:<target>`,
The `<target>` means the following
* If no target is given, then it's the same as `all` below
* `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck/rev4:default` will generate a single .hex, while `make planck/rev4:all` will generate a hex for every keymap available to the planck.
* `flash`, `dfu`, `teensy`, `avrdude`, `dfu-util`, or `bootloadHID` compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme.
* `flash`, `dfu`, `teensy`, `avrdude`, `dfu-util`, or `bootloadhid` compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme.
Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders.
* **Note**: some operating systems need privileged access for these commands to work. This means that you may need to setup [`udev rules`](faq_build.md#linux-udev-rules) to access these without root access, or to run the command with root access (`sudo make planck/rev4:default:flash`).
* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems.
+1 -1
View File
@@ -24,7 +24,7 @@ The "easy" way to flash the firmware is using a tool from your host OS:
If you want to program via the command line you can uncomment the ['modifyvm'] lines in the Vagrantfile to enable the USB passthrough into Linux and then program using the command line tools like dfu-util/dfu-programmer or you can install the Teensy CLI version.
## Vagrantfile Overview
The development environment is configured to run the QMK Docker image, `qmkfm/base_container`. This not only ensures predictability between systems, it also mirrors the CI environment.
The development environment is configured to run the QMK Docker image, `qmkfm/qmk_cli`. This not only ensures predictability between systems, it also mirrors the CI environment.
## FAQ
+18 -16
View File
@@ -6,26 +6,28 @@ If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_
## Adding Your AVR Keyboard to QMK
QMK has a number of features to simplify working with AVR keyboards. For most keyboards you don't have to write a single line of code. To get started, run the `util/new_keyboard.sh` script:
QMK has a number of features to simplify working with AVR keyboards. For most keyboards you don't have to write a single line of code. To get started, run `qmk new-keyboard`:
```
$ ./util/new_keyboard.sh
Generating a new QMK keyboard directory
$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory
Keyboard Name: mycoolkb
Keyboard Type [avr]:
Your Name [John Smith]:
Keyboard Name: mycoolkeeb
Keyboard Type:
1. avr
2. ps2avrgb
Please enter your choice: [1]
Your Name: [John Smith]
Ψ Copying base template files...
Ψ Copying avr template files...
Ψ Renaming keyboard.[ch] to mycoolkeeb.[ch]...
Ψ Replacing %YEAR% with 2021...
Ψ Replacing %KEYBOARD% with mycoolkeeb...
Ψ Replacing %YOUR_NAME% with John Smith...
Copying base template files... done
Copying avr template files... done
Renaming keyboard files... done
Replacing %KEYBOARD% with mycoolkb... done
Replacing %YOUR_NAME% with John Smith... done
Created a new keyboard called mycoolkb.
To start working on things, cd into keyboards/mycoolkb,
or open the directory in your favourite text editor.
Ψ Created a new keyboard called mycoolkeeb.
Ψ To start working on things, `cd` into keyboards/mycoolkeeb,
Ψ or open the directory in your preferred text editor.
```
This will create all the files needed to support your new keyboard, and populate the settings with default values. Now you just need to customize it for your keyboard.
+2 -2
View File
@@ -189,9 +189,9 @@ Hardware files (such as plates, cases, pcb) can be contributed to the [qmk.fm re
Given the amount of functionality that QMK exposes it's very easy to confuse new users. When putting together the default firmware for your keyboard we recommend limiting your enabled features and options to the minimal set needed to support your hardware. Recommendations for specific features follow.
### Bootmagic and Command
### Magic Keycodes and Command
[Bootmagic](feature_bootmagic.md) and [Command](feature_command.md) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board.
[Magic Keycodes](keycodes_magic.md) and [Command](feature_command.md) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board.
By far the most common problem new users encounter is accidentally triggering Bootmagic while they're plugging in their keyboard. They're holding the keyboard by the bottom, unknowingly pressing in alt and spacebar, and then they find that these keys have been swapped on them. We recommend leaving this feature disabled by default, but if you do turn it on consider setting `BOOTMAGIC_KEY_SALT` to a key that is hard to press while plugging your keyboard in.
+7 -7
View File
@@ -211,7 +211,7 @@ qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
# 開発者用コマンド
## `qmk cformat`
## `qmk format-c`
このコマンドは clang-format を使って C コードを整形します。
@@ -222,25 +222,25 @@ qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
**指定したファイルに対する使い方**:
```
qmk cformat [file1] [file2] [...] [fileN]
qmk format-c [file1] [file2] [...] [fileN]
```
**全てのコアファイルに対する使い方**:
```
qmk cformat -a
qmk format-c -a
```
**origin/master で変更されたファイルのみに対する使い方**:
```
qmk cformat
qmk format-c
```
**branch_name で変更されたファイルのみに対する使い方**:
```
qmk cformat -b branch_name
qmk format-c -b branch_name
```
## `qmk docs`
@@ -275,14 +275,14 @@ $ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk pyformat`
## `qmk format-py`
このコマンドは `qmk_firmware` 内の python コードを整形します。
**使用法**:
```
qmk pyformat
qmk format-py
```
## `qmk pytest`
+2 -2
View File
@@ -192,7 +192,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# テスト、リントおよびフォーマット
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``pyformat` サブコマンドを使うことができます。
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``format-py` サブコマンドを使うことができます。
### テストとリント
@@ -200,7 +200,7 @@ nose2、flake8 および yapf を使ってコードをテスト、リントお
### フォーマット
qmk pyformat
qmk format-py
## フォーマットの詳細
+5 -2
View File
@@ -1,8 +1,8 @@
# 互換性のあるマイクロコントローラ
<!---
original document: 0.9.19:docs/compatible_microcontrollers.md
git diff 0.9.19 HEAD -- docs/compatible_microcontrollers.md | cat
original document: 0.14.14:docs/compatible_microcontrollers.md
git diff 0.14.14 HEAD -- docs/compatible_microcontrollers.md | cat
-->
QMK は十分な容量のフラッシュメモリを備えた USB 対応 AVR または ARM マイクロコントローラで実行されます - 一般的に 32kB 以上ですが、ほとんどの機能を無効にすると*ほんの* 16kB に詰め込むことができます。
@@ -32,10 +32,13 @@ QMK は十分な容量のフラッシュメモリを備えた USB 対応 AVR ま
* [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html)
* [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html)
* [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html)
* [STM32F407](https://www.st.com/en/microcontrollers-microprocessors/stm32f407-417.html)
* [STM32F411](https://www.st.com/en/microcontrollers-microprocessors/stm32f411.html)
* [STM32F446](https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html)
* [STM32G431](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x1.html)
* [STM32G474](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x4.html)
* [STM32L412](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html)
* [STM32L422](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html)
* [STM32L433](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
* [STM32L443](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
+1 -1
View File
@@ -141,7 +141,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `#define STRICT_LAYER_RELEASE`
* キーリリースがどのレイヤーから来たのかを覚えるのではなく、現在のレイヤースタックを使って強制的に評価されるようにします (高度なケースに使われます)
## 設定可能な挙動
## 設定可能な挙動 :id=behaviors-that-can-be-configured
* `#define TAPPING_TERM 200`
* タップがホールドになるまでの時間。500以上に設定された場合、タップ期間中にタップされたキーもホールドになります。(訳注: PERMISSIVE_HOLDも参照)
+4 -4
View File
@@ -1,8 +1,8 @@
# 貢献方法
<!---
original document: 0.13.15:docs/contributing.md
git diff 0.13.15 HEAD -- docs/contributing.md | cat
original document: 0.14.22:docs/contributing.md
git diff 0.14.22 HEAD -- docs/contributing.md | cat
-->
👍🎉 まず、これを読み貢献する時間を作ってくれてありがとうございます!🎉👍
@@ -79,7 +79,7 @@ QMK には幾つかの異なるタイプの変更があり、それぞれ異な
```
kerpleplork の fronzlebop を調整します
kerpleplork はエラーコード 23 で連続的に失敗していました。根本的な原因は fronzlebop 設定で、これにより kerpleplork はN回の繰り返しごとにアクティブになります。
kerpleplork はエラーコード 23 で連続的に失敗していました。根本的な原因は fronzlebop 設定で、これにより kerpleplork は N 回の繰り返しごとにアクティブになります。
私が使用できるデバイスの限られた実験では、kerpleplork の混乱を避けるために 7 は十分高い値であることを示していますが、念のため ARM デバイスを持つ人たちからフィードバックを得たいです。
```
@@ -122,7 +122,7 @@ enum my_keycodes {
ほとんどの初めての QMK 貢献者は、個人のキーマップから始めます。キーマップの標準はかなりカジュアルなものにしようとしています(キーマップは結局のところ作成者の性格を反映しています)が、他の人があなたのキーマップを簡単に見つけて学ぶことができるように、これらのガイドラインに従うようにお願いします。
* [テンプレート](documentation_templates.md) を使って `readme.md` を書きます。
* [テンプレート](ja/documentation_templates.md) を使って `readme.md` を書きます。
* 全てのキーマップの PR は squash されるため、コミットがどのように squash されるかを気にする場合は、自分で行う必要があります。
* キーマップの PR に機能をまとめないでください。最初に機能をサブミットし、次にキーマップのための2つ目の PR をサブミットします。
* `Makefile` をキーマップフォルダに含めないでください(もう使われていません)。
+2 -2
View File
@@ -211,11 +211,11 @@ void keyboard_post_init_user(void) {
```c
void suspend_power_down_user(void) {
rgb_matrix_set_suspend_state(true);
// code will run multiple times while keyboard is suspended
}
void suspend_wakeup_init_user(void) {
rgb_matrix_set_suspend_state(false);
// code will run on keyboard wakeup
}
```
+23 -20
View File
@@ -1,30 +1,33 @@
# 修飾キー :id=modifier-keys
<!---
original document: 0.12.29:docs/feature_advanced_keycodes.md
git diff 0.12.29 HEAD -- docs/feature_advanced_keycodes.md | cat
original document: 0.14.6:docs/feature_advanced_keycodes.md
git diff 0.14.6 HEAD -- docs/feature_advanced_keycodes.md | cat
-->
以下のようにキーコードとモディファイアを組み合わせることができます。押すと、モディファイアのキーダウンイベントが送信され、次に `kc` のキーダウンイベントが送信されます。放すと、`kc` のキーアップイベントが送信され、次にモディファイアのキーアップイベントが送信されます。
| キー | エイリアス | 説明 |
| ---------- | ------------------------------- | ------------------------------------------------------------------- |
| `LCTL(kc)` | `C(kc)` | 左 Control を押しながら `kc` を押します。 |
| `LSFT(kc)` | `S(kc)` | 左 Shift を押しながら `kc` を押します。 |
| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | 左 Alt を押しながら `kc`を押します。 |
| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | 左 GUI を押しながら `kc` を押します。 |
| `RCTL(kc)` | | 右 Control を押しながら `kc` を押します。 |
| `RSFT(kc)` | | 右 Shift を押しながら `kc` を押します。 |
| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | 右 Alt を押しながら `kc` を押します。 |
| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | 右 GUI を押しながら `kc` を押します。 |
| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | 左 Shift と左 GUI を押しながら `kc` を押します。 |
| `LCA(kc)` | | 左 Control と左 Alt を押しながら `kc` を押します。 |
| `LSA(kc)` | | Shift と左 Alt を押しながら `kc` を押します。 |
| `RSA(kc)` | `SAGR(kc)` | 右 Shift と右 Alt (AltGr) を押しながら `kc` を押します。 |
| `RCS(kc)` | | Control と右 Shift を押しながら `kc` を押します。 |
| `LCAG(kc)` | | 左 Control、左 Alt、左 GUI を押しながら `kc` を押します。 |
| `MEH(kc)` | | 左 Control、左 Shift、左 Alt を押しながら `kc` を押します。 |
| `HYPR(kc)` | | Control、左 Shift、左 Alt、左 GUI を押しながら `kc` を押します。 |
| キー | エイリアス | 説明 |
| ---------- | ---------------------------------- | ------------------------------------------------------------------- |
| `LCTL(kc)` | `C(kc)` | 左 Control を押しながら `kc` を押します。 |
| `LSFT(kc)` | `S(kc)` | 左 Shift を押しながら `kc` を押します。 |
| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | 左 Alt を押しながら `kc`を押します。 |
| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | 左 GUI を押しながら `kc` を押します。 |
| `RCTL(kc)` | | 右 Control を押しながら `kc` を押します。 |
| `RSFT(kc)` | | 右 Shift を押しながら `kc` を押します。 |
| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | 右 Alt を押しながら `kc` を押します。 |
| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | 右 GUI を押しながら `kc` を押します。 |
| `LSG(kc)` | `SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)` | 左 Shift と左 GUI を押しながら `kc` を押します。 |
| `LAG(kc)` | | 左 Alt と左 GUI を押しながら `kc` を押します。 |
| `RSG(kc)` | | Shift と右 GUI を押しながら `kc` を押します。 |
| `RAG(kc)` | | 右 Alt と右 GUI を押しながら `kc` を押します。 |
| `LCA(kc)` | | Control と左 Alt を押しながら `kc` を押します。 |
| `LSA(kc)` | | 左 Shift と左 Alt を押しながら `kc` を押します。 |
| `RSA(kc)` | `SAGR(kc)` | Shift と右 Alt (AltGr) を押しながら `kc` を押します。 |
| `RCS(kc)` | | Control と右 Shift を押しながら `kc` を押します。 |
| `LCAG(kc)` | | 左 Control、左 Alt、左 GUI を押しながら `kc` を押します。 |
| `MEH(kc)` | | 左 Control、左 Shift、左 Alt を押しながら `kc` を押します。 |
| `HYPR(kc)` | | 左 Control、左 Shift、左 Alt、左 GUI を押しながら `kc` を押します。 |
また、それらを繋げることができます。例えば、`LCTL(LALT(KC_DEL))` または `C(A(KC_DEL))` は1回のキー押下で Control+Alt+Delete を送信するキーを作成します。
+25 -22
View File
@@ -1,8 +1,8 @@
# バックライト :id=backlighting
<!---
original document: 0.10.33:docs/feature_backlight.md
git diff 0.10.33 HEAD -- docs/feature_backlight.md | cat
original document: 0.14.14:docs/feature_backlight.md
git diff 0.14.14 HEAD -- docs/feature_backlight.md | cat
-->
多くのキーボードは、キースイッチを貫通して配置されたり、キースイッチの下に配置された個々の LED によって、バックライトキーをサポートします。この機能は通常スイッチごとに単一の色しか使用できないため、[RGB アンダーグロー](ja/feature_rgblight.md)および [RGB マトリックス](ja/feature_rgb_matrix.md)機能のどちらとも異なりますが、キーボードに複数の異なる単一色の LED を取り付けることは当然可能です。
@@ -67,14 +67,17 @@ BACKLIGHT_DRIVER = software
バックライトを設定するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
| --------------------- | ---------- | ------------------------------------------------------------------------------------------- |
| `BACKLIGHT_PIN` | *定義なし* | LED を制御するピン |
| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
| 定義 | デフォルト | 説明 |
| ----------------------------- | ------------------ | --------------------------------------------------------------------------------------------- |
| `BACKLIGHT_PIN` | *定義なし* | LED を制御するピン |
| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
| `BACKLIGHT_LIMIT_VAL` | `255` | バックライトの最大デューティサイクル -- `255` で最大輝度になり、それ未満では最大値が減少する |
| `BACKLIGHT_DEFAULT_LEVEL` | `BACKLIGHT_LEVELS` | EEPROM をクリアする時に使うデフォルトのバックライトレベル |
| `BACKLIGHT_DEFAULT_BREATHING` | *定義なし* | EEPROM をクリアする時に、バックライトのブリージングを有効にするかどうか |
独自のキーボードを設計しているわけではない限り、通常は `BACKLIGHT_PIN` または `BACKLIGHT_ON_STATE` を変更する必要はありません。
@@ -97,18 +100,18 @@ BACKLIGHT_DRIVER = pwm
AVR ボードでは、QMK はどのドライバを使うかを以下の表に従って自動的に決定します:
| バックライトピン | AT90USB64/128 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328/P |
| ---------------- | ------------- | ------------- | ------------- | --------- | ----------- |
| `B1` | | | | | Timer 1 |
| `B2` | | | | | Timer 1 |
| `B5` | Timer 1 | Timer 1 | | | |
| `B6` | Timer 1 | Timer 1 | | | |
| `B7` | Timer 1 | Timer 1 | Timer 1 | | |
| `C4` | Timer 3 | | | | |
| `C5` | Timer 3 | | Timer 1 | | |
| `C6` | Timer 3 | Timer 3 | Timer 1 | | |
| `D4` | | | | Timer 1 | |
| `D5` | | | | Timer 1 | |
| バックライトピン | AT90USB64/128 | AT90USB162 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328/P |
| ---------------- | ------------- | ---------- | ------------- | ------------- | --------- | ----------- |
| `B1` | | | | | | Timer 1 |
| `B2` | | | | | | Timer 1 |
| `B5` | Timer 1 | | Timer 1 | | | |
| `B6` | Timer 1 | | Timer 1 | | | |
| `B7` | Timer 1 | Timer 1 | Timer 1 | Timer 1 | | |
| `C4` | Timer 3 | | | | | |
| `C5` | Timer 3 | Timer 1 | | Timer 1 | | |
| `C6` | Timer 3 | Timer 1 | Timer 3 | Timer 1 | | |
| `D4` | | | | | Timer 1 | |
| `D5` | | | | | Timer 1 | |
他の全てのピンはタイマー支援ソフトウェア PWM を使います。
+1 -1
View File
@@ -16,7 +16,7 @@
一部のキーボードでは、ブートマジックはデフォルトで無効になっています。その場合、`rules.mk` 内で以下のように明示的に有効にする必要があります:
```make
BOOTMAGIC_ENABLE = full
BOOTMAGIC_ENABLE = yes
```
?> `full` の代わりに `yes` が使われていることがあるかもしれませんが、これは問題ありません。ただし、`yes` は非推奨で、理想的には `full` (あるいは`lite`) が使われるべきです。
-17
View File
@@ -88,15 +88,6 @@ voltage +----------------------
## QMK でサポートされるデバウンスアルゴリズム
QMK はデバウンス API を介して複数のデバウンスアルゴリズムをサポートします。
どのデバウンスメソッドが呼ばれるかのロジックは下記のとおりです。```rules.mk``` で設定された様々な定義をチェックします。
```
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
DEBOUNCE_TYPE?= sym_defer_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
```
### デバウンスの選択
@@ -135,11 +126,3 @@ DEBOUNCE_TYPE = <アルゴリズムの名前>
* デバウンスは、全てのマトリクススキャンの後で発生します。
* MATRIX_ROWS ではなく num_rows を使って、分割キーボードが正しくサポートされるようにします。
* アルゴリズムが他のキーボードにも適用できる可能性がある場合、```quantum/debounce``` に追加することを検討してください。
### 古い名前
次の既存のアルゴリズムの古い名前は引き続きサポートされますが、代わりに新しい名前を使うことを推奨します。
* sym_g - sym_defer_g の古い名前
* eager_pk - sym_eager_pk の古い名前
* sym_pk - sym_defer_pk の古い名前
* eager_pr - sym_eager_pr の古い名前
+12 -6
View File
@@ -14,6 +14,8 @@ DIP スイッチは、以下を `rules.mk` に追加することでサポート
```c
// Connects each switch in the dip switch to the GPIO pin of the MCU
#define DIP_SWITCH_PINS { B14, A15, A10, B9 }
// For split keyboards, you can separately define the right side pins
#define DIP_SWITCH_PINS_RIGHT { ... }
```
あるいは
@@ -28,8 +30,9 @@ DIP スイッチは、以下を `rules.mk` に追加することでサポート
コールバック関数を `<keyboard>.c` に記述することができます:
```c
void dip_switch_update_kb(uint8_t index, bool active) {
dip_switch_update_user(index, active);
bool dip_switch_update_kb(uint8_t index, bool active) {
if !(dip_switch_update_user(index, active)) { return false; }
return true;
}
```
@@ -37,7 +40,7 @@ void dip_switch_update_kb(uint8_t index, bool active) {
あるいは `keymap.c` に記述することもできます:
```c
void dip_switch_update_user(uint8_t index, bool active) {
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0:
if(active) { audio_on(); } else { audio_off(); }
@@ -62,6 +65,7 @@ void dip_switch_update_user(uint8_t index, bool active) {
}
break;
}
return true;
}
```
@@ -69,8 +73,9 @@ void dip_switch_update_user(uint8_t index, bool active) {
```c
void dip_switch_update_mask_kb(uint32_t state) {
dip_switch_update_mask_user(state);
bool dip_switch_update_mask_kb(uint32_t state) {
if (!dip_switch_update_mask_user(state)) { return false; }
return true;
}
```
@@ -78,7 +83,7 @@ void dip_switch_update_mask_kb(uint32_t state) {
あるいは `keymap.c` に記述することもできます:
```c
void dip_switch_update_mask_user(uint32_t state) {
bool dip_switch_update_mask_user(uint32_t state) {
if (state & (1UL<<0) && state & (1UL<<1)) {
layer_on(_ADJUST); // C on esc
} else {
@@ -94,6 +99,7 @@ void dip_switch_update_mask_user(uint32_t state) {
} else {
layer_off(_TEST_B);
}
return true;
}
```
+7 -3
View File
@@ -51,15 +51,18 @@ ENCODER_ENABLE = yes
コールバック関数を `<keyboard>.c` に記述することができます:
```c
void encoder_update_kb(uint8_t index, bool clockwise) {
encoder_update_user(index, clockwise);
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) {
return false;
}
}
```
あるいは `keymap.c` に記述することもできます:
```c
void encoder_update_user(uint8_t index, bool clockwise) {
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_PGDN);
@@ -73,6 +76,7 @@ void encoder_update_user(uint8_t index, bool clockwise) {
tap_code(KC_UP);
}
}
return false;
}
```
+15 -2
View File
@@ -1,8 +1,8 @@
# リーダーキー: 新しい種類のモディファイア
<!---
original document: 0.10.33:docs/feature_leader_key.md
git diff 0.10.33 HEAD -- docs/feature_leader_key.md | cat
original document: 0.13.24:docs/feature_leader_key.md
git diff 0.13.24 HEAD -- docs/feature_leader_key.md | cat
-->
もしあなたが Vim を使ったことがある場合、リーダーキーは何であるかを知っています。そうでなければ、素晴らしい概念を発見しようとしています。:) 例えば、Alt+Shift+W を押す(3つのキーを同時に押す)代わりに、キーの_シーケンス_を押すことができたらどうでしょう?つまり、特別なモディファイア (リーダーキー)を押して、続けて W と C を押すと (単純にキーを高速に繋げます)、何かが起こります。
@@ -77,6 +77,19 @@ SEQ_THREE_KEYS(KC_C, KC_C, KC_C) {
}
```
## リーダーキーの無限タイムアウト
リーダーキーが、シーケンスの残りのキーのような快適な場所にない場合があります。リーダーキーが右上の外側のキーの1つである場合、リーダーキーに届くように手の位置を変えなければならないことがあります。
これにより、シーケンスの大部分をすばやく入力できたとしても、シーケンス全体を時間通りに入力するのが難しい場合があります。例えば、シーケンスが `Leader + asd` の場合、手をホーム行に置けば `asd` を素早く打つのは非常に簡単です。しかし、リーダーキーに届くようにホーム行から手を移動し、戻った後、時間内にシーケンスを開始することはできません。
この状況が手に与えるストレスを取り除くために、リーダーキーだけに無限のタイムアウトを有効にすることができます。つまり、リーダーキーを押した後、シーケンスの残りを開始するまでの時間が無限になり、シーケンスの残りを快適に入力するための最適な位置に手を置くことができます。
この無限のタイムアウトはリーダーキーにのみ影響するため、前述の `Leader + asd` の例では、`Leader``a` の間に無限の時間があります。ただし、シーケンスを開始すると、(グローバルまたはキーごとに)設定したタイムアウトは正常に機能します。
このようにして、非常に短い `LEADER_TIMEOUT` を設定できますが、それでも手を置く時間は十分にあります。
これを有効にするには、以下を `config.h` に配置します:
```c
#define LEADER_NO_TIMEOUT
```
## 厳密なキー処理
デフォルトでは、リーダーキー機能は、リーダーシーケンスの確認時に [`モッドタップ`](ja/mod_tap.md) および [`レイヤータップ`](ja/feature_layers.md#switching-and-toggling-layers) 機能からのキーコードをフィルターします。つまり、`LT(3, KC_A)` を使っている場合、`LT(3, KC_A)` ではなくシーケンスの `KC_A` として取り出され、新しいユーザにとってより期待される動作を提供します。
+1 -1
View File
@@ -25,7 +25,7 @@ LED の状態を `uint8_t` として提供する2つの非推奨の関数があ
* `uint8_t led_set_kb(uint8_t usb_led)``_user(uint8_t usb_led)`
* `uint8_t host_keyboard_leds()`
## 設定オプション
## 設定オプション :id=configuration-options
インジケータを設定するには、`config.h` で以下の `#define` をします:
+2 -2
View File
@@ -52,7 +52,7 @@ I2C IS31FL3731 RGB コントローラを使ったアドレス指定可能な LED
`<keyboard>.c` に全ての LED を列挙する配列を定義します:
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
/* これらの位置については IS31 マニュアルを参照してください
* driver
* | LED address
@@ -61,7 +61,7 @@ I2C IS31FL3731 RGB コントローラを使ったアドレス指定可能な LED
....
}
ここで、`Cx_y` は[データシート](https://www.issi.com/WW/pdf/31FL3731.pdf)およびヘッダファイル `drivers/issi/is31fl3731-simple.h` で定義されるマトリックス内の LED の位置です。`driver``config.h` で定義したドライバのインデックス(`0``1``2``3`のいずれか)です。
ここで、`Cx_y` は[データシート](https://www.issi.com/WW/pdf/31FL3731.pdf)およびヘッダファイル `drivers/led/issi/is31fl3731-simple.h` で定義されるマトリックス内の LED の位置です。`driver``config.h` で定義したドライバのインデックス(`0``1``2``3`のいずれか)です。
## キーコード
+1 -1
View File
@@ -59,7 +59,7 @@
このことは、あなたは再びキーをタップするまでの時間として `TAPPING_TERM` の時間を持っていることを意味します。そのため、あなたは1つの `TAPPING_TERM` の時間内に全てのタップを行う必要はありません。これにより、キーの反応への影響を最小限に抑えながら、より長いタップ回数を可能にします。
次は `matrix_scan_tap_dance()` です。この関数はタップダンスキーのタイムアウトを制御します。
次は `tap_dance_task()` です。この関数はタップダンスキーのタイムアウトを制御します。
柔軟性のために、タップダンスは、キーコードの組み合わせにも、ユーザー関数にもなることができます。後者は、より高度なタップ回数の制御や、LED を点滅させたり、バックライトをいじったり、等々の制御を可能にします。これは、1つの共用体と、いくつかの賢いマクロによって成し遂げられています。
+1 -1
View File
@@ -29,7 +29,7 @@ Vagrant 以外に、適切なプロバイダがインストールされ、その
コマンドラインでプログラムしたい場合は、Vagranfile の ['modifyvm'] 行のコメントを解除して Linux への USB パススルーを有効にし、dfu-util/dfu-programmer のようなコマンドラインツールを使ってプログラムすることができます。あるいは Teensy CLI バージョンをインストールすることができます。
## Vagrantfile の概要
開発環境は QMK Docker イメージ、`qmkfm/base_container` を実行するように設定されています。これはシステム間の予測可能性が保証されるだけでなく、CI 環境もミラーされます。
開発環境は QMK Docker イメージ、`qmkfm/qmk_cli` を実行するように設定されています。これはシステム間の予測可能性が保証されるだけでなく、CI 環境もミラーされます。
## FAQ
+18 -16
View File
@@ -12,26 +12,28 @@
## AVR を使用したキーボードを QMK に追加する
QMK には AVR を使ったキーボードでの作業を簡略化するための機能が多数あります。大体のキーボードでは1行もコードを書く必要がありません。まずはじめに、`util/new_keyboard.sh` スクリプトを実行します。
QMK には AVR を使ったキーボードでの作業を簡略化するための機能が多数あります。大体のキーボードでは1行もコードを書く必要がありません。まずはじめに、`qmk new-keyboard` を実行します。
```
$ ./util/new_keyboard.sh
Generating a new QMK keyboard directory
$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory
Keyboard Name: mycoolkb
Keyboard Type [avr]:
Your Name [John Smith]:
Keyboard Name: mycoolkeeb
Keyboard Type:
1. avr
2. ps2avrgb
Please enter your choice: [1]
Your Name: [John Smith]
Ψ Copying base template files...
Ψ Copying avr template files...
Ψ Renaming keyboard.[ch] to mycoolkeeb.[ch]...
Ψ Replacing %YEAR% with 2021...
Ψ Replacing %KEYBOARD% with mycoolkeeb...
Ψ Replacing %YOUR_NAME% with John Smith...
Copying base template files... done
Copying avr template files... done
Renaming keyboard files... done
Replacing %KEYBOARD% with mycoolkb... done
Replacing %YOUR_NAME% with John Smith... done
Created a new keyboard called mycoolkb.
To start working on things, cd into keyboards/mycoolkb,
or open the directory in your favourite text editor.
Ψ Created a new keyboard called mycoolkeeb.
Ψ To start working on things, `cd` into keyboards/mycoolkeeb,
Ψ or open the directory in your preferred text editor.
```
これにより、新しいキーボードをサポートするために必要なすべてのファイルが作成され、デフォルト値で設定が入力されます。あとはあなたのキーボード用にカスタマイズするだけです。
+16 -6
View File
@@ -2,8 +2,8 @@
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.9.46:docs/isp_flashing_guide.md
git diff 0.9.46 HEAD -- docs/isp_flashing_guide.md | cat
original document: 0.13.29:docs/isp_flashing_guide.md
git diff 0.13.29 HEAD -- docs/isp_flashing_guide.md | cat
-->
ISP 書き込み(ICSP 書き込みと呼ぶ場合もあります)とは、マイクロコントローラーを直接プログラミングするプロセスです。
@@ -52,6 +52,7 @@ QMK の ISP 書き込みの主な用途は、AVRベースのコントローラ
* [SparkFun PocketAVR](https://www.sparkfun.com/products/9825) - (USB Tiny)
* [USBtinyISP AVR Programmer Kit](https://www.adafruit.com/product/46) - (USB Tiny)
* [USBasp](https://www.fischl.de/usbasp/) - (usbasp)
* [Teensy 2.0](https://www.pjrc.com/store/teensy.html) - (avrisp)
* [Pro Micro](https://www.sparkfun.com/products/12640) - (avrisp)
* [Bus Pirate](https://www.adafruit.com/product/237) - (buspirate)
@@ -77,8 +78,8 @@ Teensy と Pro Micro のコントローラを ISP プログラマとして使用
QMK ツールボックスは、このほとんど(すべて)に使用することができます。
ただし、Teensy 2.0 ボードを使っている場合は、[Teensy Loader](https:/www.pjrc.comteensyloader.html) を使えば、Teensy 2.0 ボードに書き込むことができます。
あるいは、`avrdude` (`qmk_install.sh` の一部としてインストールされています) や、[AVRDUDESS](https:/blog.zakkemble.netavrdudess-a-gui-for-avrdude)(Windows 用) を使って、Pro Micro に書き込んだり、ISP を書き込んだりすることができます。
ただし、Teensy 2.0 ボードを使っている場合は、[Teensy Loader](https://www.pjrc.com/teensy/loader.html) を使えば、Teensy 2.0 ボードに書き込むことができます。
あるいは、`avrdude` (`qmk_install.sh` の一部としてインストールされています) や、[AVRDUDESS](https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/) (Windows 用) を使って、Pro Micro に書き込んだり、ISP を書き込んだりすることができます。
## 配線
@@ -93,6 +94,15 @@ QMK ツールボックスは、このほとんど(すべて)に使用する
PocketAVR VCC <-> Keyboard VCC
PocketAVR GND <-> Keyboard GND
### USBasp
USBasp RST <-> Keyboard RESET
USBasp SCLK <-> Keyboard B1 (SCLK)
USBasp MOSI <-> Keyboard B2 (MOSI)
USBasp MISO <-> Keyboard B3 (MISO)
USBasp VCC <-> Keyboard VCC
USBasp GND <-> Keyboard GND
### Teensy 2.0
Teensy B0 <-> Keyboard RESET
@@ -180,7 +190,7 @@ QMK DFU ブートローダは `atmega32u4` コントローラ (AVR ベースの
### QMK Toolbox
1. 'AVRISP device connected' または `USB Tiny device connected` が黄色で表示されます。
1. `AVRISP device connected` または `USB Tiny device connected` が黄色で表示されます。
2. `Open` ダイアログで正しいブートローダー/プロダクションの .hex ファイルを選択します(パスにスペースを含めることはできません)
3. 書きこもうとしているキーボード(ISP プログラマではなく)のための正しい `Microcontroller` オプションが選択されていることを確認してください。
4. `Flash` を押します
@@ -277,7 +287,7 @@ High ヒューズは 0xD9 か 0x99 のどちらかになります。
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m
別のコントローラーを使用している場合や、別の設定を希望する場合は、この[AVR ヒューズ計算機](https://www.engbedded.com/fusecalc)を使用して、より適切な値を見つけることができます。
別のコントローラーを使用している場合や、別の設定を希望する場合は、この[AVR ヒューズ計算機](https://www.engbedded.com/fusecalc/)を使用して、より適切な値を見つけることができます。
## ヘルプ

Some files were not shown because too many files have changed in this diff Show More