Compare commits

...

1257 Commits

Author SHA1 Message Date
Gompa
0c8109a1ac fix typo in ps2 set_defaults (#16767) 2022-04-04 04:02:28 +10:00
Joel Challis
27ae37d626 Align action workflow filenames (#16776) 2022-04-03 13:18:28 +01:00
Joel Challis
61bd61347a Automatically approve workflow runs from first time contributors (#16775)
* Automatically approve workflow runs from first time contributors

* Automatically approve workflow runs from first time contributors
2022-04-02 22:28:10 +01:00
Joel Challis
4f30b7a2c9 Automatically approve workflow runs from first time contributors (#16774) 2022-04-02 22:09:16 +01:00
Ryan
1caccca1f6 usb-usb converter: fix layout macros (#16769) 2022-04-03 01:53:21 +11:00
Joel Challis
11db29bedb Lint keyboard/project name (#16766) 2022-04-01 10:25:43 +01:00
Ryan
64974a7f8f yapf: disable arithmetic predecence indication (#16749) 2022-03-30 21:54:13 +01:00
m40-dev
6cdf230a20 [Keyboard] handwired/m40/5x5_macropad (#16288)
* Adding the custom handwired 5x5 macropad.

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/rules.mk

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update readme.md

fixed the github link to my profile

* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.c

* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.h

* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.h

* Update keyboards/handwired/m40/5x5_macropad/config.h

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/config.h

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/keymaps/default/keymap.c

* Apply suggestions from code review

* added discord Id for maintainer contact

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/info.json
2022-03-29 12:18:39 -07:00
Moritz
9b24abf251 [Keyboard] Change linworks Dolice product ID to non-duplicate value (#16745) 2022-03-28 09:46:38 -07:00
Erovia
8c0198334c CLI: Lint non-data driven macros in info.json (#16739)
* CLI: Lint non-data driven macros in info.json

Macros in info.json should either have the "matrix" key with the matrix
data or should should be also present in <keyboard>.h

* Add verification of matrix data

* Use generic '<keyboard>.h' in output

* Add keyboard name to output

* Make C layout macro finding more robust

The old code missed C macros if they had whitespace between '#' and
'define' or had whitespace before '#'.
2022-03-27 21:28:36 +01:00
Shandon Anderson
5fae1ec9c3 [Keyboard] Add Mino Hotswap PCB (#16664)
Co-authored-by: Shandon Anderson <shandon@shandon.codes>
2022-03-26 19:02:59 -07:00
Lê Nguyễn Hoàng Nhân
f874984b96 Fix typos in matrix/noah readme (#16735)
Change "keybaord" to keyboard
2022-03-26 19:35:19 +00:00
Erovia
55e5daa868 Fix bug when 'info.json' lookup escapes keyboard dir (#16734) 2022-03-26 19:15:25 +00:00
Evelien Dekkers
084df6a288 [Keyboard] Add nt210 (#16461)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-25 18:06:03 -07:00
somepin
7e0dde1f00 [Keyboard] Add YDKB Grape PCB (#16661)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-25 17:45:35 -07:00
Anton
53a88af036 [Keymap] corne and planck keyboards keymaps (#15570)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-25 17:37:05 -07:00
Erovia
efc9c525b1 CLI: Add 'via2json' subcommand (#16468) 2022-03-24 21:13:40 +01:00
Carlo Sala
f7a5ec2483 update kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala keymap (#16725) 2022-03-24 16:42:48 +00:00
Nathan Johnson
980a1b0562 [Keymap] ergodox: updating osx_whiskey_tango_foxtrot_capslock to use process_record_user (#16715) 2022-03-23 22:24:02 -07:00
jack
e335d62eda [Keyboard] Add keyboard level encoder function for GMMK Pro (#16721) 2022-03-23 22:23:40 -07:00
kopibeng
55b3b2b848 [Keyboard] Add support for XT60 (#16708)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-23 11:42:54 -07:00
Drashna Jaelre
4a3b4104fe [Bug] Fix unused variable error when using ChibiOS Bitbang serial driver (#16709) 2022-03-23 09:38:51 -07:00
Minna Pallari
08aa54b66f [Keymap] Xiudi XD75 Finnish/Swedish keymap (#16311) 2022-03-23 09:35:14 -07:00
Dan Hertz
92d38c37ec [Keymap] Add dhertz keychron map v0 (#16571) 2022-03-23 09:34:42 -07:00
4pplet
74f4682309 [Keyboard] Waffling60 - readme update (#16707)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-03-23 09:34:07 -07:00
Dan Beste
a772a7f3a7 [Keymap] Input Club's Whitefox "True Fox" (#16711) 2022-03-23 09:33:30 -07:00
ChrisBeswick
28bd777f58 [Keyboard] Graystudio Apollo80 (#16469)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-22 23:01:55 -07:00
kb-elmo
c803c50dc0 [Keyboard] Add Axolstudio Foundation Gamma (#15948)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-22 22:06:26 -07:00
Luc
f610011aa3 [Keymap] personal keymap, ergodox_ez and atreus / dvorak_42_key (#16695) 2022-03-22 09:38:50 -07:00
Takeshi ISHII
7eb6f86bc0 [Keyboard] add oled_task_kb() into keyboards/helix/rev2/rev2.c (#16697) 2022-03-21 01:05:38 -07:00
Droxx
669ad3c805 Droxx keymap (#16607)
* add droxx kaymap

* add droxx keymap

* fixed config.h

* fixed rules.mk

* fixed rules.mk

* updated readme.md

* Update config.h

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update config.h

* Update readme.md

* Update keymap.c
2022-03-20 17:24:09 +00:00
Alabahuy
1bc8793f83 Add Rart75 hotswap and support via (#16619)
* Add Keyboard Rart75 Hotswap version

* Update readme

* Update config and readme

* Update info.json

* update readme and keymaps
2022-03-20 17:05:56 +00:00
Joshua Barber
6125f7bf4d Add MutePad keyboard (Handwired) (#16590)
* Add MutePad keyboard

* Update info.json and readme

* Move mutepad to handwired folder

* Address PR comments
2022-03-20 17:02:46 +00:00
Ryan
2f095b8925 qmk.path.FileType: fix argument handling (#16693)
* qmk.path.FileType: pass in mode as first argument

* Better solution

* Grammar...
2022-03-19 20:58:30 +00:00
Joel Challis
047ef3cd12 VUSB - Use correct endpoint poll for VIA (#16691) 2022-03-19 17:40:47 +00:00
leviport
3502bbbd16 Fix typo in docs/ref_functions.md (#16690) 2022-03-19 16:37:35 +00:00
Ryan
e354cbe782 device_ver -> device_version for some more boards (#16685) 2022-03-19 11:52:40 +00:00
stanrc85
06b6729b16 [Keymap] Update some code and keyboard rules (#16680) 2022-03-18 23:52:33 -07:00
Drashna Jaelre
61c644f6d0 [Keyboard] Update Tractyl Manuform config files (#16684) 2022-03-18 11:49:22 -07:00
Florian
773242503c annepro2: Add more LED functionalities to default-layer-indicators (#16676) 2022-03-18 17:24:43 +00:00
Joel Challis
ed773ab73c Relocate CLI git interactions (#16682) 2022-03-18 16:02:24 +00:00
Joel Challis
e5823b5650 [CLI] Add common util for dumping generated content (#16674) 2022-03-18 01:09:29 +00:00
Joel Challis
417f089115 Print out generated files during build (#16672) 2022-03-17 10:45:06 +11:00
Jay Greco
193dd01f4e [Keyboard] Add nullbits TIDBIT (#15182) 2022-03-16 08:34:16 -07:00
Ryan
d5d2a01db2 gboards/butterstick: move steno rules config to keymap level (#16666) 2022-03-16 04:08:52 +00:00
Ryan
8c5779f768 Fix m3n3van and minim keyboard names in keymap JSON (#16665) 2022-03-16 03:57:47 +00:00
Yakbats
a867cfc26d Update the AL1 Vender ID (#16660)
* Add via to AL1

* Updated number of rows and columns, and applied suggestions from code review

* Update Vender ID

Change the Vender ID for Triangle Lab to comply with the via PR checklist.
2022-03-16 03:14:31 +00:00
AnthonyNguyen168
fded67f1a9 [MB-65S] Change layout to follow change request from OEM (#16663) 2022-03-16 03:13:14 +00:00
an_achronism
f6f4d85aa5 yugo_m enhancement: include all available key positions (#16216)
* yugo_m enhancement to include all available key positions in matrix
2022-03-15 17:06:27 -07:00
Joel Challis
8bffc61959 Ensure dependent CI workflows run (#16662) 2022-03-15 23:27:55 +00:00
Moritz
77aafd8056 [Keyboard] Add Dolice keyboard (#16186) 2022-03-15 15:58:16 -07:00
Tom Konidas
a808c29726 [Keymap] Planck Keymap: tomkonidas (#15869) 2022-03-15 15:48:13 -07:00
Ryan
764dc18a81 Remove NO_ACTION_MACRO and NO_ACTION_FUNCTION from keyboard config.h (#16655) 2022-03-15 13:56:58 +00:00
Joel Challis
46e85ded47 Add merge workflow for XAP branch (#16652)
* Add merge workflow for XAP branch

* uncomment
2022-03-15 12:49:23 +00:00
jack
e9bf95e0f2 [Keyboard] Fix westm/westm68 compliation errors (#16657) 2022-03-15 02:35:17 -07:00
jpuerto96
e94c2df3f3 [Keyboard] Io mini1800 (#16115)
* First commit

* first commit

* 2x3u layout functional

* 625u layout

* rotary encoder

* Modifications to keymaps

* Remove ingrained from io_mini branch

* Update readme

* Update info.json

* change hardware availability

* Change rules.mk wording to match other PR

* Update keyboards/io_mini1800/rules.mk

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

* Update keyboards/io_mini1800/keymaps/2x3u/keymap.c

* Update keyboards/io_mini1800/io_mini1800.c

* Update keyboards/io_mini1800/keymaps/2x3u/readme.md

* Update keyboards/io_mini1800/readme.md
2022-03-15 01:35:11 -07:00
Albert Y
9aaf4a5a9b Add split keyboard example for Bootmagic Lite (#16349)
* Add split keyboard example for bootmagic lite

* Add handedness link

* Edit sentence structure

* Apply suggested language correction
2022-03-15 01:31:17 -07:00
PaperCraneKeyboards
92a9e7c50b [Keyboard] Adding Gerald65 (#15872)
* Gerald65 new keyboard files

* removing initial population of pck

* Initial Gerald65 Keyboard files

* Changed diode direction

* added fn layer, added picture to readme

* directed mo keycode to fn layer

* Changes to vendor id and bootloader instructions

* Changed to direct image reference

* Update keyboards/papercranekeyboards/gerald65/readme.md

* Remove no longer used features
2022-03-15 01:29:35 -07:00
thompson-ele
87bb1a3890 [Keyboard] Add Bacca70 keyboard (#16626)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-15 00:28:21 -07:00
jack
1ef4e305e3 Fix evancookaudio/sleepingdinosaur (#16654) 2022-03-15 15:02:49 +11:00
jack
36ddb567cc [Keyboard] Fix mechlovin/kay65 (#16653) 2022-03-14 21:00:57 -07:00
Pear
5e5047f071 [Keyboard westm68 rev1 and fine tune westm boards (#16528)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-14 20:55:33 -07:00
evanmcook
04826d1aa1 [Keyboard] evancookaudio sleepingdinosaur v2 (#16625) 2022-03-14 18:56:27 -07:00
mechlovin
7fde309799 [Keyboard] Add Kay65 PCB by Team Mechlovin' (#15565)
* add kay65 PCB

* update

* update

* Update readme.md

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keyboards/mechlovin/olly/jf/rules.mk

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keymap.c

* update

* Update keyboards/mechlovin/kay65/rev1/rev1.h

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keymap.c

* Update readme.md

* Update keyboards/mechlovin/olly/jf/readme.md

* Update keyboards/mechlovin/kay65/rev1/config.h
2022-03-14 17:23:57 -07:00
ethsol
a939adb55c Sentence correction (#16650) 2022-03-14 22:20:50 +00:00
Yakbats
6c11579876 [Keyboard] Add via keymap to AL1 (#16499) 2022-03-14 15:05:39 -07:00
Danny
a12d58c6c9 [Keyboard] Add BAMFK-1 (#16409)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-14 11:08:10 -07:00
Ryan
6a6a333c75 Disable RGB matrix pixel animations for some boards (#16643)
* idobao/id87/v2: disable RGB matrix pixel animations

* Same for two more boards
2022-03-14 13:58:05 +00:00
Ryan
5fb269b2b4 keebio/iris: Add ifdefs to encoder callbacks (#16642) 2022-03-14 13:57:44 +00:00
Joel Challis
c17323b0f5 bolsa/damapad - Fix missing layout macro (#16639) 2022-03-13 18:56:52 -07:00
jack
8d90cf36f1 Fix 40percentclub USB descriptors (#16638) 2022-03-14 12:04:11 +11:00
Ryan
dde4120a1e ISP flashing guide: add instructions for flashing STM32duino bootloader (#16568) 2022-03-13 23:55:47 +00:00
Ryan
c0f4179117 Move keyboard USB IDs and strings to data driven: 0-9 (#16481) 2022-03-13 23:54:49 +00:00
Ryan
df3770551a USB-USB converter cleanup (#16618) 2022-03-13 23:46:13 +00:00
Spencer Peterson
8fe3864fe7 [Keyboard] Add "Uno" rev2 (#14071)
* [Keyboard] Add "Uno" rev2

Adds support for the second revision of Uno, courtesy of @Snipeye.

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Update keyboards/uno/uno.h

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Align rules.mk comments

* Update keyboards/uno/info.json

* Update keyboards/uno/rev1/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev1/config.h
2022-03-13 14:49:47 -07:00
jels
109c60feeb [Keyboard] Add support for Jels60 (#16605)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-13 10:30:55 -07:00
Takeshi ISHII
b906af0073 helix:edvorakjp keymap change to use split_common (#16532) 2022-03-13 13:56:56 +00:00
jpe230
1f63dbfb8e [Keymap] Update personal crkbd keymap (#16624) 2022-03-13 03:09:36 -07:00
jack
08794fef4e [Keyboard] add missing endif in glitch keyboard (#16629) 2022-03-13 03:08:33 -07:00
Matthew Dias
dccb5711c7 [Keyboard] Add damapad (#16443)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-12 23:37:22 -08:00
Matthew Dias
20424fd37f [Keyboard] Add Glitch (#16444)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-12 23:36:12 -08:00
Thomas Kriechbaumer
86b123141b docs: fix code sample (#16623) 2022-03-12 12:42:25 +00:00
James Young
3f79708095 Acheron Elongate Delta: add info.json (#16615) 2022-03-11 13:26:15 +00:00
James Young
74b24e410b DZ64RGB: add info.json (#16616) 2022-03-11 13:25:31 +00:00
mechlovin
003231aaf2 [Keyboard] Add Mechlovin Infinity87.5 PCB (#15163)
* add infinity87.5

* Update readme.md

* Update keyboards/mechlovin/infinity875/config.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/config.h

* Enable RGB matrix effect

* update keymap default

* undef RGB matrix effect

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/readme.md

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/info.json
2022-03-10 21:02:40 -08:00
Rocco Meli
ee71362f99 Personal user space and CRKBD R2G keymap (#15888)
* r2g folder groundwork

* Default mb keymap featuring mb logos

* Migrate Oled to keyboard folder

* Move rules configs to support config better

* update readmes

* Liscnece update

* Update config and fix issues caused by redef errs

* funciton name adjusts, define specific rgb modes

* move default oled font to postconfig

* update oled in line with develop merge

* fix return value

* Add some default rgb matrix defines

* del ugfx

* remove #include <stdio.h>

* create personal keymap for r2g

* reduce firmware size

* change keymap to follow physical layout

* remove RGBlight config lines to make both sides work (@Dasky on MechboardsUK Discord)

* strip down configuration, similar to crkbd/r2g:mb_via

* remove wrong oled code overwriting the r2g one

* broken code with RGB matrix (briks right side)

* remove high max brightness limit

* caps lock tap dance and RGB indicator for active caps lock

* fix caps lock led on right side

* add test macro

* remove latex macro which is too slow

* move caps lock tap dance to RALT and add space cadet shift

* switch CTL with ALT in first layer

* add tap dance for ESC/DEL

* space cadet tap dance with caps lock; shift works by needs a short pause

* add space cadet tap dance with caps lock on the right; shift works by needs a short pause and does not hold

* make more keys transparent

* enable auto shift and use logo on both oleds

* add user oled logo, slows down linking considerably

* oled name

* add arrow keys in usual configuration and add linear configuration to symbol layer

* add unicoede support

* add accents

* update to latest version

* add colemak dh layer

* report auto shift timeout

* define layer name shorcuts correctly

* disable VIA to enable more layers

* enable NKRO

* move some rules and unicode to user space

* move oled and tap dances to user space

* move tap dances fully out of keymap

* expand unicode map

* fix unicode code

* revert changes to r2g, make it equal to merged code

* revert changes to r2g, make it equal to merged code

* clang-format userspace

* clang-format config file

* Update keyboards/crkbd/keymaps/rmeli/keymap.c

* replace define with enum

* add licenses
2022-03-10 15:27:37 -08:00
Erovia
b75f6691a1 CLI: Fix 'cd' subcommand on Windows (#16610)
The 'cd' subcommand was failing as the current shell's Windows path was
mangled while milc processed it.
Using 'subprocess' directly avoids this issue and an extra layer of
subshell.
2022-03-10 21:33:41 +00:00
WJH
6c40b6856b [Docs] Include ASCII diagram to explain tap-hold modes (#15873)
* [Docs] Include ASCII diagram to explain tap-hold modes

* [Docs]: add examples for Default mode for Tap Hold

* [Docs] fix some wrong explanation in tap_hold.md
2022-03-10 12:48:33 -08:00
Christian Hofstede
b33fdc299c add chofstede keymap for gmmk/pro/iso (#16045)
Add new keymap for GMMK with some additional mappings and led indicator for caps lock

* add chofstede keymap

* fix formatting

* fix formatting

* add readme

* Update keyboards/gmmk/pro/iso/keymaps/chofstede/keymap.c
2022-03-10 12:41:30 -08:00
Liashenko Volodymyr
fc7a41fdce [Keyboard] lily58/glow_enc (#16101)
Add rgb-light and encoder for lily58 mod

* add support for lily58 encoders (one per size) and rgb-light.

The pcb and details here https://github.com/orvisevans/Lily58-Glow-Enc

* add support for lily58 encoders (one per size) and rgb-light.

The pcb and details here https://github.com/orvisevans/Lily58-Glow-Enc

* Update keyboards/lily58/glowEnc/config.h

* add GPL License to growEnc.h

* rename folder according to requirement to lower case
2022-03-10 12:21:55 -08:00
Era James
98da119293 era1112 keymap for preonic (#16064)
Added the keymap I have been using as a daily driver for the last month.

* good firmware 26 jan, best clicky mode stability so far

* modified to reflect master branch coding style

* further modified to reflect master branch coding style

* improving clicky stability, tuned down clicky delay duration

* changed name of keymap folder to use lowercase letters
2022-03-10 12:07:37 -08:00
kopibeng
61a8a60dfb [Keyboard] Add MNK65 (#16400)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-10 11:10:34 -08:00
makenova
265b96a12c [Keyboard] Add omega4 (#16464) 2022-03-10 11:10:05 -08:00
Ryan
bd70f5261c Remove matrix_key_count() (#16603)
* Remove `matrix_key_count()`

* Remove `matrix_bitpop()`
2022-03-10 12:18:07 +00:00
Hao Xiang Liew
dc8db6551d [KEYBOARD] keyboardio/atreus: VIA support (#16604) 2022-03-09 23:35:54 -08:00
Takeshi Nishio
9d0153dc70 [keyboard]Add v1 to jones keyboard (#14405)
* Change for latest information.

* Update from v03_1 to v1.

* Add v1 files.

* Remove finished todo comment.

* Fix COLUMN number, from "a" to "9".

* Formatting

* Update keyboards/jones/v1/rules.mk

* Add license header.

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r710752035

* Implement better way to handle keycode for encoder.

Use "action_exec" instead of "tap_code16"
https://github.com/qmk/qmk_firmware/pull/14405#discussion_r710752924

* Move External EEPROM config  to keyboard level

* Move the lest of DYNAMIC_KEYMAP config  to keyboard level

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r711668094

* Move the rest of DYNAMIC_KEYMAP config  to keyboard level

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r711668094

* Update keyboards/jones/v1/rules.mk

* Update keyboards/jones/v1/rules.mk

* Update keyboards/jones/v1/rules.mk
2022-03-09 20:14:53 -08:00
maherma-adg
8bcb77cb9a Personalizacion del teclado de AdG (#15738)
* Personalizacion del teclado de AdG

Update layout description

fix symbol layer

* fix doc Colemak

* explicitly define enabled animations

* Change keymap folder name
2022-03-09 19:56:42 -08:00
jack
708b3f9192 [Keyboard] Size reduction for kbdfans/kbd67/mkiirgb_iso (#16601) 2022-03-09 19:46:30 -08:00
Hansol Kim
caeb213400 Add macOS-friendly keymap for GMMK Pro (ANSI) (#14333)
* Add macOS keymap for GMMK Pro (ANSI)

* Change macOS keymap directory name to lowercase

* Add toggleable layer with alternative keymap for function row

* Update readme
2022-03-09 14:04:41 -08:00
Tony Grosinger
db16271a72 Add Gergoplex keymap for tgrosinger (#15148)
* Add Gergoplex keymap for tgrosinger

* Add improved shortcuts for PopOS

* Add license
2022-03-09 13:47:57 -08:00
jpe230
dc67fd9b87 Various improvements for the AnnePro2 (#16579) 2022-03-09 16:49:29 +11:00
jpe230
6ab5a7d048 [Keymap] Personal keymap for crkbd (#16546) 2022-03-08 17:35:33 -08:00
Salicylic-acid3
c5c5d37e08 [Keymap] Added RGB_Matrix effect mode for naked48/j73gl (#16578) 2022-03-08 17:34:37 -08:00
Joel Challis
ed169a6b30 Correct order of takashicompany/dogtag info.json (#16591) 2022-03-09 01:24:59 +00:00
jack
5244b13173 Fix yandrstudio/zhou65 (#16589)
* initial cleanup and hotfix for rgb....

* remove /f401
2022-03-09 00:37:40 +00:00
Danny
022e1fdac8 Add Big Switch Seat (#16524)
* Add Big Switch Seat

* Update keyboards/keebio/bigswitchseat/rules.mk

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

* Update keyboards/keebio/bigswitchseat/rules.mk

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 22:08:02 +00:00
Ryan
3347b63d83 handwired/misterdeck refactor (#16572)
* handwired/misterdeck refactor

* Forgot to remove this
2022-03-08 22:07:02 +00:00
Jason Barnachea
d38696a493 [Keyboard] Add Rama Works M4-A (#16570)
* Initial commit

Add Rama Works M4-A keyboard.

* Update default keymap.c

* Update keyboards/machine_industries/m4_a/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 21:24:06 +00:00
Ryan
b593cfccbd qmk info: Nicer rendering of big-ass enter (#16541)
* `qmk info`: Nicer rendering of big-ass enter

* Formatting...
2022-03-08 20:45:47 +00:00
drewpyun
65eb0f939f [keymap] Add via support for Iskar (#16575)
* iskar initial commit

* testing

* added info.json to iskar

* Updated read.me

* updated info.json removed unnessary keymap folders, fixed rules.mk, added second layer to default layout, added vendor/product id, tested and compiled

* Update readme.md

* Update readme.md

* updated info.json, formatted files according to PR checklist

* Update keyboards/drewkeys/iskar/rules.mk

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

* Update keyboards/drewkeys/iskar/readme.md

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

* added keymaps onto iskar.h that was referenced in info.json

* changed filename to lowercase to match guidelines

* initial commit of VIA files

* edited via keymap

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 18:56:48 +00:00
JX
40d6766576 [Keyboard] Add Y&R Studio zhou65 keyboard (#14192)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 09:03:05 -08:00
Callum Hart
d92994be71 [Keyboard] Add Novus 60% keyboard (#16473)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 08:47:57 -08:00
jack
fe8b7619d3 [Keyboard] Fix late9/rev1 (#16576) 2022-03-07 21:48:56 -08:00
Ryan
89a515913f Oddball: set default pointing device driver (#16574) 2022-03-08 16:30:37 +11:00
drewpyun
403536986d [Keyboard] Add Iskar (#16562)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 20:23:53 -08:00
Matthew Dias
4d2ae22690 [Keyboard] Add mini winni (#15341)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 20:23:06 -08:00
Ryan Baker
996880a1da [Keyboard] Add rb69 (#16526) 2022-03-07 20:19:45 -08:00
yiancar
4493f31f80 Add HS version of Nebula65b due to different number of per-key-RGB (#16514)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-03-07 20:18:41 -08:00
ZiTe
0880850b15 [Bug] Rename has_mouse_report_changed parameters (#16417)
Fixes compilation issues when bluetooth is enabled, due to issues 
with cpp used by bluetooth code. 

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 20:16:35 -08:00
Albert Y
8f70adc0b6 [Keyboard] Update encoder code for macro3 (#16005) 2022-03-07 20:09:54 -08:00
rookiebwoy
87c2f97def [Keyboard] Add LATE-9 keyboard (#13966) 2022-03-07 19:59:50 -08:00
peepeetee
eb35f58a6e [Keyboard] Idobao ID87 v2 (#15875)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 19:45:54 -08:00
Sergey Vlasov
249bc3a5c5 [Keyboard] Add Winry315 keyboard (#15894) 2022-03-07 19:45:30 -08:00
Beanaccle
86966fce69 [Keyboard] Add KB58 (#15896)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 19:40:46 -08:00
TerryMathews
ec3df85f08 [Keyboard] TKC Portico68 v2 (#15916)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:39:33 -08:00
Uthol
b2fdb072e5 [Keyboard] Uthol (#16393)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:01:47 -08:00
Matthew Dias
869ede8e4a [Keyboard] Add parallel 65 (#16445)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:00:35 -08:00
peepeetee
8014fb14b6 Fix in-page links in reference_info_json.md (#16487) 2022-03-07 18:50:03 -08:00
Nabos
8e888794fa [Keymap] Add nabos keymap to dactyl_manuform (5x6) (#16547)
Co-authored-by: Nicolas Ballet <balletn@igbmc.fr>
2022-03-07 18:46:54 -08:00
Salicylic-acid3
c84d361e95 [Keyboard] Change maximum LED brightness for naked48 (#16564) 2022-03-07 18:45:28 -08:00
Umberto Baldi
f0d27e22aa [Keyboard] Change vendor ID for sick68 keyboard (#16563) 2022-03-07 18:44:49 -08:00
Steven Karrmann
8bcac1c8f7 [Keyboard] Add Morizon (#16549)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 18:39:58 -08:00
yiancar
6928bce461 [Keyboard] Add Cassini keyboard (#16522)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-03-07 18:28:26 -08:00
FearlessSpiff
5995432202 [Keymap] add mouse controls to Mechwilds Mercutio FearlessSpiff (#16566) 2022-03-07 18:17:30 -08:00
bwisn
893d86cb89 Add Anne Pro 2 keyboard (#14385)
* [keyboard] Initial support for Anne Pro 2

* [keyboard][AnnePro2] Keymap:update to a reasonable keymap with caps+hjkl => arrow

* :(

* changed to use HSI

* support for annepro2 c18

* keyboard/annepro2: Very stupid matrix scan bug fix.

* typo

* swap COL14/13

* keyboard/annepro2: startup secondary LED MCU

* keyboard/annepro2: typo fix

* Add IO Values

* Disable Combo feature

* Update default keymap to Anne Pro 2 Official Keymap

* keyboard/annepro2: keymap layer name changes

* keyboard/annepro2 BLE Support

* Fix keymap comment

FN1 ESC was listed as ~ instead of `

* keyboard/annepro2: Bluetooth path

* Keyboard annepro2 bidir led comms (#5)

* Added bidirectional shine comms and moved led functionality to new file

* Added bidirectional shine comms and moved led functionality to new file

* Restore original functionality to existing keymaps using new shine commands

* Fix dangling bracketless if statements

* PR cleanup

* add custom keycodes to switch led profiles

* Optimize code

* switch to prev profile before turning leds off

* Add persistent led support with eeprom (#9)

* adding HT32 support to chibios SPI master driver

* add support for W25X20CL SPI eeprom

* add makefile flag for eeprom feature

* add spi support to keyboard startup and config

* example keymap using eeprom profile loading

* Cleanup to fix C15 eeprom/spi build errors (#11)

* Cleanup to fix C15 eeprom/spi build errors

* add newline at eof

* LED Masking support for Shine

Introduce companion update to ledSetMask and ledClearMask.
In keymap `codetector` there is example of how to map caps_lock
to the caps_lock key light on the keyboard.

* [AnnePro2]: update bluetooth connection

* Merge the custom keys enums on annepro2.h (#13)

* Keyboard annepro2 ble caps lock (#12)

* Move matrix_scan_kb out of board.c to annepro2.c

* add buffer clear after init and caplock polling

* Add support for LED intensity (#15)

* Improve logic for switching off and on of LEDs (#16)

* Implement animation speed (#17)

* Include logic to send solid colors as foreground to shine and add sample profiles (#14)

Include the logic to send a solid color from qmk to shine. That solid color will act as a foreground (will override the current profile) until reset (witch will reactivate the current profile).
This functionality depends on changes made for shine as well.

Include 3 new profiles:

    default-full-caps -> same as default, but with the logic of using the red foreground color on caps lock.
    default-layer-indicators -> same as default, but with the logic of red foreground on caps lock, green foreground on FN1 and blue foreground on FN2.
    thomazmoura -> my own profile as a sample of an over-engineered advanced case scenario.

* Implement reactive lighting effects (#18)

* Added multiarrow keymap (#19)

* Add LED documentation (#26)

* add LED documentation

* add LED documentation to other default profiles

* Implement QMK's IAP default keybind (#29)

* Add keymap for going into IAP

* switch to default QMK keybind for IAP mode

* implement bluetooth IAP mode

* Make default config more like Obins stock default (#30)

* Add new message type for resetting foreground color (#31)

* annepro2(bluetooth): add media keys support (#41)

* Asynchronous, robust serial protocol. (#39)

* bla personal ap2-c18 keymap.

* Bidirectional, asynchronous message-based communication with Shine.

- Requires a matching Shine version.
- Protocol is resiliant to loosing bytes during communication, chips won't lock
  waiting for bytes that aren't coming.
- Chips resynchronize in event of loosing a byte using a AA0D header.

Regressions:
- Key masking/locking doesn't work right now. (did it work before?)
- Not all user keymaps build against it.

* Clang-format + code to ease reducing speed of LED UART.

- Did clang-format --style=file -i on multiple files according to
  coding_conventions_c.md

- Added separate serial speed for IAP boot and Led communication, it's possible
  that reducing this to 9600 helped someone with faulty HW. With this code they
  can do it with simple replacing of a value.

* Main chip can set/clear foreground using a mask mechanism.

- Some preparations for selective colouring.

* Selective mask works - tested on capslock.

- Migrated personal keymaps to new status API.

* Clear the foreground colors to show profile when it's modified.

- Show example of achieving selective caps-lock painting + foreground painting
  for layers.
- annepro2LedMaskSetRow is implemented, but still requires testing.

* Implement the QMK side of led blinking to indicate the command was received.

- This stupidly blinks the key when user presses one of the bluetooth commands
to let the user know that the command was received and forwarded to the BT chip.

- TODO: Row/col key positions are hardcoded and not taken from the keymap.

* Reduce memory footprint.

Applying code review suggestions. Moved msgId to globals - preparing for
transmission without copying payload when no retries are necessary.

Added empty readme.md files - required by QMK lint.

Co-authored-by: Tomasz bla Fortuna <bla@thera.be>

* Let the LED chip settle a bit before waking it from the bootloader. (#42)

At least for one person that helps to reliably get the LEDs working without
disconnecting/reconnecting the power to the board multiple times.

Co-authored-by: Tomasz bla Fortuna <bla@thera.be>

* annepro2: rename KEYMAP to LAYOUT, as required by new version of QMK

* annepro2: update ChibiOS configuration files

* annepro2: fix undefined reference to dprint and timer_read32

* annepro2: update ChibiOS MCU name

* update spi driver, fix bad merging with master

* annepro2: add readme and info.json

* annepro2: make code compatible with QMK coding conventions

* tmk_core: temporary fix to allow HT32 based keyboards to work without patched ChibiOS-contrib (AnnePro2)

* AnnePro2: removed core changes

* AnnePro2: Leave only default keymaps

Missing keymaps will be restored in another PR

* annepro2: add licence information

* annepro2: satisfy qmk lint

* annepro2: fix drashna's suggestions

* annepro2: fix matrix

* annepro2: apply code review suggestions

* annepro2: apply remaining code review suggestions

* annepro2: update info.json

* annepro2: remove include

* annepro2: rename keymap to layout

* annepro2: fix typing

* annepro2: apply suggestions from tzarc's code review

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

* annepro2: more fixes

* annepro2: apply suggestions from code review

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

* annepro2: rename file

* more fixes

* Apply suggestions from @tzarc code review

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

* Update keyboards/annepro2/protocol.h

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

* Update keyboards/annepro2/chconf.h

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

* apply CR suggestions

* upgrade readme

* IAP

* update IAP comments, defines

* led fix

* init fix

* annepro2: GPIO cleanup

* annepro2: ioline

* change waiting time

* Start develop for 2022q2

* [Core] Squeeze AVR some more with `-mrelax` and `-mcall-prologues` (#16269)

* Rework generate-api CLI command to use .build directory (#16441)

* Remove `send_unicode_hex_string()` (#16518)

* Change data driven "str" type to represent a quoted string literal (#16516)

* Change data driven "str" type to represent a quoted string literal

* Update docs

* Map data driven `DESCRIPTION` as string literal (#16523)

* update bootloader

* Revert "Merge pull request #2 from qmk/develop"

This reverts commit 9c76065188, reversing
changes made to 240745dc05.

* Revert "update bootloader"

This reverts commit 240745dc05.

* fix rules.mk

* change PROGRAM_CMD

Co-authored-by: codetector <codetector@codetector.cn>
Co-authored-by: Fagl4 <18francisco18@gmail.com>
Co-authored-by: Jakob Gillich <jakob@gillich.me>
Co-authored-by: tech2077 <tech2077@gmail.com>
Co-authored-by: jcdeA <31413538+JcdeA@users.noreply.github.com>
Co-authored-by: Thomaz Moura <5599621+thomazmoura@users.noreply.github.com>
Co-authored-by: Darkhan <darkhanu@gmail.com>
Co-authored-by: Paco <70448173+packorf@users.noreply.github.com>
Co-authored-by: jmarmstrong1207 <32995055+jmarmstrong1207@users.noreply.github.com>
Co-authored-by: 1Conan <7620342+1Conan@users.noreply.github.com>
Co-authored-by: Tomasz bla Fortuna <blagh@thera.be>
Co-authored-by: Tomasz bla Fortuna <bla@thera.be>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 12:12:53 +11:00
Matthew Bautista
2ff646c642 [Keyboard] LFK78 VIA support and Update (#16502) 2022-03-07 09:05:41 -08:00
jack
d953aa730e new lines at eof's (#16558) 2022-03-07 11:23:15 +00:00
Will McGloughlin
4b4f1c6edb [Keymap] Add encoder showcase keymap (#16544) 2022-03-06 23:16:50 -08:00
takashicompany
41fb9120d0 [Keyboard] Update DogTag Macro Pad (#16446)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-06 23:02:52 -08:00
peepeetee
6e61126e08 [Keyboard] BM68HSRGB/rev2 (#16454)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 23:02:31 -08:00
jels
9dea8a7d86 [Keyboard] Update Jels88 (#16486) 2022-03-06 22:59:30 -08:00
Koobaczech
b26217414c [Keyboard] Delete duplicate pandora directory (#16496) 2022-03-06 22:58:38 -08:00
Koobaczech
2d8266bd7b [Keyboard] Tidy Up pearlboards (#16497) 2022-03-06 22:58:06 -08:00
fOmey
bbd47fcaa2 [Keyboard] Atlantis ak81_ve encoder behaviour enhancement & fixes (#16503) 2022-03-06 22:55:56 -08:00
xiao
1a1b22ef07 [Keyboard] Sick68 VIA keymap (#16508)
Co-authored-by: xia0 <xiao@morgan.net.au>
2022-03-06 22:52:49 -08:00
owlab-git
0978dca728 [Keyboard] add qk65 files by qwertykeys studio (#16491) 2022-03-06 22:41:16 -08:00
Drashna Jaelre
ff6c70415c [Keymap] Drashna Mouse keys and oled updates (#16556) 2022-03-06 22:12:17 -08:00
QMK Bot
d8971d707e Format code according to conventions (#16554) 2022-03-06 20:55:08 -08:00
kopibeng
0e08fad5c5 [Keyboard] Add support for Typ65+ (#16399)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-06 19:36:22 -08:00
Felix Jen
dcfa4712fb [Keyboard] Add Kyuu Hotswap (#16360)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-06 19:30:13 -08:00
Takuya Urakawa
5de86a05c3 [Keyboard] Add Lain keyboard (#16345)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 19:27:41 -08:00
Andrew Garver
de10757f05 [Keyboard] fourier via keymap (#16335) 2022-03-06 19:27:08 -08:00
npspears
b77d51f41a [Keyboard] add support for Quark_Plus (#16324)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 19:26:23 -08:00
Takeshi ISHII
9d6cea070e [Keymap] Change helix:five_rows_jis keymap to use split_common (#16538) 2022-03-06 19:02:40 -08:00
Takeshi ISHII
4cae7becb1 [Keymap] Change helix:fraanrosi keymap to use split_common (#16533) 2022-03-06 19:02:00 -08:00
Joel Challis
30209de9fd merge/uma - Resolve configurator issues (#16551) 2022-03-06 21:58:08 +00:00
Takeshi ISHII
16cd1d9bf7 Change helix:five_rows keymap to use QMK standerd oled driver (#16539) 2022-03-06 10:18:41 +09:00
Ryan
8e9d45d270 qmk info: nicer rendering of ISO enter (#16466) 2022-03-05 22:54:32 +00:00
Joel Challis
b202e59322 Update info.json (#16540) 2022-03-06 07:59:54 +11:00
kiilerix
da6d6ce2e1 Some docs improvements (#15845)
* docs: clarify in "Keymap Overview" what LAYOUT is and isn't

It is not strictly necessary to use LAYOUT macros in keyboard.c, but it
is a convenient abstraction of hardware internals, allowing focus on the
physical keyboard layout.

From the C source point of view LAYOUT is macro with a parameter list,
which expands to a array of rows that each is an array with a keyboard
scancode for each column. A macro parameter list is not an array, and
even less a single array.

Perhaps no big deal, but also no reason to give incorrect hints.

* docs: update "Understanding QMK's Code" to current code structure introduced in 96e2b13d1d

This part of the documentation was no longer correct. I tried updating
it, mainly copy editing and using github links to latest release.

This is not trying to fix all problems, but just trying to fix some
problems while reusing much of the old phrases and structure.

* Update docs to use "qmk format-python"
2022-03-05 15:58:50 +11:00
yulei
82dd84e257 support more leds (#15840) 2022-03-05 15:57:19 +11:00
Kyle McCreery
0be7345640 [Keyboard] BDE Rev2 (#15877)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-04 10:10:32 -08:00
Joel Challis
c0185116d7 More validation of declared LAYOUT macro names (#16520) 2022-03-04 18:06:15 +01:00
Ryan
34ba7f1c18 Bug report template: require qmk doctor output (#16517) 2022-03-03 20:43:55 -08:00
Ryan
d412854e37 analog.[ch]: remove unnecessary includes (#16471) 2022-03-04 14:56:59 +11:00
Ryan
aab2ac22c5 Melody96 refactor (#16455) 2022-03-04 14:52:15 +11:00
jels
61ba8efa3e Update pr_checklist.md (#16484)
Update readme.md template link from https://github.com/qmk/qmk_firmware/blob/master/data/templates/avr/readme.md to https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md
2022-03-04 12:49:14 +11:00
jels
e01307f265 Typo in squeezing_avr.md (#16506)
Fixed typo in squeezing_avr docs.
2022-03-03 15:38:24 -08:00
Joel Challis
7fb312ccd7 Fix use of ISSI driver config before init (#16493) 2022-03-03 22:35:51 +00:00
Takeshi ISHII
4a66bdf294 Fix helix/rev2 not working properly when using split_common. (#16512)
When helix/rev2 was using split_common, it didn't work properly and I couldn't type on the right hand side.

The cause is that the following code, added in 0.16.0 to `quantum/keyboard.c`, does not include `quantum/split_common/split_util.h` but instead includes `keyboards/helix/rev2/split_util.h`. Therefore, `split_pre_init()/split_post_init()` in `quantum/split_common/split_util.c` was not called.

```c
  #ifdef SPLIT_KEYBOARD
  #    include "split_util.h"
  #endif
```
2022-03-03 20:23:49 +00:00
Gompa
ae2c77c827 [Bug] fix v-usb connection enumeration, ifdef workaround (#16511)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-03 09:24:04 -08:00
Takeshi ISHII
75b40dc7a5 Fix mistakes in the include path in helix/rev2/local_features.mk. (#16507)
```diff
  --- a/keyboards/helix/rev2/local_features.mk
  +++ b/keyboards/helix/rev2/local_features.mk
  @@ -6,7 +6,7 @@
   #

   KEYBOARD_LOCAL_FEATURES_MK :=
  --include $(strip $(HELIX_TOP_DIR)/pico/override_helix_options.mk) ## File ded  icated to maintenance
  +-include $(strip $(HELIX_TOP_DIR)/rev2/override_helix_options.mk) ## File dedicated to maintenance
  ```
2022-03-03 14:27:21 +00:00
Jake VanderVaate
96b6ddf4bf fixed typo in docs/newbs_getting_started.md (#16501) 2022-03-03 09:53:40 +00:00
Takeshi ISHII
e73f8e942c Change 'helix/rev2:default' setting to use split_common (#16432)
* add licenses message to helix/rev2 files

* Minimize the processing of helix/rev2/local_features.mk

* Changed helix/rev2 default setting to use split_common

* fix helix/rev2:edvorakjp build error

* Remove unnecessary '#include' from keymap.c

* helix keymaps Workaround for build errors. five_rows_jis, fraanrosi, froggy, froggy_106, yshrsmz

* Revert "fix helix/rev2:edvorakjp build error"

This reverts commit 731dbbe151.
Separated into a single PR #16433.

* Revert "Changed helix/rev2 default setting to use split_common"

This reverts commit e76dbd7762.

* add 'SPLIT_*_STATE_ENABLE' into helix/rev2/config.h

* Revert "helix keymaps Workaround for build errors. five_rows_jis, fraanrosi, froggy, froggy_106, yshrsmz"

This reverts commit 9b316c1c6a.

* change helix:default to use split_common

* change helix:five_rows to use split_common

* add comment into helix/rev2/rules.mk

* change helix:led_test to use split_common
2022-03-02 20:15:10 +09:00
xiao
09a43b12cb Revert "handwired/3dortho14u: refactor layout data (#16475)" (#16485)
This reverts commit 3ac769b6ab.
2022-03-01 15:48:38 -08:00
James Young
325c634101 atlas_65 Layout Macro Refactor (#16483)
* atlas_65.h: add matrix diagram

* atlas_65.h: apply linting

- convert tabs to spaces
  - four-space indent
- align backslashes in layout macro

* atlas_65.h: adjust layout macro alignment

Visually separates each side. White-space-only change.

* physically arrange layout macro

Move the matrix position identifiers in the layout macro to resemble the assembled keyboard's layout.

- move `k46` (right side B) to the fourth (Shift) row
- move each of `k1E`, `k2E` and `k3E` (right side navigation keys) up one row
- update keymaps to match

* update maintainer data

Update the maintainer data in `info.json` and `readme.md`.
2022-03-01 14:52:25 -08:00
Joel Challis
369575ad13 Remove invalid keyboard_folder from gk6 (#16480) 2022-03-01 02:12:01 +00:00
James Young
36635c2203 Ellora65: remove dead space from Configurator rendering (#16478) 2022-03-01 01:53:53 +00:00
Joel Challis
c9d9e70ac7 Move projectcain encoder logic to keyboard level (#16479) 2022-03-01 01:52:01 +00:00
James Young
f293e6b4da Glacier: Community Layout support (#16474)
* Glacier: Community Layout support

Enables the Glacier to use QMK's `tkl_f13_ansi_tsangan` community layout.

- rename `LAYOUT` to `LAYOUT_tkl_f13_ansi_tsangan`
- add `LAYOUTS` rule to `rules.mk`

* info.json: correct maintainer value

Use the maintainer's GitHub username.
2022-02-28 23:33:55 +00:00
James Young
3ac769b6ab handwired/3dortho14u: refactor layout data (#16475)
Remove nonextant matrix positions from the layout data.
2022-02-28 23:33:21 +00:00
James Young
d1068b23ad snatchpad: update layout data (#16476)
Fixes key overlaps in QMK Configurator.
2022-02-28 23:32:33 +00:00
Erovia
fbfd5312b9 CLI: Validate JSON keymap input (#16261)
* Fix schema validator

It should use the passed schema.

* Add required attributes to keymap schema

* Rework subcommands to validate the JSON keymaps

The 'compile', 'flash' and 'json2c' subcommands were reworked to add
JSON keymap validation so error is reported for non-JSON and
non-compliant-JSON inputs.

* Fix required fields in keymap schema

* Add tests

* Fix compiling keymaps directly from keymap directory

* Schema should not require version for now.
2022-02-28 20:02:39 +00:00
Joel Challis
779c7debcf Fix issues with data driven split keyboards (#16457) 2022-02-27 13:39:24 +01:00
Takeshi ISHII
e884414e1e fix helix/rev2:edvorakjp build error (#16433)
'helix/rev2/keymaps/edvorakjp' was no longer buildable due to changes made by #14864.
The reason is that the prototype of `oled_task_user()` was changed in keymaps/edvorakjp/oled.c, but keymaps/edvorakjp/oled.h was not changed.
Therefore, I modified the prototype in keymaps/edvorakjp/oled.h.
2022-02-27 20:30:00 +09:00
Joel Challis
77cdb20e16 Revert CLI default for manufacturer (#16467) 2022-02-27 10:34:26 +00:00
James Young
a7a3f72235 Wolf Sabre: fix Configurator layout data (#16465)
* apply friendly formatting to info.json

* rebuild Configurator layout data

KLE Rotation leads to incorrect layout data when converted to `info.json` format.

* add matrix diagram to sabre.h
2022-02-27 10:08:10 +00:00
James Young
57601d3cfe Wren: fix QMK Configurator key sequence (#16462)
* Wren: fix QMK Configurator key sequence

* info.json: update maintainer field
2022-02-27 00:38:51 -08:00
Albert Y
29ab430f1f [Docs] Anchor link correction in rgb matrix docs (#16460) 2022-02-26 18:38:46 -08:00
stanrc85
1d30ee72ab [Keymap] stanrc85 userspace rules cleanup (#16447) 2022-02-26 18:29:59 -08:00
Dasky
259cf76966 Link WS2812 driver page from rgb feature docs (#16366) 2022-02-27 01:50:44 +00:00
James Young
c1e008b052 [Keyboard] add YMDK YMD21 v2 (#16442)
* [Keyboard] add YMDK YMD21 v2

* remove trailing whitespace from default keymap
2022-02-26 17:36:30 -08:00
Ryan
97d0e7cb2d [Docs] Add commands to flashing docs (#16456) 2022-02-26 17:35:10 -08:00
Dari
d94b5d0b82 [Handwired] Support for Adafruit lemon keypad (#16395)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: zvecr <git@zvecr.com>
2022-02-26 17:18:51 -08:00
peepeetee
3057e5f8ca [Keyboard] ada1800mini (#16386)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-26 17:06:48 -08:00
Joel Challis
83a32b2574 Remove 1k USB_POLLING_INTERVAL_MS config from keyboards and default-ish keymaps (#16448)
* Remove 1k USB_POLLING_INTERVAL_MS config from keyboard level

* Remove 1k USB_POLLING_INTERVAL_MS config from default|via keymaps
2022-02-26 03:20:57 +00:00
zvecr
e793128991 Merge remote-tracking branch 'origin/develop' 2022-02-25 23:45:40 +00:00
zvecr
c0ee3d2c79 Merge '51db8baf77e2c0aa5f54d73114e84a33306d7380' as empty 2022-02-25 23:45:07 +00:00
Joel Challis
cf31355f08 Changelog 2022q1 (#16380)
* Initial changelog pass

* update generate-develop-pr-list content

* Fix bad word-ness

* Fix generate-develop-pr-list ignores

* Update docs/ChangeLog/20220226.md

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

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-23 17:33:08 +00:00
QMK Bot
bd01e1cee8 Merge remote-tracking branch 'origin/master' into develop 2022-02-22 18:32:43 +00:00
QMK Bot
8aec20c0da Format code according to conventions (#16435) 2022-02-22 18:29:47 +00:00
QMK Bot
a58a95f1f5 Merge remote-tracking branch 'origin/master' into develop 2022-02-22 18:24:50 +00:00
Joel Challis
5330d0888d Install extra CLI dependencies that are missing (#16426)
* Install extra CLI dependencies that are missing

* dos2unix is part of base container
2022-02-22 18:24:18 +00:00
QMK Bot
3039186dd9 Merge remote-tracking branch 'origin/master' into develop 2022-02-22 14:10:20 +00:00
Ryan
7646e567bd handwired/frankie_macropad: disable some features to reduce size (#16431) 2022-02-22 14:09:45 +00:00
QMK Bot
749918e119 Merge remote-tracking branch 'origin/master' into develop 2022-02-22 02:58:43 +00:00
Joel Challis
5dcc0743f5 Install extra CLI dependencies that are missing (#16425) 2022-02-22 02:57:52 +00:00
QMK Bot
c2ea26745d Merge remote-tracking branch 'origin/master' into develop 2022-02-21 19:23:59 +00:00
Fernando Rodrigues
e0342fec18 [Keyboard] Fixed default keymap and add VIA for Baredev rev1 (#15818)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-21 11:23:29 -08:00
QMK Bot
6b94d8e1c9 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 19:22:55 +00:00
xiao
ffe9c22032 [Keyboard] Add keyboard 3dortho14u (#16329)
Co-authored-by: xia0 <xiao@morgan.net.au>
2022-02-21 11:22:25 -08:00
QMK Bot
82a670135f Merge remote-tracking branch 'origin/master' into develop 2022-02-21 19:22:24 +00:00
Alexander
239fed2ef1 [Keyboard] Move rgb animation defines for KAPL keyboard (#16341) 2022-02-21 11:21:54 -08:00
fauxpark
145dca0e49 Merge remote-tracking branch 'upstream/master' into develop 2022-02-22 05:21:40 +11:00
jack
31f5900666 fix layout macro (#16414)
Co-authored-by: jack <{ID}+{username}@users.noreply.github.com>
2022-02-21 18:04:14 +00:00
Danny
302ed624ac Add encoder defaults for Keebio boards (#16398)
* Add BDN9 encoder defaults

* Add DSP40 encoder default

* Add FoldKB encoder defaults

* Add Iris encoder defaults

* Update Iris Rev. 6 encoder orientation

* Add KBO-5000 encoder defaults

* Add Quefrency encoder defaults

* Add Sinc encoder defaults

* Add Stick encoder defaults

* Remove encoder settings from VIA keymaps
2022-02-21 18:02:30 +00:00
jack
6ad86042fe Fix kikoslab/ellora65 (#16415) 2022-02-22 04:57:13 +11:00
QMK Bot
2f0dc0fb6d Format code according to conventions (#16419) 2022-02-21 17:44:27 +00:00
Adam Lickel
a5901a6c0d [Keymap] BDN9 keymap (#15924) 2022-02-21 09:35:23 -08:00
peepeetee
3290377918 [Keyboard] infinity81 (#16387) 2022-02-21 09:12:18 -08:00
yiancar
83b9483045 [keyboard] DC01 i2c timeout fix (#16392) 2022-02-21 09:11:49 -08:00
evanmcook
0b21fbc37b [Keyboard] add evancookaudio sleepingdinosaur (#16320)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-02-21 09:11:23 -08:00
takashicompany
7e4f74d689 [Keyboard] Update Heavy Left (#16354) 2022-02-21 09:11:00 -08:00
peepeetee
59f671744b [Keyboard] ID75 v2 (#16351) 2022-02-21 09:10:19 -08:00
Wolf Van Herreweghe
7fb22706fd [Keyboard] Add sabre (#15964)
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-02-21 09:10:06 -08:00
66f9e4eae
249eb87102 [Keyboard] [redox_w] add dvorak layout and white led support (#16259)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-21 09:09:19 -08:00
Michal Petrik
b1f8622513 [Docs] Update feature_leader_key.md (#16344)
Co-authored-by: zvecr <git@zvecr.com>
2022-02-21 09:08:36 -08:00
Michal Petrik
d3584be431 [Docs] Update newbs_building_firmware.md (#16333) 2022-02-21 09:08:07 -08:00
Takeshi ISHII
c204c735af Helix/pico move to split_common (#16418) 2022-02-21 08:30:49 -08:00
QMK Bot
25ba9b41c1 Format code according to conventions (#16421) 2022-02-21 08:29:54 -08:00
fauxpark
a44abeb99a Merge remote-tracking branch 'upstream/master' into develop 2022-02-22 03:04:41 +11:00
Ryan
f30f963a0b Internal docs generation updates (#16411) 2022-02-21 15:47:44 +00:00
Takeshi ISHII
b1de11c275 Fix a potential bug in encoder_init(). (#16372)
After executing `setPinInputHigh(pin)`, it is necessary to wait for the charging time to read from the corresponding pin. This is the same as requiring `matrix_output_unselect_delay()` after doing `unselect_row()` in matrix.c.
2022-02-21 23:13:06 +09:00
QMK Bot
69a6772074 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 09:04:17 +00:00
jackytrabbit
ae5f43072f Update the support for lazydesigners/dimple (#14797)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-21 10:03:18 +01:00
QMK Bot
0f962af691 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 08:55:44 +00:00
QMK Bot
f252287b0e Format code according to conventions (#16412) 2022-02-21 00:55:23 -08:00
Brandon Claveria
67b9a722c0 [Keyboard] Add Ellora65 (#14754)
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: swiftrax <swiftrax@github.com>
2022-02-21 00:55:05 -08:00
QMK Bot
7d153b9a66 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 08:40:46 +00:00
xiao
18490537a5 [Keyboard] Add Snatchpad keyboard (#16330)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: xia0 <xiao@morgan.net.au>
2022-02-21 00:40:11 -08:00
QMK Bot
8dc7cae7c7 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 08:39:42 +00:00
federicoweber
2d1f2810a4 [Keyboard] add Gizmo Engineering GK6 keyboard (#13907)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-21 00:38:53 -08:00
QMK Bot
f01caa2a5a Merge remote-tracking branch 'origin/master' into develop 2022-02-21 08:29:26 +00:00
hunter
019dddcfa3 [Keyboard] Add foundation (#16289)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-21 00:28:49 -08:00
QMK Bot
99099c4173 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 07:53:37 +00:00
Tim Liu
deb0fe4bcc [Keyboard] Add glacier in creatkeebs folder (#16079)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-20 23:52:39 -08:00
QMK Bot
09b44d2e73 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 07:44:26 +00:00
holtenc
2e31f542dc [Keyboard] Add Obro (#15884)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-20 23:43:55 -08:00
QMK Bot
63b8959413 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 06:33:42 +00:00
L. K. Post
14fb3cc8b0 [Keyboard] Add Kyria rev. 2 (#16178) 2022-02-20 22:33:00 -08:00
QMK Bot
37feb4fcb4 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 06:17:00 +00:00
Ivan Gromov
9bf25d1cd5 [Keyboard] Add Monoflex 60 keyboard (#16234)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-20 22:16:23 -08:00
QMK Bot
6a90e13224 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 06:05:20 +00:00
jack
2d1d44edb7 [Keyboard] Fix Hineybush/h08_ocelot and Hineybush/h65(_hotswap) (#16405) 2022-02-20 22:04:43 -08:00
QMK Bot
b21a803ec6 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 06:02:11 +00:00
TW59420
f7b5d67a7b [Keyboard] Add MW75R2 PCB (#15042)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-02-20 22:01:31 -08:00
QMK Bot
21a4f42957 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 05:57:49 +00:00
jack
65af7272f3 [Keyboard] Fix mwstudio/mw65_rgb errors (#16410) 2022-02-20 21:57:11 -08:00
QMK Bot
31ee13a5d7 Merge remote-tracking branch 'origin/master' into develop 2022-02-21 01:19:42 +00:00
HorrorTroll
3bc8afbb81 Update fix for MW65_rgb and added personal keymap (#15279)
* Update fix for MW65 and added personal keymap

* Resolve fix

* Resolved fix, again

* Added missing GPLv2 license headers

* Resolved issue
2022-02-20 17:18:35 -08:00
QMK Bot
f6d8dd972e Merge remote-tracking branch 'origin/master' into develop 2022-02-20 18:37:05 +00:00
Ryan
d175ee1d9b rart67m: move OLED and WPM code to default keymap (#16403)
* rart67m: move OLED and WPM code to default keymap

* Apply suggestions from code review

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

Co-authored-by: Joel Challis <git@zvecr.com>
2022-02-20 18:36:15 +00:00
QMK Bot
4d3ce3cdf8 Merge remote-tracking branch 'origin/master' into develop 2022-02-20 13:57:38 +00:00
Ryan
60f22831cb clueboard/card: disable Command to reduce size (#16404) 2022-02-20 13:57:03 +00:00
QMK Bot
f787114fe9 Merge remote-tracking branch 'origin/master' into develop 2022-02-20 08:21:51 +00:00
Josh Hinnebusch
38e3be4c74 Add h08_ocelot and h65 PCBs (#14054)
* add h65 start

* add h65 base files

* add ocelot base files

* add via keymap

* Update keyboards/hineybush/h08_ocelot/config.h

* Update keyboards/hineybush/h65/config.h

* add base files for h65 hotswap

* changes made per PR

* finally made updates per PR

* update readmes

* Update keyboards/hineybush/h65_hotswap/config.h

* Update keyboards/hineybush/h65_hotswap/rules.mk

* Update keyboards/hineybush/h65_hotswap/rules.mk

* Update keyboards/hineybush/h65_hotswap/readme.md

* Update keyboards/hineybush/h65_hotswap/info.json

* Update keyboards/hineybush/h65/rules.mk

* Update keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c

* Update keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c

* Update keyboards/hineybush/h65_hotswap/h65_hotswap.h

* Update keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c

* Update keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c

* Update keyboards/hineybush/h65/rules.mk

* Update keyboards/hineybush/h65/readme.md

* Update keyboards/hineybush/h08_ocelot/h08_ocelot.h

* Update keyboards/hineybush/h08_ocelot/keymaps/default/keymap.c

* Update keyboards/hineybush/h08_ocelot/keymaps/default/keymap.c

* Update keyboards/hineybush/h08_ocelot/keymaps/via/keymap.c

* Update keyboards/hineybush/h08_ocelot/keymaps/via/keymap.c

* Update keyboards/hineybush/h08_ocelot/readme.md

* Update keyboards/hineybush/h08_ocelot/rules.mk

* Update keyboards/hineybush/h08_ocelot/rules.mk

* Update keyboards/hineybush/h65/h65.h

* Update keyboards/hineybush/h08_ocelot/info.json

* Update keyboards/hineybush/h65/info.json

* Update keyboards/hineybush/h65/keymaps/default/keymap.c

* Apply suggestions from code review

* update jsons for default qmk config layout

* Update keyboards/hineybush/h08_ocelot/rules.mk

* Update keyboards/hineybush/h65/h65.h

* Update keyboards/hineybush/h65/info.json

* Update keyboards/hineybush/h65/keymaps/default/keymap.c

* Update keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c

* Update keyboards/hineybush/h65_hotswap/keymaps/via/keymap.c

* Update keyboards/hineybush/h65_hotswap/keymaps/via/keymap.c

* Update keyboards/hineybush/h65_hotswap/keymaps/via/keymap.c

* Update keyboards/hineybush/h65_hotswap/rules.mk

* Update keyboards/hineybush/h65/config.h
2022-02-20 00:21:18 -08:00
QMK Bot
1d9808606a Merge remote-tracking branch 'origin/master' into develop 2022-02-20 07:10:44 +00:00
Benjamin Chausse
60e28544b2 Bliss Hotdox keymaps (#13160)
* Bliss Hotdox keymaps

* Update keyboards/hotdox/keymaps/bliss/keymap.c

* Update keyboards/hotdox/keymaps/bliss/keymap.c

* Add GPL License to keymap.c file
Changes to be committed:
	modified:   keymap.c

* make changes requested by fauxpark

* Update keyboards/hotdox/keymaps/bliss/readme.md

* Update keyboards/hotdox/keymaps/bliss/keymap.c

* Update keyboards/hotdox/keymaps/bliss/readme.md
2022-02-19 23:10:15 -08:00
QMK Bot
e2691c22c1 Merge remote-tracking branch 'origin/master' into develop 2022-02-20 05:52:47 +00:00
Matthew Dias
73657a7d58 Add kikkou keyboard (#15291)
* Add kikkou keyboard

* Apply suggestions from code review

* Update keyboards/kikkou/rules.mk

* Apply suggestions from code review1
2022-02-19 21:52:11 -08:00
fauxpark
5b688a09ec Merge remote-tracking branch 'upstream/master' into develop 2022-02-19 04:27:09 +11:00
Ryan
4666d26008 Fix a couple of boards being wrongly identified as AVR (#16377) 2022-02-19 02:53:36 +11:00
Simon
2d12eacb4b [Keyboard] Renamed Frooastboard to Frooastboard Nano (#16373) 2022-02-17 08:59:12 -08:00
Joakim Tufvegren
7dd993fb06 Fix build error for LED Matrix effect solid_reactive_wide. (#16383) 2022-02-17 08:53:06 -08:00
Drashna Jael're
da280739ef Merge remote-tracking branch 'origin/master' into develop 2022-02-17 08:44:30 -08:00
Ryan
548a463fe9 mokey/xox70: clean up layouts (#16375) 2022-02-17 08:43:03 -08:00
Joakim Tufvegren
7f63bcf38b [Bug] Re-add call to suspend_power_down_kb() (#16382) 2022-02-17 08:33:07 -08:00
Takeshi ISHII
7e00fcd7bc [Keyboard] Remove Helix/rev1 (#16389) 2022-02-17 08:18:16 -08:00
Joel Challis
0d9a0d5d97 Align new-keyboard with recent schema updates (#16378) 2022-02-16 20:58:40 +00:00
Joel Challis
5ff823d35f Bodge for helix build failures (#16376) 2022-02-16 17:46:48 +00:00
QMK Bot
08ebf1523b Merge remote-tracking branch 'origin/master' into develop 2022-02-15 17:48:14 +00:00
Dan Nixon
da68083fdf Update USB VID and PID for Aya (#16363) 2022-02-15 18:47:35 +01:00
QMK Bot
6a8df58887 Merge remote-tracking branch 'origin/master' into develop 2022-02-15 07:02:33 +00:00
Ryan
92eb067a63 Add extra braces for trackball keymaps (#16361) 2022-02-15 18:01:54 +11:00
Joel Challis
16767312db Align docs to new-keyboard behaviour (#16357) 2022-02-15 15:45:32 +11:00
Joel Challis
fede569bbe Allow NO_PIN within info.json (#16359) 2022-02-15 15:41:16 +11:00
Joel Challis
b0621223bc Various fixes for new-keyboard (#16358) 2022-02-15 01:42:58 +00:00
QMK Bot
c9f192bae8 Merge remote-tracking branch 'origin/master' into develop 2022-02-15 01:16:27 +00:00
Ryan
ac8bee7091 Fix multiple definition errors for trackball "boards" with no keys (#16350) 2022-02-15 01:15:53 +00:00
Erovia
23c238a180 CLI: Minor additions #12795 (#16276) 2022-02-14 12:02:35 +01:00
QMK Bot
1980e48e0d Merge remote-tracking branch 'origin/master' into develop 2022-02-14 06:25:23 +00:00
James Young
485cf920b4 Xenon: correct QMK Configurator key sequence (#16332) 2022-02-13 22:24:52 -08:00
QMK Bot
61ed2e2b3c Merge remote-tracking branch 'origin/master' into develop 2022-02-14 06:24:45 +00:00
James Young
6b01657a86 Mode M75S Layout Additions, Configurator Data and Code Touch-Up (#16327)
* m75s.h: correct matrix position identifier

`K5C` is actually on row 4, so it should be `K4C`.

* m75s.h: add matrix diagram

* add QMK Configurator data

* polish whitespace

- convert tabs to spaces
- update indent to four spaces
- remove trailing whitespace

* update readme

Didn't seem to be fully updated after being copied from the M65S codebase.

* add LAYOUT_ansi with keymap

ANSI layout with 2u Backspace.

* add LAYOUT_iso with keymap

ISO layout with 2u Backspace.

* add LAYOUT_ansi_tsangan with keymap

ANSI layout with 2u Backspace and 7u Spacebar.

* add LAYOUT_iso_tsangan with keymap

ISO layout with 2u Backspace and 7u Spacebar.

* add LAYOUT_ansi_split_bs with keymap

ANSI layout with Split Backspace.

* add LAYOUT_iso_split_bs with keymap

ISO layout with Split Backspace.

* add LAYOUT_ansi_tsangan_split_bs with keymap

ANSI layout with Split Backspace and 7u Spacebar.

* add LAYOUT_iso_tsangan_split_bs with keymap

ISO layout with Split Backspace and 7u Spacebar.
2022-02-13 22:24:11 -08:00
QMK Bot
f77e569e9f Merge remote-tracking branch 'origin/master' into develop 2022-02-14 02:02:16 +00:00
Ryan
b6b7e12029 Digicarp65: fix layouts (#16328) 2022-02-14 13:01:39 +11:00
Joel Challis
4fd04b2371 Fix compilation of ChibiOS UART driver (#16348)
Cherry picked fix from 15724
2022-02-13 20:44:44 +00:00
QMK Bot
63646e8906 Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
Drashna Jaelre
afcdd7079c Update keyboard mapping for all moved boards this cycle (#16312) 2022-02-12 09:16:35 -08:00
QMK Bot
9f506e64ba Merge remote-tracking branch 'origin/master' into develop 2022-02-12 07:01:58 +00:00
Max Rumpf
773205cd1f [Keyboard] Convert Maxr1998/Phoebe to use info.json where possible (#16309) 2022-02-11 23:01:25 -08:00
QMK Bot
aefe6ee9f5 Merge remote-tracking branch 'origin/master' into develop 2022-02-12 04:03:02 +00:00
cole smith
19c57a2a6a [Keyboard] Lulu keyboard by boardsource (#15951)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-11 20:02:30 -08:00
Ryan
e596ece87a Clang-format tweaks (#15906) 2022-02-11 20:00:34 -08:00
peepeetee
17c0ca6fa4 [Keyboard] move g heavy industry boards into /gboards (#16040)
Co-authored-by: zvecr <git@zvecr.com>
2022-02-11 19:54:48 -08:00
QMK Bot
52d6f07a82 Merge remote-tracking branch 'origin/master' into develop 2022-02-12 03:23:18 +00:00
uqs
40529e89de [Keymap] Add uqs' keymaps for various boards and ploopy mouse (#16265) 2022-02-11 19:22:47 -08:00
peepeetee
0f926a8ae8 move montex to IDOBAO vendor folder (#15668)
* move montex to IDOBAO vendor folder

* move montex to montex/v1
2022-02-12 01:14:07 +00:00
peepeetee
c72120baab move @satt99 's comet46 to satt/ (#16059) 2022-02-12 01:13:48 +00:00
QMK Bot
50201af2b7 Merge remote-tracking branch 'origin/master' into develop 2022-02-12 01:11:25 +00:00
Joel Challis
8b48bab54f Add wren configurator data (#16321) 2022-02-12 01:10:48 +00:00
peepeetee
8957e928a2 move mechkeys keyboards into the mechkeys/ vendor folder (#15760)
* move mechkeys keyboards to mechkeys/

* fix compilation

* fix default folder
2022-02-11 22:41:10 +00:00
peepeetee
bd35fa7de1 move @takashiski 's keebs into /takashiski (#16089) 2022-02-11 21:51:20 +00:00
Joy Lee
71c0b97bce Added external spi flash driver. (#15419) 2022-02-11 20:26:16 +00:00
Dasky
00cc64638c Fix right side ws2812 leds having two indices (#15985)
* Fix right side leds having two indices

* remove redundant left check
2022-02-11 20:13:22 +00:00
precondition
7148a69d5e Pass in the keyrecord_t of the dual-role/tapping key when calling per-key tap hold functions (#15938)
* Replace keyp by &tapping_key in the record arg of per-key tap hold funcs

* Replace NULL by &(keyrecord_t){} in 2nd arg of get_tapping_term
2022-02-11 19:53:26 +00:00
Joel Challis
39bec3bfa5 Various fixes for matrix _RIGHT handling (#16292)
* Various fixes for matrix _RIGHT handling

* clang
2022-02-11 19:01:16 +00:00
QMK Bot
2d4a69cfc6 Merge remote-tracking branch 'origin/master' into develop 2022-02-11 12:38:20 +00:00
Ryan
5f10387c41 handwired/promethium: fix missing include (#16317) 2022-02-11 12:37:36 +00:00
Idan Kamara
793f54f6ca ps2/avr: use the correct file name (#16316)
This was missed in https://github.com/qmk/qmk_firmware/pull/14895.

Thanks to fauxpark for spotting this.
2022-02-11 20:36:26 +11:00
QMK Bot
656c151e07 Merge remote-tracking branch 'origin/master' into develop 2022-02-11 03:38:26 +00:00
Ryan
89fc2f166f mechlovin/kay60: fix mismatched layout name (#16314) 2022-02-11 14:37:41 +11:00
QMK Bot
8106697a42 Merge remote-tracking branch 'origin/master' into develop 2022-02-11 02:31:55 +00:00
Ryan
2bc4a216df maxr1998/pulse4k: Move Combo code to keymap level (#16301)
* maxr1998/pulse4k: Move Combo code to keymap level

* Reorder code
2022-02-11 02:31:19 +00:00
QMK Bot
cc7d3b75d7 Merge remote-tracking branch 'origin/master' into develop 2022-02-11 00:19:54 +00:00
Ryan
63c310f6fd Add 65_iso_split_bs default layout (#16283) 2022-02-11 11:19:18 +11:00
peepeetee
9e4942bec8 [Keyboard] move latincompass's boards to /latincompass (#16039) 2022-02-10 15:20:11 -08:00
peepeetee
27ec667430 move id80 and id75 to v1 to accommodate for id75 v2 and id80 v3 (#15992)
* move id80 to a v1 to acommondate for v2 and a future v3

* move id75 to v1

* fix manufacturer and product fields, enable backlight

* move user keymap

* Fix DEFAULT_FOLDER

* Update build command

Co-authored-by: zvecr <git@zvecr.com>
2022-02-10 21:46:03 +00:00
peepeetee
7c57c88c86 move ID87 to IDOBAO vendor folder (#15667)
* move ID87 to IDOBAO vendor folder

* move to v1 to acommondate for v2
2022-02-10 21:19:33 +00:00
QMK Bot
8787978951 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 21:03:01 +00:00
James Young
bc5d46aaad Mode 75H Touch-UP (#16310)
* m75h.h: correct matrix position identifier

`K5C` is actually on row 4, so it should be `K4C`.

* m75h.h: add matrix diagram

* add QMK Configurator data

* polish whitespace

- convert tabs to spaces
- update indent to four spaces
- remove trailing whitespace
2022-02-10 21:02:23 +00:00
Joel Challis
e04f6c5d38 Remove manual enable of LTO within user keymaps (#15378) 2022-02-10 09:52:39 -08:00
Joel Challis
f7e7671f69 Migrate more makefile utilities to builddefs sub-directory (#16002) 2022-02-10 09:45:51 -08:00
QMK Bot
7a0fd646e3 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 16:23:14 +00:00
James Young
195242dc37 keyten kt60-M: rename LAYOUT to LAYOUT_60_tsangan_hhkb (#16307)
* rename LAYOUT to LAYOUT_60_tsangan_hhkb

* info.json: correct maintainer value

Field is meant to reference the maintainer's GitHub username.

* rules.mk: enable Community Layout support
2022-02-10 16:22:42 +00:00
QMK Bot
9f4fbd3aa7 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 16:22:18 +00:00
James Young
d25bce24cd Keyprez Unicorn: fix QMK Configurator key sequence (#16305)
* info.json: apply friendly formatting

* info.json: fix key sequence
2022-02-10 16:21:38 +00:00
QMK Bot
54572c8daf Merge remote-tracking branch 'origin/master' into develop 2022-02-10 16:20:03 +00:00
James Young
c9e19fe6fc KeebsForAll Freebird Numpad Pro: fix Configurator key positioning (#16303)
* info.json: apply friendly formatting

* info.json: fix key positioning

Fixes the second row being rendered on top of the first row.
2022-02-10 16:19:27 +00:00
QMK Bot
cbdb225a67 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 16:18:23 +00:00
James Young
21522e0964 info.json: fix QMK Configurator rendering (#16299) 2022-02-10 16:17:47 +00:00
QMK Bot
78c3149365 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 16:17:45 +00:00
James Young
da4eda8930 info.json: fix key sequence (#16297) 2022-02-10 16:17:12 +00:00
QMK Bot
815d2bae81 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 16:17:00 +00:00
Albert Y
f662939037 Sentence structure update (#16306) 2022-02-10 16:16:01 +00:00
Ryan
3e52e60595 Fix slashes in build_full_test.mk (#16300) 2022-02-10 18:20:37 +11:00
QMK Bot
0930c60553 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 07:13:21 +00:00
Albert Y
3e5cb1da0f Improve description of LED state data sync option (#16302) 2022-02-10 18:12:42 +11:00
QMK Bot
473557ff7d Merge remote-tracking branch 'origin/master' into develop 2022-02-10 05:24:53 +00:00
James Young
cb9142224b Eye Oh Designs SPRH: fix Configurator data (#16296) 2022-02-09 21:24:10 -08:00
QMK Bot
03b1de6925 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 05:23:32 +00:00
James Young
c092d716c5 gl516/j73gl: fix Configurator key sequence (#16298) 2022-02-09 21:22:47 -08:00
QMK Bot
12246733b7 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 03:30:02 +00:00
James Young
66f61ae4cb CMM.Studio Fuji65: correct layout data for real this time (#16295)
Because I apparently can't tell the difference between coordinates and dimensions.
2022-02-09 19:29:25 -08:00
QMK Bot
61e8a0879e Merge remote-tracking branch 'origin/master' into develop 2022-02-10 01:31:55 +00:00
James Young
5475553dd8 Demiurge: correct Configurator Layout data (#16294)
* info.json: apply friendly formatting

* info.json: correct layout data
2022-02-10 01:31:07 +00:00
QMK Bot
bc702fade2 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 01:21:42 +00:00
Sergi Meseguer
628166a3a9 [Keymap] zigotica layout tweaks (#16291) 2022-02-09 17:21:12 -08:00
QMK Bot
968081958a Merge remote-tracking branch 'origin/master' into develop 2022-02-10 01:15:04 +00:00
James Young
ae041078e8 CMM.Studio Fuji65: Configurator Data Patch (#16293)
* info.json: correct layout data

* info.json: correct maintainer field
2022-02-10 01:14:32 +00:00
QMK Bot
6339b6dab7 Merge remote-tracking branch 'origin/master' into develop 2022-02-10 01:04:13 +00:00
Aric Crosson Bouwers
9d74c95215 [Keymap] submitting ariccb planck keymap (#16177)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-09 17:03:43 -08:00
Nick Brassel
ae6f471f1c Modify the output of the size checks. (#16290) 2022-02-10 08:50:55 +11:00
peepeetee
250fd721ac move four_banger to bpiphany (#16082) 2022-02-09 21:33:40 +00:00
peepeetee
8e34b64a99 move hid_liber to /bpiphany (#16091) 2022-02-09 21:29:59 +00:00
peepeetee
cd673cceba move spaceholdings boards into /spaceholdings (#16096) 2022-02-09 21:19:28 +00:00
peepeetee
a9250ad8a1 move @7-rate 's keebs to /rate (#16099) 2022-02-09 21:14:33 +00:00
peepeetee
9aed06ba47 move @npspears 's boards into /checkerboards (#16100) 2022-02-09 21:08:20 +00:00
Nick Brassel
c2c2f30f9f Remove parent-relative paths from keyboards. (#16282)
* Remove parent-relative paths from keyboards.

* Update keyboards/capsunlocked/cu75/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-10 07:02:53 +11:00
Joel Challis
1f67de2001 Align existing pca9555 driver to better match mcp23018 API (#16277) 2022-02-09 19:55:39 +00:00
QMK Bot
96afc7a03a Merge remote-tracking branch 'origin/master' into develop 2022-02-09 19:48:31 +00:00
Arda Kılıçdağı
de4f2bf1ff Further update to #13745 on Crkbd keymap (#16284)
* Further update to #13745

Hello, 

This is further update to #13745 , somehow my commit did not get merged 

https://github.com/qmk/qmk_firmware/pull/13745#discussion_r802603490

* Update config.h
2022-02-09 19:47:53 +00:00
jack
d1e5221bf8 Fix idobao/id80/v3 compilation errors (#16280)
* fix

* another redefintion
2022-02-09 07:01:58 +00:00
QMK Bot
3face6b704 Merge remote-tracking branch 'origin/master' into develop 2022-02-09 05:51:58 +00:00
Brandon Claveria
c49438feec [Keyboard] Digicarp65 (#15926)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: swiftrax <swiftrax@github.com>
2022-02-08 21:51:51 -08:00
MechMerlin
c212b65e48 New Keyboard: 1upkeyboards super16v2 (#16198)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-08 21:51:20 -08:00
QMK Bot
69b6e0796b Merge remote-tracking branch 'origin/master' into develop 2022-02-09 05:50:15 +00:00
peepeetee
b114b27373 [Keyboard] Idobao ID80 V3 (#15912)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-08 21:49:53 -08:00
bomb
a75fb03f39 [Keyboard] MelGeek Mach80 rev2 (#15610) 2022-02-08 21:49:40 -08:00
QMK Bot
7650e68798 Merge remote-tracking branch 'origin/master' into develop 2022-02-09 05:42:39 +00:00
Vino Rodrigues
bf4ce41696 [Keyboard] refine LED Matrix LED positions on KBD67 Lite (#15769) 2022-02-08 21:42:01 -08:00
QMK Bot
4b377a80fa Merge remote-tracking branch 'origin/master' into develop 2022-02-09 05:24:00 +00:00
Danny
11e50f5ff1 [Keyboard] Add explicit RGB Matrix defines for Iris Rev. 6 (#16275) 2022-02-08 21:23:25 -08:00
QMK Bot
70e9f70c93 Merge remote-tracking branch 'origin/master' into develop 2022-02-09 05:20:34 +00:00
Alexander
71a48a0102 [Keyboard] Add Kapl (#16255)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-08 21:19:54 -08:00
QMK Bot
9e293e7f9c Merge remote-tracking branch 'origin/master' into develop 2022-02-09 05:13:10 +00:00
IskandarMa
04020da48c [Docs] pr checklist: update doc hyperlinks to relative ones and use IDs (#16263) 2022-02-08 21:12:39 -08:00
Nick Brassel
a2ffdb4abd Merge remote-tracking branch 'upstream/master' into develop 2022-02-09 16:00:09 +11:00
Nick Brassel
efdaa7f972 Add support for driving unselected row/col. (#16278) 2022-02-09 15:50:13 +11:00
Joel Challis
74e8a71768 Move driver to core (#15944) 2022-02-09 00:07:42 +00:00
Joel Challis
2e279f1b88 Initial pass at data driven new-keyboard subcommand (#12795)
* Initial pass at a data driven keyboard subcommand

* format

* lint

* Handle bootloader now its mandatory
2022-02-09 06:03:30 +11:00
Nick Brassel
a239051c4a Misc size regression script improvements. (#16268)
* Misc size regression script improvements.

- Sets environment variable SIZE_REGRESSION_EXECUTING during execution
  so hook scripts like `post-checkout` may skip processing.
- Forces checkout of the target branch, including removal of all
  temporary object files in the process.
- Prints out a warning on exit stating that the git repository is in an
  indeterminate state, and the user needs to swap back to whatever
  intended branch they were working with originally.

* Remove `git clean`
2022-02-08 16:25:55 +00:00
James Young
e26778ceb5 LFKeyboards Mini1800: refactor into revisions (#16260)
* fork Mini1800 into reva and revc versions

* update info.json

- apply friendly formatting
- update maintainer value

* update keymap rules.mk formatting

- align inline comments
- convert tabs to spaces

* align keymap rules.mk files to QMK template

* move common keymap rules.mk settings to revision level

* info.json: correct key sequence

* align revision rules.mk files to QMK template

* clean up revision rules.mk files

* add readme files for each revision

* correct USB Product string

* remove post_rules.mk files

The internal settings were commented out, so the files actually don't do anything.

* edit Bootloader instructions on main readme

* move non-assignment rules to post_rules.mk

* add inline comments for NKRO_ENABLE per fauxpark
2022-02-07 20:12:59 -08:00
James Young
f3aa5db414 Boardsource The Mark 65 Touch-Up and Layout Additions (#16270)
* the_mark.h: use ____ for KC_NO

* the_mark.h: number matrix positions electrically

`K300` and `K301` has misleading identifiers - `K300` was on column 1 and `K301` on column 0.

* the_mark.h: use QMK 3-character notation

* the_mark.h: add matrix diagram

* refactor reference keymaps

- convert tabs to spaces
- use four-space indent
- grid align keycodes
- remove extra line breaks
- add layer indexes to `via` keymap

* info.json: apply friendly formatting

* add LAYOUT_ansi_split_bs_space

Includes reference keymap.

* add LAYOUT_iso_split_bs_space

Includes reference keymap.

* info.json: edit maintainer value

There is a Boardsource GitHub account, but knowing the user who maintains it is helpful.
2022-02-07 19:45:44 -08:00
James Young
7c5d4484f6 Wings42: add QMK Configurator data (#16267)
* add info.json for wings42/rev1

* add info.json for wings42/rev1_extkeys

* add info.json for wings42/rev2
2022-02-07 19:44:19 -08:00
QMK Bot
87e6c2b06b Merge remote-tracking branch 'origin/master' into develop 2022-02-07 21:32:27 +00:00
Alin Marin Elena
837205b08f [Keyboard] M60 split 5x12 lego pcb (#14383)
* add m60 lego case in split, with stm32f401 and 411

* Update keyboards/mlego/m60_split/m60_split.h

* Update keyboards/mlego/m60_split/rev1/config.h

* Update keyboards/mlego/m60_split/rev2/config.h

* address the moving of enum in keymaps
2022-02-07 13:31:51 -08:00
QMK Bot
a1902c3bf8 Merge remote-tracking branch 'origin/master' into develop 2022-02-07 19:29:12 +00:00
Duccio
67d10cbc7e [Keyboard] [eternal_keypad] Update product_id and add keymap (#16253) 2022-02-07 11:28:20 -08:00
QMK Bot
008b5f52e5 Merge remote-tracking branch 'origin/master' into develop 2022-02-07 18:27:58 +00:00
Jimmy Sjölund
3ca19fa933 [Keymap] Updated Planck layout - jimmysjolund (#16245)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-07 10:24:20 -08:00
Nick Brassel
a86d6fffc9 Fixup bootloaders. (#16256) 2022-02-06 19:09:21 -08:00
Joel Challis
53a7306682 Reduce firmware size for dztech/dz60rgb_wkl/v2_1:via (#16254) 2022-02-06 23:58:05 +00:00
Joel Challis
842d20267c Remove half implemented micronucleus bootloader support (#16252) 2022-02-06 22:59:03 +00:00
Drashna Jaelre
9124f5dc2d Add layout change callbacks to VIA (#16087)
* Add layout change callbacks to VIA

* Update worklouder example
2022-02-06 22:01:04 +00:00
QMK Bot
3b60e71f07 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 21:01:53 +00:00
Joel Challis
2a42a80c20 Fix wheatfield/split75 iso info.json (#16250) 2022-02-06 21:01:18 +00:00
QMK Bot
ab23b4167f Merge remote-tracking branch 'origin/master' into develop 2022-02-06 17:50:38 +00:00
SneakboxKB
e7a9e92a04 [Keyboard] Add aliceclonergb (#14285)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: SneakboxKB <64090325+mujimanic@users.noreply.github.com>
2022-02-06 09:50:09 -08:00
QMK Bot
41bbb34287 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 17:38:30 +00:00
Takeshi ISHII
87199eb2f5 add 'info_config.h' into docs/hardware_keyboard_guidelines.md (#16247)
Added info_config.h added in #10817 to the include order description of config.h.
2022-02-06 17:37:59 +00:00
QMK Bot
65a4ad1177 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 17:37:11 +00:00
Jouke Witteveen
14f886d03b [Docs] Address some typos (also in moonlander matrix.c) (#16248)
* [Docs] Fix repeated words

* [Keyboard] Fix moonlander output

The left/right orientation differs from Ergodox EZ.
2022-02-06 17:36:44 +00:00
QMK Bot
b7f415d047 Format code according to conventions (#16249) 2022-02-06 09:08:13 -08:00
MasterSpoon
0452ad9479 Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, IS31FL3745, IS31FL3746A (#14989)
Co-authored-by: Xelus22 <17491233+Xelus22@users.noreply.github.com>
2022-02-06 09:04:43 -08:00
Ryan
e036c19d06 Add SN74x138 demultiplexer driver (#16217) 2022-02-06 09:02:45 -08:00
QMK Bot
f4e3f75ecc Merge remote-tracking branch 'origin/master' into develop 2022-02-06 16:58:25 +00:00
Anton K. (ai Doge)
8da9588bfb [Keyboard] via support for eternal_keypad (#16242) 2022-02-06 08:57:58 -08:00
QMK Bot
c7a39c4549 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 16:56:06 +00:00
fOmey
4974b50a7f RGB matrix backlight mapping and fixes (#16231) 2022-02-06 08:55:35 -08:00
Desprez Jean-Marc
5a0e129f11 [Bug] Fix layer_state restoration at end of dynamic macro feature (#16230) 2022-02-06 08:55:16 -08:00
QMK Bot
89cc668b73 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 15:57:43 +00:00
Elliot Powell
4fb6eb7253 [Keyboard] Add Support for KeebsForAll Freebird Numpads (#16046)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-06 07:57:16 -08:00
QMK Bot
1dce1f90d7 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 15:57:08 +00:00
evanmcook
4c9c7b9963 [Keyboard] added evancook.audio tenpad macropad (#16189)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-06 07:56:36 -08:00
QMK Bot
ff7274fe9a Merge remote-tracking branch 'origin/master' into develop 2022-02-06 15:55:29 +00:00
4pplet
ea116b785b [Keyboard] Waffling60 Revision C (#16191)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-02-06 07:54:56 -08:00
QMK Bot
49d5d13148 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 05:18:37 +00:00
yiancar
095f0bfe02 [Keyboard] Mnk75 (#15879)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-02-05 21:18:10 -08:00
QMK Bot
1aa9328200 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 05:17:07 +00:00
peepeetee
de1417b660 move @qpocket 's keyboards to qpocket/ (#15827) 2022-02-05 21:16:47 -08:00
Albert Y
7a0b07f84b [Docs] RGB documentation formatting corrections (#15826) 2022-02-05 21:16:36 -08:00
peepeetee
38e085df87 move input club keyboards into vendor folder (#15788) 2022-02-05 21:16:21 -08:00
QMK Bot
10fa737ab8 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 04:58:43 +00:00
Boris Churzin
88a22268eb [Keyboard] oryx rules.mk rgblight (#16229)
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
2022-02-05 20:58:15 -08:00
QMK Bot
a7c403fb09 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 04:54:14 +00:00
James Young
317252612f Noxary Valhalla: refactor LAYOUT_all, add QMK Configurator data (#16241) 2022-02-05 20:53:51 -08:00
QMK Bot
9e65b23adc Merge remote-tracking branch 'origin/master' into develop 2022-02-06 04:53:35 +00:00
James Young
ac6283e836 KBDfans KBD19x: add LAYOUT_iso (#16240) 2022-02-05 20:53:07 -08:00
QMK Bot
ad4f954b66 Merge remote-tracking branch 'origin/master' into develop 2022-02-06 04:08:13 +00:00
James Young
afb198f49d Cutie Club x Keebcats Dougal: add LAYOUT_65_ansi and LAYOUT_65_iso (#16239) 2022-02-05 20:07:39 -08:00
QMK Bot
f440732ff2 Merge remote-tracking branch 'origin/master' into develop 2022-02-05 17:02:37 +00:00
HorrorTroll
ee67cdfeec [Keyboard] Add Paws 60 keyboard (#16204) 2022-02-05 09:01:58 -08:00
Dasky
b1debfb12f Remove default pointing device driver. (#16190)
* remove custom as default

* add missing pointing_device_driver to rules.mk

* Update docs
2022-02-05 14:29:15 +00:00
QMK Bot
065f6eeb4e Merge remote-tracking branch 'origin/master' into develop 2022-02-05 14:28:11 +00:00
Michał Szczepaniak
df37125755 Add macroboard(5x6 OLKB blackpill) keyboard (#16219)
* Add macroboard keyboard

* Fix issues requested in pull request

* Removed halconf/mcuconf and moved to handwired directory

* Added description, enabled bootmagic, disabled console

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-05 14:27:41 +00:00
QMK Bot
80dbdb2a61 Merge remote-tracking branch 'origin/master' into develop 2022-02-05 11:45:18 +00:00
IskandarMa
10fda3ec8e [Docs] feature: mouse keys, fix misused wording (#16226) 2022-02-05 11:44:48 +00:00
Ryan
3facf05324 Add custom to list of valid bootloader types in info.json (#16228) 2022-02-05 11:43:22 +00:00
Ryan
f4f3bf81c7 Add missing BOOTLOADER for a handful of boards (#16225) 2022-02-05 16:55:24 +11:00
Dasky
e16dd1bcc0 add version.h to gitignore (#16222) 2022-02-04 19:23:27 -08:00
Adam Lickel
eb8ace0855 RGB Matrix: Reload from EEPROM (#15923)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-04 19:08:48 -08:00
QMK Bot
119cadbaae Merge remote-tracking branch 'origin/master' into develop 2022-02-05 03:07:32 +00:00
Kyrre Havik
719881c2ee [Keyboard] Add Xenon keyboard (#15915)
Co-authored-by: Sam Mohr <smores56@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-02-04 19:06:49 -08:00
QMK Bot
80db7668da Merge remote-tracking branch 'origin/master' into develop 2022-02-05 01:59:35 +00:00
Lalit Maganti
1febea8d4b [Keymap] add LalitMaganti GMMK Pro Keymap (#16203)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-04 17:59:08 -08:00
Nick Brassel
d31dd6d2a0 Followup to #16220, more test error output. (#16221) 2022-02-05 12:51:23 +11:00
QMK Bot
28fbcac6c9 Merge remote-tracking branch 'origin/master' into develop 2022-02-05 01:50:54 +00:00
James Young
904d5f14f5 Studio Kestra Galatea: add (#16218) 2022-02-04 17:50:27 -08:00
Nick Brassel
e987ce1652 Standardise error output. (#16220) 2022-02-04 17:32:31 -08:00
QMK Bot
45406c0ca2 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 23:09:00 +00:00
James Young
f8376d2a37 Bathroom Epiphanies Ghost Squid: add QMK Configurator data (#16212) 2022-02-05 10:08:23 +11:00
Thomas Weißschuh
f1cd2a5a89 ChibiOS: add support for HID Programmable Buttons (#15787)
* ChibiOS: add support for HID Programmable Buttons

Fixes #15596

* Enable SHARED_ENDPOINT when PROGRAMMABLE_BUTTON is enabled

The Programmable Button driver expects the shared EP to be enabled.
So enforce this invariant.
2022-02-04 22:25:57 +00:00
QMK Bot
5b31e97187 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 21:23:22 +00:00
Xelus22
8d5375d08b [Bug] fix Pachi RGB Rev2 RGB positioning (#16182) 2022-02-04 13:22:53 -08:00
QMK Bot
0844b0d9bd Merge remote-tracking branch 'origin/master' into develop 2022-02-04 21:20:21 +00:00
jack
16d53fa1c7 [Keymap] Fix OLED font path in default Rhymestone keymap (#16197) 2022-02-04 13:19:46 -08:00
QMK Bot
b4dba89dc4 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 21:19:15 +00:00
Ian McLinden
c067d374d7 [Keyboard] Add VIA keymap to AMAG23 (#16206) 2022-02-04 13:19:12 -08:00
TerryMathews
13821fdbd7 [Keyboard] TKC Portico75 (#15114)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jael're <drashna@live.com>
2022-02-04 13:18:42 -08:00
QMK Bot
a72f4346ce Merge remote-tracking branch 'origin/master' into develop 2022-02-04 21:15:50 +00:00
IskandarMa
f52cc210b8 [Docs] feature_macro.md: minor formatting fix (#16205) 2022-02-05 08:15:21 +11:00
Nick Brassel
8fd8b2dc92 Skip categorisation of PR if it's only for code formatting. (#16215) 2022-02-05 07:36:57 +11:00
QMK Bot
0c0aa6a0ae Merge remote-tracking branch 'origin/master' into develop 2022-02-04 20:35:49 +00:00
James Young
7540a80341 MTBKeys MTB60 Solder Layout Macro Refactor (#16195) 2022-02-04 12:35:17 -08:00
QMK Bot
ec9147f069 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 20:34:55 +00:00
James Young
ca46abdc38 FJLabs 7V Hotswap: refactor LAYOUT_75_all macro (#16213) 2022-02-04 12:34:34 -08:00
James Young
9fe0842b6d Meow65: rename LAYOUT to LAYOUT_65_ansi_blocker (#16214) 2022-02-04 12:34:16 -08:00
QMK Bot
e83aa78357 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 19:36:04 +00:00
James Young
0a40916845 MechanicKeys Mini Ashen 40: refactor LAYOUT macro (#16192)
* info.json: apply friendly formatting

* move Backspace argument/keycode to top row

* info.json: correct maintainer field
2022-02-04 11:35:29 -08:00
QMK Bot
b4ceefde37 Format code according to conventions (#16211) 2022-02-04 19:23:30 +00:00
Albert Y
6a35788b63 [Core] Add Pixel Flow RGB matrix effect (#15829)
* Initial PIXEL FLOW matrix effect commit

* Commit suggested use of rgb_matrix_check_finished_leds

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

* Code change support for split RGB

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-05 05:58:16 +11:00
QMK Bot
578d3f6951 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 18:57:58 +00:00
Nick Brassel
1fffcbc298 Revert "[Core] Add Pixel Flow RGB matrix effect (#15829)" (#16209)
This reverts commit e8fa329073.
2022-02-05 05:57:21 +11:00
QMK Bot
f2384d062b Merge remote-tracking branch 'origin/master' into develop 2022-02-04 18:56:47 +00:00
Albert Y
e8fa329073 [Core] Add Pixel Flow RGB matrix effect (#15829)
* Initial PIXEL FLOW matrix effect commit

* Commit suggested use of rgb_matrix_check_finished_leds

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

* Code change support for split RGB

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-05 05:55:51 +11:00
Joel Challis
135c935990 Initial migration of suspend callbacks (#16067)
* Initial migration of suspend logic

* Add header
2022-02-05 05:10:00 +11:00
Sergey Vlasov
580ef6d88f ChibiOS timer fixes (#16017)
* chibios/timer: Move the 16-bit timer handling into a separate function

Extract the code which effectively makes a 32-bit tick counter from a
possibly 16-bit ChibiOS system timer into a separate function.  Does
not really change the behavior of the timer API, but makes the actions
done in `timer_clear()` and `timer_read32()` more obvious.

* chibios/timer: Rename some variable to better reflect their role

* chibios/timer: Fix 32-bit tick counter overflow handling

The QMK timer API implementation for ChibiOS used a 32-bit tick counter
(obtained from the ChibiOS system timer) and then converted the value to
milliseconds to produce the timer value for QMK.  However, the frequency
of the ChibiOS timer is above 1000 Hz in most cases (values of 10000 Hz
or even 100000 Hz are typically used), and therefore the 32-bit tick
counter was overflowing and wrapping around much earlier than expected
(after about 5 days for 10000 Hz, or about 12 hours for 100000 Hz).
When this wraparound happened, the QMK timer value was jumping back to
zero, which broke various code dealing with timers (e.g., deferred
executors).

Just making the tick counter 64-bit to avoid the overflow is not a good
solution, because the ChibiOS code which performs the conversion from
ticks to milliseconds may encounter overflows when handling a 64-bit
value.  Adjusting just the value converted to milliseconds to account
for lost 2**32 ticks is also not possible, because 2**32 ticks may not
correspond to an integer number of milliseconds.  Therefore the tick
counter overflow is handled as follows:

  - A reasonably large number of ticks (the highest multiple of the
    ChibiOS timer frequency that fits into uint32_t) is subtracted from
    the tick counter, so that its value is again brought below 2**32.
    The subtracted value is chosen so that it would correspond to an
    integer number of seconds, therefore it could be converted to
    milliseconds without any loss of precision.

  - The equivalent number of milliseconds is then added to the converted
    QMK timer value, so that the QMK timer continues to count
    milliseconds as it was before the tick counter overflow.

* chibios/timer: Add a virtual timer to make 16-bit timer updates more reliable

The code which extends the 16-bit ChibiOS system timer to a 32-bit tick
counter requires that it is called at least once for every overflow of
the system timer (otherwise the tick counter can skip one or more
overflow periods).  Normally this requirement is satisfied just from
various parts of QMK code reading the current timer value; however, in
some rare circumstances the QMK code may be blocked waiting for some
event, and when this situation is combined with having a rather high
timer frequency, this may result in improper timekeeping.

Enhance the timer reliability by adding a ChibiOS virtual timer which
invokes a callback every half of the timer overflow period.  The virtual
timer callback can be invoked even when the normal QMK code is blocked;
the only requirement is that the timer interrupts are enabled, and the
ChibiOS kernel is not locked for an excessive time (but the timer update
will eventually work correctly if the virtual timer handling is not
delayed by more than a half of the timer overflow period).

Keeping a virtual timer always active also works around a ChibiOS bug
that can manifest with a 16-bit system timer and a relatively high timer
frequency: when all active virtual timers have delays longer than the
timer overflow period, the handling of virtual timers stops completely.
In QMK this bug can result in a `wait_ms()` call with a delay larger
than the timer overflow period just hanging indefinitely.  However, when
the timer update code adds a virtual timer with a shorter delay, all
other virtual timers are also handled properly.
2022-02-05 05:08:50 +11:00
Joel Challis
8927d56606 Update outputselect to use platform connected state API (#16185) 2022-02-04 09:55:58 -08:00
QMK Bot
e212c7c2e5 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 17:46:59 +00:00
James Young
98916fd862 MTBKeys MTB60 Hotswap Layout Macro Refactor (#16194) 2022-02-04 09:46:21 -08:00
QMK Bot
5178f75475 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 16:00:17 +00:00
Salicylic-acid3
405c04e0d2 [Keyboard] Add Keyboards GL516s (#14950)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-04 07:59:38 -08:00
QMK Bot
d966b39c5d Merge remote-tracking branch 'origin/master' into develop 2022-02-04 04:32:58 +00:00
James Young
1cb423c424 Mokey xox70hot: rename LAYOUT to LAYOUT_tkl_nofrow_ansi_tsangan (#16193) 2022-02-03 20:32:20 -08:00
QMK Bot
249280cac2 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 03:45:30 +00:00
Nick Brassel
3403f5813c Point out that deferred execution needs to be enabled in rules.mk (#16196) 2022-02-04 03:44:51 +00:00
Nick Brassel
db43e45077 Ensure version.h is recreated each build. (#16188) 2022-02-04 07:36:02 +11:00
QMK Bot
57a78b68de Merge remote-tracking branch 'origin/master' into develop 2022-02-03 10:19:27 +00:00
Richard
333dd5d48c Fix axis inversion (#16179) 2022-02-03 10:18:26 +00:00
Nick Brassel
0be2eaf174 Create a build error if no bootloader is specified. (#16181)
* Create a build error if no bootloader is specified.

* Update builddefs/bootloader.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-02-03 19:22:49 +11:00
QMK Bot
0d7ff026b1 Merge remote-tracking branch 'origin/master' into develop 2022-02-02 21:09:21 +00:00
Ryan
27e390777b Fix a couple of mismatched info.json layout names (#16164)
* Fix a couple of mismatched info.json layout names

* Fix layouts

* Clean up layouts
2022-02-02 21:08:48 +00:00
QMK Bot
24da0457f8 Merge remote-tracking branch 'origin/master' into develop 2022-02-02 16:22:19 +00:00
Nick Brassel
3897eaac30 Fixup line endings for kt60-M. 2022-02-03 03:19:08 +11:00
QMK Bot
96dbbc0439 Format code according to conventions (#16169) 2022-02-02 16:25:32 +11:00
Nick Brassel
1bdc1c23c7 Fixup builds so that teensy EEPROM knows which MCU it's targeting. (#16168) 2022-02-02 16:21:07 +11:00
QMK Bot
593704b7a7 Merge remote-tracking branch 'origin/master' into develop 2022-02-02 05:05:53 +00:00
Ivan Gromov
bf2b3f7907 [Keyboard] Add keyten kt60-M (#16150) 2022-02-01 21:05:23 -08:00
QMK Bot
9aed323aa0 Merge remote-tracking branch 'origin/master' into develop 2022-02-02 05:05:18 +00:00
Andre Brait
70c5915da8 [Keymap] Add MacOS layer (#16151)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-01 21:04:50 -08:00
Drashna Jaelre
d4dc743a85 Fix issues with Python Tests (#16162)
* Reformat python due to yapf changes

* Fix pytest keymap list test

* revert formatting

* Use contra, because, well

https://www.reddit.com/r/MechanicalKeyboards/comments/8riofq/did_i_kill_my_contra/
2022-02-02 15:44:42 +11:00
Nick Brassel
d6d48aa2aa Remove old .gitignore entry. Add more macOS junk exclusions. (#16167) 2022-02-02 15:36:37 +11:00
QMK Bot
74420c9fa2 Merge remote-tracking branch 'origin/master' into develop 2022-02-02 04:33:01 +00:00
joedinkle
50f55c61fd [Keyboard] Added keymaps for SPRH and update encoder (#16098) 2022-02-01 20:32:27 -08:00
QMK Bot
7d38aec3ac Merge remote-tracking branch 'origin/master' into develop 2022-02-02 04:31:44 +00:00
Ryan
c9f88d7c67 qmk doctor: display qmk_firmware version tag (#16155) 2022-02-01 20:31:42 -08:00
Adrian Fleiszer
16ad8c0159 [Keyboard] Add YMDK sp64 VIA support (#16152) 2022-02-01 20:31:05 -08:00
Nick Brassel
6e2b03cf69 Fixup multibuild filegen (#16166)
* Add env variable support to multibuild.

* Generate version.h in build-specific location.
2022-02-02 15:30:22 +11:00
Nick Brassel
e22efc037a Don't make EEPROM size assumptions with dynamic keymaps. (#16054)
* Don't make EEPROM size assumptions with dynamic keymaps.

* Add support for checking against emulated flash, error out if someone attempts to build a board without specifying EEPROM size.

* Reorder defines so that MCU is considered last.

* Refactor EEPROM definitions for simplicity.

* Fix max sizing of kabedon/kabedon980.

* Fix max sizing of mechlovin/olly/jf.

* Fix unit tests.

* Review comments, add messages with values during build failures.
2022-02-02 15:04:37 +11:00
peepeetee
da5cb5fd6f [Keyboard] move woodkeys.click keyboards to /woodkeys (#16113) 2022-01-31 20:44:28 -08:00
peepeetee
984481ff8e [Keyboard] move @drhigsby 's boards into /drhigsby (#16041) 2022-01-31 20:36:16 -08:00
QMK Bot
3b580de023 Merge remote-tracking branch 'origin/master' into develop 2022-02-01 02:59:00 +00:00
Drashna Jaelre
f2c9fa81de [Keyboard] enable rgb modes for jkb65 (#16159) 2022-01-31 18:58:29 -08:00
peepeetee
a2cfa23baf [Keyboard] move @vuhopkep 's keebs into /hnahkb (#16102) 2022-01-31 18:13:33 -08:00
peepeetee
d9238b7baf [Keyboard] fix missed .noci in reviung move (#16107) 2022-01-31 18:13:13 -08:00
peepeetee
b8deac707e [Keyboard] move @tominabox1 's keebs into /tominabox1 (#16109) 2022-01-31 18:12:57 -08:00
peepeetee
1477440ba0 [Keyboard] move niu_mini to /kbdfans (#16112) 2022-01-31 18:12:39 -08:00
QMK Bot
735fb8a8b6 Merge remote-tracking branch 'origin/master' into develop 2022-02-01 02:11:34 +00:00
peepeetee
8515d12e20 [Keyboard] move @omkbd 's boards to /omkbd (#16116) 2022-01-31 18:11:18 -08:00
WiZ.GG
7b35dda31e [Keyboard] R2 version of jadookb/jkb65 (#16129)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-31 18:11:03 -08:00
QMK Bot
658d211804 Merge remote-tracking branch 'origin/master' into develop 2022-02-01 02:08:56 +00:00
Ben Allen
602472dbfa [Keyboard] ReadMe corrections for crkbd (#16149) 2022-01-31 18:08:27 -08:00
QMK Bot
e4afd371dc Merge remote-tracking branch 'origin/master' into develop 2022-02-01 02:08:02 +00:00
Albert Y
68473e66b6 [Keyboard] Typo correction in ferris sweep readme (#16148) 2022-01-31 18:07:57 -08:00
Albert Y
b56707a517 [Keyboard] Simplify handedness for cradio (#16147) 2022-01-31 18:07:33 -08:00
QMK Bot
97ee1c0aee Merge remote-tracking branch 'origin/master' into develop 2022-02-01 02:06:00 +00:00
Albert Y
a2ef11bb00 [Docs] Add reference to data sync options for RGB (#16144) 2022-01-31 18:05:09 -08:00
QMK Bot
d36c245400 Merge remote-tracking branch 'origin/master' into develop 2022-02-01 00:29:19 +00:00
takishim
f404ec329f Fixed a bug in pin assignment. (#16158)
Added original copyright notice.
Assign the tilde key to layer 1.

Co-authored-by: takishim <tadashi@kishimo.to>
2022-02-01 00:28:48 +00:00
XScorpion2
a33dcb5a9a Small fix for Sol 3 brightness limits (#16157) 2022-02-01 00:10:46 +00:00
QMK Bot
1571f8e258 Merge remote-tracking branch 'origin/master' into develop 2022-01-31 21:31:58 +00:00
Ryan
59f37bb710 Fix build failure for LW67, rename ansi keymap to default (#16154)
* Fix build failure for LW67, rename ansi keymap to default

* Fix keycode typos as well
2022-02-01 08:31:15 +11:00
peepeetee
84b7fc364d [Keyboard] move @takai 's keyboards into /recompile_keys (#16053) 2022-01-31 11:52:01 -08:00
peepeetee
ae705e3e55 [Keyboard] move @ka2hiro 's boards into /kagizaraya (#16070) 2022-01-31 11:48:51 -08:00
peepeetee
3fefaf7f6b [Keyboard] move @GlenPickle 's chimera* boards into a folder (#16072) 2022-01-31 11:47:38 -08:00
peepeetee
6cb0e8924b [Keyboard] move @yynmt 's boards into /yynmt (#16075) 2022-01-31 11:46:08 -08:00
peepeetee
2427678f7d [Keyboard] move @Biacco42 's keebs into /biacco42 (#16080) 2022-01-31 11:44:45 -08:00
peepeetee
2e052b87c4 [Keyboard] move unikeyboard boards to /unikeyboard (#16081) 2022-01-31 11:42:53 -08:00
QMK Bot
4452be587b Merge remote-tracking branch 'origin/master' into develop 2022-01-31 19:40:44 +00:00
xerootg
1111ff604d [Keyboard] Add the proton c as a controller for the redox (#16106)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: xerootg <xerootg@github.com>
2022-01-31 11:40:13 -08:00
QMK Bot
781cdde288 Merge remote-tracking branch 'origin/master' into develop 2022-01-31 19:35:14 +00:00
James Young
59ebe28cd5 KeebsForAll FreebirdTKL Layout Macro Refactor (#16146) 2022-01-31 11:34:34 -08:00
QMK Bot
d1e1f95975 Merge remote-tracking branch 'origin/master' into develop 2022-01-31 19:32:13 +00:00
Laneware
37093eb929 [Keyboard] Add LW67 keyboard (#16141)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-31 11:31:32 -08:00
QMK Bot
8116b2a15c Merge remote-tracking branch 'origin/master' into develop 2022-01-31 11:16:45 +00:00
James Young
7512e58cfe KapCave Arya: Fix QMK Configurator Implementation (#16145)
* move layout macro alias to info.json

* info.json: fix layout macro reference

* info.json: fix layout data

Original layout data was generated with rotation, which breaks the rendering.

* info.json: remove layout macro alias

It's not used anywhere, so no need to keep it.

* rules.mk: enable Community Layout support
2022-01-31 11:16:04 +00:00
QMK Bot
14c1bd3b93 Merge remote-tracking branch 'origin/master' into develop 2022-01-31 01:27:07 +00:00
James Young
4277dc3ac9 wilba.tech WT60-H3 Layout Macro Refactor (#16140)
* move ISO Enter argument to home row

Moves the ISO Enter key's argument to the home row to conform to QMK's standard for traditionally-staggered boards.

* update info.json data
2022-01-30 17:26:27 -08:00
QMK Bot
8ad59ec127 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 23:11:13 +00:00
James Young
2e13f7d9f0 Mechlovin Olly BB Touch-Up (#16137)
* fix keymap alignment

Both the `default` and `via` keymaps had misalignments on the top 3 layers, which was misleading as to which keycode was on which switch on those layers.

* fix layout macro reference in info.json

* friendly-format info.json, phase 1

Adds line breaks between keyboard rows.

* correct info.json key sequence

* bb.h: use XXX for KC_NO

* bb.h: add matrix diagram

* add LAYOUT_ansi_split_bs

Includes reference keymap.

* add LAYOUT_iso_split_bs

Includes reference keymap.

* info.json: remove meta key
2022-01-30 23:10:42 +00:00
QMK Bot
4297f0669b Merge remote-tracking branch 'origin/master' into develop 2022-01-30 23:10:15 +00:00
James Young
c6a613ef7c gergoplex: add QMK Configurator data (#16138) 2022-01-30 23:09:46 +00:00
QMK Bot
fc74d6b8d9 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 23:08:10 +00:00
Ryan
bdca5132a4 Fave84H/87H: Fix stray closing brace in default keymap (#16136) 2022-01-30 15:07:40 -08:00
Nick Brassel
9af9af73f4 Fix up default folder locations. (#16135) 2022-01-30 21:48:05 +00:00
Drashna Jaelre
d1cf218b9d [Keyboard] Overhaul Tractyl Manuform (#16134) 2022-01-30 13:29:43 -08:00
Drashna Jael're
b57f8a8b9f Merge remote-tracking branch 'origin/master' into develop 2022-01-30 13:23:13 -08:00
Drashna Jaelre
941b1d35b8 [Keymap] Add oled improvements and cnano keymap for drashna (#16133) 2022-01-30 13:20:33 -08:00
QMK Bot
1be1bebc04 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 19:29:29 +00:00
Wolf Van Herreweghe
3555ee0555 [Keyboard] Add the FAve 87H (#15965)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-01-30 11:28:53 -08:00
peepeetee
a1b39e6db2 [Keyboard] move That-Canadian 's boards into /maple_computing (#16050) 2022-01-30 11:28:04 -08:00
peepeetee
07bb65384c [Keyboard] move @kkatano 's keyboards to kkatano user folder (#15684) 2022-01-30 11:22:12 -08:00
peepeetee
51e99b562d [Keyboard] move @monksoffunk 's boards into 25keys/ (#15789) 2022-01-30 11:17:04 -08:00
QMK Bot
211533c738 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 19:13:37 +00:00
Alin Marin Elena
b0da230213 [Keyboard] add mlego/m65 oled revision (#15833) 2022-01-30 11:13:08 -08:00
QMK Bot
b4f124c78c Merge remote-tracking branch 'origin/master' into develop 2022-01-30 19:06:54 +00:00
Sergey Vlasov
03b1d9ef1f Add a warning about USBtinyISP limitations to the ISP flashing guide (#15898) 2022-01-30 11:06:19 -08:00
QMK Bot
2d23516462 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 19:00:54 +00:00
Gigahawk
b20bbc7152 [Keymap]: Create Gigahawk GMMK Pro keymap (#15934) 2022-01-30 11:00:22 -08:00
QMK Bot
56623a6224 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 18:59:30 +00:00
Wolf Van Herreweghe
0200020162 [Keyboard] Small fixes to the Keybee65 (#15966)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-01-30 10:59:24 -08:00
Wolf Van Herreweghe
5576f641ce [Keyboard] Add base FAve 84H firmware (#15967)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-01-30 10:58:58 -08:00
peepeetee
566f6e7b76 [Keyboard] move @matthewdias 's keebs into matthewdias/ (#15991) 2022-01-30 10:58:40 -08:00
Vino Rodrigues
cad8866db1 Add support for Q-series on the ckled2001 LED driver (#16051) 2022-01-30 10:56:54 -08:00
QMK Bot
3f7da15bba Merge remote-tracking branch 'origin/master' into develop 2022-01-30 18:53:06 +00:00
mmccoyd
cffc3fcce5 [Keyboard] Re-org Hillside folders and fix default keymap (#16128)
Co-authored-by: mmccoyd <mmccoyd@cs.berkley.edu>
2022-01-30 10:53:01 -08:00
peott-fr
a78b80966b [Keymap] Adding Sunsetter keymap (#16126) 2022-01-30 10:52:36 -08:00
QMK Bot
dc816a98fe Merge remote-tracking branch 'origin/master' into develop 2022-01-30 18:47:30 +00:00
peepeetee
a6a7b1ce8f [Keyboard] move @ibnuda 's keebs into /ibnuda (#16108) 2022-01-30 10:47:26 -08:00
Christian Grumbein
62851b5abd [Keymap] Add hachetman layout for GMMK Pro (#16131) 2022-01-30 10:47:11 -08:00
Andrew Garver
7a81d5ee0d [Keyboard] added via keymap for ferris sweep (#16130) 2022-01-30 10:46:54 -08:00
QMK Bot
84c1fcef05 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 18:36:17 +00:00
James Young
42ba4e8cae Cutie Club Giant Macro Pad: Update QMK Configurator Implementation (#16132) 2022-01-30 10:35:43 -08:00
Ryan
7d685956cc Rename AdafruitBLE to BluefruitLE (#16127) 2022-01-30 17:29:42 +00:00
QMK Bot
9f4769fbe6 Merge remote-tracking branch 'origin/master' into develop 2022-01-30 07:12:22 +00:00
James Young
aee6ff5c08 Xelus Pachi: add info.json files; rename layout macros (#16123)
* xelus/pachi/mini_32u4: add info.json

* xelus/pachi/rev1: add info.json

* xelus/pachi/rgb/rev1: add info.json

* xelus/pachi/rgb/rev2: add info.json

* rename LAYOUT_ansi_tsangan to LAYOUT_tkl_ansi_tsangan

Rename `LAYOUT_ansi_tsangan` to `LAYOUT_tkl_ansi_tsangan` for the Pachi RGB revisions.
2022-01-29 23:11:50 -08:00
QMK Bot
749fa8b55f Merge remote-tracking branch 'origin/master' into develop 2022-01-29 23:30:10 +00:00
James Young
66c81ed82e Takashi Company Center x Enter: correct info.json key sequence (#16120)
* info.json: apply friendly formatting

* info.json: update labels for clarity

* info.json: correct key sequence
2022-01-29 23:29:42 +00:00
QMK Bot
02dff061db Merge remote-tracking branch 'origin/master' into develop 2022-01-29 23:29:28 +00:00
James Young
e0de2b0279 Takashi Company QooLee: correct info.json key sequence (#16121)
* info.json: apply friendly formatting

* info.json: correct maintainer field

Fixes a typo.

* info.json: correct key sequence
2022-01-29 23:28:57 +00:00
QMK Bot
b001d9383a Merge remote-tracking branch 'origin/master' into develop 2022-01-29 23:28:42 +00:00
James Young
bfc691eaab Wuque Mammoth75x: refactor (#16122)
* info.json: apply/polish friendly formatting

* refactor LAYOUT_all macro

- move the argument/keycode for the right half of split Backspace next to the left half
- update QMK Configurator layout data

* update QMK Configurator layout data for the other macros

Moves the EncoderClick objects up, and offsets the arrow keys down 0.25u.
2022-01-29 23:28:14 +00:00
QMK Bot
8696d93e96 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 23:27:35 +00:00
James Young
c2905437ea Cutie Club x Keebcats Denis: codebase touch-up and info.json update (#16124)
* denis.h: use QMK 3-character notation

* info.json: apply friendly formatting

* info.json: add missing layout trees

* info.json: fix key sequence on ISO layouts
2022-01-29 23:26:47 +00:00
QMK Bot
c969d4ece3 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 21:29:50 +00:00
James Young
cabdef8395 Studio Kestra Bourgeau: rename LAYOUT_all to LAYOUT_75_ansi_rwkl (#16119)
* rename LAYOUT_all to LAYOUT_75_ansi_rwkl

The only supported layout is 75% ANSI, with two modifier keys on the right of the Spacebar instead of three.

* info.json: use maintainer's GitHub username
2022-01-29 21:29:45 +00:00
James Young
8219472cc9 CK65: LAYOUT_65_iso compatibility (#16118)
* info.json: apply friendly formatting

* ck65.h: use QMK 3-character notation

* move Enter keycode/argument to home row

This commit makes the `LAYOUT` macro conformant to `LAYOUT_65_iso` in QMK.

* rename LAYOUT to LAYOUT_65_iso

* use QMK-native KC_TRNS alias in keymaps

Replaces instances of `KC_TRNS` with `_______` in keymaps.

* info.json: update maintainer field
2022-01-29 21:29:12 +00:00
QMK Bot
86bb162dd3 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 21:17:50 +00:00
Ryan
9482a097c8 Fix Cypher rev6 VIA keymap (#16117) 2022-01-29 21:17:18 +00:00
QMK Bot
67b001c737 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 18:50:19 +00:00
ojthetiny
dd9bbd8d4a [Keyboard] Add the demiurge keyboard (#16074)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-29 10:49:54 -08:00
QMK Bot
6c380e0eb1 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 18:29:10 +00:00
Bahrul Hidayat
d59c982d17 [Keyboard] add synthesis60 (#15864)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-29 10:28:38 -08:00
QMK Bot
38de0681ff Merge remote-tracking branch 'origin/master' into develop 2022-01-29 18:28:12 +00:00
Felipe Bastos
2100a7ca7b Move kbdpad_mk2 to kbdpad/mk2, add numpad layout to mk2.h (#15892) 2022-01-29 10:28:00 -08:00
Alex Grover
3307a8e057 [Keymap] Add media keys to default UT47.2 keymap (#15893) 2022-01-29 10:27:29 -08:00
QMK Bot
d6abdda34f Merge remote-tracking branch 'origin/master' into develop 2022-01-29 16:06:50 +00:00
IskandarMa
d48bff8342 [Docs] zh-cn documentation translate: hand-wire (#15666)
Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-01-29 16:06:19 +00:00
QMK Bot
d0faaa9c7c Merge remote-tracking branch 'origin/master' into develop 2022-01-29 14:28:24 +00:00
Joel Challis
cc6017517d Planck/Preonic - Enable default encoder behaviour on configurator (#16104) 2022-01-29 14:28:13 +00:00
IskandarMa
9e79f27547 [Docs] zh-cn document translate: IDE configuration (#15575)
Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-01-29 14:27:57 +00:00
QMK Bot
b79b8dcdd0 Format code according to conventions (#16110) 2022-01-29 12:25:49 +00:00
Pete Sevander
d700447dda Combo TAP_CODE_DELAY and clear_weak_mods (#15866) 2022-01-28 23:19:36 -08:00
QMK Bot
8c1c377272 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 07:11:11 +00:00
Cable Car Designs
70b51dc1bf [Keyboard] add cypher rev6 (#14647)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-28 23:10:41 -08:00
QMK Bot
6991631385 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 07:07:29 +00:00
SandwichRising
59502f930e [Keyboard] Added sandwich/keeb68 to keyboards (#15007)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-01-28 23:07:00 -08:00
QMK Bot
20fac523c7 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 07:05:20 +00:00
Chris Broekema
002a1add8b [Keyboard] Add misterdeck 3d-printed handwired stream deck (#15556)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-28 23:04:42 -08:00
Ga68
1f59fe6d1b Adjust tap_code16 to account for TAP_HOLD_CAPS_DELAY (#15635)
Co-authored-by: Ga68 <github.ga68.e@grxme.com>
2022-01-28 23:03:21 -08:00
QMK Bot
3e9551bcfa Merge remote-tracking branch 'origin/master' into develop 2022-01-29 06:59:01 +00:00
IFo Hancroft
13e6517460 [Keymap] Further improvements to ifohancroft ErgoDox keymap (#15672) 2022-01-28 22:58:28 -08:00
QMK Bot
aff9eafea5 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 06:43:15 +00:00
yiancar
1ca636819f [Keyboard] Fix Nasu Indicators (#15878)
Co-authored-by: yiancar <yiancar@gmail.com>
2022-01-28 22:42:39 -08:00
QMK Bot
fee5950a5c Merge remote-tracking branch 'origin/master' into develop 2022-01-29 03:28:29 +00:00
Christian Sandven
1af65a2248 [Keyboard] Add keyprez unicorn (#15998)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-01-28 19:28:00 -08:00
QMK Bot
720ccf9559 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 03:27:16 +00:00
Monksoffunk
b2fcc923cb [Docs] Update Encoder docs about multiple encoders (#16036) 2022-01-28 19:26:42 -08:00
QMK Bot
2f5074cf32 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 01:35:09 +00:00
Gabriel Harel
dcff1a34c7 Remove missing and trailing commas in info.json files. (#16088) 2022-01-28 17:34:38 -08:00
QMK Bot
46e2caea78 Merge remote-tracking branch 'origin/master' into develop 2022-01-29 00:19:53 +00:00
Álvaro A. Volpato
bd8e257f84 [Keyboard] Adds Elongate Revision Delta PCB support (#15498)
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>
2022-01-28 16:19:11 -08:00
QMK Bot
51ee8965a7 Merge remote-tracking branch 'origin/master' into develop 2022-01-28 23:34:08 +00:00
wyethGR
db56db2f79 [Keymap] Added personal 36 key layout for 40percentclub's nori (#15980)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-28 15:33:26 -08:00
QMK Bot
99478417ac Merge remote-tracking branch 'origin/master' into develop 2022-01-27 15:57:01 +00:00
Albert Y
0f0e90971b [Docs] OLED documentation edits (#15977)
* Clarify OLED_TIMEOUT

* Add a section on logo file location
2022-01-27 15:56:20 +00:00
QMK Bot
7c4992bce1 Merge remote-tracking branch 'origin/master' into develop 2022-01-27 15:51:25 +00:00
Álvaro A. Volpato
d55337ba4d Add support for Mode SeventyFive (#16030)
* Initial M75H support

* Remove BSLS key

* Add M75S initial support

* Define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR to allow VIA

* Add layer 1 for M75H

* Add layer 1 for M75H

* Fix layouts

* Add BOOTLOADER and remove BOOTLOADER address from rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-27 15:50:42 +00:00
QMK Bot
59f9703224 Merge remote-tracking branch 'origin/master' into develop 2022-01-27 15:42:37 +00:00
p4yne
f39e65493e [Keyboard] fixed led_config: missing key, missing/wrong flags (#16048)
* fixed ledmap: missing key, missing/wrong flags

* Update keyboards/kprepublic/bm65hsrgb_iso/bm65hsrgb_iso.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* corrected c&p error user name in GPL header

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
2022-01-27 15:41:47 +00:00
QMK Bot
f25977bcd4 Merge remote-tracking branch 'origin/master' into develop 2022-01-27 15:37:50 +00:00
KraXen72
b31f814e8c Fixes for slovak language-specific keycodes (#16019) 2022-01-27 15:36:43 +00:00
QMK Bot
2ab685565a Merge remote-tracking branch 'origin/master' into develop 2022-01-27 14:50:48 +00:00
Drashna Jaelre
f6d3bede9a [Keyboard] Fix compilation issues for creatkeebs thera (#16071) 2022-01-27 14:50:04 +00:00
QMK Bot
5ee29dc000 Merge remote-tracking branch 'origin/master' into develop 2022-01-27 14:49:24 +00:00
Damien Guard
de3fdef2ca Mehkee96 LED state & count + transposed keys fixes (#16061)
* Fix transposed keys at top right of board.

* Correct LED on state

* Correct number of LEDs

* Default LED state is fine
2022-01-27 14:48:45 +00:00
QMK Bot
799de75b8b Merge remote-tracking branch 'origin/master' into develop 2022-01-27 05:16:34 +00:00
James Young
a211887978 Keychron QMK Configurator Refactor (#16034) 2022-01-26 21:16:09 -08:00
Stefan Kerkmann
be59e8af2b Deprecate split transactions status field (#16023) 2022-01-26 21:13:27 -08:00
QMK Bot
ed8ab3e32c Merge remote-tracking branch 'origin/master' into develop 2022-01-27 05:13:11 +00:00
James Young
52e12588c9 Krush65 Solder Refactor (#16065) 2022-01-26 21:13:07 -08:00
James Young
9e6874bd4d CK60: LAYOUT_60_iso compatibility (#16066) 2022-01-26 21:12:42 -08:00
QMK Bot
2df420f1f4 Merge remote-tracking branch 'origin/master' into develop 2022-01-27 05:02:08 +00:00
Tim Liu
b39fc98b4d [Keyboard] Creatkeebs (#15766)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-26 21:01:33 -08:00
Joel Challis
6a9ec74b32 Remove unused suspend_idle (#16063) 2022-01-26 14:57:28 -08:00
QMK Bot
9e5f8983ec Merge remote-tracking branch 'origin/master' into develop 2022-01-26 22:01:51 +00:00
Ryan
8c56bfe854 CU65: Fix VIA keymap (#16062) 2022-01-26 22:01:11 +00:00
Dasky
7b31fc54df Enable a default task throttle for split pointing. (#15925) 2022-01-26 19:24:29 +00:00
QMK Bot
c99cbd915f Merge remote-tracking branch 'origin/master' into develop 2022-01-26 19:23:51 +00:00
James Young
0a2a764155 Krush60 Solder Refactor (#16029)
* solder.h: add matrix diagram

* solder.h: remove unnecessary comments

* rework LAYOUT_60_iso to LAYOUT_60_isoenter_split_bs

True ISO layouts are not supported on this keyboard because the PCB lacks support for split Left Shift. Renames the `iso` to `isoenter` to specify this.

- denotes use of Split Backspace
- move Backslash keycode to home row

* info.json: remove trailing whitespace

* info.json: clean up

Sort the layout trees into the same order as `solder.h`, and remove the `LAYOUT_60_all` tree (doesn't exist in source).

* solder.h: align positional arguments

Helps me proof-read the layouts at a glance. No logic change.

* fix syntax errors in keymaps

* remove ISO layouts

As previously noted, ISO layouts are not supported due to the PCB's lack of support for split Left Shift.

* rename LAYOUT_60_ansi_tsangan_split_bs to LAYOUT_60_tsangan_hhkb

Also renames `60_tsangan_splt_bs` keymap to `60_tsangan_hhkb`.

* rename LAYOUT_60_ansi_tsangan to LAYOUT_60_ansi_tsangan_split_rshift

Also renames `60_tsangan` keymap to `60_ansi_tsangan_split_rshift`.

* rename LAYOUT_60_ansi_arrow_split_bs_7u_spc to LAYOUT_60_ansi_arrow_tsangan_split_bs

Also rename `60_ansi_arrow_splt_bs_7u` to `60_ansi_arrow_tsangan_split_bs`.

* rename LAYOUT_60_ansi_arrow_7u_spc to LAYOUT_60_ansi_arrow_tsangan

Also renames `60_ansi_arrow_7u` keymap to `60_ansi_arrow_tsangan`.

* rename keymaps based on layout macro used

Making this easier to track in my head while I work on it.

* info.json: fix syntax errors

* rename LAYOUT_60_ansi_split_bs_7u_spc to LAYOUT_60_ansi_tsangan_split_bs

- renames `60_ansi_split_bs_7u_spc` keymap to `60_ansi_tsangan_split_bs`
- removes `layout_aliases` entry from `info.json` (creates incompatible data conflict)

* rename LAYOUT_60_ansi_7u_spc to LAYOUT_60_ansi_tsangan

- renames `60_ansi_7u_spc` keymap to `60_ansi_tsangan`

* info.json: remove LAYOUT_60_ansi_tsangan layout_aliases entry

Causes an incompatible data conflict.

* add second layer to 60_ansi keymap

* update via keymap

Now matches the behaviour of the default keymap.

* fix syntax errors in keymaps, take 2

* add RGB and Navigation keycodes

Adds RGB and Navigation keycodes to the `60_isoenter_split_bs`, `default` and `via` keymaps.
2022-01-26 11:23:18 -08:00
Ryan
4f6c0d0ea5 More keyboard rules.mk cleanups (#16044)
* More keyboard rules.mk cleanups

* Found a couple more
2022-01-25 20:21:08 +00:00
QMK Bot
44e62a3634 Merge remote-tracking branch 'origin/master' into develop 2022-01-25 13:43:25 +00:00
Drashna Jaelre
ca10e4d075 [Keyboard] Fix orientation issues for Ploopy pointing devices (#16035) 2022-01-25 13:42:54 +00:00
QMK Bot
efbfd30318 Merge remote-tracking branch 'origin/master' into develop 2022-01-25 13:41:28 +00:00
Ryan
3e0ee6fb74 Fix joystick button off-by-one error (#16037) 2022-01-25 13:40:55 +00:00
Joel Challis
2da12182f3 Fix handwired/ms_sculpt_mobile default keymap (#16032) 2022-01-25 13:10:51 +00:00
Joel Challis
7df371750f Workaround in Makefile for recursive rule matching (#15988)
* Bodge for recursive rule matching

* Bodge for recursive rule matching - force python3

* Tidy up
2022-01-25 11:50:35 +11:00
Nick Brassel
5f23345886 Add a script that simplifies running commands under docker. (#16028) 2022-01-24 23:58:53 +00:00
Joel Challis
bf9569db93 Various Makefile optimisations (#16015) 2022-01-24 23:54:56 +00:00
Ryan
c71c0fba90 Fix bootloader_jump for certain CTRL boards (#16026) 2022-01-25 09:28:13 +11:00
Joel Challis
5249a606f1 Fix up issue with PROGMEM and hand_swap_config (#16027) 2022-01-24 22:20:08 +00:00
Ryan
1d11ae3087 Rip out old macro and action_function system (#16025)
* Rip out old macro and action_function system

* Update quantum/action_util.c

Co-authored-by: Joel Challis <git@zvecr.com>
2022-01-24 21:22:20 +00:00
QMK Bot
3340ca46e8 Merge remote-tracking branch 'origin/master' into develop 2022-01-24 15:58:34 +00:00
tofurky
6cc4e32e61 [Keyboard] Fix frosty_flake LED pin assignment (#16000)
4c080be seemed to swap the LED pins for the 20130602 and 20140521
variants. 20140521 is fine now, 20130602 untested but per the
schematics at https://deskthority.net/wiki/Costar_replacement_controllers
it seems correct.
2022-01-24 15:57:50 +00:00
Nick Brassel
8f22819d47 Default EEPROM implementation should be transient when not implemented. Removed the equivalent eeprom_teensy fallback. (#16020) 2022-01-24 14:18:05 +00:00
QMK Bot
489c5ff4a2 Merge remote-tracking branch 'origin/master' into develop 2022-01-24 01:37:57 +00:00
fOmey
0c3c34e589 RGB matrix effects definiton fix (#15930)
* RGB matrix effects definiton fix

* Move LTO to board rules & add some comments

* Whitespace fix

* Whitespace fix 2

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

* Whitespace fix 3

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

* Comment fix

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-01-24 01:37:26 +00:00
QMK Bot
939006d2e5 Merge remote-tracking branch 'origin/master' into develop 2022-01-24 01:33:44 +00:00
Tobias Minn
0015f15f9a DZ60 - QMK Configurator fix for ISO DE Arrow layout (#15941) 2022-01-24 01:32:59 +00:00
QMK Bot
95321fbc2c Merge remote-tracking branch 'origin/master' into develop 2022-01-23 22:15:53 +00:00
Nick Brassel
7d6e15423b Add some clarity regarding new board definitions (#16018) 2022-01-23 22:15:09 +00:00
Nick Brassel
77062e9a36 Add L432, L442. (#16016) 2022-01-24 08:49:36 +11:00
QMK Bot
0f53e1333f Merge remote-tracking branch 'origin/master' into develop 2022-01-23 20:38:05 +00:00
Olli
c30bdcbca8 [Keymap] Remove Ergodox community layout “coderkun_neo2” (#16011) 2022-01-23 12:38:02 -08:00
HorrorTroll
812836e22f [Keyboard] Fixed RGB number for Devil68 Pro (#16003) 2022-01-23 12:37:17 -08:00
Drashna Jaelre
8776b4b088 [Keyboard] Fix erroneous SRC for Clueboard 66 hotswap (#16007) 2022-01-23 15:10:59 +00:00
Joel Challis
a8700404f7 Relocate matrix_init_quantum content (#15953)
* Relocate matrix_init_quantum content

* Update include order

* Fix cherry pick from 15722
2022-01-23 02:41:57 +00:00
Drashna Jaelre
8101a836a4 [Bug] Fix compilation issues for led indicators (#16001) 2022-01-22 23:43:39 +00:00
Joel Challis
eddd1c0567 Fix BACKLIGHT_CAPS_LOCK warning (#15999)
* Fix BACKLIGHT_CAPS_LOCK warning

* align defs
2022-01-22 23:11:42 +00:00
Joel Challis
6e83b44940 Align location of some host led logic (#15954)
* Align location of host led logic

* Move more

* align ifdefs

* Fix up includes

* Move callback defs

* Convert comment to build message
2022-01-22 21:17:02 +00:00
Ryan
448a90f6b0 rocketboard_16: Fix mismatched LUT sizes (#15997) 2022-01-23 06:56:44 +11:00
Ryan
8ec18d1476 Remove action_function() from LFKeyboards boards (#15993) 2022-01-22 18:24:02 +00:00
QMK Bot
4ef11f0905 Merge remote-tracking branch 'origin/master' into develop 2022-01-22 15:04:17 +00:00
dnlsmy
1bc1b1b313 Update readme.md (#15989)
Spelling correction
2022-01-22 15:03:50 +00:00
QMK Bot
8863e1f696 Merge remote-tracking branch 'origin/master' into develop 2022-01-22 10:26:24 +00:00
lalalademaxiya1
57d116796a Add rgb matrix support for q2 of keychron. (#15946)
* Add new keyboard keychron_q1_rev_0101 for Keychron.

* Update keymaps of keychron_q1_rev_0100 and keychron_q1_rev_0102.

* Update keyboards/keychron/q1/rev_0101/rev_0101.h

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

* Update keymap.c

* Add new info.json.

* Update info.json

* Update keyboards/keychron/q1/rev_0101/keymaps/default/keymap.c

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

* Update keyboards/keychron/q1/rev_0101/rev_0101.c

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

* Update keyboards/keychron/q1/rev_0101/keymaps/via/keymap.c

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

* Update keyboards/keychron/q1/rev_0101/rev_0101.c

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

* Update keymap.c

* Update info.json

* Update all via keymaps keymaps of q1 series.  KC_TASK and KC_FLXP are now defined using the VIA user keycodes range so they can be renamed "TASK" and "TILE" as a shortName in VIA.

* Add keyboards keychron_q2 series.

* Update default keymaps of keychron_q2 series.

* Update rules.mk and MCU_LDSCRIPT specified as STM32L432xB.

* Update keyboards/keychron/q1/rev_0101/rev_0101.c

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

* Update config.h

* Update config.h

* Update config.h

* removed duplicated ifdef

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

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

* Update keyboards/keychron/q2/rev_0110/rules.mk

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

* Update keyboards/keychron/q2/rev_0110/rules.mk

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

* Update keyboards/keychron/q2/rev_0113/rules.mk

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

* Update keyboards/keychron/q2/rev_0111/rules.mk

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

* Update keyboards/keychron/q2/rev_0111/rules.mk

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

* Update keyboards/keychron/q2/rev_0112/rules.mk

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

* Update keyboards/keychron/q2/rev_0112/rules.mk

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

* Update keyboards/keychron/q2/rev_0113/rules.mk

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

* Update rev_0101.c

* Update rev_0101.

* Enable support for edit RGB lighting in VIA.

The updated design file at https://git.io/JyE0K includes only the
enabled RGB_MATRIX modes.

* Update q1.

* Add rgb matrix support for q2 of keychron.

* Update rule.mk.

* Delete comment block which is unwanted.

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Cesar Rojas <cesar.fieoner@gmail.com>
Co-authored-by: lokher <lokher@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Adam Karim <adam@akarsoft.com>
2022-01-22 21:25:51 +11:00
QMK Bot
82c194f86c Merge remote-tracking branch 'origin/master' into develop 2022-01-22 06:16:20 +00:00
HorrorTroll
25cffa2617 [Keyboard] Add M63 RGB keyboard (#15887) 2022-01-21 22:16:16 -08:00
Domanic Calleja
24eac9d3ce [Keyboard] Amend SuperLyra readme (#15942)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-21 22:15:46 -08:00
Ryan
c587df3b66 Fix build failures for mschwingen/modelm (#15987) 2022-01-22 06:12:34 +00:00
QMK Bot
372f2b76aa Merge remote-tracking branch 'origin/master' into develop 2022-01-22 06:12:22 +00:00
Ryan Hausen
489475814a fixed typo in orange HSV colors decalartion (#15976) 2022-01-22 06:12:14 +00:00
QMK Bot
fa9afb9763 Format code according to conventions (#15986) 2022-01-22 06:11:51 +00:00
Albert Y
fed36fc5f8 Adjust mouse key defaults (#15883) 2022-01-21 22:09:44 -08:00
QMK Bot
833f8db838 Merge remote-tracking branch 'origin/master' into develop 2022-01-22 06:09:28 +00:00
Rifaa Subekti
fc914e617e [Keyboard] add Yuri (#15874)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-01-21 22:09:00 -08:00
QMK Bot
e137e39911 Merge remote-tracking branch 'origin/master' into develop 2022-01-22 05:57:32 +00:00
Albert Y
61246deec5 [Keyboard] Code consistency updates for CRKBD (#15779)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-21 21:57:03 -08:00
QMK Bot
b91efb896d Merge remote-tracking branch 'origin/master' into develop 2022-01-22 05:55:41 +00:00
Charly Delay
ef091d39d2 bastardkb/charybdis: add support for Charybdis (4x6 and 3x5) (#15333) 2022-01-21 21:55:04 -08:00
QMK Bot
72dc5d5862 Merge remote-tracking branch 'origin/master' into develop 2022-01-22 05:32:01 +00:00
HorrorTroll
814821727e [Keyboard] Move Handwired K552 into my folder name (#15973) 2022-01-21 21:31:27 -08:00
Drashna Jaelre
909003cce9 [Bug] Fix hack for chibiOS reset name (#15984) 2022-01-22 04:59:19 +00:00
QMK Bot
3a27f065b7 Merge remote-tracking branch 'origin/master' into develop 2022-01-22 04:27:26 +00:00
joedinkle
b131ebb8dd [Keyboard] Add The Boulevard keyboard (#15583)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-21 20:26:46 -08:00
Drashna Jael're
102cec8241 Merge remote-tracking branch 'origin/master' into develop 2022-01-21 20:11:30 -08:00
CMMS-Freather
7ecb47958c [Keyboard] add fuji65 keyboard (#15765)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-21 19:53:53 -08:00
XScorpion2
ad702096a9 [Keyboard] Sol 3 Keyboard from RGBKB (#15687)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Franklyn Tackitt <franklyn@tackitt.net>
2022-01-21 19:51:12 -08:00
Drashna Jaelre
b090ff03ed [Keymap] Drashna's OLED rewrite (#15981) 2022-01-21 19:36:52 -08:00
Ryan
b45a037c7e Rename some Quantum keycodes (#15968)
* Rename some Quantum keycodes

* Tweak EEPROM clear and debug keycode short aliases
2022-01-22 03:34:15 +00:00
QMK Bot
c7f477bc59 Merge remote-tracking branch 'origin/master' into develop 2022-01-21 15:49:13 +00:00
Albert Y
8901c9eca1 Add Atom editor suggestion (#15969) 2022-01-22 02:48:35 +11:00
QMK Bot
2f5c70e834 Merge remote-tracking branch 'origin/master' into develop 2022-01-21 14:18:11 +00:00
Gigahawk
ad09160b03 docs: fix typo in led matrix docs (#15972) 2022-01-21 14:17:19 +00:00
QMK Bot
be6a4745ae Merge remote-tracking branch 'origin/master' into develop 2022-01-21 01:30:48 +00:00
Wolf Van Herreweghe
94624d64ba Update keymap on the TS60 (#15963)
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-01-21 12:30:17 +11:00
QMK Bot
ecfa4172d0 Merge remote-tracking branch 'origin/master' into develop 2022-01-20 23:20:58 +00:00
Gigahawk
2baca55cda docs: fix typo in rgblight docs (#15960) 2022-01-20 23:20:56 +00:00
QMK Bot
c9866313a7 Merge remote-tracking branch 'origin/master' into develop 2022-01-20 23:20:26 +00:00
Ryan
682ccec853 Remove community-supported keyboards list from readme (#15957) 2022-01-20 23:20:24 +00:00
Ryan
e7cd8c4806 Remove QMK_SUBPROJECT definitions in makefile (#15958) 2022-01-20 23:19:50 +00:00
QMK Bot
edf9d33e61 Merge remote-tracking branch 'origin/master' into develop 2022-01-20 20:14:40 +00:00
Petr Viktorin
be06ef6af5 [Docs] Fix typo in ADNS 9800 sensor name (#15956) 2022-01-20 12:14:09 -08:00
QMK Bot
fe1f53ce8f Merge remote-tracking branch 'origin/master' into develop 2022-01-20 20:12:20 +00:00
Gigahawk
1a676c927f Add missing STM32F405 definition in qmk.constants (#15937) 2022-01-21 07:11:24 +11:00
QMK Bot
36b7a13be9 Merge remote-tracking branch 'origin/master' into develop 2022-01-20 17:25:31 +00:00
npspears
39a5ffd782 [Keyboard] add Plexus75_HE (#15634)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-20 09:24:51 -08:00
Drashna Jaelre
6ebb44f17e [Bug][Core] Fix optical sensor firmware upload (#15919) 2022-01-20 09:23:16 -08:00
QMK Bot
24324378a8 Merge remote-tracking branch 'origin/master' into develop 2022-01-19 20:54:25 +00:00
Andre Brait
6156e6da8d Small code improvements, fix KVM switch issues with GMMK Pro on andrebrait's keymap (#15943)
* Add LED table

* Make constants constant

* Disable Mousekey to fix issues with KVM

Fixes #15939

* Update GMMK/pro/ansi/andrebrait README
2022-01-19 20:53:21 +00:00
Joel Challis
d840ef2b28 Relocate matrix_scan_quantum tasks (#15882)
* Move matrix_scan_quantum tasks

* Fix tests

* Fix up missing refs
2022-01-19 17:38:48 +00:00
Ryan
dcb0c4e51e Add example implementations for compatible MCUs list (#15935)
* Add example implementations for compatible MCUs list

* Update docs/compatible_microcontrollers.md

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-01-19 20:34:59 +11:00
QMK Bot
bb75c10e28 Merge remote-tracking branch 'origin/master' into develop 2022-01-19 00:21:45 +00:00
Nick Brassel
91e50209e7 Fixup build. (#15931) 2022-01-19 11:21:08 +11:00
QMK Bot
3a01f51063 Merge remote-tracking branch 'origin/master' into develop 2022-01-19 00:19:22 +00:00
James Young
47f978e9cc Remove keyboard_folder instances from info.json files (#15932)
* remove `keyboard_folder` instance from caffeinated/serpent65

* remove `keyboard_folder` instances from dumbpad

* remove `keyboard_folder` instances from mlego directory

* remove `keyboard_folder` instance from neopad/rev1

* remove `keyboard_folder` instance from spaceman/pancake/rev2
2022-01-19 00:18:45 +00:00
QMK Bot
b825af0728 Merge remote-tracking branch 'origin/master' into develop 2022-01-18 18:25:03 +00:00
IskandarMa
f6a7f4d4ac update the Chinese translation based on the latest English version (#14924)
Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com>
Co-authored-by: Joy Lee <chang.li@westberrytech.com>
Co-authored-by: LitoMore <LitoMore@users.noreply.github.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-01-18 18:24:02 +00:00
QMK Bot
9a65cc39da Merge remote-tracking branch 'origin/master' into develop 2022-01-17 19:01:26 +00:00
moyi4681
8a3dfe2246 [Keyboard] fix odin rgb light error (#15914) 2022-01-17 11:00:48 -08:00
QMK Bot
fb65f07832 Merge remote-tracking branch 'origin/master' into develop 2022-01-17 14:12:32 +00:00
Albert Y
b8951a0458 Add LAYOUTS entry to rules.mk (#15900)
* Add layouts to rules.mk

* Remove excess settings.

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

Co-authored-by: Joel Challis <git@zvecr.com>
2022-01-17 14:11:58 +00:00
Ryan
c72ed7c024 CLI: Parse USB device version BCD (#14580)
* CLI: Parse USB device version BCD

* Apply suggestions
2022-01-17 08:44:34 +11:00
Nick Brassel
557fbbd6af Yet another bad DEFAULT_FOLDER fix. (#15904) 2022-01-16 20:12:58 +00:00
peepeetee
217ad5cfc0 move yd60mq to ymdk vendor folder (#15647) 2022-01-17 07:01:00 +11:00
QMK Bot
6a723c3571 Merge remote-tracking branch 'origin/master' into develop 2022-01-16 19:59:22 +00:00
Nick Brassel
d02be63000 Revert "update keyboard_aliases.json (#15649)" (#15903)
This reverts commit b24603ab7d.
2022-01-17 06:58:48 +11:00
QMK Bot
069e232bab Merge remote-tracking branch 'origin/master' into develop 2022-01-16 19:54:12 +00:00
peepeetee
b24603ab7d update keyboard_aliases.json (#15649) 2022-01-17 06:53:43 +11:00
peepeetee
15290f4366 rename idobo to idobao/id75, move to vendor folder (#15661)
* rename idobo to idobao/id75, move to vendor folder

* add image, amend readme to id75

* add buying link
2022-01-17 06:53:11 +11:00
Albert Y
1d3c2ceded Add init function to clear previous effect (#15815) 2022-01-17 06:48:09 +11:00
QMK Bot
33384a3663 Merge remote-tracking branch 'origin/master' into develop 2022-01-15 20:23:36 +00:00
Bartosz Nowak
5380e6758c Fix dactyl manuform 6x6 LAYOUT_6x6_5_thumb rendering (#15891) 2022-01-15 20:23:09 +00:00
QMK Bot
02637ec350 Merge remote-tracking branch 'origin/master' into develop 2022-01-15 07:51:29 +00:00
Drashna Jaelre
7edfb4deff [Keyboard] Fix compilation issues for mechlovin hex4b (#15885) 2022-01-14 23:51:02 -08:00
QMK Bot
9cd2024814 Merge remote-tracking branch 'origin/master' into develop 2022-01-15 07:28:32 +00:00
Drashna Jaelre
5bad37cb56 [Bug] Remove config.h include in dynamic_keymap.c (#15886) 2022-01-15 18:28:29 +11:00
Paul James
922e29f16c [Keyboard] Add Rosaline (#15595) 2022-01-14 23:28:03 -08:00
QMK Bot
b8dbebec2d Merge remote-tracking branch 'origin/master' into develop 2022-01-15 07:27:06 +00:00
HorrorTroll
b2ea12aaa5 [Keyboard] Add Devil68 Pro (#15820) 2022-01-14 23:26:26 -08:00
QMK Bot
f07ea255a9 Merge remote-tracking branch 'origin/master' into develop 2022-01-15 05:49:44 +00:00
GG
2e266c7ec1 [Keyboard] Fix encoder bug zoom65 and zoom65_litte (#15876) 2022-01-14 21:49:11 -08:00
Dasky
08a42dc72c Fix broken bootloader builds in develop. (#15880) 2022-01-15 01:04:58 +00:00
QMK Bot
77eae62d62 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 19:06:58 +00:00
Conor Burns
f8870a4c8a [Keymap] added keymap conor with rgb layers (#15234) 2022-01-14 11:06:24 -08:00
QMK Bot
90f2a03895 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 18:58:43 +00:00
lalalademaxiya1
ca0f922e07 [Keyboard] Add Keychron_q1 rev_0101 and Keychron q2 series (#15025)
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: Cesar Rojas <cesar.fieoner@gmail.com>
Co-authored-by: lokher <lokher@gmail.com>
Co-authored-by: Adam Karim <adam@akarsoft.com>
2022-01-14 10:58:09 -08:00
QMK Bot
71a9384f49 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 14:48:10 +00:00
Ryan
9e92d8a905 Make note of upper limit for UC() (#15870) 2022-01-14 14:47:36 +00:00
QMK Bot
cfc136f198 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 14:47:32 +00:00
Ryan
61f0292f11 Remove network drive mapping comment for WSL (#15871) 2022-01-14 14:46:47 +00:00
QMK Bot
b7fb5f9987 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 04:42:48 +00:00
Ryan Smith
fd4adbc0cc [keyboard] Adding Atlas_65 (#15839)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-13 20:42:11 -08:00
QMK Bot
fba519116d Merge remote-tracking branch 'origin/master' into develop 2022-01-14 04:41:11 +00:00
Eric Gebhart
e865cab48e [Keymap] ericgebhart keymap and userspace updates (#15727)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Co-authored-by: Drashna Jael're <drashna@live.com>
2022-01-13 20:40:41 -08:00
QMK Bot
a7e1de81ff Merge remote-tracking branch 'origin/master' into develop 2022-01-14 04:38:56 +00:00
asdfire1
0f110737db [Keyboard] Add VIA support for the Drop Alt (#15857) 2022-01-13 20:38:25 -08:00
QMK Bot
85743b9f32 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 04:38:08 +00:00
DA
851cb7e406 [Keyboard] and CB87v2 and CB87RGB and fixed CB1800 and CB87 (#15824)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-13 20:37:40 -08:00
QMK Bot
7b75aa1818 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 04:34:21 +00:00
Bartosz Nowak
5d51fd4015 [Keyboard] Fixing dactyl manuform 6x6 warnings (#15868) 2022-01-13 20:33:39 -08:00
QMK Bot
15d385a862 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 21:56:21 +00:00
Tuk Bredsdorff
8fe320baa6 Fix keymap.json macro example (#15567) 2022-01-13 21:55:48 +00:00
QMK Bot
c93dc153f1 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 20:44:40 +00:00
peott-fr
ae9feed566 Adding Quefrency keymap (#15852) 2022-01-13 20:43:40 +00:00
QMK Bot
66ef608726 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 19:58:56 +00:00
Drashna Jaelre
2fa43de6f6 [Keyboard] Fix xox70hot via layout (#15863) 2022-01-13 19:58:19 +00:00
QMK Bot
7cbada6902 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 19:03:21 +00:00
duoshock
4bc9adbc64 [Keyboard] Add UM-A Keyboard (#15584)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: online <33636898+online@users.noreply.github.com>
2022-01-13 11:02:38 -08:00
QMK Bot
c02be0012e Merge remote-tracking branch 'origin/master' into develop 2022-01-13 19:01:15 +00:00
druotoni
b3c0548ed3 [Keymap] Lily58 : HELL0 NAVI. Interface (#15469)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-01-13 11:00:35 -08:00
QMK Bot
354eedae7a Merge remote-tracking branch 'origin/master' into develop 2022-01-13 18:59:54 +00:00
fOmey
8a6da095d2 [Keyboard] Atlantis AK81_VE support (#15392) 2022-01-13 10:59:16 -08:00
QMK Bot
0d88d277e4 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 17:20:41 +00:00
Andrew Kannan
6770f77270 [Keyboard] HoodrowG PCB (#15474)
Co-authored-by: Julian <julianzabala1@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-13 09:20:29 -08:00
Ibnu Daru Aji
2f68e05884 [Keyboard] new layout for squiggle (#15683) 2022-01-13 09:19:51 -08:00
QMK Bot
5c3f3e8332 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 17:19:05 +00:00
peepeetee
50baf28386 move winry25tc to winry/ (#15637) 2022-01-13 09:18:56 -08:00
Dmitriy Kuminov
5c583851f9 [Keyboard] Add Dactyl Manuform 6x6_4 and Kinesis keyboards (#15475)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-13 09:18:20 -08:00
Lucas W
ddc4c0d252 [Keymap] Kyria new custom keymap lw (#15729) 2022-01-13 09:17:54 -08:00
QMK Bot
3f5d47eae8 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 17:17:06 +00:00
Alin Marin Elena
d1eac29354 [Keyboard] remove duplicate m65 (#15831) 2022-01-13 09:16:59 -08:00
QMK Bot
856f49cf48 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 17:16:47 +00:00
Alin Marin Elena
2c8098ea88 [Keyboard] move enum_layers in keymaps, in sync with the other mlego/m* (#15832) 2022-01-13 09:16:26 -08:00
QMK Bot
4f79b57774 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 17:16:06 +00:00
Reibl János Dániel
a3af4b09b0 [Keymap] Misc userspace and keymap improvements (#15844) 2022-01-13 09:16:03 -08:00
Albert Y
e2d1547f31 [Keyboard] Switch a_dux, cradio and ferris to split_3x5_2 (#15850) 2022-01-13 09:15:01 -08:00
QMK Bot
3058bf0f83 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 12:48:06 +00:00
Drashna Jaelre
d0c8f2f822 [Keyboard] Fix Simpler6x boards (#15862)
* [Keyboard] Fix simpler64

* [Keyboard] Fix simpler61
2022-01-13 12:47:25 +00:00
QMK Bot
2b1f97dcc2 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 05:00:26 +00:00
Choi Byungyoon
aa9577b371 [Keymap] Add personal keymap to GMMK Pro ANSI (#15314)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-12 20:59:45 -08:00
Alabastard-64
a8482a4424 PMW3389 Revert Firmware load during Initilization (#15859) 2022-01-13 02:51:05 +00:00
QMK Bot
bd2af5c556 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 02:39:15 +00:00
Albert Y
731072fc5c [Keyboard] Fix compile error caused by variable exclusion on Moonlander (#15860) 2022-01-12 18:38:34 -08:00
QMK Bot
69e4c18153 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 02:29:55 +00:00
Albert Y
362a65510a [Docs] Move QMK newbs build environment guide to next section (#15386)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-01-13 02:29:13 +00:00
QMK Bot
2609c49731 Merge remote-tracking branch 'origin/master' into develop 2022-01-13 02:14:13 +00:00
James Young
06b329cdb9 kbdfans/kbd67/mkiirgb/v4: remove duplicate definitions from config.h (#15858) 2022-01-12 18:13:35 -08:00
Drashna Jael're
4eb284ef8d [Keyboard] Fix suihankey/split 2022-01-12 15:18:06 -08:00
QMK Bot
b554d8d336 Merge remote-tracking branch 'origin/master' into develop 2022-01-12 23:06:54 +00:00
moyi4681
5f2b62528c [Keyboard] add Endless80 keyboard (#15022)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-12 15:06:02 -08:00
QMK Bot
8b188e060c Merge remote-tracking branch 'origin/master' into develop 2022-01-12 23:05:58 +00:00
Karl B
f2a31b944d [Keyboard] Add KBIC65 keyboard (#15151)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Karl Berggren <berggren.karl+git@gmail.com>
Co-authored-by: spacefrogfeds <73514335+spacefrogfeds@users.noreply.github.com>
Co-authored-by: Karl Berggren <karber@raysearchlabs.com>
2022-01-12 15:05:19 -08:00
peepeetee
ddc6601487 move id67 (#15662) 2022-01-12 14:50:00 -08:00
QMK Bot
88630d4913 Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:21:43 +00:00
Kevin Hartley
b79e329ab8 [Keymap] Planck Keymap: Inkwell (#14311)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-12 14:20:54 -08:00
QMK Bot
96209d7eba Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:16:17 +00:00
Rifaa Subekti
6d06e7ce84 [Keyboard] add AddOn macropad (#15841)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-12 14:15:27 -08:00
peepeetee
92b2738bbb move @kakunpc 's keebs into kakunpc/ (#15814)
Co-authored-by: kakunpc <15257475+kakunpc@users.noreply.github.com>
2022-01-12 14:13:45 -08:00
QMK Bot
5eb7eee560 Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:12:06 +00:00
EqualzC3
4c8bb05dab [Keyboard] Add Simpler60 support (#15499)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-12 14:11:33 -08:00
QMK Bot
99706e038b Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:11:30 +00:00
onefiftynine
9911ba51b0 [Keyboard] Add Signature65 (#15698)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-12 14:10:58 -08:00
QMK Bot
cf954bbfd0 Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:10:48 +00:00
owlab-git
59ea420992 [Keyboard] Add OwLab Spring (#15614) 2022-01-12 14:10:16 -08:00
QMK Bot
6e516ee89f Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:10:08 +00:00
mechlovin
2c18dcc619 [Keyboard] Add Hex4B rev.2 PCB (#15811)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-12 14:09:33 -08:00
QMK Bot
42a49ba44f Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:09:11 +00:00
James Young
ed15197967 NoPunIn10Did Kastenwagen touch-up (#15836) 2022-01-12 14:08:37 -08:00
QMK Bot
43d18321e3 Merge remote-tracking branch 'origin/master' into develop 2022-01-12 22:06:23 +00:00
Albert Y
c4b0a06c79 [Docs] Improve Handedness by EEPROM documentation (#15615)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Co-authored-by: filterpaper <filterpaper@localhost>
2022-01-12 14:05:45 -08:00
QMK Bot
58769a40de Merge remote-tracking branch 'origin/master' into develop 2022-01-12 01:08:02 +00:00
JayceFayne
93e55605d9 [Docs] fix typo and remove trailing whitespace (#15842) 2022-01-11 17:07:24 -08:00
Alabastard-64
2842ab4052 Add PMW3389 optical sensor Support (Updated) (#15740)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-11 14:33:13 -08:00
QMK Bot
a7eb27b867 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 20:18:21 +00:00
Will Winder
1f618c8302 keyhive sofle rgb: fix configuration. (#15339)
* keyhive sofle rgb: fix configuration.

* Add Colemak-DH and cycle layer keycode.

* Fix indentation.

* Add PLACEHOLDER for better readability.

* Fix breaking changes.

* Just one colemak.

* PR Cleanup

* Use NO_PIN definition instead of C7
* Define animations individually
* Remove via json file and update documentation
* Reduce LED brightness, one of the animations caused a crash

* More PR feedback.

* Better credit.
* Disable NKRO.

* Cleanup RGB configuration.

* animations defined in keymap.

* Update keyboards/sofle/keyhive/readme.md

* PR Feedback.

* Update phrasing from template.

* Disable RGBLIGHT_ENABLE in keymap for better compatibility with default keymap.

* Set a default animation.

* Use default in keyboard readme.

* Update keyboards/sofle/keyhive/info.json

* Move via specific layout into via keymap.
2022-01-11 12:17:37 -08:00
QMK Bot
5e817664ad Merge remote-tracking branch 'origin/master' into develop 2022-01-11 18:09:11 +00:00
PollyV1
1fdc42155a [Keyboard] Carpolly (#15778)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-11 10:08:35 -08:00
QMK Bot
fd98d78cd8 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 18:07:58 +00:00
dlgoodr
349ca4b7ff [Keyboard] handwire: 3dfoxc (#15739)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-11 10:07:51 -08:00
peepeetee
1df3711432 [Keyboard] AMJ84 (#15742) 2022-01-11 10:07:14 -08:00
peepeetee
37d801776e [Keyboard] move @obosob 's boards into obosob/ (#15799) 2022-01-11 10:05:06 -08:00
peepeetee
f0c14507a5 [Keyboard] move @nacly 's boards to nacly/ (#15801) 2022-01-11 10:01:33 -08:00
QMK Bot
80e321f6ab Merge remote-tracking branch 'origin/master' into develop 2022-01-11 17:57:37 +00:00
Albert Y
3d63c814d3 Correct matrix effect name (#15816) 2022-01-11 09:57:25 -08:00
kb-elmo
3124dfc5cd [Keyboard] Add RGB matrix to CK60 (#15817) 2022-01-11 09:57:03 -08:00
QMK Bot
aebf17b7e2 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 17:56:03 +00:00
jonavin
0963140149 [Keymap] Jonavin keymap kastenwagen48 (#15825)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Jonavin <=>
2022-01-11 09:56:01 -08:00
Fredrik Larsen
052a59fc3b [Keyboard] Use correct callback in macro1 implementation (#15819) 2022-01-11 09:55:24 -08:00
QMK Bot
52acb7dcac Merge remote-tracking branch 'origin/master' into develop 2022-01-11 17:43:47 +00:00
Drashna Jaelre
bda520198e [Keyboard] Fix KBD67 mark 2 v4 (#15835) 2022-01-11 09:42:58 -08:00
QMK Bot
4187fc7fbb Merge remote-tracking branch 'origin/master' into develop 2022-01-11 03:20:36 +00:00
Nick Brassel
be1dcb9185 Fix CI. (#15828)
* Fix CI.
2022-01-11 14:20:33 +11:00
Ibnu Daru Aji
4c298a9dd5 [Keyboard] Add Alicia Cook keyboard (#11722)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: robby-hartana <robby@alumagubi.com>
2022-01-10 19:20:01 -08:00
QMK Bot
012db45bfb Merge remote-tracking branch 'origin/master' into develop 2022-01-11 03:15:35 +00:00
Alin Marin Elena
01e4d07de0 [m65] add via, new mcu gd32f303, stm32f401 weact support for encoder and led strip (#14381)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-01-10 19:14:54 -08:00
QMK Bot
75bba4522d Merge remote-tracking branch 'origin/master' into develop 2022-01-11 03:12:50 +00:00
moyi4681
e2aee8f9bb [Keyboard] add kbd67mkiirgb v4 support (#15024)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-01-10 19:12:17 -08:00
QMK Bot
113b0f04bc Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:58:04 +00:00
Winston Durand
c6ad202583 [keymap] Add massdrop/ctrl R167 keymap (#15585) 2022-01-10 17:57:20 -08:00
QMK Bot
dff6f23a1a Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:48:23 +00:00
Alin Marin Elena
7275680364 [Keyboard] M60 simple 5x12 in lego keyboard (#15534)
* add m60 lego case, with stm32f401

* Update keyboards/mlego/m60/m60.h

* Update keyboards/mlego/m60/keymaps/default/keymap.c

* Update keyboards/mlego/m60/m60.h

* Update keyboards/mlego/m60/keymaps/via/keymap.c

* address the moving of enum in keymaps
2022-01-10 17:47:52 -08:00
QMK Bot
461f279883 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:44:04 +00:00
MakotoKurauchi
6823f01c10 [Keyboard] New kbd Navpad 1.0 (#15507)
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>
2022-01-10 17:43:36 -08:00
QMK Bot
9b07108fbf Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:39:46 +00:00
jecassis
8920db2b57 [Keyboard] Add system76/launch_1 keyboard (#15395)
* WIP: virgo keyboard

* Finish layout

* Enable debugging and format

* Debug keypresses

* Add function layer

* Fix whitespace

* Fix some more whitespace

* Add Jeremy's map

* Add left split ortho 2U board

* Enabled extrakeys for volume & media control

* More work on split ortho 2U...
...but still not complete

* Finish default layout

* Fix many issues by renaming the keyboard

* Add right half as a keyboard

* Update config for right side

* WIP: Add split ortho 2U board

* WIP: Correct rules & config

* More work on split ortho

* More work on split ortho 2u

* Nearing completion on split ortho

* Remove left and right separate keyboards.
Split ortho 2U is complete and they are not needed.

* Add uglydense keyboard

* Rename directory for uglydense

* Swap right Fn and right ctrl keys

* Add jeremy's layout

* Add ian layout

* Add reset key, which is very useful for flashing.

* Add Levi's layout

* Update Levi's layout

* Fix Levi's Layout

* Fix Levi's layout again

* Add a README with some basic information

* Add keymap customization info to uglydense readme

* Make the readme make a little more sense.

* Make John a layout with left fn and left super swapped

* Update John's layout

* Add Carl's layout

* Add Sean's layout

* Add reset keys to all layouts

* Swap LALT & LGUI on default layout

* shpurk keyboard: initial commit

* Add nathaniel & shpurk layouts

* Update instructions to include necesarry dependencies

* Add Lrrr keyboard, ruler of Omicron Persei 8

* Update README for Lrrr

* Update Lrrr it uses Caterina bootloader
Also B1 wasn't working for Row 6, so I changed that to F6

* Swap RCTL & RALT

* Un-swap RCTL and RALT, making RCTL closer to right thumb

* Add printscreen to my layout

* Rename lrrr to Launch, enbiggen L-Shift to 2U

* Add layout files for Launch

* Rename launch to launch_1

* Add levi layout for ortho_split_2u

* Update carl keymap

* Add launch testboard

* Implement keyboard keycode reading using raw hid

* Enable dynamic keymap

* Add config support to launch_1

* Implement probe command, make logical key names match configurator

* Update logical key names again

* Add layout generator for keyboard configurator

* Add board name and version

* Add board name and version to test board

* Fix issues with compiling board and version commands

* Rename uglydense to launch_alpha_1 and launch_1 to launch_alpha_2

* Generate layouts for other launch prototypes

* Fix launch_alpha_1 logical names

* Add launch_beta_1

* Fix building production hex file with atmel-dfu bootloader

* Limit backlight brightness

* USB mux handling

* Allow repeat start

* Do USB MUX init before bootmagic

* Fixes for mux init

* Fix register write size for programmable function control

* Ensure bit shifts are correct

* Improve documentation

* Fix when i2c read ack condition happens

* Fix extra start in i2c_set

* Add ISP instructions

* Add fuse information

* Refactor

* Add RGB matrix support

* Fix RGB matrix

* Update Jeremy layout

* Enable audio controls

* Update Jeremy layout

* Ensure that n-key rollover is used

* Port changes to other launch boards

* Configuration values for starting HSV and speed (#7740)

* Define default HSV and speed for RGB matrix.

* Documentation for configuration values RGB_MATRIX_STARTUP_HUE, RGB_MATRIX_STARTUP_SAT and RGB_MATRIX_STARTUP_VAL.

* Document RGB_MATRIX_STARTUP_SPD.

* Preserve the ordering.

* Set default RGB mode, hue, and saturation

* Reduce AVR clock to 8MHz

* Update launch_beta_1 with new USB ID

* Update default LED mode

* Set default hue

* Disable RGB while suspended

* Add led value and color commands

* Add max value to CMD_LED_GET_VALUE

* Do not save custom mode to eeprom

* Add reset to bootloader command for Launch keyboard

* Rename launch_beta_1 to launch_1

* Enable LTO when compiling for launch_1

* Allow setting individual LED's

* Convert tabs to spaces

* Unlock on RESET keypress:
- Display unlock pattern
- Disable LED get/set functions
- Enable reset to bootloader function

* Reduce brightness of rainbow backdrop in unlock pattern

* Add hid commands for setting led matrix mode

This changes the color setting to not change the mode, and set the hue
and saturation for QMK effects.

* Fix `CMD_LED_GET_MODE`

* Add Levi's Launch layout

* Fix layer mistake in Levi's Launch layout

* Add matrix command

* Define default RGB matrix speed

* Add active_keys effect

* Move definition of RGB modes inside ifdef testing for custom RGB modes

* RGB parameters per layer

* fix: Call `system76_ec_rgb_layer` after setting mode

* Include layer 3 and 4 in default layout for launch_1

I added support for layer 3 and 4 to the Configurator, but it seems to
load bogus values.

`dynamic_keymap_reset()` has a comment saying:
```
// Reset the keymaps in EEPROM to what is in flash.
// All keyboards using dynamic keymaps should define a layout
// for the same number of layers as DYNAMIC_KEYMAP_LAYER_COUNT
```

Other keyboards seem to have default layouts that only list the first
two layers while setting `DYNAMIC_KEYMAP_LAYER_COUNT` to 4, but
whatever. This appears to make the Configurator behave as expected with
layer 3 and 4.

* Use EEPROM to store RGB parameters

* Add layer 2 and 3 to other keymaps

* Add LED_SAVE command

* Use eeprom_update_block to improve performance

* Revert "Configuration values for starting HSV and speed (#7740)"

This reverts commit de1f60fd37.

* Update launch_1 rules.mk for changes in Qmk

* WIP keycodes matching EC behavior

* Modify default layout to match design

* Apply updates to jeremy layout

* Improvements to RGB keycodes

* system76_ec: Add mode to disable layer backlight

* launch_1: Use `KC_NO` instead of `KC_TRNS` for default layout

* Revert "launch_1: Use `KC_NO` instead of `KC_TRNS` for default layout"

This reverts commit f71c5e7ac3.

* Fix building bootloader

* Workaround for upstream orientation

* Custom USB IDs for USB hubs, disable USB hub feature controller

* Set USB mux orientation in a loop for one second

* Set mux orientation 100 times with 10 ms delay

* Update Jeremy's keymap

* Update Levi's Launch keymap

* Update flashing instructions and rewrite layout design instructions

* Update README.md

* Add a system76_ec command to disable input events

For testing purposes.

* Enable system76/launch_1 keyboard to work with QMK Firmware 0.15.3

 - Migrate system76/launch_1 from 0.7.103:
   - Explicitly enable used RGB matrix effects
   - Initialize flags field of `rgb_config_t` union/struct
   - Account for header and source file location changes
   - Update AVR platform makefile with Atmel DFU bootloader option
   - Update ATmega32U4 bootloader to latest from Microchip
 - Format C sources with ClangFormat
 - Format Markdown text with Prettier

* Remove System76 pre-release or test keyboards and keymaps

* Add licensing and replace guards in headers for system76/launch_1

* Remove options impact for system76/launch_1

* Revert AVR platform changes for `atmel-dfu` bootloader

* Update system76/launch_1 README

* Add system76/launch_1 information JSON file

* Replace `util/delay.h` timing abstractions in system76/launch_1

* Use I2C QMK abstractions in system76/launch_1

* Fully revert AVR platform changes for `atmel-dfu` bootloader

* Move `layouts.sh` into `keyboards/system76`

* Implement GitHub PR suggestions for system76/launch_1

* Make additional system76/launch_1 updates

* Implement minor system76/launch_1 change requests

* Add custom version of Bootmagic Lite and document fuse values for system76/launch_1

* Remove the RESET HID command from system76/launch_1

* Reorder `process_record_user` in system76/launch_1

* Add `post_rules.mk` to system76/launch_1

* Fix overlapping key in sytem76/launch_1
2022-01-10 17:39:10 -08:00
QMK Bot
8e1269617a Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:37:16 +00:00
yiancar
da1a01b811 [Keyboard] Add Nebula65B (#15433)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-01-10 17:36:44 -08:00
QMK Bot
92ec98d5ce Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:33:20 +00:00
Bailey Boylson
79a8b55af2 [Keyboard] add info.json for bongopad (#15355)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-01-10 17:32:45 -08:00
QMK Bot
d4e05f6df3 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:31:53 +00:00
TerryMathews
6acfb61159 [Keyboard] TKC Candybar R3 (#15374)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-01-10 17:31:16 -08:00
QMK Bot
0b9324f332 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:17:43 +00:00
Tobias Minn
951fa1020b DZ60 - ISO DE Arrow keymap + layout (#14221) 2022-01-10 17:17:11 -08:00
cedrikl
c20522369b [Keymap] Add another GMMK Pro ANSI Keymap with custom RGB. (#14243)
Co-authored-by: Cedrik Lussier <lussier.cedrik@gmail.com>
2022-01-10 17:15:47 -08:00
QMK Bot
cec35d2399 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:12:40 +00:00
Khang
6a045e93f7 [Keymap] Add keebio/iris keymap (#14688)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-10 17:11:57 -08:00
QMK Bot
4b9f73d32e Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:10:03 +00:00
Mewp
c05d3eb365 [Keyboard] Fix suspend issues on ergodox_ez. (#15300)
Co-authored-by: Mewp <git@mewp.pl>
2022-01-10 17:09:15 -08:00
QMK Bot
a760168722 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:09:14 +00:00
mechlovin
ffebc0407c [Keyboard] Add Kay60 PCB (#15566)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-10 17:08:32 -08:00
QMK Bot
c6277687b4 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 01:07:56 +00:00
rhmokey
adaaee4edf [Keyboard] Add xox70hot (#15632) 2022-01-10 17:07:09 -08:00
QMK Bot
79f2fca1f9 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:58:16 +00:00
Alan Pocklington
dce611bc9f [Keymap] AJP10304 layout, add Colemak-DHm layer (#15582) 2022-01-10 16:57:41 -08:00
peepeetee
34602f4b25 [Keyboard] move reviung keyboards to a directory (#15636) 2022-01-10 16:57:20 -08:00
peepeetee
2b212cf692 [Keyboard] Rename ymdk_np21 to np21, move to ymdk vendor folder (#15641) 2022-01-10 16:56:59 -08:00
peepeetee
65e7d0c01f [Keyboard] move ymd96 to ymdk vendor folder (#15643) 2022-01-10 16:55:58 -08:00
peepeetee
c08ed73216 [Keyboard] move ymd75 to ymdk vendor folder (#15645) 2022-01-10 16:55:37 -08:00
QMK Bot
db608aae51 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:54:24 +00:00
adlainewson
069ef7eb9e [Docs] newbs_flashing.md: add link to build environment section (#15654) 2022-01-10 16:54:22 -08:00
Chuck Lauer Vose
101f504435 [Keyboard] Rename Laptreus to Shapeshifter4060 (#15655) 2022-01-10 16:53:54 -08:00
QMK Bot
bc617d8ad1 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:53:34 +00:00
LucW
dd4e48b4a2 [Keymap] dvorak 42 key layouts (Ergodox EZ / Atreus) updates (#15656)
Co-authored-by: luc wastiaux <luc.wastiaux@airpost.net>
2022-01-10 16:52:54 -08:00
QMK Bot
a5a3918856 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:51:40 +00:00
Carlo Sala
cb821b5f16 [Keymap] fix: moving keymap to rev1 folder (#15663) 2022-01-10 16:51:09 -08:00
QMK Bot
6ed4f51413 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:50:47 +00:00
Batın Eryılmaz
37ba5e4892 [Keymap] Add new The GMMK PRO keymap (#15664)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-10 16:50:12 -08:00
peepeetee
d7d3839b8d [Keyboard] move ID80 to IDOBAO vendor folder (#15665) 2022-01-10 16:49:50 -08:00
QMK Bot
184f4b38c8 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:49:20 +00:00
GG
19fe7dcaaa [Keyboard] Fixed bugs Wuque Mammoth Keyboard Series (#15700) 2022-01-10 16:49:19 -08:00
Matthew Dews
0fc1ae9e9c [Keyboard] handwired/dactyl_manuform: add 6x7 version (#15704)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-10 16:48:49 -08:00
QMK Bot
93149711f6 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:45:05 +00:00
Albert Y
ecc06a9700 [Keyboard] Simplify default keymap to Seniply (#15731) 2022-01-10 16:45:02 -08:00
Jordan Blackbourn
cd12b54650 [Keyboard] Added via support for orthocode (#15777) 2022-01-10 16:44:18 -08:00
QMK Bot
dfecad4362 Merge remote-tracking branch 'origin/master' into develop 2022-01-11 00:42:28 +00:00
peepeetee
b1942d1d0c [Keyboard] move cu24, cu75, cu80/v1 into capsunlocked folder (#15758) 2022-01-10 16:42:13 -08:00
jonavin
372c9102e2 [Keymap] Jonavin gmmk pro iso keymap (#15775)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Jonavin <=>
2022-01-10 16:41:54 -08:00
peepeetee
93bacff1a6 [Keyboard] move prototypist boards into vendor folder (#15780) 2022-01-10 16:40:22 -08:00
peepeetee
36ebc75e9a [Keyboard] move yiancar's boards into yiancardesigns/ (#15781) 2022-01-10 16:39:56 -08:00
peepeetee
a483ab3213 [Keyboard] move novelkeys keyboards to vendor folder (#15783) 2022-01-10 16:39:17 -08:00
peepeetee
ced6d835e8 [Keyboard] move weirdo-f's keyboards into weirdo/ (#15785) 2022-01-10 16:38:55 -08:00
peepeetee
a2ddb44957 [Keyboard] move marksard's boards to marksard/ (#15786) 2022-01-10 16:38:31 -08:00
peepeetee
31a6401193 [Keyboard] move rainkeebs's keyboards to rainkeebs/ (#15797) 2022-01-10 16:35:54 -08:00
peepeetee
ceea8ab5fe [Keyboard] move standaside into edi/ (#15798) 2022-01-10 16:35:23 -08:00
QMK Bot
f10285d800 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 23:06:51 +00:00
peepeetee
aafbe043f9 [Keyboard] move lyso1 's boards into lyso1/ (#15767) 2022-01-10 15:06:37 -08:00
Evelien Dekkers
53359ab2ee [Keyboard] Add Aves60 (#15770) 2022-01-10 15:06:19 -08:00
QMK Bot
20e16bbcc4 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 23:05:34 +00:00
James Young
590ec4ae04 add ortho_4x16 Community Layout (#15776) 2022-01-10 15:05:29 -08:00
Albert Y
d9d8526ca2 [Keyboard] Update Cradio readme (#15784) 2022-01-10 15:04:54 -08:00
peepeetee
e6e6529b4a [Keyboard] move Salicylic-acid3's keyboards to salicylic-acid3/ (#15791) 2022-01-10 15:03:15 -08:00
QMK Bot
4cff18a705 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 23:02:16 +00:00
takishim
0b32bddd65 [Keyboard] Add mikeneko65 keyboard (#15792)
Co-authored-by: takishim <tadashi@kishimo.to>
2022-01-10 15:02:12 -08:00
QMK Bot
1a4db497db Merge remote-tracking branch 'origin/master' into develop 2022-01-10 23:02:04 +00:00
Albert Y
cfabc3b028 Add layout for split 3x5_2 (#15800) 2022-01-10 15:01:44 -08:00
FearlessSpiff
8f630c17b9 [Keymap] Add Fearless Spiff keymap for Mechwild Mercutio based on Bongocat and Jonavin (#15802) 2022-01-10 15:01:32 -08:00
Stefan Kerkmann
5470e4a8ad [Core] ChibiOS: shorten USB disconnect state on boot to 50ms (#15805) 2022-01-10 15:01:20 -08:00
QMK Bot
5d0c92b40c Merge remote-tracking branch 'origin/master' into develop 2022-01-10 23:00:33 +00:00
Drashna Jaelre
9bcb33f0da [Keyboard] Fix compilation issues for Dygma Raise (#15810) 2022-01-10 15:00:08 -08:00
QMK Bot
e014d9897d Merge remote-tracking branch 'origin/master' into develop 2022-01-10 23:00:06 +00:00
Drashna Jaelre
0284639913 [Keyboard] Fix compiled size for Kudox Full keyboard (#15809) 2022-01-10 14:59:51 -08:00
Drashna Jaelre
e4f0c79413 [Keyboard] Enable RGB Matrix Animations on KBD67 mkIII ISO (#15808) 2022-01-10 14:59:33 -08:00
Drashna Jaelre
ec7c3ac12d Optimize initialization of PMW3360 Sensor (#15821) 2022-01-10 14:57:36 -08:00
QMK Bot
2fbdfae4b7 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 20:36:43 +00:00
nopunin10did
2dd7242e99 [Keyboard] Kastenwagen 1840 and Kastenwagen 48 (#13565)
* cleaning up

* deleting to undelete

* Stub out defaults

* Jabberwocky firmware WIP

* Stubbing out keymap spacing

* Default keymap and layout updates

* start stubbing out JSON for configurator

* more WIP

* Update jabberwocky.h

* Add Readme

* Apply suggestions from code review

* Fix layout capitalization

* Updates to personal and default keymaps

* Add instructions for jumping the bootloader

* Update keyboards/nopunin10did/jabberwocky/rules.mk

* Add easier ctrl-alt-del to my keymap

* Start stubbing out KW firmware

* More firmware and keymap stuff

* Fix compile error

* Filling out other layers in default keymap

* Update layout JSON and finish default layouts

* Add rotary and LED code

* Add VIA support (first draft)

* Move VIA compatibility to VIA-specific branch

* Fix readme formatting

* Fix state count issue in LED code

* Fix an erroneous change to a Jabberwocky file

* Default LEDs to on.

* Apply suggestions from code review

* Delete kastenwagen.json

* Update keyboards/nopunin10did/kastenwagen/config.h

* Apply suggestions from code review

* Apply suggestions from noroadsleft code review

* Update image in the readme

* Split 1840 & 48 into two boards (part 1)

* Splitting into two keyboards (part 2)
2022-01-10 12:36:02 -08:00
QMK Bot
017c26c167 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 20:33:24 +00:00
TerryMathews
0e11f8ec20 [Keyboard] TKC California (#15124)
* CALIFORNIA: Initial support for TKC California

* update readme.md, info.json

* Update keyboards/tkc/california/rules.mk

* Update keyboards/tkc/california/rules.mk

* Update keyboards/tkc/california/readme.md

* Update keyboards/tkc/california/rules.mk

* Update keyboards/tkc/california/info.json
2022-01-10 12:32:46 -08:00
QMK Bot
0b4afdf35b Merge remote-tracking branch 'origin/master' into develop 2022-01-10 20:16:17 +00:00
Alin Marin Elena
f423837ed2 [Keyboard] M48 12x4 lego ortholinear keyboard (#15536) 2022-01-10 12:15:28 -08:00
QMK Bot
371fc8c062 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 19:06:34 +00:00
moyi4681
23ba884fa0 [Keyboard] add dz64rgb support (#15553)
* add dz64rgb support

* Update keyboards/dztech/dz64rgb/dz64rgb.c

* Update keyboards/dztech/dz64rgb/rules.mk

* Update keyboards/dztech/dz64rgb/dz64rgb.c

* Update keyboards/dztech/dz64rgb/rules.mk

* Update keyboards/dztech/dz64rgb/rules.mk

* Update keyboards/dztech/dz64rgb/rules.mk
2022-01-10 11:05:53 -08:00
QMK Bot
d52dca47e8 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 19:00:14 +00:00
moyi4681
50d46b5003 [Keyboard] add kbd75rgb support (#15552)
* add kbd75rgb support

* Update keyboards/kbdfans/kbd75rgb/config.h

* Update keyboards/kbdfans/kbd75rgb/rules.mk

* Update keyboards/kbdfans/kbd75rgb/rules.mk

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update keyboards/kbdfans/kbd75rgb/config.h

* Update keyboards/kbdfans/kbd75rgb/config.h

* Update keyboards/kbdfans/kbd75rgb/config.h

* Update keyboards/kbdfans/kbd75rgb/rules.mk

* Update keyboards/kbdfans/kbd75rgb/rules.mk

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

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

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

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

* Update keyboards/kbdfans/kbd75rgb/rules.mk
2022-01-10 10:59:42 -08:00
Nick Brassel
0c402157fc Advanced deferred_exec for core-side code. (#15579) 2022-01-10 18:26:46 +00:00
QMK Bot
05b6fbb1f5 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 16:23:47 +00:00
Albert Y
8a4fae3b32 [Docs] Recommend the use of RGB matrix functions for code (#15744)
* Recommend the use of functions instead of keycodes

* Commit suggested review

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-01-11 03:23:28 +11:00
Albert Y
63d3ad155a [Docs] Recommend the use of RGB light functions for code (#15745)
* Recommend the use of functions instead of keycodes

* Commit suggested revision

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-01-11 03:23:07 +11:00
QMK Bot
b4b636112e Merge remote-tracking branch 'origin/master' into develop 2022-01-10 10:34:22 +00:00
Christoph Rehmann
2e19d0d7d1 [Keyboard] Add Buzzard support (#15493)
* add buzzerd

(untested, WIP)

* configured linear actuator and fixed keymap

* configuration tweaks and added custom keymap

* add custom tapping term for home row mod

* added readme

* remove ionide folder

* added scroll function to trackpoint

* keymap reworked

* using one shot shift and removed dynamic macros

* reworked default keymap

* adapted to latest qmk changes

* remove caps word from default keymap

* use provided coding guidelines

* use get_highest_layer in favour  of biton32

* fixed formatting

* remove unnecessary define statement
2022-01-10 02:33:48 -08:00
QMK Bot
5491385f3d Merge remote-tracking branch 'origin/master' into develop 2022-01-10 10:33:15 +00:00
Bartosz Nowak
d7eb09949d [Keyboard] Add keymap and settings for dactyl_manuform 6x6_5 thumb (#15526)
* Add dactyl manu 6x6 with stm32 support and 5thumb cluster

* Add review changes

* Add license to new files

* Fix enums for custom keymap

* Readme update

* Fix readme to follow one from template

* Add missing licence to files

* Update keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/rules.mk

* Update keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/rules.mk

* Remove readme from onekey keyboard

* Make separate macro for 5thumb
2022-01-10 02:31:51 -08:00
QMK Bot
437dad1b0e Merge remote-tracking branch 'origin/master' into develop 2022-01-10 10:22:38 +00:00
HorrorTroll
f59cbfb75c [Keyboard] Added Handwired Redragon K552 Kumara (RGB) (#14004)
* Added Handwired Redragon K552 with default and via keymaps

* Resolve some request changes, and change the cols pin to a better one.

* Resolved request changes

* Added OLED support and resolve request change

* Increase polling rate to 1000hz

* Update font for OLED, and change logo

* Added LED Underglow support

* Add personal custom keymap

* Nit some line, to get better way to look on code

* Refactor everything and solved some issue.

* Resolved issue
2022-01-10 02:21:53 -08:00
QMK Bot
13a44b1fff Merge remote-tracking branch 'origin/master' into develop 2022-01-10 09:26:59 +00:00
Dmitry Nosachev
c5728aebee Add Teensy2.0++ revision and VIA keymap to handwired/sono1 (#15296)
* teensy2.0pp revision, via support

* updated documentation

* Update keyboards/handwired/sono1/t2pp/rules.mk
2022-01-10 01:26:06 -08:00
QMK Bot
89260bab86 Merge remote-tracking branch 'origin/master' into develop 2022-01-10 09:14:12 +00:00
Gianluca D'Abrosca
d9e5a5f2db [Keymap] bongocat_wpm_responsive for lily58 (#14922)
* Adding the keymap of the wpm responsive bongocat

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/config.h

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/config.h

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/rules.mk

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/config.h

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Adding the License

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/rules.mk

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c

* Update keyboards/lily58/keymaps/bongocat_wpm_responsive/keymap.c
2022-01-10 01:13:35 -08:00
QMK Bot
ceab485e58 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 21:17:55 +00:00
QMK Bot
9682abd5b8 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 20:08:56 +00:00
Pete Sevander
21958a9343 New combo configuration options (#15083)
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
2022-01-09 12:02:25 -08:00
QMK Bot
69b211abb6 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 19:57:38 +00:00
QMK Bot
78dba27922 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 18:22:39 +00:00
QMK Bot
515eb94fab Merge remote-tracking branch 'origin/master' into develop 2022-01-09 17:45:14 +00:00
QMK Bot
30d060417f Merge remote-tracking branch 'origin/master' into develop 2022-01-09 04:03:19 +00:00
QMK Bot
9578b4b570 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 03:58:05 +00:00
QMK Bot
a1ca14c1e1 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 03:54:14 +00:00
Joel Challis
7562f6644f Slight tidy up of keyboard task loop (#15725) 2022-01-09 03:50:44 +00:00
Leo Deng
82d3bdb733 IS31FL3733 driver for LED Matrix (#15088) 2022-01-08 19:37:03 -08:00
QMK Bot
98078f769d Merge remote-tracking branch 'origin/master' into develop 2022-01-09 03:27:15 +00:00
QMK Bot
de59dd1835 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 02:34:46 +00:00
QMK Bot
e67ac61160 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 02:30:48 +00:00
QMK Bot
a120a166b9 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 01:30:24 +00:00
QMK Bot
687d4772a7 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 00:14:06 +00:00
QMK Bot
fea1a3d5c7 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 00:13:07 +00:00
QMK Bot
6332caef78 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:24:33 +00:00
QMK Bot
ff878aa30c Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:23:13 +00:00
QMK Bot
98aaf7dccd Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:19:44 +00:00
QMK Bot
86fd95962c Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:14:01 +00:00
QMK Bot
3c9ddf7c53 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 20:51:03 +00:00
QMK Bot
0a21929928 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 20:33:10 +00:00
QMK Bot
30c201e1c5 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 18:45:13 +00:00
QMK Bot
34dccc565e Merge remote-tracking branch 'origin/master' into develop 2022-01-08 03:23:12 +00:00
QMK Bot
2093498425 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 21:48:28 +00:00
QMK Bot
c3937de310 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 21:31:06 +00:00
QMK Bot
bd63d91163 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 20:21:40 +00:00
QMK Bot
bd07ae6713 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 13:28:14 +00:00
QMK Bot
f9a39775fc Merge remote-tracking branch 'origin/master' into develop 2022-01-07 08:25:25 +00:00
QMK Bot
6e8c3dfafc Merge remote-tracking branch 'origin/master' into develop 2022-01-07 05:25:57 +00:00
QMK Bot
ccd1839443 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 03:07:48 +00:00
QMK Bot
b1c4d3322d Merge remote-tracking branch 'origin/master' into develop 2022-01-07 01:39:11 +00:00
QMK Bot
03f2235bc5 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 23:50:31 +00:00
QMK Bot
eada33b889 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 23:46:19 +00:00
QMK Bot
d5293e1f43 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 23:45:47 +00:00
QMK Bot
005949ff25 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 12:00:55 +00:00
Drashna Jael're
ac466c1571 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 02:01:04 -08:00
Joel Challis
8dbc8a802c Unify the key up/down behaviour of RGB keycodes (#15730) 2022-01-06 18:52:32 +11:00
QMK Bot
2387a95be6 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 07:51:58 +00:00
QMK Bot
ce8e5fb54e Merge remote-tracking branch 'origin/master' into develop 2022-01-06 07:44:56 +00:00
QMK Bot
d0063ea3e9 Merge remote-tracking branch 'origin/master' into develop 2022-01-05 23:39:51 +00:00
QMK Bot
2b975f3f3a Merge remote-tracking branch 'origin/master' into develop 2022-01-05 21:57:10 +00:00
QMK Bot
34592f225a Merge remote-tracking branch 'origin/master' into develop 2022-01-05 20:07:12 +00:00
QMK Bot
49d8d9ebf2 Merge remote-tracking branch 'origin/master' into develop 2022-01-05 20:03:59 +00:00
Ryan
5fb93934d0 Fixes for bootloader refactor build failures (#15638) 2022-01-06 06:55:46 +11:00
QMK Bot
99e11f4823 Merge remote-tracking branch 'origin/master' into develop 2022-01-05 02:11:57 +00:00
QMK Bot
c089541938 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 22:42:47 +00:00
QMK Bot
73e372d920 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 21:55:23 +00:00
QMK Bot
1f1d2ffd29 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 17:08:10 +00:00
QMK Bot
0a3452f307 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 03:26:48 +00:00
QMK Bot
bfc8539d68 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 00:21:07 +00:00
QMK Bot
c32a329583 Format code according to conventions (#15705) 2022-01-02 00:11:49 -08:00
QMK Bot
668e6b8e92 Merge remote-tracking branch 'origin/master' into develop 2022-01-02 08:07:51 +00:00
peepeetee
89f7378569 move @yangdigi 's keyboards to a YDKB folder (#15681) 2022-01-02 00:07:01 -08:00
uqs
8b44eaa63e Update pmw3360 comments to match the datasheet better, fix delays. (#15682) 2022-01-02 00:06:17 -08:00
QMK Bot
367e2bb0ff Merge remote-tracking branch 'origin/master' into develop 2022-01-02 01:39:06 +00:00
QMK Bot
6513e0cea3 Merge remote-tracking branch 'origin/master' into develop 2022-01-01 18:11:31 +00:00
QMK Bot
5fcdff9935 Format code according to conventions (#15693) 2021-12-31 23:46:23 +00:00
Dasky
4fe6f3cd7a Fix split pointing for analog joystick (#15691)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-12-31 15:38:23 -08:00
QMK Bot
cbb51eacb0 Merge remote-tracking branch 'origin/master' into develop 2021-12-31 03:28:18 +00:00
QMK Bot
602b0b14d5 Merge remote-tracking branch 'origin/master' into develop 2021-12-30 04:18:05 +00:00
QMK Bot
dde5cd1c54 Merge remote-tracking branch 'origin/master' into develop 2021-12-29 21:36:08 +00:00
QMK Bot
c8af82432d Merge remote-tracking branch 'origin/master' into develop 2021-12-29 14:15:23 +00:00
Drashna Jaelre
f85b945c32 [Keyboard] Fix compiler issue with tractyl manuform 4x6 (#15646) 2021-12-29 05:54:57 -08:00
Drashna Jaelre
0d02af816b [Keyboard] Update grs_70ec to use newer custom matrix (#15609) 2021-12-29 05:26:28 -08:00
QMK Bot
42caee329f Merge remote-tracking branch 'origin/master' into develop 2021-12-29 13:06:10 +00:00
QMK Bot
6636c21453 Merge remote-tracking branch 'origin/master' into develop 2021-12-29 10:57:52 +00:00
QMK Bot
7d6a7e195c Merge remote-tracking branch 'origin/master' into develop 2021-12-29 10:56:54 +00:00
QMK Bot
967b3b351b Merge remote-tracking branch 'origin/master' into develop 2021-12-29 04:26:09 +00:00
Drashna Jaelre
9d801cb03d [Keyboard] Update Tractyl Manuform to use Split Pointing Device Sync 2021-12-28 20:25:06 -08:00
QMK Bot
db38fb1a60 Merge remote-tracking branch 'origin/master' into develop 2021-12-28 21:01:23 +00:00
QMK Bot
98823ff8fc Merge remote-tracking branch 'origin/master' into develop 2021-12-28 05:13:45 +00:00
QMK Bot
13e8fea023 Merge remote-tracking branch 'origin/master' into develop 2021-12-28 03:35:37 +00:00
yfuku
60b4ee1df3 Move to organization folder (#15481)
* move directory

* fix

* move wings42 to dailycraft

* Adjust wings42 to work with organization folder.
2021-12-28 14:34:24 +11:00
peepeetee
6151b365f9 move bm65hsrgb_iso and bm68hsrgb to rev1/ (#15132) 2021-12-28 14:32:34 +11:00
Drashna Jaelre
14d5c3f2f1 [Bug] Include missing string.h include (#15606) 2021-12-28 10:57:41 +11:00
QMK Bot
cd3db41d06 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 23:34:28 +00:00
QMK Bot
25707cad5c Format code according to conventions (#15604) 2021-12-28 10:08:44 +11:00
Drashna Jaelre
c86baf3ece [Core] Fix bug and code regression for Split Common (#15603) 2021-12-28 10:01:51 +11:00
QMK Bot
2689e360ce Merge remote-tracking branch 'origin/master' into develop 2021-12-27 10:28:33 +00:00
uqs
d3952523fe pwm3360 driver cleanup and diff reduction to adns9800 (#15559)
* Diff reduction between ADNS9800 and PMW3360 drivers.

They are very similar devices. This (somewhat) unreadable diff is
essentially a no-op, but it makes a `vimdiff` between the 2 drivers much
more readable.

* Cleanup pwm3360 driver some more.

Remove redundant calls to spi_start() and spi_stop(), as pmw3360_write()
will already call these.
2021-12-27 21:26:09 +11:00
QMK Bot
0709d208db Merge remote-tracking branch 'origin/master' into develop 2021-12-27 10:25:01 +00:00
QMK Bot
be2265d0d1 Format code according to conventions (#15593) 2021-12-27 21:20:52 +11:00
QMK Bot
1127e0da6b Merge remote-tracking branch 'origin/master' into develop 2021-12-27 10:18:38 +00:00
Alabastard-64
f08824f6eb Fix for SPI write timing in PMW3360 driver (#15519)
Timing does not match Pixart documentation for this sensor (may have been carried forward from adns9800).
Not aware of any issues coming from this currently.
It should only cause issues when writing to multiple registers in succession which currently only happens during initialization for the PMW3360.
This should prevent future issues with write operations if other features of the sensor are added.
2021-12-27 21:18:35 +11:00
QMK Bot
740c47d4d7 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 10:17:45 +00:00
QMK Bot
c929b7aadf Merge remote-tracking branch 'origin/master' into develop 2021-12-27 10:16:53 +00:00
Ryan
6f81880f17 Convert some more boards to Matrix Lite (#15489) 2021-12-27 21:15:56 +11:00
Victor Toni
6209122213 [Keymap] Add vitoni keymap for GMMK Pro (ISO) (#15006)
* [Keymap] Add vitoni layout for GMMK Pro (ISO)

Keymap has layered cursor keys similar to laptop keyboards.

* Configure RGB defaults for startup

* Configure encoder to change value/brightness on FN layer

* Remove FN layer and add dedicated RGB layer

* Make RGB layer sticky (using TG) to avoid holding FN while configuring RGB

* Add RGB indicators for active layers

* Add RGB indicator for active RESET mode

Signed-off-by: Victor Toni <victor.toni@gmail.com>

* Configure idle / USB suspend settings

* Add RGB fade in when resuming after suspend

* Add RGB fade out before suspend

* Add fade out before idle

* Add breathe effect when idle
2021-12-27 21:13:12 +11:00
Ryan
6bc870d899 Refactor bootloader_jump() implementations (#15450)
* Refactor `bootloader_jump()` implementations

* Fix tests?

* Rename `atmel-samba` to `md-boot`
2021-12-27 21:10:07 +11:00
QMK Bot
cffe143ca2 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 10:06:16 +00:00
Jay Greco
ac31863021 Custom matrix lite support for split keyboards (#14674)
* Custom matrix lite support for split keyboards

* WIP: matrix -> matrix_common refactor

* Move matrix_post_scan() to matrix_common.c
2021-12-27 21:03:40 +11:00
QMK Bot
4519af69a9 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 09:57:30 +00:00
Nick Brassel
4d96e53222 More GPIO compilation fixes. (#15592) 2021-12-26 21:36:52 -08:00
Nick Brassel
8503c97b96 Merge remote-tracking branch 'upstream/master' into develop 2021-12-27 15:18:08 +11:00
Nick Brassel
c53ee0b3ce Fixup line endings 2021-12-27 15:15:49 +11:00
QMK Bot
fa1d3159af Merge remote-tracking branch 'origin/master' into develop 2021-12-27 04:05:58 +00:00
QMK Bot
e969420a85 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:48:37 +00:00
QMK Bot
ba7243d409 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:44:31 +00:00
QMK Bot
2cd350d3f4 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:41:18 +00:00
QMK Bot
cd62961392 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:37:11 +00:00
QMK Bot
eadfcb9a40 Format code according to conventions (#15590) 2021-12-27 14:34:15 +11:00
QMK Bot
ed43450043 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:32:42 +00:00
QMK Bot
5df515c22d Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:29:11 +00:00
QMK Bot
2d03a337ab Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:19:52 +00:00
QMK Bot
111ee6cb91 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:16:22 +00:00
QMK Bot
daf71c8d37 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:10:40 +00:00
QMK Bot
ca5bd0aa2c Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:07:03 +00:00
QMK Bot
a1dd4f3c0f Merge remote-tracking branch 'origin/master' into develop 2021-12-27 03:06:43 +00:00
Simon Arlott
c93935f243 Durgod: Increase scan rate by using wait_us GPT timer (#14091)
Lower the tick rate from 10kHz to 1kHz (otherwise all the extra interrupts
reduce the achievable scan rate). Enable the WAIT_US_TIMER using GPT TIM3.

Observed scan rate on the K320 is increased from 625Hz to 2090-2120Hz.
2021-12-27 14:04:26 +11:00
QMK Bot
dfe5fe7181 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 02:57:38 +00:00
QMK Bot
c20096c7aa Merge remote-tracking branch 'origin/master' into develop 2021-12-27 02:51:13 +00:00
QMK Bot
79f2445414 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 02:49:35 +00:00
Chad Austin
25713dc222 Add sym_defer_pr debouncer type (#14948) 2021-12-27 13:44:56 +11:00
QMK Bot
e15dbb49e0 Merge remote-tracking branch 'origin/master' into develop 2021-12-27 02:42:35 +00:00
Nick Brassel
3a3272a3d6 Defer pin operations to gpio.h (#15589) 2021-12-27 13:27:38 +11:00
QMK Bot
11d5ff415f Merge remote-tracking branch 'origin/master' into develop 2021-12-27 01:25:35 +00:00
Drashna Jaelre
672c6b4721 Make (un)register code functions weak (#15285) 2021-12-27 12:15:56 +11:00
QMK Bot
f9cf09ebd1 Format code according to conventions (#15588) 2021-12-27 12:10:04 +11:00
Dasky
7f7364c559 [Core] Split support for pointing devices. (#15304)
* Draft implementation

* formatting

* fix combined buttons

* remove pimoroni throttle

* sync pointing on a throttle loop with checksum

* no longer used

* doh

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

* switch pimoroni to a cpi equivalent

* add cpi support

* allow user modification of seperate mouse reports

* a little tidy up

* add *_RIGHT defines.

* docs

* doxygen comments

* basic changelog

* clean up pimoroni

* small doc fixes

* Update docs/feature_pointing_device.md

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

* performance tweak if side has usb

* Don't run init funtions on wrong side

* renamed some variables for consistency

* fix pimoroni typos

* Clamp instead of OR

* Promote combined values to uint16_t

* Update pointing_device.c

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-12-27 12:05:51 +11:00
Hugo Osvaldo Barrera
76a673233c Add a clarification to an error message (#15207)
Makes this a bit more foolproof.

See https://github.com/qmk/qmk_firmware/issues/15202
2021-12-27 11:53:46 +11:00
vectorstorm
0391801267 Fixes potential wpm sampling overflow, along with code comment fixes (#15277)
Co-authored-by: Trevor Powell <trevor@vectorstorm.com.au>
2021-12-27 11:52:56 +11:00
Nick Brassel
6e40dfa022 Add open-drain GPIO support. (#15282)
* Add open-drain GPIO support.

* `qmk format-c`

* Wording.

* Remove port GPIO implementations as the only board that uses it has its own internal defs anyway. Will wait for first-class handling of ports in core before reimplementing.
2021-12-27 11:52:10 +11:00
QMK Bot
f491e6b138 Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:47:49 +00:00
uqs
859e2aa86b Fix some typos, especially the sensor name. (#15557) 2021-12-24 17:46:49 -08:00
QMK Bot
d6b9056d42 Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:35:05 +00:00
QMK Bot
c734e7c1bf Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:27:51 +00:00
QMK Bot
407647d0d1 Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:23:54 +00:00
QMK Bot
bd1d41024b Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:23:13 +00:00
QMK Bot
19abd80fb2 Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:20:37 +00:00
QMK Bot
78b330c8b4 Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:18:22 +00:00
QMK Bot
e0490a24f2 Merge remote-tracking branch 'origin/master' into develop 2021-12-25 01:13:07 +00:00
QMK Bot
53472a4e7b Merge remote-tracking branch 'origin/master' into develop 2021-12-24 22:31:48 +00:00
QMK Bot
e24fe0832b Merge remote-tracking branch 'origin/master' into develop 2021-12-24 20:10:51 +00:00
QMK Bot
45731efcac Merge remote-tracking branch 'origin/master' into develop 2021-12-24 00:39:31 +00:00
QMK Bot
b7ed91f861 Merge remote-tracking branch 'origin/master' into develop 2021-12-24 00:37:36 +00:00
QMK Bot
4582b1b41a Merge remote-tracking branch 'origin/master' into develop 2021-12-23 21:43:43 +00:00
QMK Bot
d737b4704c Merge remote-tracking branch 'origin/master' into develop 2021-12-22 17:46:05 +00:00
QMK Bot
51bc051172 Merge remote-tracking branch 'origin/master' into develop 2021-12-22 17:08:53 +00:00
QMK Bot
df7fe3e2ac Merge remote-tracking branch 'origin/master' into develop 2021-12-22 14:27:56 +00:00
SmollChungus
e95156d4d8 Documentation Typo fix (#15538) 2021-12-22 12:47:01 +00:00
QMK Bot
96073e1368 Merge remote-tracking branch 'origin/master' into develop 2021-12-22 07:37:26 +00:00
QMK Bot
f5995901b0 [CI] Format code according to conventions (#15541) 2021-12-22 17:09:50 +11:00
Ryan
77d3e564f7 Migrate RN42 to UART driver and refactor (#15492) 2021-12-22 16:51:39 +11:00
QMK Bot
78648b37e9 Merge remote-tracking branch 'origin/master' into develop 2021-12-21 18:47:48 +00:00
Nick Brassel
7b018f097d Use the PR title rather than parsing the commit message. (#15537) 2021-12-22 05:44:47 +11:00
QMK Bot
b6bd01aa8b Merge remote-tracking branch 'origin/master' into develop 2021-12-21 17:20:45 +00:00
QMK Bot
9a356ab943 Merge remote-tracking branch 'origin/master' into develop 2021-12-20 19:32:28 +00:00
QMK Bot
acf7824f9a Merge remote-tracking branch 'origin/master' into develop 2021-12-19 20:59:07 +00:00
QMK Bot
3410b25cf8 Merge remote-tracking branch 'origin/master' into develop 2021-12-19 20:07:41 +00:00
QMK Bot
560386461e Merge remote-tracking branch 'origin/master' into develop 2021-12-18 08:49:18 +00:00
QMK Bot
8d61218abe Merge remote-tracking branch 'origin/master' into develop 2021-12-18 03:00:14 +00:00
QMK Bot
6beca1c6c0 Merge remote-tracking branch 'origin/master' into develop 2021-12-18 02:30:19 +00:00
QMK Bot
aefa85162b Merge remote-tracking branch 'origin/master' into develop 2021-12-17 16:11:43 +00:00
QMK Bot
4219508b42 Merge remote-tracking branch 'origin/master' into develop 2021-12-17 07:52:39 +00:00
QMK Bot
1b29f98d99 Merge remote-tracking branch 'origin/master' into develop 2021-12-17 07:52:16 +00:00
QMK Bot
4b185a52bc Merge remote-tracking branch 'origin/master' into develop 2021-12-16 18:07:39 +00:00
QMK Bot
3a2d01df6a Merge remote-tracking branch 'origin/master' into develop 2021-12-16 18:05:44 +00:00
QMK Bot
8fe49ebe0b Merge remote-tracking branch 'origin/master' into develop 2021-12-16 16:46:11 +00:00
QMK Bot
9f72f27279 Merge remote-tracking branch 'origin/master' into develop 2021-12-16 08:29:11 +00:00
QMK Bot
c8fd62432a Merge remote-tracking branch 'origin/master' into develop 2021-12-16 05:59:42 +00:00
QMK Bot
b33ecce392 Merge remote-tracking branch 'origin/master' into develop 2021-12-15 21:41:42 +00:00
Ryan
9d0b145007 Fix build failure for UT47 (#15483) 2021-12-15 14:25:32 +00:00
Ryan
c12268807d Migrate serial_uart usages to UART driver (#15479)
* Migrate Thermal Printer feature to UART driver

* Migrate 40percentclub UT47 to UART driver

* Migrate Centromere to UART driver

* Migrate Chimera Ergo to UART driver

* Migrate Chimera Let's Split to UART driver

* Migrate Chimera Ortho to UART driver

* Migrate Chimera Ortho Plus to UART driver

* Migrate Comet46 to UART driver

* Migrate Palm USB converter to UART driver

* Migrate Sun USB converter to UART driver

* Migrate Dichotomy to UART driver

* Migrate Honeycomb to UART driver

* Migrate Mitosis to UART driver

* Migrate Redox W to UART driver

* Migrate Uni660 to UART driver

* Migrate Telophase to UART driver
2021-12-15 11:00:39 +00:00
QMK Bot
c0bb153151 Merge remote-tracking branch 'origin/master' into develop 2021-12-15 04:54:21 +00:00
QMK Bot
3c5b9f70f5 Merge remote-tracking branch 'origin/master' into develop 2021-12-15 03:42:16 +00:00
QMK Bot
fce882f516 Merge remote-tracking branch 'origin/master' into develop 2021-12-15 03:40:55 +00:00
QMK Bot
045977ea91 Merge remote-tracking branch 'origin/master' into develop 2021-12-15 03:40:34 +00:00
QMK Bot
7e3dab79ad Merge remote-tracking branch 'origin/master' into develop 2021-12-15 03:38:44 +00:00
QMK Bot
a97da5a569 Merge remote-tracking branch 'origin/master' into develop 2021-12-15 02:52:46 +00:00
Drashna Jael're
14d5e92da5 Merge remote-tracking branch 'origin/master' into develop 2021-12-14 18:29:13 -08:00
Stefan Kerkmann
8b865a9d64 [Core] Don't send keyboard reports that propagate no changes to the host (#14065) 2021-12-14 10:40:18 -08:00
QMK Bot
ce5a2a7367 Merge remote-tracking branch 'origin/master' into develop 2021-12-14 07:50:11 +00:00
QMK Bot
f6be5773d5 Merge remote-tracking branch 'origin/master' into develop 2021-12-14 07:43:14 +00:00
QMK Bot
757b42f2fb Merge remote-tracking branch 'origin/master' into develop 2021-12-14 04:56:33 +00:00
QMK Bot
c03859a3e4 Merge remote-tracking branch 'origin/master' into develop 2021-12-13 02:06:27 +00:00
Dipl.-Ing. Raoul Rubien, BSc
415faebd65 added missing audio_off_user() callback (#15457)
Co-authored-by: Raoul Rubien <raoul.rubienr@gmail.com>
2021-12-11 16:58:25 -08:00
QMK Bot
dd994e72ad Merge remote-tracking branch 'origin/master' into develop 2021-12-11 18:40:00 +00:00
Drashna Jael're
f92d153532 Merge remote-tracking branch 'origin/master' into develop 2021-12-11 10:28:29 -08:00
QMK Bot
31bce31c74 Merge remote-tracking branch 'origin/master' into develop 2021-12-09 06:45:59 +00:00
QMK Bot
6ef36482a2 Merge remote-tracking branch 'origin/master' into develop 2021-12-09 06:42:44 +00:00
QMK Bot
46a74d820f Merge remote-tracking branch 'origin/master' into develop 2021-12-09 06:41:17 +00:00
fauxpark
c394bf1c98 Merge remote-tracking branch 'upstream/master' into develop 2021-12-09 17:24:05 +11:00
QMK Bot
7aa466515e Merge remote-tracking branch 'origin/master' into develop 2021-12-09 05:01:31 +00:00
QMK Bot
ef847f8ef6 Merge remote-tracking branch 'origin/master' into develop 2021-12-09 03:49:44 +00:00
Nick Brassel
30f0bbe079 Add support for 21.11.x, remove 21.6.x as ChibiOS "canceled" it. (#15435) 2021-12-09 07:42:21 +11:00
QMK Bot
1259140d5a Merge remote-tracking branch 'origin/master' into develop 2021-12-08 17:52:11 +00:00
QMK Bot
108684351e Merge remote-tracking branch 'origin/master' into develop 2021-12-08 17:39:29 +00:00
Drashna Jael're
af936c6ae6 Merge remote-tracking branch 'origin/master' into develop 2021-12-08 08:17:55 -08:00
Drashna Jaelre
26febb7c24 Expand rotational range for PMW3360 Optical Sensor (#15431) 2021-12-08 07:38:09 -08:00
QMK Bot
fe2ef59240 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 20:01:52 +00:00
QMK Bot
fc968fd473 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 20:01:04 +00:00
QMK Bot
0ea644a53b Merge remote-tracking branch 'origin/master' into develop 2021-12-07 20:00:12 +00:00
QMK Bot
3c90a30fe7 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 19:59:04 +00:00
QMK Bot
6cc51eb9d9 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 19:04:42 +00:00
QMK Bot
eecd22fbd4 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 14:48:49 +00:00
Drashna Jaelre
9d7e64bcb3 Remove Deprecated USB Polling comment from vusb.c (#15420) 2021-12-07 19:57:33 +11:00
QMK Bot
0e52a84878 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 06:36:39 +00:00
QMK Bot
fc51ce8304 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 05:17:41 +00:00
QMK Bot
1b67b14587 Merge remote-tracking branch 'origin/master' into develop 2021-12-07 04:58:08 +00:00
Drashna Jaelre
5f7c0e3097 Add missing define for unicode common (#15416) 2021-12-06 11:36:30 -08:00
QMK Bot
ce1ee47ef5 Merge remote-tracking branch 'origin/master' into develop 2021-12-06 17:38:55 +00:00
Drashna Jaelre
942b3cf16c Generalize Unicode defines (#15409) 2021-12-06 09:38:36 -08:00
QMK Bot
e8747e116f Merge remote-tracking branch 'origin/master' into develop 2021-12-06 17:12:55 +00:00
QMK Bot
681f9f4ca6 Merge remote-tracking branch 'origin/master' into develop 2021-12-06 05:47:21 +00:00
QMK Bot
ae3219ae0e Merge remote-tracking branch 'origin/master' into develop 2021-12-06 04:48:27 +00:00
QMK Bot
42a5742add Merge remote-tracking branch 'origin/master' into develop 2021-12-06 04:27:05 +00:00
QMK Bot
590082520e Merge remote-tracking branch 'origin/master' into develop 2021-12-06 01:26:21 +00:00
QMK Bot
a299018824 Merge remote-tracking branch 'origin/master' into develop 2021-12-06 00:32:26 +00:00
QMK Bot
12b9831eeb Merge remote-tracking branch 'origin/master' into develop 2021-12-05 19:52:49 +00:00
QMK Bot
3c0a91059b Merge remote-tracking branch 'origin/master' into develop 2021-12-02 16:56:43 +00:00
Joel Challis
3bf2403244 Tidy up existing i2c_master implementations (#15376)
* Move chibios defines out of header

* Make some avr defines internal
2021-12-02 14:32:31 +00:00
QMK Bot
4466261895 Merge remote-tracking branch 'origin/master' into develop 2021-12-02 14:32:15 +00:00
QMK Bot
4d55cde5a7 Merge remote-tracking branch 'origin/master' into develop 2021-12-02 01:06:17 +00:00
QMK Bot
d123364b32 Merge remote-tracking branch 'origin/master' into develop 2021-12-01 17:38:53 +00:00
fauxpark
0b241ea4f7 Merge remote-tracking branch 'upstream/master' into develop 2021-12-02 03:26:54 +11:00
Joel Challis
1493e6d3f0 Convert ai03/orbit to SPLIT_KEYBOARD (#15340) 2021-12-01 11:19:14 +00:00
Joel Challis
3d06860f3c Convert not_so_minidox to SPLIT_KEYBOARD (#15306) 2021-12-01 11:19:07 +00:00
QMK Bot
3716e02ff3 Merge remote-tracking branch 'origin/master' into develop 2021-12-01 08:59:09 +00:00
Joel Challis
2726856cde Implement MAGIC_TOGGLE_CONTROL_CAPSLOCK (#15368) 2021-11-30 17:34:08 -08:00
QMK Bot
3079fd0415 Merge remote-tracking branch 'origin/master' into develop 2021-11-30 20:15:53 +00:00
QMK Bot
0e5fc86c68 Merge remote-tracking branch 'origin/master' into develop 2021-11-30 19:24:58 +00:00
QMK Bot
a1c39084a2 Merge remote-tracking branch 'origin/master' into develop 2021-11-30 19:16:06 +00:00
QMK Bot
8879cdb250 Merge remote-tracking branch 'origin/master' into develop 2021-11-30 18:37:47 +00:00
QMK Bot
75714ff123 Merge remote-tracking branch 'origin/master' into develop 2021-11-30 18:33:12 +00:00
QMK Bot
4bc356711d Merge remote-tracking branch 'origin/master' into develop 2021-11-30 17:52:20 +00:00
QMK Bot
12d26c1466 Merge remote-tracking branch 'origin/master' into develop 2021-11-30 17:50:55 +00:00
QMK Bot
2445c1435a Merge remote-tracking branch 'origin/master' into develop 2021-11-30 17:49:29 +00:00
Joel Challis
9204f8535b [Keyboard] Convert ergoinu to SPLIT_KEYBOARD (#15305) 2021-11-30 09:49:09 -08:00
QMK Bot
55a84843ea Merge remote-tracking branch 'origin/master' into develop 2021-11-30 10:11:28 +00:00
QMK Bot
a83731660d Merge remote-tracking branch 'origin/master' into develop 2021-11-30 05:54:51 +00:00
QMK Bot
d57ecaa9a6 Merge remote-tracking branch 'origin/master' into develop 2021-11-30 05:45:47 +00:00
Drashna Jaelre
b5a5bb6d74 Change default USB Polling rate to 1kHz (#15352) 2021-11-29 17:18:54 -08:00
QMK Bot
fefcad3933 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 16:41:58 +00:00
QMK Bot
04d9c53c6e Merge remote-tracking branch 'origin/master' into develop 2021-11-29 16:28:24 +00:00
QMK Bot
c1556f7af0 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 16:27:40 +00:00
QMK Bot
25a0432228 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 16:24:11 +00:00
xiao
b7cdda7dcd [Keyboard] Added Wakizashi 40 (#15336)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-11-29 08:23:58 -08:00
Stefan Kerkmann
c1297ceb97 [Core] Remove matrix_is_modified() and debounce_is_active() (#15349) 2021-11-29 08:22:10 -08:00
QMK Bot
a3e9b347ec Merge remote-tracking branch 'origin/master' into develop 2021-11-29 15:08:56 +00:00
QMK Bot
5ebeb32ec0 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 15:08:12 +00:00
QMK Bot
bee48ced71 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:30:33 +00:00
QMK Bot
852d3af0a1 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:29:27 +00:00
QMK Bot
1c1ba06cfb Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:28:36 +00:00
QMK Bot
36d5ea8f85 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:26:55 +00:00
QMK Bot
dcb20e55fc Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:26:11 +00:00
QMK Bot
5bd3e9e806 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:24:57 +00:00
QMK Bot
7ac9d1abe4 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:23:43 +00:00
QMK Bot
696dea19f6 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:23:16 +00:00
QMK Bot
9215edde66 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:21:44 +00:00
QMK Bot
9d0373779c Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:20:59 +00:00
QMK Bot
6779f847ea Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:19:11 +00:00
QMK Bot
e931ac57e1 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:18:42 +00:00
QMK Bot
42412d7272 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:18:06 +00:00
QMK Bot
d558d10042 Merge remote-tracking branch 'origin/master' into develop 2021-11-29 08:17:17 +00:00
wheredoesyourmindgo
7f67504993 Added cancel_key_lock function (#15321) 2021-11-29 00:17:07 -08:00
QMK Bot
4461355cce Merge remote-tracking branch 'origin/master' into develop 2021-11-29 07:42:34 +00:00
QMK Bot
ccc2030bee Merge remote-tracking branch 'origin/master' into develop 2021-11-28 21:00:34 +00:00
QMK Bot
6932e22dd8 Merge remote-tracking branch 'origin/master' into develop 2021-11-28 20:45:57 +00:00
QMK Bot
69c341eb5c Merge remote-tracking branch 'origin/master' into develop 2021-11-28 20:28:51 +00:00
QMK Bot
1f7faad37a Merge remote-tracking branch 'origin/master' into develop 2021-11-28 20:01:16 +00:00
QMK Bot
d41067f59b Merge remote-tracking branch 'origin/master' into develop 2021-11-28 06:44:34 +00:00
QMK Bot
24d47dc631 Merge remote-tracking branch 'origin/master' into develop 2021-11-28 06:27:27 +00:00
QMK Bot
c99d2965a0 Merge remote-tracking branch 'origin/master' into develop 2021-11-28 05:53:26 +00:00
QMK Bot
9a4a3517de Merge remote-tracking branch 'origin/master' into develop 2021-11-28 02:00:18 +00:00
QMK Bot
4b1db46647 Merge remote-tracking branch 'origin/master' into develop 2021-11-28 01:12:40 +00:00
Nick Brassel
51db8baf77 Start develop for 2022q1. 2021-11-28 11:16:20 +11:00
8129 changed files with 182960 additions and 60062 deletions

View File

@@ -5,6 +5,9 @@ AlignConsecutiveAssignments: 'true'
AlignConsecutiveDeclarations: 'true'
AlignOperands: 'true'
AllowAllParametersOfDeclarationOnNextLine: 'false'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortFunctionsOnASingleLine: Empty
AllowShortLoopsOnASingleLine: 'false'
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: 'false'
@@ -20,6 +23,7 @@ SortIncludes: 'false'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: 'false'
SpacesBeforeTrailingComments: 1
TabWidth: '4'
UseTab: Never

View File

@@ -18,19 +18,18 @@ assignees: ''
## System Information
- Keyboard:
- Revision (if applicable):
- Operating system:
- AVR GCC version:
<!-- Run `avr-gcc --version` to find this out. -->
- ARM GCC version:
<!-- Run `arm-none-eabi-gcc --version` to find this out. -->
- QMK Firmware version:
<!-- Run `git describe --abbrev=0 --tags` to find this out. -->
- Any keyboard related software installed?
- [ ] AutoHotKey
- [ ] Karabiner
- [ ] Other:
**Keyboard:**
**Revision (if applicable):**
**Operating system:**
**`qmk doctor` output:**
```
(Paste output here)
```
**Any keyboard related software installed?**
- [ ] AutoHotKey (Windows)
- [ ] Karabiner (macOS)
- [ ] Other:
## Additional Context

16
.github/workflows/auto_approve.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: Automatic Approve
on:
schedule:
- cron: "*/5 * * * *"
jobs:
automatic_approve:
runs-on: ubuntu-latest
steps:
- uses: mheap/automatic-approve-action@v1
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
workflows: "format.yml,lint.yml,unit_test.yml"
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"

View File

@@ -5,7 +5,6 @@ on:
branches:
- master
jobs:
develop_update:
runs-on: ubuntu-latest
@@ -15,6 +14,7 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout develop
@@ -22,14 +22,7 @@ jobs:
git fetch origin master develop
git checkout develop
- name: Check if branch locked
id: check_locked
uses: andstor/file-existence-action@v1
with:
files: ".locked"
- name: Update develop from master
if: steps.check_locked.outputs.files_exists == 'false'
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"

View File

@@ -0,0 +1,35 @@
name: Update feature branches after develop merge
on:
push:
branches:
- develop
jobs:
feature_branch_update:
runs-on: ubuntu-latest
if: github.repository == 'qmk/qmk_firmware'
strategy:
matrix:
branch:
- xap
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout branch
run: |
git fetch origin develop ${{ matrix.branch }}
git checkout ${{ matrix.branch }}
- name: Update branch from develop
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"
git merge origin/develop
git push origin ${{ matrix.branch }}

View File

@@ -1,51 +0,0 @@
name: PR Lint Format
on:
pull_request:
paths:
- 'drivers/**'
- 'lib/arm_atsam/**'
- 'lib/lib8tion/**'
- 'lib/python/**'
- 'platforms/**'
- 'quantum/**'
- 'tests/**'
- 'tmk_core/**'
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- name: Install dependencies
run: |
apt-get update && apt-get install -y dos2unix
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: trilom/file-changes-action@v1.2.4
id: file_changes
with:
output: ' '
fileOutput: ' '
- name: Run qmk formatters
shell: 'bash {0}'
run: |
cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt
qmk format-c --core-only $(< ~/files_changed.txt) || true
qmk format-python $(< ~/files_changed.txt) || true
qmk format-text $(< ~/files_changed.txt) || true
- name: Fail when formatting required
run: |
git diff
for file in $(git diff --name-only); do
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
done
test -z "$(git diff --name-only)"

51
.github/workflows/format.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: PR Lint Format
on:
pull_request:
paths:
- 'drivers/**'
- 'lib/arm_atsam/**'
- 'lib/lib8tion/**'
- 'lib/python/**'
- 'platforms/**'
- 'quantum/**'
- 'tests/**'
- 'tmk_core/**'
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
pip3 install -r requirements-dev.txt
- uses: trilom/file-changes-action@v1.2.4
id: file_changes
with:
output: ' '
fileOutput: ' '
- name: Run qmk formatters
shell: 'bash {0}'
run: |
cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt
qmk format-c --core-only $(< ~/files_changed.txt) || true
qmk format-python $(< ~/files_changed.txt) || true
qmk format-text $(< ~/files_changed.txt) || true
- name: Fail when formatting required
run: |
git diff
for file in $(git diff --name-only); do
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
done
test -z "$(git diff --name-only)"

View File

@@ -1,49 +0,0 @@
name: Lint Format
on:
push:
branches:
- master
- develop
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- name: Install dependencies
run: |
apt-get update && apt-get install -y dos2unix
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run qmk formatters
shell: 'bash {0}'
run: |
qmk format-c -a
qmk format-python -a
qmk format-text -a
git diff
- uses: rlespinasse/github-slug-action@v3.x
- name: Become QMK Bot
run: |
git config user.name 'QMK Bot'
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
delete-branch: true
branch: bugfix/format_${{ env.GITHUB_REF_SLUG }}
author: QMK Bot <hello@qmk.fm>
committer: QMK Bot <hello@qmk.fm>
commit-message: Format code according to conventions
title: '[CI] Format code according to conventions'

49
.github/workflows/format_push.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: Lint Format
on:
push:
branches:
- master
- develop
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
pip3 install -r requirements-dev.txt
- name: Run qmk formatters
shell: 'bash {0}'
run: |
qmk format-c -a
qmk format-python -a
qmk format-text -a
git diff
- uses: rlespinasse/github-slug-action@v3.x
- name: Become QMK Bot
run: |
git config user.name 'QMK Bot'
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
delete-branch: true
branch: bugfix/format_${{ env.GITHUB_REF_SLUG }}
author: QMK Bot <hello@qmk.fm>
committer: QMK Bot <hello@qmk.fm>
commit-message: Format code according to conventions
title: '[CI] Format code according to conventions'

2
.gitignore vendored
View File

@@ -3,6 +3,7 @@
*.swp
*~
.DS_Store
._*
# Build artifacts
.clang_complete
@@ -18,7 +19,6 @@
# QMK-specific
api_data/v1
doxygen/
quantum/version.h
*.bin
*.eep

View File

@@ -21,7 +21,7 @@ DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "QMK Firmware"
PROJECT_NUMBER = https://github.com/qmk/qmk_firmware
PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families"
OUTPUT_DIRECTORY = doxygen
OUTPUT_DIRECTORY = .build/doxygen
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
@@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_PATTERNS = */protocol/arm_atsam/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
@@ -209,7 +209,7 @@ EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
PREDEFINED = __DOXYGEN__ PROGMEM
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES

135
Makefile
View File

@@ -19,6 +19,10 @@ endif
# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
override SILENT := false
ifdef SKIP_VERSION
SKIP_GIT := yes
endif
ifndef SUB_IS_SILENT
ifndef SKIP_GIT
QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
@@ -50,48 +54,12 @@ ABS_ROOT_MAKEFILE := $(abspath $(ROOT_MAKEFILE))
ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE))
ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE))
STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR))
BUILD_DIR := $(ROOT_DIR)/.build
TEST_DIR := $(BUILD_DIR)/test
include paths.mk
TEST_OUTPUT_DIR := $(BUILD_DIR)/test
ERROR_FILE := $(BUILD_DIR)/error_occurred
# Helper function to process the newt element of a space separated path
# It works a bit like the traditional functional head tail
# so the CURRENT_PATH_ELEMENT will become the new head
# and the PATH_ELEMENTS are the rest that are still unprocessed
define NEXT_PATH_ELEMENT
$$(eval CURRENT_PATH_ELEMENT := $$(firstword $$(PATH_ELEMENTS)))
$$(eval PATH_ELEMENTS := $$(wordlist 2,9999,$$(PATH_ELEMENTS)))
endef
# We change the / to spaces so that we more easily can work with the elements
# separately
PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR))
# Initialize the path elements list for further processing
$(eval $(call NEXT_PATH_ELEMENT))
# Phony targets to enable a few simple make commands outside the main processing below.
.PHONY: list-keyboards
list-keyboards:
util/list_keyboards.sh | sort -u | tr '\n' ' '
.PHONY: generate-keyboards-file
generate-keyboards-file:
util/list_keyboards.sh | sort -u
.PHONY: clean
clean:
echo -n 'Deleting .build/ ... '
rm -rf $(BUILD_DIR)
echo 'done.'
.PHONY: distclean
distclean: clean
echo -n 'Deleting *.bin, *.hex, and *.uf2 ... '
rm -f *.bin *.hex *.uf2
echo 'done.'
.DEFAULT_GOAL := all:all
@@ -119,53 +87,20 @@ endef
# a function that returns the value
COMPARE_AND_REMOVE_FROM_RULE = $(eval $(call COMPARE_AND_REMOVE_FROM_RULE_HELPER,$1))$(RULE_FOUND)
# Recursively try to find a match for the start of the rule to be checked
# $1 The list to be checked
# If a match is found, then RULE_FOUND is set to true
# and MATCHED_ITEM to the item that was matched
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER3
ifneq ($1,)
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,$$(firstword $1)),true)
MATCHED_ITEM := $$(firstword $1)
else
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER3,$$(wordlist 2,9999,$1)))
endif
endif
endef
# A recursive helper function for finding the longest match
# $1 The list to be checked
# It works by always removing the currently matched item from the list
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2
# Stop the recursion when the list is empty
ifneq ($1,)
RULE_BEFORE := $$(RULE)
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER3,$1))
# If a match is found in the current list, otherwise just return what we had before
ifeq ($$(RULE_FOUND),true)
# Save the best match so far and call itself recursively
BEST_MATCH := $$(MATCHED_ITEM)
BEST_MATCH_RULE := $$(RULE)
RULE_FOUND := false
RULE := $$(RULE_BEFORE)
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER2,$$(filter-out $$(MATCHED_ITEM),$1)))
endif
endif
endef
# Recursively try to find the longest match for the start of the rule to be checked
# Try to find a match for the start of the rule to be checked
# $1 The list to be checked
# If a match is found, then RULE_FOUND is set to true
# and MATCHED_ITEM to the item that was matched
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER
BEST_MATCH :=
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER2,$1))
ifneq ($$(BEST_MATCH),)
# Split on ":", padding with empty strings to avoid indexing issues
TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE))
TOKENr:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[1])" $$(RULE))
FOUNDx:=$$(shell echo $1 | tr " " "\n" | grep -Fx $$(TOKEN1))
ifneq ($$(FOUNDx),)
RULE := $$(TOKENr)
RULE_FOUND := true
RULE := $$(BEST_MATCH_RULE)
MATCHED_ITEM := $$(BEST_MATCH)
MATCHED_ITEM := $$(TOKEN1)
else
RULE_FOUND := false
MATCHED_ITEM :=
@@ -340,7 +275,7 @@ define PARSE_KEYMAP
# Specify the variables that we are passing forward to submake
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY) QMK_BIN=$$(QMK_BIN)
# And the first part of the make command
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f $(BUILDDEFS_PATH)/build_keyboard.mk $$(MAKE_TARGET)
# The message to display
MAKE_MSG := $$(MSG_MAKE_KB)
# We run the command differently, depending on if we want more output or not
@@ -382,12 +317,12 @@ define BUILD_TEST
TEST_NAME := $$(notdir $$(TEST_PATH))
MAKE_TARGET := $2
COMMAND := $1
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET)
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f $(BUILDDEFS_PATH)/build_test.mk $$(MAKE_TARGET)
MAKE_VARS := TEST=$$(TEST_NAME) TEST_PATH=$$(TEST_PATH) FULL_TESTS="$$(FULL_TESTS)"
MAKE_MSG := $$(MSG_MAKE_TEST)
$$(eval $$(call BUILD))
ifneq ($$(MAKE_TARGET),clean)
TEST_EXECUTABLE := $$(TEST_DIR)/$$(TEST_NAME).elf
TEST_EXECUTABLE := $$(TEST_OUTPUT_DIR)/$$(TEST_NAME).elf
TESTS += $$(TEST_NAME)
TEST_MSG := $$(MSG_TEST)
$$(TEST_NAME)_COMMAND := \
@@ -404,6 +339,7 @@ define PARSE_TEST
TESTS :=
TEST_NAME := $$(firstword $$(subst :, ,$$(RULE)))
TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME):,,$$(RULE)))
include $(BUILDDEFS_PATH)/testlist.mk
ifeq ($$(TEST_NAME),all)
MATCHED_TESTS := $$(TEST_LIST)
else
@@ -426,7 +362,6 @@ define SET_SILENT_MODE
endif
endef
include paths.mk
include $(BUILDDEFS_PATH)/message.mk
ifeq ($(strip $(BREAK_ON_ERRORS)), yes)
@@ -496,14 +431,22 @@ 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
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o quantum/version.h)
.PHONY: list-keyboards
list-keyboards:
util/list_keyboards.sh | sort -u | tr '\n' ' '
include $(ROOT_DIR)/testlist.mk
.PHONY: generate-keyboards-file
generate-keyboards-file:
util/list_keyboards.sh | sort -u
.PHONY: clean
clean:
echo -n 'Deleting .build/ ... '
rm -rf $(BUILD_DIR)
echo 'done.'
.PHONY: distclean
distclean: clean
echo -n 'Deleting *.bin, *.hex, and *.uf2 ... '
rm -f *.bin *.hex *.uf2
echo 'done.'

View File

@@ -30,6 +30,7 @@
# bootloadhid HIDBootFlash compatible (ATmega32A)
# usbasploader USBaspLoader (ATmega328P)
# ARM:
# halfkay PJRC Teensy
# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
# stm32duino STM32Duino (STM32F103x8)
# stm32-dfu STM32 USB DFU in ROM
@@ -37,12 +38,23 @@
# RISC-V:
# gd32v-dfu GD32V USB DFU in ROM
#
# If you need to provide your own implementation, you can set inside `rules.mk`
# `BOOTLOADER = custom` -- you'll need to provide your own implementations. See
# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see
# which functions may be overridden.
#
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list
ifeq ($(strip $(BOOTLOADER)), custom)
OPT_DEFS += -DBOOTLOADER_CUSTOM
BOOTLOADER_TYPE = custom
endif
ifeq ($(strip $(BOOTLOADER)), atmel-dfu)
OPT_DEFS += -DBOOTLOADER_ATMEL_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_TYPE = dfu
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE = 4096
endif
@@ -53,6 +65,8 @@ endif
ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_TYPE = dfu
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE ?= 4096
endif
@@ -63,6 +77,8 @@ endif
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
OPT_DEFS += -DBOOTLOADER_QMK_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_TYPE = dfu
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE ?= 4096
endif
@@ -73,10 +89,14 @@ endif
ifeq ($(strip $(BOOTLOADER)), qmk-hid)
OPT_DEFS += -DBOOTLOADER_QMK_HID
OPT_DEFS += -DBOOTLOADER_HID
BOOTLOADER_TYPE = dfu
BOOTLOADER_SIZE ?= 4096
endif
ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
BOOTLOADER_TYPE = halfkay
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 512
endif
@@ -86,18 +106,26 @@ ifeq ($(strip $(BOOTLOADER)), halfkay)
endif
ifeq ($(strip $(BOOTLOADER)), caterina)
OPT_DEFS += -DBOOTLOADER_CATERINA
BOOTLOADER_TYPE = caterina
BOOTLOADER_SIZE = 4096
endif
ifneq (,$(filter $(BOOTLOADER), bootloadhid bootloadHID))
OPT_DEFS += -DBOOTLOADER_BOOTLOADHID
BOOTLOADER_TYPE = bootloadhid
BOOTLOADER_SIZE = 4096
endif
ifneq (,$(filter $(BOOTLOADER), usbasploader USBasp))
OPT_DEFS += -DBOOTLOADER_USBASP
BOOTLOADER_TYPE = usbasploader
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), lufa-ms)
OPT_DEFS += -DBOOTLOADER_MS
BOOTLOADER_TYPE = dfu
BOOTLOADER_SIZE ?= 8192
FIRMWARE_FORMAT = bin
cpfirmware: lufa_warning
@@ -115,6 +143,7 @@ endif
ifeq ($(strip $(BOOTLOADER)), stm32-dfu)
OPT_DEFS += -DBOOTLOADER_STM32_DFU
BOOTLOADER_TYPE = stm32_dfu
# Options to pass to dfu-util when flashing
DFU_ARGS ?= -d 0483:DF11 -a 0 -s 0x08000000:leave
@@ -122,6 +151,7 @@ ifeq ($(strip $(BOOTLOADER)), stm32-dfu)
endif
ifeq ($(strip $(BOOTLOADER)), apm32-dfu)
OPT_DEFS += -DBOOTLOADER_APM32_DFU
BOOTLOADER_TYPE = stm32_dfu
# Options to pass to dfu-util when flashing
DFU_ARGS ?= -d 314B:0106 -a 0 -s 0x08000000:leave
@@ -129,6 +159,7 @@ ifeq ($(strip $(BOOTLOADER)), apm32-dfu)
endif
ifeq ($(strip $(BOOTLOADER)), gd32v-dfu)
OPT_DEFS += -DBOOTLOADER_GD32V_DFU
BOOTLOADER_TYPE = gd32v_dfu
# Options to pass to dfu-util when flashing
DFU_ARGS ?= -d 28E9:0189 -a 0 -s 0x08000000:leave
@@ -136,6 +167,8 @@ ifeq ($(strip $(BOOTLOADER)), gd32v-dfu)
endif
ifeq ($(strip $(BOOTLOADER)), kiibohd)
OPT_DEFS += -DBOOTLOADER_KIIBOHD
BOOTLOADER_TYPE = kiibohd
ifeq ($(strip $(MCU_ORIG)), MK20DX128)
MCU_LDSCRIPT = MK20DX128BLDR4
endif
@@ -151,8 +184,7 @@ ifeq ($(strip $(BOOTLOADER)), stm32duino)
OPT_DEFS += -DBOOTLOADER_STM32DUINO
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
BOARD = STM32_F103_STM32DUINO
# STM32F103 does NOT have an USB bootloader in ROM (only serial), so setting anything here does not make much sense
STM32_BOOTLOADER_ADDRESS = 0x80000000
BOOTLOADER_TYPE = stm32duino
# Options to pass to dfu-util when flashing
DFU_ARGS = -d 1EAF:0003 -a 2 -R
@@ -160,4 +192,17 @@ ifeq ($(strip $(BOOTLOADER)), stm32duino)
endif
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
OPT_DEFS += -DBOOTLOADER_TINYUF2
BOOTLOADER_TYPE = tinyuf2
endif
ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
BOOTLOADER_TYPE = halfkay
endif
ifeq ($(strip $(BOOTLOADER)), md-boot)
OPT_DEFS += -DBOOTLOADER_MD_BOOT
BOOTLOADER_TYPE = md_boot
endif
ifeq ($(strip $(BOOTLOADER_TYPE)),)
$(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate 'BOOTLOADER' in your keyboard's 'rules.mk' file.)
endif

View File

@@ -14,7 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
$(TEST)_INC := \
tests\test_common\common_config.h
tests/test_common/common_config.h
$(TEST)_SRC := \
$(TMK_COMMON_SRC) \
@@ -33,4 +33,4 @@ $(TEST)_DEFS := $(TMK_COMMON_DEFS) $(OPT_DEFS)
$(TEST)_CONFIG := $(TEST_PATH)/config.h
VPATH += $(TOP_DIR)/tests/test_common
VPATH += $(TOP_DIR)/tests/test_common

View File

@@ -37,6 +37,17 @@ ifdef SKIP_VERSION
OPT_DEFS += -DSKIP_VERSION
endif
# Generate the version.h file
ifdef SKIP_VERSION
VERSION_H_FLAGS := --skip-all
endif
ifdef SKIP_GIT
VERSION_H_FLAGS := --skip-git
endif
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(KEYMAP_OUTPUT)/src/version.h)
# Determine which subfolders exist.
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
@@ -100,7 +111,7 @@ INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard
include $(INFO_RULES_MK)
# Check for keymap.json first, so we can regenerate keymap.c
include build_json.mk
include $(BUILDDEFS_PATH)/build_json.mk
# Pull in keymap level rules.mk
ifeq ("$(wildcard $(KEYMAP_PATH))", "")
@@ -127,9 +138,9 @@ ifeq ("$(wildcard $(KEYMAP_PATH))", "")
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ($(LAYOUTS),)
# If we haven't found a keymap yet fall back to community layouts
include build_layout.mk
include $(BUILDDEFS_PATH)/build_layout.mk
else
$(error Could not find keymap)
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
# this state should never be reached
endif
endif
@@ -148,17 +159,21 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
# 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)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
@$(BUILD_CMD)
$(KEYMAP_OUTPUT)/src/config.h: $(KEYMAP_JSON)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H))
@$(BUILD_CMD)
generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c
endif
ifeq ($(strip $(CTPC)), yes)
CONVERT_TO_PROTON_C=yes
CONVERT_TO_PROTON_C=yes
endif
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
@@ -315,13 +330,19 @@ endif
CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h
$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h)
@$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h)
@$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h)
@$(BUILD_CMD)
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h
@@ -384,8 +405,10 @@ VPATH += $(KEYMAP_PATH)
VPATH += $(USER_PATH)
VPATH += $(KEYBOARD_PATHS)
VPATH += $(COMMON_VPATH)
VPATH += $(KEYBOARD_OUTPUT)/src
VPATH += $(KEYMAP_OUTPUT)/src
include common_features.mk
include $(BUILDDEFS_PATH)/common_features.mk
include $(BUILDDEFS_PATH)/generic_features.mk
include $(TMK_PATH)/protocol.mk
include $(PLATFORM_PATH)/common.mk
@@ -425,8 +448,7 @@ OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
$(KEYMAP_OUTPUT)_SRC := $(SRC)
$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) \
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" \
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
-DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\"
$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS)
$(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H)
$(KEYBOARD_OUTPUT)_SRC := $(PLATFORM_SRC)
@@ -448,7 +470,7 @@ check-md5: build
objs-size: build
include $(BUILDDEFS_PATH)/show_options.mk
include $(TMK_PATH)/rules.mk
include $(BUILDDEFS_PATH)/common_rules.mk
# Ensure we have generated files available for each of the objects
define GEN_FILES

View File

@@ -25,7 +25,7 @@ ifneq ($(FORCE_LAYOUT),)
$(info Forcing layout: $(FORCE_LAYOUT))
LAYOUTS := $(FORCE_LAYOUT)
else
$(error Forced layout does not exist)
$(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist)
endif
endif

View File

@@ -43,6 +43,7 @@ all: elf
VPATH += $(COMMON_VPATH)
PLATFORM:=TEST
PLATFORM_KEY:=test
BOOTLOADER_TYPE:=none
ifeq ($(strip $(DEBUG)), 1)
CONSOLE_ENABLE = yes
@@ -53,7 +54,7 @@ include tests/test_common/build.mk
include $(TEST_PATH)/test.mk
endif
include common_features.mk
include $(BUILDDEFS_PATH)/common_features.mk
include $(BUILDDEFS_PATH)/generic_features.mk
include $(PLATFORM_PATH)/common.mk
include $(TMK_PATH)/protocol.mk
@@ -62,7 +63,7 @@ include $(QUANTUM_PATH)/encoder/tests/rules.mk
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
include $(PLATFORM_PATH)/test/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include build_full_test.mk
include $(BUILDDEFS_PATH)/build_full_test.mk
endif
$(TEST)_SRC += \
@@ -76,7 +77,7 @@ $(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
$(TEST_OBJ)/$(TEST)_CONFIG := $($(TEST)_CONFIG)
include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk
include $(TMK_PATH)/rules.mk
include $(BUILDDEFS_PATH)/common_rules.mk
$(shell mkdir -p $(BUILD_DIR)/test 2>/dev/null)

View File

@@ -20,7 +20,6 @@ QUANTUM_SRC += \
$(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 \
@@ -109,11 +108,10 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/mousekey.c
endif
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi pmw3360 pimoroni_trackball custom
POINTING_DEVICE_DRIVER ?= custom
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi pmw3360 pmw3389 pimoroni_trackball custom
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),)
$(error POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type)
$(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type)
else
OPT_DEFS += -DPOINTING_DEVICE_ENABLE
MOUSE_ENABLE := yes
@@ -144,6 +142,9 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pmw3360)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
QUANTUM_LIB_SRC += spi_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pmw3389)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
QUANTUM_LIB_SRC += spi_master.c
endif
endif
endif
@@ -151,56 +152,88 @@ endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi
EEPROM_DRIVER ?= vendor
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
$(error EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
$(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
else
OPT_DEFS += -DEEPROM_ENABLE
ifeq ($(strip $(EEPROM_DRIVER)), custom)
# Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c
else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
# External I2C EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
COMMON_VPATH += $(DRIVER_PATH)/eeprom
QUANTUM_LIB_SRC += i2c_master.c
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi)
# External SPI EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
COMMON_VPATH += $(DRIVER_PATH)/eeprom
QUANTUM_LIB_SRC += spi_master.c
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), transient)
# Transient EEPROM implementation -- no data storage but provides runtime area for it
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c eeprom_transient.c
else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
# Vendor-implemented EEPROM
OPT_DEFS += -DEEPROM_VENDOR
ifeq ($(PLATFORM),AVR)
# Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS)
ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
OPT_DEFS += -DEEPROM_DRIVER
# Emulated EEPROM
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
OPT_DEFS += -DEEPROM_DRIVER
# True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
COMMON_VPATH += $(DRIVER_PATH)/eeprom
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
SRC += eeprom_driver.c
SRC += eeprom_stm32_L0_L1.c
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations
OPT_DEFS += -DEEPROM_TEENSY
SRC += eeprom_teensy.c
else
# This will effectively work the same as "transient" if not supported by the chip
SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c
# Fall back to transient, i.e. non-persistent
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c eeprom_transient.c
endif
else ifeq ($(PLATFORM),ARM_ATSAM)
SRC += $(PLATFORM_COMMON_DIR)/eeprom.c
# arm_atsam EEPROM
OPT_DEFS += -DEEPROM_SAMD
SRC += $(PLATFORM_COMMON_DIR)/eeprom_samd.c
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
SRC += $(PLATFORM_COMMON_DIR)/eeprom.c
endif
endif
endif
VALID_FLASH_DRIVER_TYPES := spi
FLASH_DRIVER ?= no
ifneq ($(strip $(FLASH_DRIVER)), no)
ifeq ($(filter $(FLASH_DRIVER),$(VALID_FLASH_DRIVER_TYPES)),)
$(error FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid FLASH driver)
else
OPT_DEFS += -DFLASH_ENABLE
ifeq ($(strip $(FLASH_DRIVER)), spi)
OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += flash_spi.c
endif
endif
endif
RGBLIGHT_ENABLE ?= no
VALID_RGBLIGHT_TYPES := WS2812 APA102 custom
@@ -212,7 +245,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
RGBLIGHT_DRIVER ?= WS2812
ifeq ($(filter $(RGBLIGHT_DRIVER),$(VALID_RGBLIGHT_TYPES)),)
$(error RGBLIGHT_DRIVER="$(RGBLIGHT_DRIVER)" is not a valid RGB type)
$(call CATASTROPHIC_ERROR,Invalid RGBLIGHT_DRIVER,RGBLIGHT_DRIVER="$(RGBLIGHT_DRIVER)" is not a valid RGB type)
else
COMMON_VPATH += $(QUANTUM_DIR)/rgblight
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h
@@ -237,12 +270,12 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
LED_MATRIX_ENABLE ?= no
VALID_LED_MATRIX_TYPES := IS31FL3731 custom
VALID_LED_MATRIX_TYPES := IS31FL3731 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A custom
# TODO: IS31FL3733 IS31FL3737 IS31FL3741
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
$(error "$(LED_MATRIX_DRIVER)" is not a valid matrix type)
$(call CATASTROPHIC_ERROR,Invalid LED_MATRIX_DRIVER,LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type)
endif
OPT_DEFS += -DLED_MATRIX_ENABLE
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
@@ -264,14 +297,43 @@ endif
SRC += is31fl3731-simple.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3742A)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3743A)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3745)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3746A)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
RGB_MATRIX_ENABLE ?= no
VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 CKLED2001 WS2812 custom
VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A CKLED2001 WS2812 custom
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
$(error "$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
@@ -323,6 +385,34 @@ endif
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3742A)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3743A)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3745)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3746A)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), CKLED2001)
OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led
@@ -356,7 +446,7 @@ endif
ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c
QUANTUM_LIB_SRC += uart.c
endif
VARIABLE_TRACE ?= no
@@ -385,7 +475,7 @@ else
endif
ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
ifeq ($(filter $(BACKLIGHT_DRIVER),$(VALID_BACKLIGHT_TYPES)),)
$(error BACKLIGHT_DRIVER="$(BACKLIGHT_DRIVER)" is not a valid backlight type)
$(call CATASTROPHIC_ERROR,Invalid BACKLIGHT_DRIVER,BACKLIGHT_DRIVER="$(BACKLIGHT_DRIVER)" is not a valid backlight type)
endif
COMMON_VPATH += $(QUANTUM_DIR)/backlight
@@ -410,7 +500,7 @@ VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c
WS2812_DRIVER ?= bitbang
ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),)
$(error WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
$(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
endif
OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
@@ -465,7 +555,7 @@ VALID_MAGIC_TYPES := yes
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)
$(call CATASTROPHIC_ERROR,Invalid BOOTMAGIC_ENABLE,BOOTMAGIC_ENABLE="$(BOOTMAGIC_ENABLE)" is not a valid type of magic)
endif
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
OPT_DEFS += -DBOOTMAGIC_LITE
@@ -481,7 +571,7 @@ CUSTOM_MATRIX ?= no
ifneq ($(strip $(CUSTOM_MATRIX)), yes)
ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),)
$(error CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type)
$(call CATASTROPHIC_ERROR,Invalid CUSTOM_MATRIX,CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type)
endif
# Include common stuff for all non custom matrix users
@@ -564,7 +654,7 @@ 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)
$(call CATASTROPHIC_ERROR,Invalid OLED_DRIVER,OLED_DRIVER="$(OLED_DRIVER)" is not a valid OLED driver)
else
OPT_DEFS += -DOLED_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled
@@ -604,6 +694,7 @@ ifeq ($(strip $(UNICODE_ENABLE)), yes)
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
OPT_DEFS += -DUNICODE_COMMON_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
@@ -631,7 +722,7 @@ endif
ifeq ($(strip $(PS2_USE_BUSYWAIT)), yes)
PS2_ENABLE := yes
SRC += ps2_busywait.c
SRC += ps2_io_avr.c
SRC += ps2_io.c
OPT_DEFS += -DPS2_USE_BUSYWAIT
endif
@@ -660,7 +751,7 @@ 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)
$(call CATASTROPHIC_ERROR,Invalid JOYSTICK_DRIVER,JOYSTICK_DRIVER="$(JOYSTICK_DRIVER)" is not a valid joystick driver)
endif
OPT_DEFS += -DJOYSTICK_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c
@@ -680,7 +771,7 @@ VALID_USBPD_DRIVER_TYPES = custom vendor
USBPD_DRIVER ?= vendor
ifeq ($(strip $(USBPD_ENABLE)), yes)
ifeq ($(filter $(strip $(USBPD_DRIVER)),$(VALID_USBPD_DRIVER_TYPES)),)
$(error USBPD_DRIVER="$(USBPD_DRIVER)" is not a valid USBPD driver)
$(call CATASTROPHIC_ERROR,Invalid USBPD_DRIVER,USBPD_DRIVER="$(USBPD_DRIVER)" is not a valid USBPD driver)
else
OPT_DEFS += -DUSBPD_ENABLE
ifeq ($(strip $(USBPD_DRIVER)), vendor)
@@ -690,7 +781,7 @@ ifeq ($(strip $(USBPD_ENABLE)), yes)
OPT_DEFS += -DUSBPD_STM32G4
SRC += usbpd_stm32g4.c
else
$(error There is no vendor-provided USBPD driver available)
$(call CATASTROPHIC_ERROR,Invalid USBPD_DRIVER,There is no vendor-provided USBPD driver available)
endif
else ifeq ($(strip $(USBPD_DRIVER)), custom)
OPT_DEFS += -DUSBPD_CUSTOM
@@ -700,25 +791,26 @@ ifeq ($(strip $(USBPD_ENABLE)), yes)
endif
BLUETOOTH_ENABLE ?= no
VALID_BLUETOOTH_DRIVER_TYPES := AdafruitBLE RN42 custom
VALID_BLUETOOTH_DRIVER_TYPES := BluefruitLE RN42 custom
ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
ifeq ($(filter $(strip $(BLUETOOTH_DRIVER)),$(VALID_BLUETOOTH_DRIVER_TYPES)),)
$(error "$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type)
$(call CATASTROPHIC_ERROR,Invalid BLUETOOTH_DRIVER,BLUETOOTH_DRIVER="$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type)
endif
OPT_DEFS += -DBLUETOOTH_ENABLE
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), AdafruitBLE)
OPT_DEFS += -DMODULE_ADAFRUIT_BLE
ifeq ($(strip $(BLUETOOTH_DRIVER)), BluefruitLE)
OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE
SRC += analog.c
SRC += $(DRIVER_PATH)/bluetooth/adafruit_ble.cpp
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
QUANTUM_LIB_SRC += spi_master.c
endif
ifeq ($(strip $(BLUETOOTH_DRIVER)), RN42)
OPT_DEFS += -DMODULE_RN42
SRC += $(TMK_DIR)/protocol/serial_uart.c
OPT_DEFS += -DBLUETOOTH_RN42
SRC += $(DRIVER_PATH)/bluetooth/rn42.c
QUANTUM_LIB_SRC += uart.c
endif
endif

523
builddefs/common_rules.mk Normal file
View File

@@ -0,0 +1,523 @@
# Hey Emacs, this is a -*- makefile -*-
#----------------------------------------------------------------------------
# WinAVR Makefile Template written by Eric B. Weddington, Jg Wunsch, et al.
#
# Released to the Public Domain
#
# Additional material for this makefile was written by:
# Peter Fleury
# Tim Henigan
# Colin O'Flynn
# Reiner Patommel
# Markus Pfaff
# Sander Pool
# Frederik Rouleau
# Carlos Lamas
#
# Enable vpath seraching for source files only
# Without this, output files, could be read from the wrong .build directories
VPATH_SRC := $(VPATH)
vpath %.c $(VPATH_SRC)
vpath %.h $(VPATH_SRC)
vpath %.cpp $(VPATH_SRC)
vpath %.cc $(VPATH_SRC)
vpath %.hpp $(VPATH_SRC)
vpath %.S $(VPATH_SRC)
VPATH :=
# Convert all SRC to OBJ
define OBJ_FROM_SRC
$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$(patsubst %.clib,$1/%.a,$($1_SRC))))))
endef
$(foreach OUTPUT,$(OUTPUTS),$(eval $(OUTPUT)_OBJ +=$(call OBJ_FROM_SRC,$(OUTPUT))))
# Define a list of all objects
OBJ := $(foreach OUTPUT,$(OUTPUTS),$($(OUTPUT)_OBJ))
NO_LTO_OBJ := $(filter %.a,$(OBJ))
MASTER_OUTPUT := $(firstword $(OUTPUTS))
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
# Optimization level, can be [0, 1, 2, 3, s].
# 0 = turn off optimization. s = optimize for size.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
OPT ?= s
# Compiler flag to set the C Standard level.
# c89 = "ANSI" C
# gnu89 = c89 plus GCC extensions
# c99 = ISO C99 standard (not yet fully implemented)
# gnu99 = c99 plus GCC extensions
CSTANDARD = -std=gnu99
# Place -D or -U options here for C sources
#CDEFS +=
# Place -D or -U options here for ASM sources
#ADEFS +=
# Place -D or -U options here for C++ sources
#CXXDEFS += -D__STDC_LIMIT_MACROS
#CXXDEFS += -D__STDC_CONSTANT_MACROS
#CXXDEFS +=
# Speed up recompilations by opt-in usage of ccache
USE_CCACHE ?= no
ifneq ($(USE_CCACHE),no)
CC_PREFIX ?= ccache
endif
#---------------- Compiler Options C ----------------
# -g*: generate debugging information
# -O*: optimization level
# -f...: tuning, see GCC manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
ifeq ($(strip $(LTO_ENABLE)), yes)
ifeq ($(PLATFORM),CHIBIOS)
$(info Enabling LTO on ChibiOS-targeting boards is known to have a high likelihood of failure.)
$(info If unsure, set LTO_ENABLE = no.)
endif
CDEFS += -flto
CDEFS += -DLTO_ENABLE
endif
DEBUG_ENABLE ?= yes
ifeq ($(strip $(SKIP_DEBUG_INFO)),yes)
DEBUG_ENABLE=no
endif
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -g$(DEBUG)
endif
CFLAGS += $(CDEFS)
CFLAGS += -O$(OPT)
# add color
ifeq ($(COLOR),true)
ifeq ("$(shell echo "int main(){}" | $(CC) -fdiagnostics-color -x c - -o /dev/null 2>&1)", "")
CFLAGS+= -fdiagnostics-color
endif
endif
CFLAGS += -Wall
CFLAGS += -Wstrict-prototypes
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
CFLAGS += -Werror
endif
#CFLAGS += -mshort-calls
#CFLAGS += -fno-unit-at-a-time
#CFLAGS += -Wundef
#CFLAGS += -Wunreachable-code
#CFLAGS += -Wsign-compare
CFLAGS += $(CSTANDARD)
# This fixes lots of keyboards linking errors but SHOULDN'T BE A FINAL SOLUTION
# Fixing of multiple variable definitions must be made.
CFLAGS += -fcommon
#---------------- Compiler Options C++ ----------------
# -g*: generate debugging information
# -O*: optimization level
# -f...: tuning, see GCC manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CXXFLAGS += -g$(DEBUG)
endif
CXXFLAGS += $(CXXDEFS)
CXXFLAGS += -O$(OPT)
# to supress "warning: only initialized variables can be placed into program memory area"
CXXFLAGS += -w
CXXFLAGS += -Wall
CXXFLAGS += -Wundef
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
CXXFLAGS += -Werror
endif
#CXXFLAGS += -mshort-calls
#CXXFLAGS += -fno-unit-at-a-time
#CXXFLAGS += -Wstrict-prototypes
#CXXFLAGS += -Wunreachable-code
#CXXFLAGS += -Wsign-compare
#CXXFLAGS += $(CSTANDARD)
#---------------- Assembler Options ----------------
ASFLAGS += $(ADEFS)
ifeq ($(VERBOSE_AS_CMD),yes)
ASFLAGS += -v
endif
#---------------- Library Options ----------------
# Minimalistic printf version
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
# If this is left blank, then it will use the Standard printf version.
PRINTF_LIB =
#PRINTF_LIB = $(PRINTF_LIB_MIN)
#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
# Minimalistic scanf version
SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
# If this is left blank, then it will use the Standard scanf version.
SCANF_LIB =
#SCANF_LIB = $(SCANF_LIB_MIN)
#SCANF_LIB = $(SCANF_LIB_FLOAT)
MATH_LIB = -lm
CREATE_MAP ?= yes
#---------------- Linker Options ----------------
# -Wl,...: tell GCC to pass this to linker.
# -Map: create map file
# --cref: add cross reference to map file
#
# Comennt out "--relax" option to avoid a error such:
# (.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12'
#
ifeq ($(CREATE_MAP),yes)
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
ifeq ($(VERBOSE_LD_CMD),yes)
LDFLAGS += -v
endif
#LDFLAGS += -Wl,--relax
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
#LDFLAGS += -T linker_script.x
# You can give EXTRALDFLAGS at 'make' command line.
LDFLAGS += $(EXTRALDFLAGS)
#---------------- Assembler Listings ----------------
# -Wa,...: tell GCC to pass this to the assembler.
# -adhlns: create listing
# -gstabs: have the assembler create line number information; note that
# for use in COFF files, additional information about filenames
# and function names needs to be present in the assembler source
# files -- see avr-libc docs [FIXME: not yet described there]
# -listing-cont-lines: Sets the maximum number of continuation lines of hex
# dump that will be displayed for a given single line of source input.
ADHLNS_ENABLE ?= no
ifeq ($(ADHLNS_ENABLE),yes)
# Avoid "Options to '-Xassembler' do not match" - only specify assembler options at LTO link time
ifeq ($(strip $(LTO_ENABLE)), yes)
LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
else
CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
ifeq ($(strip $(DEBUG_ENABLE)),yes)
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
else
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
endif
endif
# Define programs and commands.
SHELL = sh
SED = sed
REMOVE = rm -f
REMOVEDIR = rmdir
COPY = cp
WINSHELL = cmd
SECHO = $(SILENT) || echo
MD5SUM ?= md5sum
ifneq ($(filter Darwin FreeBSD,$(shell uname -s)),)
MD5SUM = md5
endif
# UF2 format settings
# To produce a UF2 file in your build, add to your keyboard's rules.mk:
# FIRMWARE_FORMAT = uf2
UF2CONV = $(TOP_DIR)/util/uf2conv.py
UF2_FAMILY ?= 0x0
# Compiler flags to generate dependency files.
#GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
GENDEPFLAGS = -MMD -MP -MF $(patsubst %.o,%.td,$@)
# Combine all necessary flags and optional flags.
# Add target processor to flags.
# You can give extra flags at 'make' command line like: make EXTRAFLAGS=-DFOO=bar
ALL_CFLAGS = $(MCUFLAGS) $(CFLAGS) $(EXTRAFLAGS)
ALL_CXXFLAGS = $(MCUFLAGS) -x c++ $(CXXFLAGS) $(EXTRAFLAGS)
ALL_ASFLAGS = $(MCUFLAGS) -x assembler-with-cpp $(ASFLAGS) $(EXTRAFLAGS)
define NO_LTO
$(patsubst %.a,%.o,$1): NOLTO_CFLAGS += -fno-lto
endef
$(foreach LOBJ, $(NO_LTO_OBJ), $(eval $(call NO_LTO,$(LOBJ))))
MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@)
# For a ChibiOS build, ensure that the board files have the hook overrides injected
define BOARDSRC_INJECT_HOOKS
$(KEYBOARD_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): INIT_HOOK_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h
endef
$(foreach LOBJ, $(BOARDSRC), $(eval $(call BOARDSRC_INJECT_HOOKS,$(LOBJ))))
# Add QMK specific flags
DFU_SUFFIX ?= dfu-suffix
DFU_SUFFIX_ARGS ?=
elf: $(BUILD_DIR)/$(TARGET).elf
hex: $(BUILD_DIR)/$(TARGET).hex
uf2: $(BUILD_DIR)/$(TARGET).uf2
cpfirmware: $(FIRMWARE_FORMAT)
$(SILENT) || printf "Copying $(TARGET).$(FIRMWARE_FORMAT) to qmk_firmware folder" | $(AWK_CMD)
$(COPY) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) $(TARGET).$(FIRMWARE_FORMAT) && $(PRINT_OK)
eep: $(BUILD_DIR)/$(TARGET).eep
lss: $(BUILD_DIR)/$(TARGET).lss
sym: $(BUILD_DIR)/$(TARGET).sym
LIBNAME=lib$(TARGET).a
lib: $(LIBNAME)
# Display size of file, modifying the output so people don't mistakenly grab the hex output
BINARY_SIZE = $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(SED) -e 's/\.build\/.*$$/$(TARGET).$(FIRMWARE_FORMAT)/g'
sizebefore:
@if test -f $(BUILD_DIR)/$(TARGET).hex; then $(SECHO) $(MSG_SIZE_BEFORE); $(SILENT) || $(BINARY_SIZE); \
2>/dev/null; $(SECHO); fi
sizeafter: $(BUILD_DIR)/$(TARGET).hex
@if test -f $(BUILD_DIR)/$(TARGET).hex; then $(SECHO); $(SECHO) $(MSG_SIZE_AFTER); $(SILENT) || $(BINARY_SIZE); \
2>/dev/null; $(SECHO); fi
# Display compiler version information.
gccversion :
@$(SILENT) || $(CC) --version
# Create final output files (.hex, .eep) from ELF output file.
%.hex: %.elf
$(eval CMD=$(HEX) $< $@)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
@$(BUILD_CMD)
%.uf2: %.hex
$(eval CMD=$(UF2CONV) $(BUILD_DIR)/$(TARGET).hex -o $(BUILD_DIR)/$(TARGET).uf2 -c -f $(UF2_FAMILY) >/dev/null 2>&1)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_UF2) $@" | $(AWK_CMD)
@$(BUILD_CMD)
%.eep: %.elf
$(eval CMD=$(EEP) $< $@ || exit 0)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD)
@$(BUILD_CMD)
# Create extended listing file from ELF output file.
%.lss: %.elf
$(eval CMD=$(OBJDUMP) -h -S -z $< > $@)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_EXTENDED_LISTING) $@" | $(AWK_CMD)
@$(BUILD_CMD)
# Create a symbol table from ELF output file.
%.sym: %.elf
$(eval CMD=$(NM) -n $< > $@ )
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_SYMBOL_TABLE) $@" | $(AWK_CMD)
@$(BUILD_CMD)
%.bin: %.elf
$(eval CMD=$(BIN) $< $@ || exit 0)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_BIN) $@" | $(AWK_CMD)
@$(BUILD_CMD)
if [ ! -z "$(DFU_SUFFIX_ARGS)" ]; then \
$(DFU_SUFFIX) $(DFU_SUFFIX_ARGS) -a $(BUILD_DIR)/$(TARGET).bin 1>/dev/null ;\
fi
#$(SILENT) || printf "$(MSG_EXECUTING) '$(DFU_SUFFIX) $(DFU_SUFFIX_ARGS) -a $(BUILD_DIR)/$(TARGET).bin 1>/dev/null':\n" ;\
$(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin;
BEGIN = gccversion sizebefore
# Link: create ELF output file from object files.
.SECONDARY : $(BUILD_DIR)/$(TARGET).elf
.PRECIOUS : $(OBJ)
# Note the obj.txt depeendency is there to force linking if a source file is deleted
%.elf: $(OBJ) $(MASTER_OUTPUT)/cflags.txt $(MASTER_OUTPUT)/ldflags.txt $(MASTER_OUTPUT)/obj.txt | $(BEGIN)
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
$(eval CMD=MAKE=$(MAKE) $(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS))
@$(BUILD_CMD)
define GEN_OBJRULE
$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC))
ifdef $1_CONFIG
$1_CONFIG_FLAGS += $$(patsubst %,-include %,$$($1_CONFIG))
endif
$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) $$(NOLTO_CFLAGS)
$1_CXXFLAGS = $$(ALL_CXXFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) $$(NOLTO_CFLAGS)
$1_ASFLAGS = $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS)
# Compile: create object files from C source files.
$1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D)
@$$(SILENT) || printf "$$(MSG_COMPILING) $$<" | $$(AWK_CMD)
$$(eval CC_EXEC := $$(CC))
ifneq ($$(VERBOSE_C_CMD),)
$$(if $$(filter $$(notdir $$(VERBOSE_C_CMD)),$$(notdir $$<)),$$(eval CC_EXEC += -v))
endif
ifneq ($$(VERBOSE_C_INCLUDE),)
$$(if $$(filter $$(notdir $$(VERBOSE_C_INCLUDE)),$$(notdir $$<)),$$(eval CC_EXEC += -H))
endif
$$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD)
ifneq ($$(DUMP_C_MACROS),)
$$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$<)
@$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD))
endif
# Compile: create object files from C++ source files.
$1/%.o : %.cpp $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D)
@$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD)
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD)
$1/%.o : %.cc $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D)
@$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD)
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD)
# Assemble: create object files from assembler source files.
$1/%.o : %.S $1/asflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D)
@$(SILENT) || printf "$$(MSG_ASSEMBLING) $$<" | $$(AWK_CMD)
$$(eval CMD=$$(CC) -c $$($1_ASFLAGS) $$< -o $$@)
@$$(BUILD_CMD)
$1/%.a : $1/%.o
@mkdir -p $$(@D)
@$(SILENT) || printf "Archiving: $$<" | $$(AWK_CMD)
$$(eval CMD=$$(AR) rcs $$@ $$<)
@$$(BUILD_CMD)
$1/force:
$1/cflags.txt: $1/force
echo '$$($1_CFLAGS)' | cmp -s - $$@ || echo '$$($1_CFLAGS)' > $$@
$1/cxxflags.txt: $1/force
echo '$$($1_CXXFLAGS)' | cmp -s - $$@ || echo '$$($1_CXXFLAGS)' > $$@
$1/asflags.txt: $1/force
echo '$$($1_ASFLAGS)' | cmp -s - $$@ || echo '$$($1_ASFLAGS)' > $$@
$1/compiler.txt: $1/force
$$(CC) --version | cmp -s - $$@ || $$(CC) --version > $$@
endef
.PRECIOUS: $(MASTER_OUTPUT)/obj.txt
$(MASTER_OUTPUT)/obj.txt: $(MASTER_OUTPUT)/force
echo '$(OBJ)' | cmp -s - $@ || echo '$(OBJ)' > $@
.PRECIOUS: $(MASTER_OUTPUT)/ldflags.txt
$(MASTER_OUTPUT)/ldflags.txt: $(MASTER_OUTPUT)/force
echo '$(LDFLAGS)' | cmp -s - $@ || echo '$(LDFLAGS)' > $@
# We have to use static rules for the .d files for some reason
DEPS = $(patsubst %.o,%.d,$(patsubst %.a,%.o,$(OBJ)))
# Keep the .d files
.PRECIOUS: $(DEPS)
# Empty rule to force recompilation if the .d file is missing
$(DEPS):
$(foreach OUTPUT,$(OUTPUTS),$(eval $(call GEN_OBJRULE,$(OUTPUT))))
# Create preprocessed source for use in sending a bug report.
%.i : %.c | $(BEGIN)
$(CC) -E -mmcu=$(MCU) $(CFLAGS) $< -o $@
# Target: clean project.
clean:
$(foreach OUTPUT,$(OUTPUTS), $(REMOVE) -r $(OUTPUT) 2>/dev/null)
$(REMOVE) $(BUILD_DIR)/$(TARGET).*
show_path:
@echo VPATH=$(VPATH)
@echo SRC=$(SRC)
@echo OBJ=$(OBJ)
dump_vars: ERROR_IF_EMPTY=""
dump_vars: ERROR_IF_NONBOOL=""
dump_vars: ERROR_IF_UNSET=""
dump_vars:
@$(foreach V,$(sort $(.VARIABLES)),$(if $(filter-out environment% default automatic,$(origin $V)),$(info $V=$($V))))
objs-size:
for i in $(OBJ); do echo $$i; done | sort | xargs $(SIZE)
ifeq ($(findstring avr-gcc,$(CC)),avr-gcc)
SIZE_MARGIN = 1024
check-size:
$(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) platforms/avr/bootloader_size.c 2> /dev/null | $(SED) -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
$(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi))
$(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE)))
$(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE)))
$(eval PERCENT_SIZE=$(shell expr $(CURRENT_SIZE) \* 100 / $(MAX_SIZE)))
if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \
$(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \
if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \
printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \
else \
if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \
$(PRINT_WARNING_PLAIN); printf " * $(MSG_FILE_NEAR_LIMIT)"; \
else \
$(PRINT_OK); $(SILENT) || printf " * $(MSG_FILE_JUST_RIGHT)"; \
fi ; \
fi ; \
fi
else
check-size:
$(SILENT) || echo "$(MSG_CHECK_FILESIZE_SKIPPED)"
endif
check-md5:
$(MD5SUM) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT)
# Create build directory
$(shell mkdir -p $(BUILD_DIR) 2>/dev/null)
# Create object files directory
$(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null)))
# Include the dependency files.
-include $(patsubst %.o,%.d,$(patsubst %.a,%.o,$(OBJ)))
# Listing of phony targets.
.PHONY : all dump_vars finish sizebefore sizeafter qmkversion \
gccversion build elf hex uf2 eep lss sym coff extcoff \
clean clean_list debug gdb-config show_path \
program teensy dfu dfu-ee dfu-start \
flash dfu-split-left dfu-split-right \
avrdude-split-left avrdude-split-right \
avrdude-loop usbasp

View File

@@ -143,6 +143,9 @@ ifneq ($(findstring STM32F042, $(MCU)),)
# This ensures that the EEPROM page buffer fits into RAM
USE_PROCESS_STACKSIZE = 0x600
USE_EXCEPTIONS_STACKSIZE = 0x300
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFC400
endif
ifneq ($(findstring STM32F072, $(MCU)),)
@@ -175,6 +178,9 @@ ifneq ($(findstring STM32F072, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32F0
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFC800
endif
ifneq ($(findstring STM32F103, $(MCU)),)
@@ -239,6 +245,9 @@ ifneq ($(findstring STM32F303, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32F3
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFD800
endif
ifneq ($(findstring STM32F401, $(MCU)),)
@@ -276,6 +285,9 @@ ifneq ($(findstring STM32F401, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F405, $(MCU)),)
@@ -308,6 +320,9 @@ ifneq ($(findstring STM32F405, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F407, $(MCU)),)
@@ -340,6 +355,9 @@ ifneq ($(findstring STM32F407, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F411, $(MCU)),)
@@ -377,6 +395,9 @@ ifneq ($(findstring STM32F411, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F446, $(MCU)),)
@@ -406,6 +427,9 @@ ifneq ($(findstring STM32F446, $(MCU)),)
BOARD ?= GENERIC_STM32_F446XE
USE_FPU ?= yes
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32G431, $(MCU)),)
@@ -438,6 +462,9 @@ ifneq ($(findstring STM32G431, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32G4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32G474, $(MCU)),)
@@ -470,6 +497,46 @@ ifneq ($(findstring STM32G474, $(MCU)),)
# UF2 settings
UF2_FAMILY ?= STM32G4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq (,$(filter $(MCU),STM32L432 STM32L442))
# Cortex version
MCU = cortex-m4
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
ARMV = 7
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32L4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32L432xC
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32l4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_L432XC
PLATFORM_NAME ?= platform_l432
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32L4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq (,$(filter $(MCU),STM32L433 STM32L443))
@@ -504,6 +571,9 @@ ifneq (,$(filter $(MCU),STM32L433 STM32L443))
# UF2 settings
UF2_FAMILY ?= STM32L4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq (,$(filter $(MCU),STM32L412 STM32L422))
@@ -538,6 +608,9 @@ ifneq (,$(filter $(MCU),STM32L412 STM32L422))
# UF2 settings
UF2_FAMILY ?= STM32L4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring WB32F3G71, $(MCU)),)
@@ -567,6 +640,10 @@ ifneq ($(findstring WB32F3G71, $(MCU)),)
BOARD ?= GENERIC_WB32_F3G71XX
USE_FPU ?= no
# Bootloader address for WB32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFE000
WB32_BOOTLOADER_ADDRESS ?= 0x1FFFE000
endif
ifneq ($(findstring GD32VF103, $(MCU)),)

View File

@@ -63,6 +63,7 @@ MSG_COMPILING_CXX = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
MSG_CREATING_LIBRARY = Creating library:
MSG_GENERATING = Generating:
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR) Some git submodules are out of date or modified.\n\
Please consider running $(BOLD)make git-submodule$(NO_COLOR).\n\n
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)
@@ -87,6 +88,7 @@ define GENERATE_MSG_AVAILABLE_KEYMAPS
endef
MSG_AVAILABLE_KEYMAPS = $(eval $(call GENERATE_MSG_AVAILABLE_KEYMAPS))$(MSG_AVAILABLE_KEYMAPS_ACTUAL)
MSG_BOOTLOADER_NOT_FOUND_BASE = Bootloader not found. Make sure the board is in bootloader mode. See https://docs.qmk.fm/\#/newbs_flashing\n
MSG_CHECK_FILESIZE = Checking file size of $(TARGET).$(FIRMWARE_FORMAT)
MSG_CHECK_FILESIZE_SKIPPED = (Firmware size check does not yet support $(MCU_ORIG); skipping)
MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT_SIZE)/$(MAX_SIZE) ($(OVER_SIZE) bytes over)\n
@@ -97,6 +99,11 @@ MSG_PYTHON_MISSING = $(ERROR_COLOR)ERROR:$(NO_COLOR) Cannot run \"qmk hello\"!\n
Please run $(BOLD)qmk setup$(NO_COLOR) to install all the dependencies QMK requires.\n\n
MSG_FLASH_BOOTLOADER = $(WARN_COLOR)WARNING:$(NO_COLOR) This board's bootloader is not specified or is not supported by the \":flash\" target at this time.\n\n
MSG_FLASH_ARCH = $(WARN_COLOR)WARNING:$(NO_COLOR) This board's architecture is not supported by the \":flash\" target at this time.\n\n
MSG_BOOTLOADER_NOT_FOUND = $(ERROR_COLOR)ERROR:$(NO_COLOR) Bootloader not found. Trying again in 5s (Ctrl+C to cancel)\n
MSG_BOOTLOADER_NOT_FOUND = $(ERROR_COLOR)ERROR:$(NO_COLOR) $(MSG_BOOTLOADER_NOT_FOUND_BASE) Trying again in 5s (Ctrl+C to cancel)\n
BOOTLOADER_RETRY_TIME ?= 0.5
MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY = Bootloader not found. Trying again every $(BOOTLOADER_RETRY_TIME)s (Ctrl+C to cancel)
MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY = $(MSG_BOOTLOADER_NOT_FOUND_BASE) Trying again every $(BOOTLOADER_RETRY_TIME)s (Ctrl+C to cancel)
define CATASTROPHIC_ERROR
$(shell printf "\n * %-99s $(ERROR_STRING)\n" "$2" >&2)
$(error $1)
endef

View File

@@ -8,7 +8,7 @@ include $(PLATFORM_PATH)/test/testlist.mk
define VALIDATE_TEST_LIST
ifneq ($1,)
ifeq ($$(findstring -,$1),-)
$$(error Test names can't contain '-', but '$1' does)
$$(call CATASTROPHIC_ERROR,Invalid test name,Test names can't contain '-', but '$1' does.)
else
$$(eval $$(call VALIDATE_TEST_LIST,$$(firstword $2),$$(wordlist 2,9999,$2)))
endif

View File

@@ -15,6 +15,8 @@
"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"},
# TODO: Replace ^^^ with vvv
#"DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version"},
"DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false},
"DIODE_DIRECTION": {"info_key": "diode_direction"},
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},

View File

@@ -41,8 +41,14 @@
'atom47/rev3': {
target: 'maartenwut/atom47/rev3'
},
bakeneko60: {
target: 'kkatano/bakeneko60'
},
bakeneko65: {
target: 'bakeneko65/rev2'
target: 'kkatano/bakeneko65/rev2'
},
bakeneko80: {
target: 'kkatano/bakeneko80'
},
bear_face: {
target: 'bear_face/v1'
@@ -215,6 +221,9 @@
LAYOUT: 'LAYOUT_all'
}
},
idobo: {
target: 'idobao/id75'
},
'jj40': {
target: 'kprepublic/jj40'
},
@@ -260,6 +269,9 @@
'lfkeyboards/smk65': {
target: 'lfkeyboards/smk65/revb'
},
m3v3van: {
target: 'matthewdias/m3n3van'
},
'maartenwut/atom47/rev2': {
target: 'evyd13/atom47/rev2'
},
@@ -344,15 +356,24 @@
'mechlovin/hannah65/mechlovin9': {
target: 'mechlovin/mechlovin9/rev1'
},
'mechlovin/hex4b': {
target: 'mechlovin/hex4b/rev1'
},
'melgeek/z70ultra': {
target: 'melgeek/z70ultra/rev1'
},
'mechlovin/hannah65': {
target: 'mechlovin/hannah65/rev1'
},
minim: {
target: 'matthewdias/minim'
},
model01: {
target: 'keyboardio/model01'
},
model_v: {
target: 'matthewdias/model_v'
},
m0lly: {
target: 'tkc/m0lly'
},
@@ -495,6 +516,9 @@
'tokyo60': {
target: 'tokyokeyboard/tokyo60'
},
'txuu': {
target: 'matthewdias/txuu'
},
underscore33: {
target: 'underscore33/rev1'
},
@@ -547,7 +571,7 @@
target: 'xelus/valor/rev1'
},
yd60mq: {
target: 'yd60mq/12led'
target: 'ymdk/yd60mq/12led'
},
ymd75: {
target: 'ymd75/rev1'
@@ -560,5 +584,615 @@
},
zeal65: {
target: 'wilba_tech/zeal65'
},
# Moved during 2022 Q1 cycle
6ball: {
target: 'maple_computing/6ball'
},
7skb: {
target: 'salicylic_acid3/7skb'
},
7splus: {
target: 'salicylic_acid3/7splus'
},
acr60: {
target: 'mechkeys/acr60'
},
adalyn: {
target: 'tominabox1/adalyn'
},
ajisai74: {
target: 'salicylic_acid3/ajisai74'
},
aleth42: {
target: '25keys/aleth42'
},
alicia_cook: {
target: 'ibnuda/alicia_cook'
},
allison: {
target: 'prototypist/allison'
},
allison_numpad: {
target: 'prototypist/allison_numpad'
},
alu84: {
target: 'mechkeys/alu84'
},
angel17: {
target: 'kakunpc/angel17'
},
angel64/alpha: {
target: 'kakunpc/angel64/alpha'
},
angel64/rev1: {
target: 'kakunpc/angel64/rev1'
},
arch_36: {
target: 'obosob/arch_36'
},
bakeneko60: {
target: 'kkatano/bakeneko60'
},
bakeneko65/rev2: {
target: 'kkatano/bakeneko65/rev2'
},
bakeneko65/rev3: {
target: 'kkatano/bakeneko65/rev3'
},
bakeneko80: {
target: 'kkatano/bakeneko80'
},
barleycorn: {
target: 'yiancardesigns/barleycorn'
},
bat43/rev1: {
target: 'dailycraft/bat43/rev1'
},
bat43/rev2: {
target: 'dailycraft/bat43/rev2'
},
bigseries/1key: {
target: 'woodkeys/bigseries/1key'
},
bigseries/2key: {
target: 'woodkeys/bigseries/2key'
},
bigseries/3key: {
target: 'woodkeys/bigseries/3key'
},
bigseries/4key: {
target: 'woodkeys/bigseries/4key'
},
bkf: {
target: 'drhigsby/bkf'
},
business_card/alpha: {
target: 'kakunpc/business_card/alpha'
},
business_card/beta: {
target: 'kakunpc/business_card/beta'
},
butterstick: {
target: 'gboards/butterstick'
},
c39: {
target: 'maple_computing/c39'
},
cassette42: {
target: '25keys/cassette42'
},
chidori: {
target: 'kagizaraya/chidori'
},
chili: {
target: 'ydkb/chili'
},
chimera_ergo: {
target: 'glenpickle/chimera_ergo'
},
chimera_ls: {
target: 'glenpickle/chimera_ls'
},
chimera_ortho: {
target: 'glenpickle/chimera_ortho'
},
chimera_ortho_plus: {
target: 'glenpickle/chimera_ortho_plus'
},
choc_taro: {
target: 'kakunpc/choc_taro'
},
choco60: {
target: 'recompile_keys/choco60'
},
christmas_tree: {
target: 'maple_computing/christmas_tree'
},
claw44/rev1: {
target: 'dailycraft/claw44/rev1'
},
cocoa40: {
target: 'recompile_keys/cocoa40'
},
comet46: {
target: 'satt/comet46'
},
cu24: {
target: 'capsunlocked/cu24'
},
cu75: {
target: 'capsunlocked/cu75'
},
cu80: {
target: 'capsunlocked/cu80/v1'
},
delilah: {
target: 'rainkeebs/delilah'
},
diverge3: {
target: 'unikeyboard/diverge3'
},
divergetm2: {
target: 'unikeyboard/divergetm2'
},
dozen0: {
target: 'yynmt/dozen0'
},
dubba175: {
target: 'drhigsby/dubba175'
},
eggman: {
target: 'qpockets/eggman'
},
ergo42: {
target: 'biacco42/ergo42'
},
ergoarrows: {
target: 'salicylic_acid3/ergoarrows'
},
ergodash/mini: {
target: 'omkbd/ergodash/mini'
},
ergodash/rev1: {
target: 'omkbd/ergodash/rev1'
},
ergodox_infinity: {
target: 'input_club/ergodox_infinity'
},
ergotaco: {
target: 'gboards/ergotaco'
},
espectro: {
target: 'mechkeys/espectro'
},
felix: {
target: 'unikeyboard/felix'
},
four_banger: {
target: 'bpiphany/four_banger'
},
freyr: {
target: 'hnahkb/freyr'
},
geminate60: {
target: 'weirdo/geminate60'
},
georgi: {
target: 'gboards/georgi'
},
gergo: {
target: 'gboards/gergo'
},
getta25: {
target: 'salicylic_acid3/getta25'
},
gingham: {
target: 'yiancardesigns/gingham'
},
gurindam: {
target: 'ibnuda/gurindam'
},
halberd: {
target: 'kagizaraya/halberd'
},
hecomi/alpha: {
target: 'takashiski/hecomi/alpha'
},
hid_liber: {
target: 'bpiphany/hid_liber'
},
id67/default_rgb: {
target: 'idobao/id67/default_rgb'
},
id67/rgb: {
target: 'idobao/id67/rgb'
},
id80: {
target: 'idobao/id80/v1'
},
id87: {
target: 'idobao/id87/v1'
},
idobo: {
target: 'idobao/id75/v1'
},
infinity60: {
target: 'input_club/infinity60'
},
ivy/rev1: {
target: 'maple_computing/ivy/rev1'
},
jisplit89: {
target: 'salicylic_acid3/jisplit89'
},
jnao: {
target: 'maple_computing/jnao'
},
just60: {
target: 'ydkb/just60'
},
k_type: {
target: 'input_club/k_type'
},
kagamidget: {
target: 'yynmt/kagamidget'
},
kelowna/rgb64: {
target: 'weirdo/kelowna/rgb64'
},
kprepublic/bm65hsrgb_iso: {
target: 'kprepublic/bm65hsrgb_iso/rev1'
},
kprepublic/bm68hsrgb: {
target: 'kprepublic/bm68hsrgb/rev1'
},
latin17rgb: {
target: 'latincompass/latin17rgb'
},
latin47ble: {
target: 'latincompass/latin47ble'
},
latin60rgb: {
target: 'latincompass/latin60rgb'
},
latin64ble: {
target: 'latincompass/latin64ble'
},
latin6rgb: {
target: 'latincompass/latin6rgb'
},
latinpad: {
target: 'latincompass/latinpad'
},
latinpadble: {
target: 'latincompass/latinpadble'
},
launchpad/rev1: {
target: 'maple_computing/launchpad/rev1'
},
lck75: {
target: 'lyso1/lck75'
},
le_chiffre: {
target: 'tominabox1/le_chiffre'
},
lefishe: {
target: 'lyso1/lefishe'
},
lets_split_eh/eh: {
target: 'maple_computing/lets_split_eh/eh'
},
ls_60: {
target: 'weirdo/ls_60'
},
m3n3van: {
target: 'matthewdias/m3n3van'
},
mechmini/v1: {
target: 'mechkeys/mechmini/v1'
},
mechmini/v2: {
target: 'mechkeys/mechmini/v2'
},
meira: {
target: 'woodkeys/meira'
},
meishi: {
target: 'biacco42/meishi'
},
meishi2: {
target: 'biacco42/meishi2'
},
minidox/rev1: {
target: 'maple_computing/minidox/rev1'
},
minim: {
target: 'matthewdias/minim'
},
mio: {
target: 'recompile_keys/mio'
},
model_v: {
target: 'matthewdias/model_v'
},
montex: {
target: 'idobao/montex/v1'
},
nafuda: {
target: 'salicylic_acid3/nafuda'
},
naiping/np64: {
target: 'weirdo/naiping/np64'
},
naiping/nphhkb: {
target: 'weirdo/naiping/nphhkb'
},
naiping/npminila: {
target: 'weirdo/naiping/npminila'
},
naked48: {
target: 'salicylic_acid3/naked48'
},
naked60: {
target: 'salicylic_acid3/naked60'
},
naked64: {
target: 'salicylic_acid3/naked64'
},
namecard2x4: {
target: 'takashiski/namecard2x4'
},
nebula12: {
target: 'spaceholdings/nebula12'
},
nebula68: {
target: 'spaceholdings/nebula68'
},
nebula68b: {
target: 'spaceholdings/nebula68b'
},
niu_mini: {
target: 'kbdfans/niu_mini'
},
nk1: {
target: 'novelkeys/nk1'
},
nk65: {
target: 'novelkeys/nk65'
},
nk87: {
target: 'novelkeys/nk87'
},
nknl7en: {
target: 'salicylic_acid3/nknl7en'
},
nknl7jp: {
target: 'salicylic_acid3/nknl7jp'
},
nomu30: {
target: 'recompile_keys/nomu30'
},
novelpad: {
target: 'novelkeys/novelpad'
},
ogurec: {
target: 'drhigsby/ogurec'
},
otaku_split/rev0: {
target: 'takashiski/otaku_split/rev0'
},
otaku_split/rev1: {
target: 'takashiski/otaku_split/rev1'
},
owl8: {
target: 'dailycraft/owl8'
},
packrat: {
target: 'drhigsby/packrat'
},
pistachio: {
target: 'rate/pistachio'
},
pistachio_mp: {
target: 'rate/pistachio_mp'
},
pistachio_pro: {
target: 'rate/pistachio_pro'
},
plexus75: {
target: 'checkerboards/plexus75'
},
pursuit40: {
target: 'checkerboards/pursuit40'
},
qaz: {
target: 'tominabox1/qaz'
},
quark: {
target: 'checkerboards/quark'
},
rabbit_capture_plan: {
target: 'kakunpc/rabbit_capture_plan'
},
rainkeeb: {
target: 'rainkeebs/rainkeeb'
},
reviung33: {
target: 'reviung/reviung33'
},
reviung34: {
target: 'reviung/reviung34'
},
reviung39: {
target: 'reviung/reviung39'
},
reviung41: {
target: 'reviung/reviung41'
},
reviung5: {
target: 'reviung/reviung5'
},
reviung53: {
target: 'reviung/reviung53'
},
reviung61: {
target: 'reviung/reviung61'
},
runner3680/3x6: {
target: 'omkbd/runner3680/3x6'
},
runner3680/3x7: {
target: 'omkbd/runner3680/3x7'
},
runner3680/3x8: {
target: 'omkbd/runner3680/3x8'
},
runner3680/4x6: {
target: 'omkbd/runner3680/4x6'
},
runner3680/4x7: {
target: 'omkbd/runner3680/4x7'
},
runner3680/4x8: {
target: 'omkbd/runner3680/4x8'
},
runner3680/5x6: {
target: 'omkbd/runner3680/5x6'
},
runner3680/5x6_5x8: {
target: 'omkbd/runner3680/5x6_5x8'
},
runner3680/5x7: {
target: 'omkbd/runner3680/5x7'
},
runner3680/5x8: {
target: 'omkbd/runner3680/5x8'
},
scarletbandana: {
target: 'woodkeys/scarletbandana'
},
scythe: {
target: 'kagizaraya/scythe'
},
seigaiha: {
target: 'yiancardesigns/seigaiha'
},
setta21: {
target: 'salicylic_acid3/setta21'
},
space_space/rev1: {
target: 'qpockets/space_space/rev1'
},
space_space/rev2: {
target: 'qpockets/space_space/rev2'
},
spiderisland/winry25tc: {
target: 'winry/winry25tc'
},
splitreus62: {
target: 'nacly/splitreus62'
},
squiggle/rev1: {
target: 'ibnuda/squiggle/rev1'
},
standaside: {
target: 'edi/standaside'
},
steal_this_keyboard: {
target: 'obosob/steal_this_keyboard'
},
stella: {
target: 'hnahkb/stella'
},
suihankey/alpha: {
target: 'kakunpc/suihankey/alpha'
},
suihankey/rev1: {
target: 'kakunpc/suihankey/rev1'
},
suihankey/split: {
target: 'kakunpc/suihankey/split'
},
the_ruler: {
target: 'maple_computing/the_ruler'
},
thedogkeyboard: {
target: 'kakunpc/thedogkeyboard'
},
tiger910: {
target: 'weirdo/tiger910'
},
treadstone32: {
target: 'marksard/treadstone32'
},
treadstone48/rev1: {
target: 'marksard/treadstone48/rev1'
},
treadstone48/rev2: {
target: 'marksard/treadstone48/rev2'
},
txuu: {
target: 'matthewdias/txuu'
},
ua62: {
target: 'nacly/ua62'
},
underscore33/rev1: {
target: 'tominabox1/underscore33/rev1'
},
underscore33/rev2: {
target: 'tominabox1/underscore33/rev2'
},
vn66: {
target: 'hnahkb/vn66'
},
wallaby: {
target: 'kkatano/wallaby'
},
wanten: {
target: 'qpockets/wanten'
},
whitefox: {
target: 'input_club/whitefox'
},
wings42/rev1: {
target: 'dailycraft/wings42/rev1'
},
wings42/rev1_extkeys: {
target: 'dailycraft/wings42/rev1_extkeys'
},
wings42/rev2: {
target: 'dailycraft/wings42/rev2'
},
yasui: {
target: 'rainkeebs/yasui'
},
yd60mq: {
target: 'ymdk/yd60mq'
},
yd68: {
target: 'ydkb/yd68'
},
ymd75: {
target: 'ymdk/ymd75'
},
ymd96: {
target: 'ymdk/ymd96'
},
ymdk_np21: {
target: 'ymdk/np21'
},
yurei: {
target: 'kkatano/yurei'
},
zinc: {
target: '25keys/zinc'
},
zinc/rev1: {
target: '25keys/zinc/rev1'
},
zinc/reva: {
target: '25keys/zinc/reva'
}
}

View File

@@ -20,6 +20,10 @@
"type": "string",
"pattern": "^0x[0-9A-F]{4}$"
},
"bcd_version": {
"type": "string",
"pattern": "^[0-9]{1,2}\\.[0-9]\\.[0-9]$"
},
"text_identifier": {
"type": "string",
"minLength": 1,
@@ -29,7 +33,33 @@
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
"enum": [
"LAYOUT",
"LAYOUT_1x2uC",
"LAYOUT_1x2uL",
"LAYOUT_1x2uR",
"LAYOUT_2x2uC",
"LAYOUT_2x3uC",
"LAYOUT_625uC",
"LAYOUT_ANSI_DEFAULT",
"LAYOUT_JP",
"LAYOUT_ortho_3x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uL",
"LAYOUT_ortho_4x12_1x2uR",
"LAYOUT_ortho_5x12_1x2uC",
"LAYOUT_ortho_5x12_2x2uC",
"LAYOUT_ortho_5x14_1x2uC",
"LAYOUT_ortho_5x14_1x2uL",
"LAYOUT_ortho_5x14_1x2uR",
"LAYOUT_planck_1x2uC",
"LAYOUT_planck_1x2uL",
"LAYOUT_planck_1x2uR",
"LAYOUT_preonic_1x2uC",
"LAYOUT_preonic_1x2uL",
"LAYOUT_preonic_1x2uR",
"LAYOUT_reviung34_2uL"
]
},
{
"type": "string",
@@ -41,12 +71,32 @@
"type": "number",
"min": 0.25
},
"keyboard": {
"oneOf": [
{
"type": "string",
"enum": [
"converter/numeric_keypad_IIe",
"emptystring/NQG",
"maple_computing/christmas_tree/V2017"
]
},
{
"type": "string",
"pattern": "^[0-9a-z][0-9a-z_/]*$"
}
]
},
"mcu_pin_array": {
"type": "array",
"items": {"$ref": "#/mcu_pin"}
},
"mcu_pin": {
"oneOf": [
{
"type": "string",
"enum": ["NO_PIN"]
},
{
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
@@ -70,13 +120,13 @@
"signed_int": {
"type": "number",
"multipleOf": 1
}
},
"signed_int_8": {
"type": "number",
"min": -127,
"max": 127,
"multipleOf": 1
}
},
"string_array": {
"type": "array",
"items": {
@@ -97,7 +147,7 @@
"type": "number",
"min": 0,
"multipleOf": 1
}
},
"unsigned_int_8": {
"type": "number",
"min": 0,

View File

@@ -5,6 +5,7 @@
"type": "object",
"properties": {
"keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"url": {
@@ -13,7 +14,7 @@
},
"processor": {
"type": "string",
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L433", "STM32L443", "GD32VF103", "WB32F3G71", "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", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
},
"audio": {
"type": "object",
@@ -45,7 +46,7 @@
"properties": {
"driver": {
"type": "string",
"enum": ["AdafruitBLE", "RN42"]
"enum": ["BluefruitLE", "RN42"]
},
"lto": {"type": "boolean"},
}
@@ -57,7 +58,7 @@
},
"bootloader": {
"type": "string",
"enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2"],
"enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2"],
},
"bootloader_instructions": {
"type": "string",
@@ -69,7 +70,7 @@
"properties": {
"debounce_type": {
"type": "string",
"enum": ["custom", "eager_pk", "eager_pr", "sym_defer_pk", "sym_eager_pk"]
"enum": ["custom", "eager_pk", "eager_pr", "sym_defer_pk", "sym_defer_pr", "sym_eager_pk"]
},
"firmware_format": {
"type": "string",
@@ -109,6 +110,7 @@
},
"layouts": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
"additionalProperties": {
"type": "object",
"additionalProperties": false,
@@ -320,7 +322,8 @@
"type": "object",
"additionalProperties": false,
"properties": {
"device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, # Deprecated
"device_version": {"$ref": "qmk.definitions.v1#/bcd_version"},
"force_nkro": {"type": "boolean"},
"pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},

View File

@@ -53,5 +53,10 @@
"type": "string",
"description": "asdf"
}
}
},
"required": [
"keyboard",
"layout",
"layers"
]
}

View File

@@ -1,138 +0,0 @@
// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER %(USER_NAME)s
#define PRODUCT %(KEYBOARD)s
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { D0, D5 }
#define MATRIX_COL_PINS { F1, F0, B0 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
//#define LED_NUM_LOCK_PIN B0
//#define LED_CAPS_LOCK_PIN B1
//#define LED_SCROLL_LOCK_PIN B2
//#define LED_COMPOSE_PIN B3
//#define LED_KANA_PIN B4
//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING
//#define RGB_DI_PIN E2
//#ifdef RGB_DI_PIN
//# define RGBLED_NUM 16
//# define RGBLIGHT_HUE_STEP 8
//# define RGBLIGHT_SAT_STEP 8
//# define RGBLIGHT_VAL_STEP 8
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
//# define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
//# define RGBLIGHT_EFFECT_BREATHING
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//# define RGBLIGHT_EFFECT_SNAKE
//# define RGBLIGHT_EFFECT_KNIGHT
//# define RGBLIGHT_EFFECT_CHRISTMAS
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
//# define RGBLIGHT_EFFECT_RGB_TEST
//# define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
//#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
*/
//#define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -1,27 +0,0 @@
# %(KEYBOARD)s
![%(KEYBOARD)s](imgur.com image replace me!)
*A short description of the keyboard/project*
* Keyboard Maintainer: [%(YOUR_NAME)s](https://github.com/%(USER_NAME)s)
* Hardware Supported: *The PCBs, controllers supported*
* Hardware Availability: *Links to where you can find this hardware*
Make example for this keyboard (after setting up your build environment):
make %(KEYBOARD)s:default
Flashing example for this keyboard:
make %(KEYBOARD)s:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available

View File

@@ -1,4 +0,0 @@
// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "%(KEYBOARD)s.h"

View File

@@ -1,22 +0,0 @@
// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT( \
k00, k01, k02, \
k10, k12 \
) { \
{ k00, k01, k02 }, \
{ k10, KC_NO, k12 } \
}

View File

@@ -1,17 +0,0 @@
{
"keyboard_name": "%(KEYBOARD)s",
"url": "",
"maintainer": "%(USER_NAME)s",
"layouts": {
"LAYOUT": {
"layout": [
{"label": "k00", "x": 0, "y": 0},
{"label": "k01", "x": 1, "y": 0},
{"label": "k02", "x": 2, "y": 0},
{"label": "k10", "x": 0, "y": 1, "w": 1.5},
{"label": "k12", "x": 1.5, "y": 1, "w": 1.5}
]
}
}
}

View File

@@ -1,22 +0,0 @@
// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE,
_FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT(
KC_A, KC_1, MO(_FN),
KC_TAB, KC_SPC
),
[_FN] = LAYOUT(
_______, _______, _______,
RESET, XXXXXXX
)
};

View File

@@ -1 +0,0 @@
# The default keymap for %(KEYBOARD)s

View File

@@ -0,0 +1,20 @@
// Copyright %YEAR% %REAL_NAME% (@%USER_NAME%)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

View File

@@ -0,0 +1,25 @@
{
"keyboard_name": "%KEYBOARD%",
"maintainer": "%USER_NAME%",
"manufacturer": "%REAL_NAME%",
"processor": "%MCU%",
"bootloader": "%BOOTLOADER%",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["C2"],
"rows": ["D1"]
},
"usb": {
"vid": "0xFEED",
"pid": "0x0000",
"device_version": "1.0.0"
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
}
}

View File

@@ -0,0 +1,27 @@
# %KEYBOARD%
![%KEYBOARD%](imgur.com image replace me!)
*A short description of the keyboard/project*
* Keyboard Maintainer: [%REAL_NAME%](https://github.com/%USER_NAME%)
* Hardware Supported: *The PCBs, controllers supported*
* Hardware Availability: *Links to where you can find this hardware*
Make example for this keyboard (after setting up your build environment):
make %KEYBOARD%:default
Flashing example for this keyboard:
make %KEYBOARD%:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -1,128 +0,0 @@
// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER %(USER_NAME)s
#define PRODUCT %(KEYBOARD)s
/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 15
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7 }
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
//#define LED_NUM_LOCK_PIN D0
//#define LED_CAPS_LOCK_PIN D1
//#define LED_SCROLL_LOCK_PIN D6
#define BACKLIGHT_PIN D4
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING
#define RGBLED_NUM 16
//#define RGBLIGHT_HUE_STEP 8
//#define RGBLIGHT_SAT_STEP 8
//#define RGBLIGHT_VAL_STEP 8
//#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
//#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
//#define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
//#define RGBLIGHT_EFFECT_BREATHING
//#define RGBLIGHT_EFFECT_RAINBOW_MOOD
//#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//#define RGBLIGHT_EFFECT_SNAKE
//#define RGBLIGHT_EFFECT_KNIGHT
//#define RGBLIGHT_EFFECT_CHRISTMAS
//#define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#define RGBLIGHT_EFFECT_RGB_TEST
//#define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//#define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//#define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
*/
//#define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -1,28 +0,0 @@
# %(KEYBOARD)s
![%(KEYBOARD)s](imgur.com image replace me!)
*A short description of the keyboard/project*
* Keyboard Maintainer: [%(YOUR_NAME)s](https://github.com/yourusername)
* Hardware Supported: *The PCBs, controllers supported*
* Hardware Availability: *Links to where you can find this hardware*
Make example for this keyboard (after setting up your build environment):
make %(KEYBOARD)s:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
make %(KEYBOARD)s:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **BootloadHID reset**: Hold down the key connected to the `A0` and `B0` pins on the MCU if it is known (often top left or bottom left) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available

View File

@@ -1,17 +0,0 @@
# MCU name
MCU = atmega32a
# Bootloader selection
BOOTLOADER = bootloadhid
# 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
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
WS2812_DRIVER = i2c

489
docs/ChangeLog/20220226.md Normal file
View File

@@ -0,0 +1,489 @@
# QMK Breaking Changes - 2022 February 26 Changelog
## Notable Features :id=notable-features
### Default USB Polling rate now 1kHz ([#15352](https://github.com/qmk/qmk_firmware/pull/15352))
The default USB Polling rate has been aligned across supported platforms to now be 1ms/1kHz.
Something something *Lets go gamers!*
### Split support for pointing devices ([#15304](https://github.com/qmk/qmk_firmware/pull/15304))
Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side.
See the [Pointing Device](feature_pointing_device.md) documentation for further configuration options.
## Changes Requiring User Action :id=changes-requiring-user-action
### Legacy macro and action_function system removed ([#16025](https://github.com/qmk/qmk_firmware/pull/16025))
The long time deprecated `MACRO()` and `action_get_macro` methods have been removed. Where possible, existing usages have been migrated over to core [Macros](feature_macros.md).
### Create a build error if no bootloader is specified ([#16181](https://github.com/qmk/qmk_firmware/pull/16181))
Bootloader configuration is no longer assumed. Keyboards must now set either:
* `BOOTLOADER` within `rules.mk`
* `bootloader` within `info.json`
### Rename `AdafruitBLE` to `BluefruitLE` ([#16127](https://github.com/qmk/qmk_firmware/pull/16127))
In preparation of future bluetooth work, the `AdafruitBLE` integration has been renamed to allow potential for any other Adafruit BLE products.
### Updated Keyboard Codebases :id=updated-keyboard-codebases
The following keyboards have had their source moved within QMK:
| Old Keyboard Name | New Keyboard Name |
|----------------------------|------------------------------------|
| 6ball | maple_computing/6ball |
| 7skb | salicylic_acid3/7skb |
| 7splus | salicylic_acid3/7splus |
| acr60 | mechkeys/acr60 |
| adalyn | tominabox1/adalyn |
| ajisai74 | salicylic_acid3/ajisai74 |
| aleth42 | 25keys/aleth42 |
| alicia_cook | ibnuda/alicia_cook |
| allison_numpad | prototypist/allison_numpad |
| allison | prototypist/allison |
| alu84 | mechkeys/alu84 |
| angel17 | kakunpc/angel17 |
| angel64/alpha | kakunpc/angel64/alpha |
| angel64/rev1 | kakunpc/angel64/rev1 |
| arch_36 | obosob/arch_36 |
| bakeneko60 | kkatano/bakeneko60 |
| bakeneko65/rev2 | kkatano/bakeneko65/rev2 |
| bakeneko65/rev3 | kkatano/bakeneko65/rev3 |
| bakeneko80 | kkatano/bakeneko80 |
| barleycorn | yiancardesigns/barleycorn |
| bat43/rev1 | dailycraft/bat43/rev1 |
| bat43/rev2 | dailycraft/bat43/rev2 |
| bigseries/1key | woodkeys/bigseries/1key |
| bigseries/2key | woodkeys/bigseries/2key |
| bigseries/3key | woodkeys/bigseries/3key |
| bigseries/4key | woodkeys/bigseries/4key |
| bkf | drhigsby/bkf |
| business_card/alpha | kakunpc/business_card/alpha |
| business_card/beta | kakunpc/business_card/beta |
| butterstick | gboards/butterstick |
| c39 | maple_computing/c39 |
| cassette42 | 25keys/cassette42 |
| chidori | kagizaraya/chidori |
| chili | ydkb/chili |
| chimera_ergo | glenpickle/chimera_ergo |
| chimera_ls | glenpickle/chimera_ls |
| chimera_ortho | glenpickle/chimera_ortho |
| chimera_ortho_plus | glenpickle/chimera_ortho_plus |
| choco60 | recompile_keys/choco60 |
| choc_taro | kakunpc/choc_taro |
| christmas_tree | maple_computing/christmas_tree |
| claw44/rev1 | dailycraft/claw44/rev1 |
| cocoa40 | recompile_keys/cocoa40 |
| comet46 | satt/comet46 |
| cu24 | capsunlocked/cu24 |
| cu75 | capsunlocked/cu75 |
| cu80 | capsunlocked/cu80/v1 |
| delilah | rainkeebs/delilah |
| diverge3 | unikeyboard/diverge3 |
| divergetm2 | unikeyboard/divergetm2 |
| dozen0 | yynmt/dozen0 |
| dubba175 | drhigsby/dubba175 |
| eggman | qpockets/eggman |
| ergo42 | biacco42/ergo42 |
| ergoarrows | salicylic_acid3/ergoarrows |
| ergodash/mini | omkbd/ergodash/mini |
| ergodash/rev1 | omkbd/ergodash/rev1 |
| ergodox_infinity | input_club/ergodox_infinity |
| ergotaco | gboards/ergotaco |
| espectro | mechkeys/espectro |
| felix | unikeyboard/felix |
| four_banger | bpiphany/four_banger |
| freyr | hnahkb/freyr |
| geminate60 | weirdo/geminate60 |
| georgi | gboards/georgi |
| gergo | gboards/gergo |
| getta25 | salicylic_acid3/getta25 |
| gingham | yiancardesigns/gingham |
| gurindam | ibnuda/gurindam |
| halberd | kagizaraya/halberd |
| hecomi/alpha | takashiski/hecomi/alpha |
| hid_liber | bpiphany/hid_liber |
| id67/default_rgb | idobao/id67/default_rgb |
| id67/rgb | idobao/id67/rgb |
| id80 | idobao/id80/v1 |
| id87 | idobao/id87/v1 |
| idobo | idobao/id75/v1 |
| infinity60 | input_club/infinity60 |
| ivy/rev1 | maple_computing/ivy/rev1 |
| jisplit89 | salicylic_acid3/jisplit89 |
| jnao | maple_computing/jnao |
| just60 | ydkb/just60 |
| kagamidget | yynmt/kagamidget |
| kelowna/rgb64 | weirdo/kelowna/rgb64 |
| kprepublic/bm65hsrgb_iso | kprepublic/bm65hsrgb_iso/rev1 |
| kprepublic/bm68hsrgb | kprepublic/bm68hsrgb/rev1 |
| k_type | input_club/k_type |
| latin17rgb | latincompass/latin17rgb |
| latin47ble | latincompass/latin47ble |
| latin60rgb | latincompass/latin60rgb |
| latin64ble | latincompass/latin64ble |
| latin6rgb | latincompass/latin6rgb |
| latinpadble | latincompass/latinpadble |
| latinpad | latincompass/latinpad |
| launchpad/rev1 | maple_computing/launchpad/rev1 |
| lck75 | lyso1/lck75 |
| le_chiffre | tominabox1/le_chiffre |
| lefishe | lyso1/lefishe |
| lets_split_eh/eh | maple_computing/lets_split_eh/eh |
| ls_60 | weirdo/ls_60 |
| m3n3van | matthewdias/m3n3van |
| mechmini/v1 | mechkeys/mechmini/v1 |
| mechmini/v2 | mechkeys/mechmini/v2 |
| meira | woodkeys/meira |
| meishi2 | biacco42/meishi2 |
| meishi | biacco42/meishi |
| minidox/rev1 | maple_computing/minidox/rev1 |
| minim | matthewdias/minim |
| mio | recompile_keys/mio |
| model_v | matthewdias/model_v |
| montex | idobao/montex/v1 |
| nafuda | salicylic_acid3/nafuda |
| naiping/np64 | weirdo/naiping/np64 |
| naiping/nphhkb | weirdo/naiping/nphhkb |
| naiping/npminila | weirdo/naiping/npminila |
| naked48 | salicylic_acid3/naked48 |
| naked60 | salicylic_acid3/naked60 |
| naked64 | salicylic_acid3/naked64 |
| namecard2x4 | takashiski/namecard2x4 |
| nebula12 | spaceholdings/nebula12 |
| nebula68b | spaceholdings/nebula68b |
| nebula68 | spaceholdings/nebula68 |
| niu_mini | kbdfans/niu_mini |
| nk1 | novelkeys/nk1 |
| nk65 | novelkeys/nk65 |
| nk87 | novelkeys/nk87 |
| nknl7en | salicylic_acid3/nknl7en |
| nknl7jp | salicylic_acid3/nknl7jp |
| nomu30 | recompile_keys/nomu30 |
| novelpad | novelkeys/novelpad |
| ogurec | drhigsby/ogurec |
| otaku_split/rev0 | takashiski/otaku_split/rev0 |
| otaku_split/rev1 | takashiski/otaku_split/rev1 |
| owl8 | dailycraft/owl8 |
| packrat | drhigsby/packrat |
| pistachio_mp | rate/pistachio_mp |
| pistachio_pro | rate/pistachio_pro |
| pistachio | rate/pistachio |
| plexus75 | checkerboards/plexus75 |
| pursuit40 | checkerboards/pursuit40 |
| qaz | tominabox1/qaz |
| quark | checkerboards/quark |
| rabbit_capture_plan | kakunpc/rabbit_capture_plan |
| rainkeeb | rainkeebs/rainkeeb |
| reviung33 | reviung/reviung33 |
| reviung34 | reviung/reviung34 |
| reviung39 | reviung/reviung39 |
| reviung41 | reviung/reviung41 |
| reviung53 | reviung/reviung53 |
| reviung5 | reviung/reviung5 |
| reviung61 | reviung/reviung61 |
| runner3680/3x6 | omkbd/runner3680/3x6 |
| runner3680/3x7 | omkbd/runner3680/3x7 |
| runner3680/3x8 | omkbd/runner3680/3x8 |
| runner3680/4x6 | omkbd/runner3680/4x6 |
| runner3680/4x7 | omkbd/runner3680/4x7 |
| runner3680/4x8 | omkbd/runner3680/4x8 |
| runner3680/5x6_5x8 | omkbd/runner3680/5x6_5x8 |
| runner3680/5x6 | omkbd/runner3680/5x6 |
| runner3680/5x7 | omkbd/runner3680/5x7 |
| runner3680/5x8 | omkbd/runner3680/5x8 |
| scarletbandana | woodkeys/scarletbandana |
| scythe | kagizaraya/scythe |
| seigaiha | yiancardesigns/seigaiha |
| setta21 | salicylic_acid3/setta21 |
| space_space/rev1 | qpockets/space_space/rev1 |
| space_space/rev2 | qpockets/space_space/rev2 |
| spiderisland/winry25tc | winry/winry25tc |
| splitreus62 | nacly/splitreus62 |
| squiggle/rev1 | ibnuda/squiggle/rev1 |
| standaside | edi/standaside |
| steal_this_keyboard | obosob/steal_this_keyboard |
| stella | hnahkb/stella |
| suihankey/alpha | kakunpc/suihankey/alpha |
| suihankey/rev1 | kakunpc/suihankey/rev1 |
| suihankey/split | kakunpc/suihankey/split |
| thedogkeyboard | kakunpc/thedogkeyboard |
| the_ruler | maple_computing/the_ruler |
| tiger910 | weirdo/tiger910 |
| treadstone32 | marksard/treadstone32 |
| treadstone48/rev1 | marksard/treadstone48/rev1 |
| treadstone48/rev2 | marksard/treadstone48/rev2 |
| txuu | matthewdias/txuu |
| ua62 | nacly/ua62 |
| underscore33/rev1 | tominabox1/underscore33/rev1 |
| underscore33/rev2 | tominabox1/underscore33/rev2 |
| vn66 | hnahkb/vn66 |
| wallaby | kkatano/wallaby |
| wanten | qpockets/wanten |
| whitefox | input_club/whitefox |
| wings42/rev1 | dailycraft/wings42/rev1 |
| wings42/rev1_extkeys | dailycraft/wings42/rev1_extkeys |
| wings42/rev2 | dailycraft/wings42/rev2 |
| yasui | rainkeebs/yasui |
| yd60mq | ymdk/yd60mq |
| yd68 | ydkb/yd68 |
| ymd75 | ymdk/ymd75 |
| ymd96 | ymdk/ymd96 |
| ymdk_np21 | ymdk/np21 |
| yurei | kkatano/yurei |
| zinc | 25keys/zinc |
| zinc/rev1 | 25keys/zinc/rev1 |
| zinc/reva | 25keys/zinc/reva |
## Notable core changes :id=notable-core
### New MCU Support :id=new-mcu-support
Building on previous cycles, QMK firmware picked up support for a couple extra MCU variants:
* STM32L432
* STM32L442
### New Drivers
QMK now has core-supplied support for the following device peripherals:
#### LED
* IS31FL3742A
* IS31FL3743A
* IS31FL3745
* IS31FL3746A
#### GPIO
* SN74x138
* mcp23018
---
## Full changelist
Core:
* Initial pass at data driven new-keyboard subcommand ([#12795](https://github.com/qmk/qmk_firmware/pull/12795))
* Don't send keyboard reports that propagate no changes to the host ([#14065](https://github.com/qmk/qmk_firmware/pull/14065))
* Custom matrix lite support for split keyboards ([#14674](https://github.com/qmk/qmk_firmware/pull/14674))
* Add sym_defer_pr debouncer type ([#14948](https://github.com/qmk/qmk_firmware/pull/14948))
* Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, IS31FL3745, IS31FL3746A ([#14989](https://github.com/qmk/qmk_firmware/pull/14989))
* New combo configuration options ([#15083](https://github.com/qmk/qmk_firmware/pull/15083))
* IS31FL3733 driver for LED Matrix ([#15088](https://github.com/qmk/qmk_firmware/pull/15088))
* Add open-drain GPIO support. ([#15282](https://github.com/qmk/qmk_firmware/pull/15282))
* Make (un)register code functions weak ([#15285](https://github.com/qmk/qmk_firmware/pull/15285))
* Split support for pointing devices. ([#15304](https://github.com/qmk/qmk_firmware/pull/15304))
* Added cancel_key_lock function ([#15321](https://github.com/qmk/qmk_firmware/pull/15321))
* Remove matrix_is_modified() and debounce_is_active() ([#15349](https://github.com/qmk/qmk_firmware/pull/15349))
* Change default USB Polling rate to 1kHz ([#15352](https://github.com/qmk/qmk_firmware/pull/15352))
* Implement MAGIC_TOGGLE_CONTROL_CAPSLOCK ([#15368](https://github.com/qmk/qmk_firmware/pull/15368))
* Tidy up existing i2c_master implementations ([#15376](https://github.com/qmk/qmk_firmware/pull/15376))
* Generalize Unicode defines ([#15409](https://github.com/qmk/qmk_firmware/pull/15409))
* Added external spi flash driver. ([#15419](https://github.com/qmk/qmk_firmware/pull/15419))
* Remove Deprecated USB Polling comment from vusb.c ([#15420](https://github.com/qmk/qmk_firmware/pull/15420))
* Expand rotational range for PMW3360 Optical Sensor ([#15431](https://github.com/qmk/qmk_firmware/pull/15431))
* ChibiOS SVN mirror script update ([#15435](https://github.com/qmk/qmk_firmware/pull/15435))
* Refactor `bootloader_jump()` implementations ([#15450](https://github.com/qmk/qmk_firmware/pull/15450))
* added missing audio_off_user() callback ([#15457](https://github.com/qmk/qmk_firmware/pull/15457))
* Migrate serial_uart usages to UART driver ([#15479](https://github.com/qmk/qmk_firmware/pull/15479))
* Migrate RN42 to UART driver and refactor ([#15492](https://github.com/qmk/qmk_firmware/pull/15492))
* pwm3360 driver cleanup and diff reduction to adns9800 ([#15559](https://github.com/qmk/qmk_firmware/pull/15559))
* Advanced deferred_exec for core-side code. ([#15579](https://github.com/qmk/qmk_firmware/pull/15579))
* Adjust tap_code16 to account for TAP_HOLD_CAPS_DELAY ([#15635](https://github.com/qmk/qmk_firmware/pull/15635))
* Slight tidy up of keyboard task loop ([#15725](https://github.com/qmk/qmk_firmware/pull/15725))
* Unify the key up/down behaviour of RGB keycodes ([#15730](https://github.com/qmk/qmk_firmware/pull/15730))
* Add PMW3389 optical sensor Support (Updated) ([#15740](https://github.com/qmk/qmk_firmware/pull/15740))
* ChibiOS: add support for HID Programmable Buttons ([#15787](https://github.com/qmk/qmk_firmware/pull/15787))
* ChibiOS: shorten USB disconnect state on boot to 50ms ([#15805](https://github.com/qmk/qmk_firmware/pull/15805))
* Add init function to clear previous matrix effect ([#15815](https://github.com/qmk/qmk_firmware/pull/15815))
* Optimize initialization of PMW3360 Sensor ([#15821](https://github.com/qmk/qmk_firmware/pull/15821))
* Add Pixel Flow RGB matrix effect ([#15829](https://github.com/qmk/qmk_firmware/pull/15829))
* PMW3389 Revert Firmware load during Initilization ([#15859](https://github.com/qmk/qmk_firmware/pull/15859))
* Combo `TAP_CODE_DELAY` and `clear_weak_mods` ([#15866](https://github.com/qmk/qmk_firmware/pull/15866))
* Relocate matrix_scan_quantum tasks ([#15882](https://github.com/qmk/qmk_firmware/pull/15882))
* Adjust mouse key defaults ([#15883](https://github.com/qmk/qmk_firmware/pull/15883))
* RGB Matrix: Reload from EEPROM ([#15923](https://github.com/qmk/qmk_firmware/pull/15923))
* Enable a default task throttle for split pointing. ([#15925](https://github.com/qmk/qmk_firmware/pull/15925))
* Move mcp23018 driver to core ([#15944](https://github.com/qmk/qmk_firmware/pull/15944))
* Relocate matrix_init_quantum content ([#15953](https://github.com/qmk/qmk_firmware/pull/15953))
* Align location of some host led logic ([#15954](https://github.com/qmk/qmk_firmware/pull/15954))
* Rename some Quantum keycodes ([#15968](https://github.com/qmk/qmk_firmware/pull/15968))
* Migrate more makefile utilities to builddefs sub-directory ([#16002](https://github.com/qmk/qmk_firmware/pull/16002))
* Various Makefile optimisations ([#16015](https://github.com/qmk/qmk_firmware/pull/16015))
* Add support for STM32L432, STM32L442. ([#16016](https://github.com/qmk/qmk_firmware/pull/16016))
* EEPROM refactor: remove `eeprom_teensy.c` by default, use transient instead ([#16020](https://github.com/qmk/qmk_firmware/pull/16020))
* Deprecate Split Transaction status field ([#16023](https://github.com/qmk/qmk_firmware/pull/16023))
* Rip out old macro and action_function system ([#16025](https://github.com/qmk/qmk_firmware/pull/16025))
* Add a script that simplifies running commands under docker. ([#16028](https://github.com/qmk/qmk_firmware/pull/16028))
* Add support for Q-series on the ckled2001 LED driver ([#16051](https://github.com/qmk/qmk_firmware/pull/16051))
* Remove unused suspend_idle ([#16063](https://github.com/qmk/qmk_firmware/pull/16063))
* Initial migration of suspend callbacks ([#16067](https://github.com/qmk/qmk_firmware/pull/16067))
* Add layout change callbacks to VIA ([#16087](https://github.com/qmk/qmk_firmware/pull/16087))
* Rename `AdafruitBLE` to `BluefruitLE` ([#16127](https://github.com/qmk/qmk_firmware/pull/16127))
* Update outputselect to use platform connected state API ([#16185](https://github.com/qmk/qmk_firmware/pull/16185))
* Remove default pointing device driver. ([#16190](https://github.com/qmk/qmk_firmware/pull/16190))
* Add SN74x138 demultiplexer driver ([#16217](https://github.com/qmk/qmk_firmware/pull/16217))
* Standardise error output. ([#16220](https://github.com/qmk/qmk_firmware/pull/16220))
* Followup to #16220, more test error output. ([#16221](https://github.com/qmk/qmk_firmware/pull/16221))
* Misc size regression script improvements. ([#16268](https://github.com/qmk/qmk_firmware/pull/16268))
* Align existing pca9555 driver to better match mcp23018 API ([#16277](https://github.com/qmk/qmk_firmware/pull/16277))
* Size checks print out target firmware file instead ([#16290](https://github.com/qmk/qmk_firmware/pull/16290))
CLI:
* `develop` changelog generator: use the PR title instead ([#15537](https://github.com/qmk/qmk_firmware/pull/15537))
* `develop` changelog generator: skip code formatting in listing ([#16215](https://github.com/qmk/qmk_firmware/pull/16215))
Keyboards:
* Durgod: Increase scan rate by using wait_us timer ([#14091](https://github.com/qmk/qmk_firmware/pull/14091))
* Add another GMMK Pro ANSI Keymap with custom RGB. ([#14243](https://github.com/qmk/qmk_firmware/pull/14243))
* Parse USB device version BCD ([#14580](https://github.com/qmk/qmk_firmware/pull/14580))
* Add vitoni keymap for GMMK Pro (ISO) ([#15006](https://github.com/qmk/qmk_firmware/pull/15006))
* Move bm65hsrgb_iso and bm68hsrgb to rev1/ to prepare for updates to the boards ([#15132](https://github.com/qmk/qmk_firmware/pull/15132))
* Convert ergoinu to SPLIT_KEYBOARD ([#15305](https://github.com/qmk/qmk_firmware/pull/15305))
* Convert not_so_minidox to SPLIT_KEYBOARD ([#15306](https://github.com/qmk/qmk_firmware/pull/15306))
* Added new handwired keyboard Wakizashi 40 ([#15336](https://github.com/qmk/qmk_firmware/pull/15336))
* Convert ai03/orbit to SPLIT_KEYBOARD ([#15340](https://github.com/qmk/qmk_firmware/pull/15340))
* Remove manual enable of LTO within user keymaps ([#15378](https://github.com/qmk/qmk_firmware/pull/15378))
* Move to organization folder ([#15481](https://github.com/qmk/qmk_firmware/pull/15481))
* Convert some more boards to Matrix Lite ([#15489](https://github.com/qmk/qmk_firmware/pull/15489))
* Organize Reviung boards into a directory ([#15636](https://github.com/qmk/qmk_firmware/pull/15636))
* move winry25tc to winry/ ([#15637](https://github.com/qmk/qmk_firmware/pull/15637))
* Rename ymdk_np21 to np21 + move to ymdk vendor folder ([#15641](https://github.com/qmk/qmk_firmware/pull/15641))
* move ymd96 to ymdk vendor folder ([#15643](https://github.com/qmk/qmk_firmware/pull/15643))
* move ymd75 to ymdk vendor folder ([#15645](https://github.com/qmk/qmk_firmware/pull/15645))
* move yd60mq to ymdk vendor folder ([#15647](https://github.com/qmk/qmk_firmware/pull/15647))
* rename idobo to idobao/id75, move to vendor folder ([#15661](https://github.com/qmk/qmk_firmware/pull/15661))
* move ID67 to IDOBAO vendor folder ([#15662](https://github.com/qmk/qmk_firmware/pull/15662))
* move ID80 to IDOBAO vendor folder ([#15665](https://github.com/qmk/qmk_firmware/pull/15665))
* move ID87 to IDOBAO vendor folder ([#15667](https://github.com/qmk/qmk_firmware/pull/15667))
* move montex to IDOBAO vendor folder ([#15668](https://github.com/qmk/qmk_firmware/pull/15668))
* move @yangdigi 's keyboards to a YDKB folder ([#15681](https://github.com/qmk/qmk_firmware/pull/15681))
* move @kkatano 's keyboards to kkatano user folder ([#15684](https://github.com/qmk/qmk_firmware/pull/15684))
* Sol 3 Keyboard from RGBKB ([#15687](https://github.com/qmk/qmk_firmware/pull/15687))
* move cu24, cu75, cu80/v1 into capsunlocked folder ([#15758](https://github.com/qmk/qmk_firmware/pull/15758))
* move mechkeys keyboards into the mechkeys/ vendor folder ([#15760](https://github.com/qmk/qmk_firmware/pull/15760))
* move @lyso1 's boards into lyso1/ ([#15767](https://github.com/qmk/qmk_firmware/pull/15767))
* move prototypist boards into vendor folder ([#15780](https://github.com/qmk/qmk_firmware/pull/15780))
* move @yiancar 's boards into yiancardesigns/ ([#15781](https://github.com/qmk/qmk_firmware/pull/15781))
* move novelkeys keyboards to vendor folder ([#15783](https://github.com/qmk/qmk_firmware/pull/15783))
* move @weirdo-f 's keyboards into weirdo/ ([#15785](https://github.com/qmk/qmk_firmware/pull/15785))
* move @marksard 's boards to marksard/ ([#15786](https://github.com/qmk/qmk_firmware/pull/15786))
* move input club keyboards into vendor folder ([#15788](https://github.com/qmk/qmk_firmware/pull/15788))
* move @monksoffunk 's boards into 25keys/ ([#15789](https://github.com/qmk/qmk_firmware/pull/15789))
* move @Salicylic-acid3 's keyboards to salicylic-acid3/ ([#15791](https://github.com/qmk/qmk_firmware/pull/15791))
* move @rainkeebs 's keyboards to rainkeebs/ ([#15797](https://github.com/qmk/qmk_firmware/pull/15797))
* move standaside into edi/ ([#15798](https://github.com/qmk/qmk_firmware/pull/15798))
* move @obosob 's boards into obosob/ ([#15799](https://github.com/qmk/qmk_firmware/pull/15799))
* move @nacly 's boards to nacly/ ([#15801](https://github.com/qmk/qmk_firmware/pull/15801))
* move @kakunpc 's keebs into kakunpc/ ([#15814](https://github.com/qmk/qmk_firmware/pull/15814))
* move @qpocket 's keyboards to qpocket/ ([#15827](https://github.com/qmk/qmk_firmware/pull/15827))
* BDN9 keymap ([#15924](https://github.com/qmk/qmk_firmware/pull/15924))
* move @matthewdias 's keebs into matthewdias/ ([#15991](https://github.com/qmk/qmk_firmware/pull/15991))
* move id80 and id75 to v1 to accommodate for id75 v2 and id80 v3 ([#15992](https://github.com/qmk/qmk_firmware/pull/15992))
* Remove `action_function()` from LFKeyboards boards ([#15993](https://github.com/qmk/qmk_firmware/pull/15993))
* move @latincompass (aka @18438880 , @haierwangwei2005)'s boards to /latincompass ([#16039](https://github.com/qmk/qmk_firmware/pull/16039))
* move g heavy industry boards into /gboards ([#16040](https://github.com/qmk/qmk_firmware/pull/16040))
* move @drhigsby 's boards into /drhigsby ([#16041](https://github.com/qmk/qmk_firmware/pull/16041))
* More keyboard rules.mk cleanups ([#16044](https://github.com/qmk/qmk_firmware/pull/16044))
* move @That-Canadian 's boards into /maple_computing ([#16050](https://github.com/qmk/qmk_firmware/pull/16050))
* move @takai 's keyboards into /recompile_keys ([#16053](https://github.com/qmk/qmk_firmware/pull/16053))
* move @satt99 's comet46 to satt/ ([#16059](https://github.com/qmk/qmk_firmware/pull/16059))
* move @ka2hiro 's boards into /kagizaraya ([#16070](https://github.com/qmk/qmk_firmware/pull/16070))
* move @GlenPickle 's chimera* boards into a folder ([#16072](https://github.com/qmk/qmk_firmware/pull/16072))
* move @yynmt 's boards into /yynmt ([#16075](https://github.com/qmk/qmk_firmware/pull/16075))
* move @Biacco42 's keebs into /biacco42 ([#16080](https://github.com/qmk/qmk_firmware/pull/16080))
* move unikeyboard boards to /unikeyboard ([#16081](https://github.com/qmk/qmk_firmware/pull/16081))
* move four_banger to bpiphany ([#16082](https://github.com/qmk/qmk_firmware/pull/16082))
* move @takashiski 's keebs into /takashiski ([#16089](https://github.com/qmk/qmk_firmware/pull/16089))
* move hid_liber to /bpiphany ([#16091](https://github.com/qmk/qmk_firmware/pull/16091))
* move spaceholdings boards into /spaceholdings ([#16096](https://github.com/qmk/qmk_firmware/pull/16096))
* move @7-rate 's keebs to /rate ([#16099](https://github.com/qmk/qmk_firmware/pull/16099))
* move @npspears 's boards into /checkerboards ([#16100](https://github.com/qmk/qmk_firmware/pull/16100))
* move @vuhopkep 's keebs into /hnahkb ([#16102](https://github.com/qmk/qmk_firmware/pull/16102))
* move @ibnuda 's keebs into /ibnuda ([#16108](https://github.com/qmk/qmk_firmware/pull/16108))
* move @tominabox1 's keebs into /tominabox1 ([#16109](https://github.com/qmk/qmk_firmware/pull/16109))
* move niu_mini to /kbdfans ([#16112](https://github.com/qmk/qmk_firmware/pull/16112))
* move woodkeys.click keyboards to /woodkeys ([#16113](https://github.com/qmk/qmk_firmware/pull/16113))
* move @omkbd 's boards to /omkbd ([#16116](https://github.com/qmk/qmk_firmware/pull/16116))
* Overhaul Tractyl Manuform ([#16134](https://github.com/qmk/qmk_firmware/pull/16134))
* Reduce firmware size for dztech/dz60rgb_wkl/v2_1:via ([#16254](https://github.com/qmk/qmk_firmware/pull/16254))
Keyboard fixes:
* Fix build failure for UT47 ([#15483](https://github.com/qmk/qmk_firmware/pull/15483))
* Update grs_70ec to use newer custom matrix ([#15609](https://github.com/qmk/qmk_firmware/pull/15609))
* fix compiler issue with Tractyl Manuform 4x6 ([#15646](https://github.com/qmk/qmk_firmware/pull/15646))
* Fix CI. ([#15828](https://github.com/qmk/qmk_firmware/pull/15828))
* Yet another bad `DEFAULT_FOLDER` fix. ([#15904](https://github.com/qmk/qmk_firmware/pull/15904))
* Fix build failures for `mschwingen/modelm` ([#15987](https://github.com/qmk/qmk_firmware/pull/15987))
* `rocketboard_16`: Fix mismatched LUT sizes ([#15997](https://github.com/qmk/qmk_firmware/pull/15997))
* Fix erroneous SRC for Clueboard 66 hotswap ([#16007](https://github.com/qmk/qmk_firmware/pull/16007))
* Fix handwired/ms_sculpt_mobile default keymap ([#16032](https://github.com/qmk/qmk_firmware/pull/16032))
* Re-org Hillside folders as new model prep. Fix default keymap. ([#16128](https://github.com/qmk/qmk_firmware/pull/16128))
* Fix up default folder locations. Again. ([#16135](https://github.com/qmk/qmk_firmware/pull/16135))
* Sol3 rgb fix ([#16157](https://github.com/qmk/qmk_firmware/pull/16157))
* Add missing `BOOTLOADER` for a handful of boards ([#16225](https://github.com/qmk/qmk_firmware/pull/16225))
* Remove half implemented micronucleus bootloader support ([#16252](https://github.com/qmk/qmk_firmware/pull/16252))
* Fixup bootloaders. ([#16256](https://github.com/qmk/qmk_firmware/pull/16256))
* Fix idobao/id80/v3 compilation errors ([#16280](https://github.com/qmk/qmk_firmware/pull/16280))
* Remove parent-relative paths from keyboards. ([#16282](https://github.com/qmk/qmk_firmware/pull/16282))
* Bodge for helix build failures ([#16376](https://github.com/qmk/qmk_firmware/pull/16376))
Others:
* Add a clarification to an error message ([#15207](https://github.com/qmk/qmk_firmware/pull/15207))
* Clang-format tweaks ([#15906](https://github.com/qmk/qmk_firmware/pull/15906))
* Add example implementations for compatible MCUs list ([#15935](https://github.com/qmk/qmk_firmware/pull/15935))
* Add version.h to gitignore ([#16222](https://github.com/qmk/qmk_firmware/pull/16222))
* Update keyboard mapping for all moved boards this cycle ([#16312](https://github.com/qmk/qmk_firmware/pull/16312))
* Align docs to new-keyboard behaviour ([#16357](https://github.com/qmk/qmk_firmware/pull/16357))
* Align new-keyboard with recent schema updates ([#16378](https://github.com/qmk/qmk_firmware/pull/16378))
Bugs:
* Fixes potential wpm sampling overflow, along with code comment fixes ([#15277](https://github.com/qmk/qmk_firmware/pull/15277))
* Add missing define for unicode common ([#15416](https://github.com/qmk/qmk_firmware/pull/15416))
* Fix for SPI write timing in PMW3360 driver ([#15519](https://github.com/qmk/qmk_firmware/pull/15519))
* Documentation Typo fix ([#15538](https://github.com/qmk/qmk_firmware/pull/15538))
* fix a typo ([#15557](https://github.com/qmk/qmk_firmware/pull/15557))
* Fix avr serial compile ([#15589](https://github.com/qmk/qmk_firmware/pull/15589))
* More AVR GPIO compilation fixes. ([#15592](https://github.com/qmk/qmk_firmware/pull/15592))
* Fix bug and code regression for Split Common ([#15603](https://github.com/qmk/qmk_firmware/pull/15603))
* Include missing string.h include in split ([#15606](https://github.com/qmk/qmk_firmware/pull/15606))
* Fixes for bootloader refactor build failures ([#15638](https://github.com/qmk/qmk_firmware/pull/15638))
* Update pmw3360 driver after reading the datasheet top to bottom. Fix some outdated refs. ([#15682](https://github.com/qmk/qmk_firmware/pull/15682))
* Fix split pointing for analog joystick ([#15691](https://github.com/qmk/qmk_firmware/pull/15691))
* Fix broken bootloader builds in develop. ([#15880](https://github.com/qmk/qmk_firmware/pull/15880))
* Fix optical sensor firmware upload ([#15919](https://github.com/qmk/qmk_firmware/pull/15919))
* Pass in the keyrecord_t of the dual-role/tapping key when calling per-key tap hold functions ([#15938](https://github.com/qmk/qmk_firmware/pull/15938))
* fixed typo in orange HSV colors decalartion ([#15976](https://github.com/qmk/qmk_firmware/pull/15976))
* Fix hack for chibiOS reset name ([#15984](https://github.com/qmk/qmk_firmware/pull/15984))
* Fix right side ws2812 leds having two indices ([#15985](https://github.com/qmk/qmk_firmware/pull/15985))
* Workaround in Makefile for recursive rule matching ([#15988](https://github.com/qmk/qmk_firmware/pull/15988))
* Fix BACKLIGHT_CAPS_LOCK warning ([#15999](https://github.com/qmk/qmk_firmware/pull/15999))
* Fix compilation issues for led indicators ([#16001](https://github.com/qmk/qmk_firmware/pull/16001))
* ChibiOS timer fixes ([#16017](https://github.com/qmk/qmk_firmware/pull/16017))
* Fix bootloader_jump for certain CTRL boards ([#16026](https://github.com/qmk/qmk_firmware/pull/16026))
* Fix up issue with PROGMEM and hand_swap_config ([#16027](https://github.com/qmk/qmk_firmware/pull/16027))
* Don't make EEPROM size assumptions with dynamic keymaps. ([#16054](https://github.com/qmk/qmk_firmware/pull/16054))
* fix missed .noci in reviung move ([#16107](https://github.com/qmk/qmk_firmware/pull/16107))
* Fix issues with Python Tests ([#16162](https://github.com/qmk/qmk_firmware/pull/16162))
* Fixup multibuild filegen ([#16166](https://github.com/qmk/qmk_firmware/pull/16166))
* Remove old .gitignore entry. Add more macOS junk exclusions. ([#16167](https://github.com/qmk/qmk_firmware/pull/16167))
* Fixup builds so that teensy EEPROM knows which MCU it's targeting. ([#16168](https://github.com/qmk/qmk_firmware/pull/16168))
* Create a build error if no bootloader is specified. ([#16181](https://github.com/qmk/qmk_firmware/pull/16181))
* Ensure `version.h` is recreated each build. ([#16188](https://github.com/qmk/qmk_firmware/pull/16188))
* Add `custom` to list of valid bootloader types in info.json ([#16228](https://github.com/qmk/qmk_firmware/pull/16228))
* Fix `layer_state` restoration at end of dynamic macro feature #16208 ([#16230](https://github.com/qmk/qmk_firmware/pull/16230))
* Minor additions #12795 ([#16276](https://github.com/qmk/qmk_firmware/pull/16276))
* Various fixes for matrix _RIGHT handling ([#16292](https://github.com/qmk/qmk_firmware/pull/16292))
* Fix slashes in build_full_test.mk ([#16300](https://github.com/qmk/qmk_firmware/pull/16300))
* ps2/avr: use the correct file name ([#16316](https://github.com/qmk/qmk_firmware/pull/16316))
* Fix compilation of ChibiOS UART driver ([#16348](https://github.com/qmk/qmk_firmware/pull/16348))
* Various fixes for new-keyboard ([#16358](https://github.com/qmk/qmk_firmware/pull/16358))
* Allow NO_PIN within data driven configuration ([#16359](https://github.com/qmk/qmk_firmware/pull/16359))

View File

@@ -37,7 +37,6 @@
* 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)
@@ -53,9 +52,6 @@
* [Your Fork](newbs_git_using_your_master_branch.md)
* [Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
* [Fixing Your Branch](newbs_git_resynchronize_a_branch.md)
* Keyboard Building
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* Simple Keycodes
* [Full List](keycodes.md)
@@ -124,17 +120,22 @@
* [Thermal Printer](feature_thermal_printer.md)
* [Velocikey](feature_velocikey.md)
* Keyboard Building
* [Easy Maker for One Offs](easy_maker.md)
* [Porting Keyboards](porting_your_keyboard_to_qmk.md)
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* Developing QMK
* [PR Checklist](pr_checklist.md)
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* [Most Recent ChangeLog](ChangeLog/20211127.md "QMK v0.15.0 - 2021 Nov 27")
* [Most Recent ChangeLog](ChangeLog/20220226.md "QMK v0.16.0 - 2022 Feb 26")
* [Past Breaking Changes](breaking_changes_history.md)
* C Development
* [ARM Debugging Guide](arm_debugging.md)
* [AVR Processors](hardware_avr.md)
* [Coding Conventions](coding_conventions_c.md)
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [Drivers](hardware_drivers.md)

View File

@@ -62,7 +62,7 @@ This shows us that the job has made it through the queue and is currently runnin
Once your compile job has finished you'll check the `result` key. The value of this key is a hash containing several key bits of information:
* `firmware_binary_url`: A list of URLs for the the flashable firmware
* `firmware_keymap_url`: A list of URLs for the the `keymap.c`
* `firmware_binary_url`: A list of URLs for the flashable firmware
* `firmware_keymap_url`: A list of URLs for the `keymap.c`
* `firmware_source_url`: A list of URLs for the full firmware source code
* `output`: The stdout and stderr for this compile job. Errors will be found here.

View File

@@ -8,6 +8,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?
* [2022 Feb 26](ChangeLog/20220226.md)
* [2021 Nov 27](ChangeLog/20211127.md)
* [2021 Aug 28](ChangeLog/20210828.md)
* [2021 May 29](ChangeLog/20210529.md)
@@ -20,17 +21,17 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
The next Breaking Change is scheduled for February 26, 2022.
The next Breaking Change is scheduled for May 28, 2022.
### Important Dates
* [x] 2021 Nov 27 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* [ ] 2022 Jan 31 - `develop` closed to new PR's.
* [ ] 2022 Jan 31 - Call for testers.
* [ ] 2022 Feb 12 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* [ ] 2022 Feb 24 - `master` is locked, no PR's merged.
* [ ] 2022 Feb 26 - Merge `develop` to `master`.
* [ ] 2022 Feb 26 - `master` is unlocked. PR's can be merged again.
* [x] 2022 Feb 26 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* [ ] 2022 Apr 31 - `develop` closed to new PR's.
* [ ] 2022 Apr 31 - Call for testers.
* [ ] 2022 May 14 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* [ ] 2022 May 26 - `master` is locked, no PR's merged.
* [ ] 2022 May 28 - Merge `develop` to `master`.
* [ ] 2022 May 28 - `master` is unlocked. PR's can be merged again.
## What changes will be included?

View File

@@ -2,6 +2,7 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
* [2022 Feb 26](ChangeLog/20220226.md) - version 0.16.0
* [2021 Nov 27](ChangeLog/20211127.md) - version 0.15.0
* [2021 Aug 28](ChangeLog/20210828.md) - version 0.14.0
* [2021 May 29](ChangeLog/20210529.md) - version 0.13.0

View File

@@ -54,7 +54,7 @@ or in keymap directory
```
$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
$ qmk compile
Ψ Compiling keymap with make make gh60/satan:colemak
Ψ Compiling keymap with make gh60/satan:colemak
...
```
@@ -310,7 +310,7 @@ Any arguments that are not provided will prompt for input. If `-u` is not passed
**Usage**:
```
qmk new-keyboard [-kb KEYBOARD] [-t {avr,ps2avrgb}] -u USERNAME
qmk new-keyboard [-kb KEYBOARD] [-t {atmega32u4,STM32F303,etc}] [-l {60_ansi,75_iso,etc}] -u USERNAME
```
## `qmk new-keymap`
@@ -335,6 +335,23 @@ This command cleans up the `.build` folder. If `--all` is passed, any .hex or .b
qmk clean [-a]
```
## `qmk via2json`
This command an generate a keymap.json from a VIA keymap backup. Both the layers and the macros are converted, enabling users to easily move away from a VIA-enabled firmware without writing any code or reimplementing their keymaps in QMK Configurator.
**Usage**:
```
qmk via2json -kb KEYBOARD [-l LAYOUT] [-km KEYMAP] [-o OUTPUT] filename
```
**Example:**
```
$ qmk via2json -kb ai03/polaris -o polaris_keymap.json polaris_via_backup.json
Ψ Wrote keymap to /home/you/qmk_firmware/polaris_keymap.json
```
---
# Developer Commands

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 `format-py` subcommands to run these tests:
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-python` 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 format-py
qmk format-python
## Formatting Details

View File

@@ -1,6 +1,6 @@
# Compatible Microcontrollers
QMK runs on any USB-capable AVR or ARM microcontroller with enough flash space - generally 32kB or more, though it will *just* squeeze into 16kB with most features disabled.
QMK runs on any USB-capable AVR or ARM microcontroller with enough flash space - generally 32kB+ for AVR, and 64kB+ for ARM. With significant disabling of features, QMK may *just* squeeze into 16kB AVR MCUs.
## Atmel AVR
@@ -8,7 +8,11 @@ The following use [LUFA](https://www.fourwalledcubicle.com/LUFA.php) as the USB
* [ATmega16U2](https://www.microchip.com/wwwproducts/en/ATmega16U2) / [ATmega32U2](https://www.microchip.com/wwwproducts/en/ATmega32U2)
* [ATmega16U4](https://www.microchip.com/wwwproducts/en/ATmega16U4) / [ATmega32U4](https://www.microchip.com/wwwproducts/en/ATmega32U4)
* SparkFun Pro Micro (and clones)
* PJRC Teensy 2.0
* Adafruit Feather 32U4
* [AT90USB64](https://www.microchip.com/wwwproducts/en/AT90USB646) / [AT90USB128](https://www.microchip.com/wwwproducts/en/AT90USB1286)
* PJRC Teensy++ 2.0
* [AT90USB162](https://www.microchip.com/wwwproducts/en/AT90USB162)
Certain MCUs which do not have native USB will use [V-USB](https://www.obdev.at/products/vusb/index.html) instead:
@@ -25,17 +29,23 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
* [STM32F0x2](https://www.st.com/en/microcontrollers-microprocessors/stm32f0x2.html)
* [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html)
* Bluepill (with STM32duino bootloader)
* [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html)
* QMK Proton-C
* [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html)
* WeAct Blackpill
* [STM32F405](https://www.st.com/en/microcontrollers-microprocessors/stm32f405-415.html)
* [STM32F407](https://www.st.com/en/microcontrollers-microprocessors/stm32f407-417.html)
* [STM32F411](https://www.st.com/en/microcontrollers-microprocessors/stm32f411.html)
* WeAct Blackpill
* [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)
* [STM32L432](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html)
* [STM32L433](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
* [STM32L442](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html)
* [STM32L443](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
### WestBerryTech (WB32)
@@ -45,13 +55,16 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
### NXP (Kinetis)
* [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x)
* PJRC Teensy LC
* [MK20DX128](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-50-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-based-on-arm-cortex-m4-core:K20_50)
* [MK20DX256](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72)
* PJRC Teensy 3.2
* [MK66FX1M0](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k6x-ethernet/kinetis-k66-180-mhz-dual-high-speed-full-speed-usbs-2mb-flash-microcontrollers-mcus-based-on-arm-cortex-m4-core:K66_180)
* PJRC Teensy 3.6
## Atmel ATSAM
There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop).
There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). However, it is not recommended to design a board with this microcontroller as the support is quite specialized to Massdrop hardware.
## RISC-V

View File

@@ -61,6 +61,8 @@ This is a C header file that is one of the first things included, and will persi
* pins unused by the keyboard for reference
* `#define MATRIX_HAS_GHOST`
* define is matrix has ghost (unlikely)
* `#define MATRIX_UNSELECT_DRIVE_HIGH`
* On un-select of matrix pins, rather than setting pins to input-high, sets them to output-high.
* `#define DIODE_DIRECTION COL2ROW`
* COL2ROW or ROW2COL - how your matrix is configured. COL2ROW means the black mark on your diode is facing to the rows, and between the switch and the rows.
* `#define DIRECT_PINS { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
@@ -124,10 +126,6 @@ If you define these options you will disable the associated feature, which can s
* disable tap dance and other tapping features
* `#define NO_ACTION_ONESHOT`
* disable one-shot modifiers
* `#define NO_ACTION_MACRO`
* disable old-style macro handling using `MACRO()`, `action_get_macro()` _(deprecated)_
* `#define NO_ACTION_FUNCTION`
* disable old-style function handling using `fn_actions`, `action_function()` _(deprecated)_
## Features That Can Be Enabled
@@ -383,7 +381,6 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* A list of [layouts](feature_layouts.md) this keyboard supports.
* `LTO_ENABLE`
* Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable).
However, this will automatically disable the legacy TMK Macros and Functions features, as these break when LTO is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`. (Note: This does not affect QMK [Macros](feature_macros.md) and [Layers](feature_layers.md).)
## AVR MCU Options
* `MCU = atmega32u4`
@@ -434,8 +431,8 @@ Use these to enable or disable building certain features. The more you have enab
* MIDI controls
* `UNICODE_ENABLE`
* Unicode
* `BLUETOOTH`
* Current options are AdafruitBLE, RN42
* `BLUETOOTH_ENABLE`
* Current options are BluefruitLE, RN42
* `SPLIT_KEYBOARD`
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
* `CUSTOM_MATRIX`

View File

@@ -43,7 +43,7 @@ Keycode Entry is accomplished in one of 3 ways:
## Step 5: Save Your Keymap for Future Changes
When you're satisfied with your keymap or just want to work on it later, press the `Export Keymap` button. It will save your keymap to your computer. You can then load this .json file in the future by pressing the `Import Keymap` button.
When you're satisfied with your keymap or just want to work on it later, press the `Download this QMK Keymap JSON File` button. It will save your keymap to your computer. You can then load this .json file in the future by pressing the `Upload a QMK Keymap JSON File` button.
!> **CAUTION:** This is not the same type of .json file used for kbfirmware.com or any other tool. If you try to use this for those tools, or the .json from those tools with QMK Configurator, you will encounter problems.

View File

@@ -109,7 +109,7 @@ Before opening a pull request, you can preview your changes if you have set up t
or if you only have Python 3 installed:
python3 -m http.server 8936
python3 -m http.server 8936 --directory docs
and navigating to `http://localhost:8936/`.
@@ -165,4 +165,4 @@ To maintain a clear vision of how things are laid out in QMK we try to plan out
# What Does the Code of Conduct Mean for Me?
Our [Code of Conduct](https://github.com/qmk/qmk_firmware/blob/master/CODE_OF_CONDUCT.md) means that you are responsible for treating everyone on the project with respect and courtesy regardless of their identity. If you are the victim of any inappropriate behavior or comments as described in our Code of Conduct, we are here for you and will do the best to ensure that the abuser is reprimanded appropriately, per our code.
Our [Code of Conduct](https://qmk.fm/coc/) means that you are responsible for treating everyone on the project with respect and courtesy regardless of their identity. If you are the victim of any inappropriate behavior or comments as described in our Code of Conduct, we are here for you and will do the best to ensure that the abuser is reprimanded appropriately, per our code.

View File

@@ -408,7 +408,7 @@ The `val` is the value of the data that you want to write to EEPROM. And the `e
### Deferred Execution :id=deferred-execution
QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers.
QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk.
#### Deferred executor callbacks

View File

@@ -74,7 +74,7 @@ Whenever QMK generates a complete `info.json` it extracts information from `conf
If you are not sure how to edit this file or are not comfortable with Python [open an issue](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) or [join #cli on Discord](https://discord.gg/heQPAgy) and someone can help you with this part.
### Add code to generate it
### Add code to generate it :id=add-code-to-generate-it
The final piece of the puzzle is providing your new option to the build system. This is done by generating two files:

View File

@@ -7,7 +7,7 @@ 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 + Capslock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Capslock LED
* Direct Pin + Encoder (Coming Soon) - Like Direct Pin but uses 2 pins to add a single rotary encoder
## Quickstart

View File

@@ -7,7 +7,7 @@ Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QM
|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip|
|----------------------------------------------------------------|--------------------|---------------|--------------------------------|--------------|
|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = RN42` |RN-42 |
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = AdafruitBLE`|nRF51822 |
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = BluefruitLE`|nRF51822 |
Not Supported Yet but possible:
* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514)
@@ -17,9 +17,9 @@ Not Supported Yet but possible:
### Adafruit BLE SPI Friend
Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines:
* `#define ADAFRUIT_BLE_RST_PIN D4`
* `#define ADAFRUIT_BLE_CS_PIN B4`
* `#define ADAFRUIT_BLE_IRQ_PIN E6`
* `#define BLUEFRUIT_LE_RST_PIN D4`
* `#define BLUEFRUIT_LE_CS_PIN B4`
* `#define BLUEFRUIT_LE_IRQ_PIN E6`
A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip.
@@ -32,7 +32,7 @@ Add the following to your `rules.mk`:
```make
BLUETOOTH_ENABLE = yes
BLUETOOTH_DRIVER = AdafruitBLE # or RN42
BLUETOOTH_DRIVER = BluefruitLE # or RN42
```
## Bluetooth Keycodes

View File

@@ -23,14 +23,35 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
## Split Keyboards
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file:
When [handedness](feature_split_keyboard.md#setting-handedness) is predetermined via options like `SPLIT_HAND_PIN` or `EE_HANDS`, you might need to configure a different key between halves. To identify the correct key for the right half, examine the split key matrix defined in the `<keyboard>.h` file, e.g.:
```c
#define LAYOUT_split_3x5_2( \
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
L16, L17, R16, R17 \
) \
{ \
{ L01, L02, L03, L04, L05 }, \
{ L06, L07, L08, L09, L10 }, \
{ L11, L12, L13, L14, L15 }, \
{ L16, L17, KC_NO, KC_NO, KC_NO }, \
{ R01, R02, R03, R04, R05 }, \
{ R06, R07, R08, R09, R10 }, \
{ R11, R12, R13, R14, R15 }, \
{ R16, R17, KC_NO, KC_NO, KC_NO } \
}
```
If you pick the top right key for the right half, it is `R05` on the top layout. Within the key matrix below, `R05` is located on row 4 columnn 4. To use that key as the right half's Bootmagic Lite trigger, add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
```
By default, these values are not set.
?> These values are not set by default.
## Advanced Bootmagic Lite
@@ -51,7 +72,7 @@ void bootmagic_lite(void) {
}
```
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.
You can define additional logic 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

View File

@@ -141,10 +141,13 @@ Processing combos has two buffers, one for the key presses, another for the comb
## 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.
## Strict key press order
By defining `COMBO_MUST_PRESS_IN_ORDER` combos only activate when the keys are pressed in the same order as they are defined in the key array.
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.
## Per Combo Timing, Holding, Tapping and Key Press Order
For each combo, it is possible to configure the time window it has to pressed in, if it needs to be held down, if it needs to be tapped, or if its keys need to be pressed in order.
For example, tap-only combos are useful if any (or all) of the underlying keys are mod-tap or layer-tap keys. When you tap the combo, you get the combo result. When you press the combo and hold it down, the combo doesn't 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.
@@ -153,6 +156,7 @@ In order to use these features, the following configuration options and function
| `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`) |
| `COMBO_MUST_PRESS_IN_ORDER_PER_COMBO` | bool get_combo_must_press_in_order(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if its keys are pressed in order. (default: `true`) |
Examples:
```c
@@ -216,6 +220,38 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
return false;
}
bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
switch (combo_index) {
/* List combos here that you want to only activate if their keys
* are pressed in the same order as they are defined in the combo's key
* array. */
case COMBO_NAME_HERE:
return true;
default:
return false;
}
}
```
## Generic hook to (dis)allow a combo activation
By defining `COMBO_SHOULD_TRIGGER` and its companying function `bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record)` you can block or allow combos to activate on the conditions of your choice.
For example, you could disallow some combos on the base layer and allow them on another. Or disable combos on the home row when a timer is running.
Examples:
```c
bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
/* Disable combo `SOME_COMBO` on layer `_LAYER_A` */
switch (combo_index) {
case SOME_COMBO:
if (layer_state_is(_LAYER_A)) {
return false;
}
}
return true;
}
```
## Variable Length Combos

View File

@@ -116,6 +116,7 @@ Where name of algorithm is one of:
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_pr``` - debouncing per row. On any state change, a per-row timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that row, the entire row is pushed. Can improve responsiveness over `sym_defer_g` while being less susceptible than per-key debouncers to noise.
* ```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.

View File

@@ -85,7 +85,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}
```
!> If you return `true`, this will allow the keyboard level code to run, as well. Returning `false` will override the keyboard level code. Depending on how the keyboard level function is set up.
!> If you return `true`, it will allow the keyboard level code to run as well. Returning `false` will override the keyboard level code, depending on how the keyboard function is set up.
Layer conditions can also be used with the callback function like the following:
@@ -132,7 +132,10 @@ The A an B lines of the encoders should be wired directly to the MCU, and the C/
## Multiple Encoders
Multiple encoders may share pins so long as each encoder has a distinct pair of pins.
Multiple encoders may share pins so long as each encoder has a distinct pair of pins when the following conditions are met:
- using detent encoders
- pads must be high at the detent stability point which is called 'default position' in QMK
- no more than two encoders sharing a pin can be turned at the same time
For example you can support two encoders using only 3 pins like this
```

View File

@@ -4,17 +4,17 @@ If you're using a 60% keyboard, or any other layout with no F-row, you will have
## Usage
Replace the `KC_GRV` key in your keymap (usually to the left of the `1` key) with `KC_GESC`. Most of the time this key will output `KC_ESC` when pressed. However, when Shift or GUI are held down it will output `KC_GRV` instead.
Replace the `KC_GRV` key in your keymap (usually to the left of the `1` key) with `QK_GESC`. Most of the time this key will output `KC_ESC` when pressed. However, when Shift or GUI are held down it will output `KC_GRV` instead.
## What Your OS Sees
If Mary presses GESC on her keyboard, the OS will see an KC_ESC character. Now if Mary holds Shift down and presses GESC it will output `~`, or a shifted backtick. Now if she holds GUI/CMD/WIN, it will output a simple <code>&#96;</code> character.
If Mary presses `QK_GESC` on her keyboard, the OS will see an KC_ESC character. Now if Mary holds Shift down and presses `QK_GESC` it will output `~`, or a shifted backtick. Now if she holds GUI/CMD/WIN, it will output a simple <code>&#96;</code> character.
## Keycodes
|Key |Aliases |Description |
|---------|-----------|------------------------------------------------------------------|
|`KC_GESC`|`GRAVE_ESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
|Key |Aliases |Description |
|-----------------|---------|------------------------------------------------------------------|
|`QK_GRAVE_ESCAPE`|`QK_GESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
### Caveats

View File

@@ -167,7 +167,7 @@ List of waveform sequences from the datasheet:
```
#define DRV_GREETING *sequence name or number*
```
If haptic feedback is enabled, the keyboard will vibrate to a specific sqeuence during startup. That can be selected using the following define:
If haptic feedback is enabled, the keyboard will vibrate to a specific sequence during startup. That can be selected using the following define:
```
#define DRV_MODE_DEFAULT *sequence name or number*
@@ -191,9 +191,6 @@ With the entry of `#define NO_HAPTIC_MOD` in config.h, the following keys will n
* `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.
@@ -207,4 +204,4 @@ With the entry of `#define NO_HAPTIC_LOCKKEYS` in config.h, none of the followin
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.
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.

View File

@@ -19,4 +19,5 @@ First, enable Key Lock by setting `KEY_LOCK_ENABLE = yes` in your `rules.mk`. Th
Key Lock is only able to hold standard action keys and [One Shot modifier](one_shot_keys.md) keys (for example, if you have your Shift defined as `OSM(KC_LSFT)`).
This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as `KC_LPRN`. If it's in the [Basic Keycodes](keycodes_basic.md) list, it can be held.
Switching layers will not cancel the Key Lock.
Switching layers will not cancel the Key Lock. The Key Lock can be cancelled by calling the `cancel_key_lock()` function.

View File

@@ -37,7 +37,7 @@ void matrix_scan_user(void) {
}
```
As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
As you can see, you have a few functions. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously.
@@ -74,9 +74,9 @@ SEQ_THREE_KEYS(KC_C, KC_C, KC_C) {
## Infinite Leader key timeout
Sometimes your leader key is not on a comfortable places as the rest of keys on your sequence. Imagine that your leader key is one of your outer top right keys, you may need to reposition your hand just to reach your leader key.
Sometimes your leader key is not on a comfortable place as the rest of keys on your sequence. Imagine that your leader key is one of your outer top right keys, you may need to reposition your hand just to reach your leader key.
This can make typing the entire sequence on time hard even if you are able to type most of the sequence fast. For example, if your sequence is `Leader + asd` typing `asd` fast is very easy once you have your hands in your home row. However starting the sequence in time after moving your hand out of the home row to reach the leader key and back is not.
To remove the stress this situation produces to your hands you can enable an infinite timeout just for the leader key. This mean that, after you hit the leader key you will have an infinite amount of time to start the rest of the sequence, allowing you to proper position your hands on the best position to type the rest of the sequence comfortably.
To remove the stress this situation produces to your hands you can enable an infinite timeout just for the leader key. This means that after you hit the leader key you will have an infinite amount of time to start the rest of the sequence, allowing you to proper position your hands on the best position to type the rest of the sequence comfortably.
This infinite timeout only affects the leader key, so in our previous example of `Leader + asd` you will have an infinite amount of time between `Leader` and `a`, but once you start the sequence the timeout you have configured (global or per key) will work normally.
This way you can configure a very short `LEADER_TIMEOUT` but still have plenty of time to position your hands.
@@ -89,11 +89,11 @@ In order to enable this, place this in your `config.h`:
By default, the Leader Key feature will filter the keycode out of [`Mod-Tap`](mod_tap.md) and [`Layer Tap`](feature_layers.md#switching-and-toggling-layers) functions when checking for the Leader sequences. That means if you're using `LT(3, KC_A)`, it will pick this up as `KC_A` for the sequence, rather than `LT(3, KC_A)`, giving a more expected behavior for newer users.
While, this may be fine for most, if you want to specify the whole keycode (eg, `LT(3, KC_A)` from the example above) in the sequence, you can enable this by added `#define LEADER_KEY_STRICT_KEY_PROCESSING` to your `config.h` file. This will then disable the filtering, and you'll need to specify the whole keycode.
While, this may be fine for most, if you want to specify the whole keycode (eg, `LT(3, KC_A)` from the example above) in the sequence, you can enable this by adding `#define LEADER_KEY_STRICT_KEY_PROCESSING` to your `config.h` file. This will then disable the filtering, and you'll need to specify the whole keycode.
## Customization
The Leader Key feature has some additional customization to how the Leader Key feature works. It has two functions that can be called at certain parts of the process. Namely `leader_start()` and `leader_end()`.
The Leader Key feature has some additional customization to how the Leader Key feature works. It has two functions that can be called at certain parts of the process. Namely `leader_start()` and `leader_end()`.
The `leader_start()` function is called when you tap the `KC_LEAD` key, and the `leader_end()` function is called when either the leader sequence is completed, or the leader timeout is hit.

View File

@@ -1,6 +1,6 @@
# LED Indicators
?> 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)
?> LED indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LED_STATE_ENABLE`). See [data sync options](feature_split_keyboard.md#data-sync-options) for more details.
QMK provides methods to read 5 of the LEDs defined in the HID spec:

View File

@@ -67,6 +67,109 @@ const is31_led PROGMEM 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/led/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
---
### IS31FLCOMMON :id=is31flcommon
There is basic support for addressable LED matrix lighting with a selection of I2C ISSI Lumissil LED controllers through a shared common driver. To enable it, add this to your `rules.mk`:
```makefile
LED_MATRIX_ENABLE = yes
LED_MATRIX_DRIVER = <driver name>
```
Where `<driver name>` is the applicable LED driver chip as below
| Driver Name | Data Sheet | Capability |
|-------------|------------|------------|
| `IS31FL3742A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3742A_DS.pdf) | 180 LED, 30x6 Matrix |
| `ISSIFL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 198 LED, 18x11 Matrix |
| `IS31FL3745` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3745_DS.pdf) | 144 LED, 18x8 Matrix |
| `IS31FL3746A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3746A_DS.pdf) | 72 LED, 18x4 Matrix |
You can use between 1 and 4 IC's. Do not specify `DRIVER_ADDR_<N>` define for IC's if not present on your keyboard. The `DRIVER_ADDR_1` default assumes that all Address pins on the controller have been connected to GND. Drivers that have SYNC functionality have the default settings to disable if 1 driver. If more than 1 drivers then `DRIVER_ADDR_1` will be set to Master and the remaiing ones set to Slave.
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 LED driver IC's are present | |
| `DRIVER_LED_TOTAL` | (Required) How many LED lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Optional) Address for the first LED driver | |
| `DRIVER_ADDR_<N>` | (Required) Address for the additional LED drivers | |
| `ISSI_SSR_<N>` | (Optional) Configuration for the Spread Spectrum Register | |
| `ISSI_CONFIGURATION` | (Optional) Configuration for the Configuration Register | |
| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `ISSI_PULLDOWNUP` | (Optional) Configuration for the Pull Up & Pull Down Register | |
| `ISSI_TEMP` | (Optional) Configuration for the Tempature Register | |
| `ISSI_PWM_ENABLE` | (Optional) Configuration for the PWM Enable Register | |
| `ISSI_PWM_SET` | (Optional) Configuration for the PWM Setting Register | |
| `ISSI_SCAL_LED ` | (Optional) Configuration for the LEDs Scaling Registers | 0xFF |
| `ISSI_MANUAL_SCALING` | (Optional) If you wish to configure the Scaling Registers manually | |
Defaults
| Variable | IS31FL3742A | IS31FL3743A | IS31FL3745 | IS31FL3746 |
|----------|-------------|-------------|------------|------------|
| `DRIVER_ADDR_1` | 0b0110000 | 0b0100000 | 0b0100000 | 0b1100000 |
| `ISSI_SSR_1` | 0x00 | 0x00 / 0x60 | 0x00 / 0xC0 | 0x00 |
| `ISSI_SSR_<2-4>` | 0x00 | 0x40 | 0x80 | 0x00 |
| `ISSI_CONFIGURATION` | 0x31 | 0x01 | 0x31 | 0x01 |
| `ISSI_PULLDOWNUP` | 0x55 | 0x33 | 0x33 | 0x33 |
| `ISSI_TEMP` | N/A | 0x00 | 0x00 | 0x00 |
| `ISSI_PWM_ENABLE` | N/A | N/A | N/A | 0x00 |
| `ISSI_PWM_SET` | 0x00 | N/A | N/A | 0x00 |
Here is an example using 2 drivers.
```c
#define DRIVER_ADDR_2 0b0100001
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 42
#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 4 drivers are supported, but it would be trivial to support for more. Note that using a combination of different drivers is not supported. All drivers must be of the same model.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | LED address
* | | */
{ 0, CS1_SW1 },
{ 0, CS2_SW1 },
// ...
}
```
Where `CSx_SWx` is the location of the LED in the matrix defined by the datasheet. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
`ISSI_MANUAL_SCALING` is used to override the Scaling for individual LED's. By default they will be set as per `ISSI_SCAL_LED`. In `config.h` set how many LED's you want to manually set scaling for.
Eg `#define ISSI_MANUAL_SCALING 3`
Then Define the array listing all the LEDs you want to override in your `<keyboard>.c`:
```c
const is31_led __flash g_is31_scaling[ISSI_MANUAL_SCALING] = {
* LED Index
* | Scaling
* | | */
{5, 120},
{9, 120},
....
}
```
Where LED Index is the position of the LED in the `g_is31_leds` array. The `scaling` value between 0 and 255 to be written to the Scaling Register.
---
## Common Configuration :id=common-configuration
@@ -333,7 +436,7 @@ Where `28` is an unused index from `eeconfig.h`.
If you want to set custom indicators, such as an LED for Caps Lock, or layer indication, you can use the `led_matrix_indicators_kb` or `led_matrix_indicators_user` function for that:
```c
void led_matrix_indicators_kb(void) {
led_matrix_set_color(index, value);
led_matrix_set_value(index, value);
}
```

View File

@@ -40,13 +40,13 @@ You can define up to 32 macros in a `keymap.json` file, as used by [Configurator
### Selecting Your Host Keyboard Layout
If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros- you may need to type different keys to get the same letters! To address this you can add the `host_language` key to your keymap.json, like so:
If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros - you may need to type different keys to get the same letters! To address this you can add the `host_language` key to your `keymap.json`, like so:
```json
{
"keyboard": "handwired/my_macropad",
"keymap": "my_keymap",
"host_layout": "dvorak",
"host_language": "dvorak",
"macros": [
["Hello, World!"]
],
@@ -75,7 +75,7 @@ The current list of available languages is:
### Macro Basics
Each macro is an array consisting of strings and objects (dictionaries.) Strings are typed to your computer while objects allow you to control how your macro is typed out.
Each macro is an array consisting of strings and objects (dictionaries). Strings are typed to your computer while objects allow you to control how your macro is typed out.
#### Object Format

View File

@@ -59,13 +59,13 @@ This is the default mode. You can adjust the cursor and scrolling acceleration u
|Define |Default|Description |
|----------------------------|-------|---------------------------------------------------------|
|`MOUSEKEY_DELAY` |300 |Delay between pressing a movement key and cursor movement|
|`MOUSEKEY_INTERVAL` |50 |Time between cursor movements in milliseconds |
|`MOUSEKEY_MOVE_DELTA` |5 |Step size |
|`MOUSEKEY_DELAY` |10 |Delay between pressing a movement key and cursor movement|
|`MOUSEKEY_INTERVAL` |20 |Time between cursor movements in milliseconds |
|`MOUSEKEY_MOVE_DELTA` |8 |Step size |
|`MOUSEKEY_MAX_SPEED` |10 |Maximum cursor speed at which acceleration stops |
|`MOUSEKEY_TIME_TO_MAX` |20 |Time until maximum cursor speed is reached |
|`MOUSEKEY_WHEEL_DELAY` |300 |Delay between pressing a wheel key and wheel movement |
|`MOUSEKEY_WHEEL_INTERVAL` |100 |Time between wheel movements |
|`MOUSEKEY_TIME_TO_MAX` |30 |Time until maximum cursor speed is reached |
|`MOUSEKEY_WHEEL_DELAY` |10 |Delay between pressing a wheel key and wheel movement |
|`MOUSEKEY_WHEEL_INTERVAL` |80 |Time between wheel movements |
|`MOUSEKEY_WHEEL_MAX_SPEED` |8 |Maximum number of scroll steps per scroll action |
|`MOUSEKEY_WHEEL_TIME_TO_MAX`|40 |Time until maximum scroll speed is reached |
@@ -85,9 +85,9 @@ This is an extension of the accelerated mode. The kinetic mode uses a quadratic
|Define |Default |Description |
|--------------------------------------|---------|---------------------------------------------------------------|
|`MK_KINETIC_SPEED` |undefined|Enable kinetic mode |
|`MOUSEKEY_DELAY` |8 |Delay between pressing a movement key and cursor movement |
|`MOUSEKEY_INTERVAL` |8 |Time between cursor movements in milliseconds |
|`MOUSEKEY_MOVE_DELTA` |25 |Step size for accelerating from initial to base speed |
|`MOUSEKEY_DELAY` |5 |Delay between pressing a movement key and cursor movement |
|`MOUSEKEY_INTERVAL` |10 |Time between cursor movements in milliseconds |
|`MOUSEKEY_MOVE_DELTA` |5 |Step size for accelerating from initial to base speed |
|`MOUSEKEY_INITIAL_SPEED` |100 |Initial speed of the cursor in pixel per second |
|`MOUSEKEY_BASE_SPEED` |1000 |Maximum cursor speed at which acceleration stops |
|`MOUSEKEY_DECELERATED_SPEED` |400 |Decelerated cursor speed |
@@ -164,7 +164,7 @@ small and detailed movements of the cursor.
* **KC_ACL2:** This acceleration sets your cursor to the maximum (computer defined) speed. This is
useful for moving the cursor large distances without much accuracy.
To use constant speed mode, you must at least define `MK_COMBINED` in your keymaps `config.h` file:
To use combined speed mode, you must at least define `MK_COMBINED` in your keymaps `config.h` file:
```c
#define MK_COMBINED

View File

@@ -84,6 +84,8 @@ static void render_logo(void) {
}
```
?> The default font file is located at `drivers/oled/glcdfont.c` and its location can be overwritten with the `OLED_FONT_H` configuration option. Font file content can be edited with external tools such as [Helix Font Editor](https://helixfonteditor.netlify.app/) and [Logo Editor](https://joric.github.io/qle/).
## Buffer Read Example
For some purposes, you may need to read the current state of the OLED display
buffer. The `oled_read_raw` function can be used to safely read bytes from the
@@ -162,7 +164,7 @@ These configuration options should be placed in `config.h`. Example:
|`OLED_FONT_END` |`223` |The ending character index for custom fonts |
|`OLED_FONT_WIDTH` |`6` |The font width |
|`OLED_FONT_HEIGHT` |`8` |The font height (untested) |
|`OLED_TIMEOUT` |`60000` |Turns off the OLED screen after 60000ms of keyboard inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
|`OLED_TIMEOUT` |`60000` |Turns off the OLED screen after 60000ms of screen update inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
|`OLED_FADE_OUT` |*Not defined* |Enables fade out animation. Use together with `OLED_TIMEOUT`. |
|`OLED_FADE_OUT_INTERVAL` |`0` |The speed of fade out animation, from 0 to 15. Larger values are slower. |
|`OLED_SCROLL_TIMEOUT` |`0` |Scrolls the OLED screen after 0ms of OLED inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |

View File

@@ -2,7 +2,7 @@
Pointing Device is a generic name for a feature intended to be generic: moving the system pointer around. There are certainly other options for it - like mousekeys - but this aims to be easily modifiable and hardware driven. You can implement custom keys to control functionality, or you can gather information from other peripherals and insert it directly here - let QMK handle the processing for you.
To enable Pointing Device, uncomment the following line in your rules.mk:
To enable Pointing Device, add the following line in your rules.mk and specify one of the driver options below.
```make
POINTING_DEVICE_ENABLE = yes
@@ -30,7 +30,7 @@ The ADNS 5050 sensor uses a serial type protocol for communication, and requires
The CPI range is 125-1375, in increments of 125. Defaults to 500 CPI.
### ADSN 9800 Sensor
### ADNS 9800 Sensor
To use the ADNS 9800 sensor, add this to your `rules.mk`
@@ -40,13 +40,13 @@ POINTING_DEVICE_DRIVER = adns9800
The ADNS 9800 is an SPI driven optical sensor, that uses laser output for surface tracking.
| Setting | Description | Default |
|------------------------|------------------------------------------------------------------------|---------------|
|`ADNS9800_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`ADNS9800_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`ADNS9800_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`ADNS9800_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`ADNS9800_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
| Setting | Description | Default |
|--------------------------------|------------------------------------------------------------------------|---------------|
|`ADNS9800_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`ADNS9800_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`ADNS9800_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`ADNS9800_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`ADNS9800_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
The CPI range is 800-8200, in increments of 200. Defaults to 1800 CPI.
@@ -69,7 +69,7 @@ The Analog Joystick is an analog (ADC) driven sensor. There are a variety of jo
|`ANALOG_JOYSTICK_AXIS_MAX` | (Optional) Sets the upper range to be considered movement. | `1023` |
|`ANALOG_JOYSTICK_SPEED_REGULATOR` | (Optional) The divisor used to slow down movement. (lower makes it faster) | `20` |
|`ANALOG_JOYSTICK_READ_INTERVAL` | (Optional) The interval in milliseconds between reads. | `10` |
|`ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maxiumum value used for motion. | `2` |
|`ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maximum value used for motion. | `2` |
|`ANALOG_JOYSTICK_CLICK_PIN` | (Optional) The pin wired up to the press switch of the analog stick. | _not defined_ |
@@ -127,11 +127,10 @@ The Pimoroni Trackball module is a I2C based breakout board with an RGB enable t
| Setting | Description | Default |
|-------------------------------------|------------------------------------------------------------------------------------|---------|
|`PIMORONI_TRACKBALL_ADDRESS` | (Required) Sets the I2C Address for the Pimoroni Trackball. | `0x0A` |
|`PIMORONI_TRACKBALL_TIMEOUT` | (Optional) The timeout for i2c communication with the trackpad in milliseconds. | `100` |
|`PIMORONI_TRACKBALL_INTERVAL_MS` | (Optional) The update/read interval for the sensor in milliseconds. | `8` |
|`PIMORONI_TRACKBALL_TIMEOUT` | (Optional) The timeout for i2c communication with the trackball in milliseconds. | `100` |
|`PIMORONI_TRACKBALL_SCALE` | (Optional) The multiplier used to generate reports from the sensor. | `5` |
|`PIMORONI_TRACKBALL_DEBOUNCE_CYCLES` | (Optional) The number of scan cycles used for debouncing on the ball press. | `20` |
|`PIMORONI_TRACKBALL_ERROR_COUNT` | (Optional) Specifies the number of read/write errors until the sensor is disabled. | `10` |
|`PIMORONI_TRACKBALL_ERROR_COUNT` | (Optional) Specifies the number of read/write errors until the sensor is disabled. | `10` |
### PMW 3360 Sensor
@@ -145,20 +144,50 @@ The PMW 3360 is an SPI driven optical sensor, that uses a built in IR LED for su
| Setting | Description | Default |
|-----------------------------|--------------------------------------------------------------------------------------------|---------------|
|`PMW3360_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
|`PMW3360_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`PMW3360_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`PMW3360_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`PMW3360_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`PMW3360_LIFTOFF_DISTANCE` | (Optional) Sets the lift off distance at run time | `0x02` |
|`ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 30 degrees directly in the sensor. | `0` |
|`PMW3360_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
|`PMW3360_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`PMW3360_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`PMW3360_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`PMW3360_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`PMW3360_LIFTOFF_DISTANCE` | (Optional) Sets the lift off distance at run time | `0x02` |
|`ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 127 degrees directly in the sensor.| `0` |
|`PMW3360_FIRMWARE_UPLOAD_FAST` | (Optional) Skips the 15us wait between firmware blocks. | _not defined_ |
The CPI range is 100-12000, in increments of 100. Defaults to 1600 CPI.
### PMW 3389 Sensor
To use the PMW 3389 sensor, add this to your `rules.mk`
```make
POINTING_DEVICE_DRIVER = pmw3389
```
The PMW 3389 is an SPI driven optical sensor, that uses a built in IR LED for surface tracking.
| Setting | Description | Default |
|---------------------------------|--------------------------------------------------------------------------------------------|---------------|
|`PMW3389_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
|`PMW3389_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`PMW3389_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`PMW3389_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`PMW3389_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`PMW3389_LIFTOFF_DISTANCE` | (Optional) Sets the lift off distance at run time | `0x02` |
|`ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 30 degrees directly in the sensor. | `0` |
|`PMW3389_FIRMWARE_UPLOAD_FAST` | (Optional) Skips the 15us wait between firmware blocks. | _not defined_ |
The CPI range is 50-16000, in increments of 50. Defaults to 2000 CPI.
### Custom Driver
If you have a sensor type that isn't supported here, you can manually implement it, by adding these functions (with the correct implementation for your device):
If you have a sensor type that isn't supported above, a custom option is available by adding the following to your `rules.mk`
```make
POINTING_DEVICE_DRIVER = custom
```
Using the custom driver will require implementing the following functions:
```c
void pointing_device_driver_init(void) {}
@@ -171,14 +200,35 @@ void pointing_device_driver_set_cpi(uint16_t cpi) {}
## Common Configuration
| Setting | Description | Default |
|-------------------------------|-----------------------------------------------------------------------|---------------|
|`POINTING_DEVICE_ROTATION_90` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_180` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_270` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
|`POINTING_DEVICE_INVERT_X` | (Optional) Inverts the X axis report. | _not defined_ |
|`POINTING_DEVICE_INVERT_Y` | (Optional) Inverts the Y axis report. | _not defined_ |
|`POINTING_DEVICE_MOTION_PIN` | (Optional) If supported, will only read from sensor if pin is active. | _not defined_ |
| Setting | Description | Default |
|----------------------------------|-----------------------------------------------------------------------|-------------------|
|`POINTING_DEVICE_ROTATION_90` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_180` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_270` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
|`POINTING_DEVICE_INVERT_X` | (Optional) Inverts the X axis report. | _not defined_ |
|`POINTING_DEVICE_INVERT_Y` | (Optional) Inverts the Y axis report. | _not defined_ |
|`POINTING_DEVICE_MOTION_PIN` | (Optional) If supported, will only read from sensor if pin is active. | _not defined_ |
|`POINTING_DEVICE_TASK_THROTTLE_MS` | (Optional) Limits the frequency that the sensor is polled for motion. | _not defined_ |
!> When using `SPLIT_POINTING_ENABLE` the `POINTING_DEVICE_MOTION_PIN` functionality is not supported and `POINTING_DEVICE_TASK_THROTTLE_MS` will default to `1`. Increasing this value will increase transport performance at the cost of possible mouse responsiveness.
## Split Keyboard Configuration
The following configuration options are only available when using `SPLIT_POINTING_ENABLE` see [data sync options](feature_split_keyboard.md?id=data-sync-options). The rotation and invert `*_RIGHT` options are only used with `POINTING_DEVICE_COMBINED`. If using `POINTING_DEVICE_LEFT` or `POINTING_DEVICE_RIGHT` use the common configuration above to configure your pointing device.
| Setting | Description | Default |
|----------------------------------------|-----------------------------------------------------------------------|---------------|
|`POINTING_DEVICE_LEFT` | Pointing device on the left side (Required - pick one only) | _not defined_ |
|`POINTING_DEVICE_RIGHT` | Pointing device on the right side (Required - pick one only) | _not defined_ |
|`POINTING_DEVICE_COMBINED` | Pointing device on both sides (Required - pick one only) | _not defined_ |
|`POINTING_DEVICE_ROTATION_90_RIGHT` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_180_RIGHT` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_270_RIGHT` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
|`POINTING_DEVICE_INVERT_X_RIGHT` | (Optional) Inverts the X axis report. | _not defined_ |
|`POINTING_DEVICE_INVERT_Y_RIGHT` | (Optional) Inverts the Y axis report. | _not defined_ |
!> If there is a `_RIGHT` configuration option or callback, the [common configuration](feature_pointing_device.md?id=common-configuration) option will work for the left. For correct left/right detection you should setup a [handedness option](feature_split_keyboard?id=setting-handedness), `EE_HANDS` is usually a good option for an existing board that doesn't do handedness by hardware.
## Callbacks and Functions
@@ -188,14 +238,29 @@ void pointing_device_driver_set_cpi(uint16_t cpi) {}
| `pointing_device_init_kb(void)` | Callback to allow for keyboard level initialization. Useful for additional hardware sensors. |
| `pointing_device_init_user(void)` | Callback to allow for user level initialization. Useful for additional hardware sensors. |
| `pointing_device_task_kb(mouse_report)` | Callback that sends sensor data, so keyboard code can intercept and modify the data. Returns a mouse report. |
| `pointing_device_task_user(mouse_report)` | Callback that sends sensor data, so user coe can intercept and modify the data. Returns a mouse report. |
| `pointing_device_task_user(mouse_report)` | Callback that sends sensor data, so user code can intercept and modify the data. Returns a mouse report. |
| `pointing_device_handle_buttons(buttons, pressed, button)` | Callback to handle hardware button presses. Returns a `uint8_t`. |
| `pointing_device_get_cpi(void)` | Gets the current CPI/DPI setting from the sensor, if supported. |
| `pointing_device_set_cpi(uint16_t)` | Sets the CPI/DPI, if supported. |
| `pointing_device_get_report(void)` | Returns the current mouse report (as a `mouse_report_t` data structure). |
| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `mouse_report_t` data structured passed to the function. |
| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. |
| `has_mouse_report_changed(old, new)` | Compares the old and new `mouse_report_t` data and returns true only if it has changed. |
| `has_mouse_report_changed(new_report, old_report)` | Compares the old and new `mouse_report_t` data and returns true only if it has changed. |
| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. |
## Split Keyboard Callbacks and Functions
The combined functions below are only available when using `SPLIT_POINTING_ENABLE` and `POINTING_DEVICE_COMBINED`. The 2 callbacks `pointing_device_task_combined_*` replace the single sided equivalents above. See the [combined pointing devices example](feature_pointing_device.md?id=combined-pointing-devices)
| Function | Description |
|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| `pointing_device_set_shared_report(mouse_report)` | Sets the shared mouse report to the assigned `mouse_report_t` data structured passed to the function. |
| `pointing_device_set_cpi_on_side(bool, uint16_t)` | Sets the CPI/DPI of one side, if supported. Passing `true` will set the left and `false` the right` |
| `pointing_device_combine_reports(left_report, right_report)` | Returns a combined mouse_report of left_report and right_report (as a `mouse_report_t` data structure) |
| `pointing_device_task_combined_kb(left_report, right_report)` | Callback, so keyboard code can intercept and modify the data. Returns a combined mouse report. |
| `pointing_device_task_combined_user(left_report, right_report)` | Callback, so user code can intercept and modify. Returns a combined mouse report using `pointing_device_combine_reports` |
| `pointing_device_adjust_by_defines_right(mouse_report)` | Applies right side rotations and invert configurations to a raw mouse report. |
# Manipulating Mouse Reports
@@ -211,14 +276,14 @@ The report_mouse_t (here "mouseReport") has the following properties:
To manually manipulate the mouse reports outside of the `pointing_device_task_*` functions, you can use:
* `pointing_device_get_report()` - Returns the current report_mouse_t that represents the information sent to the host computer
* `pointing_device_set_report(report_mouse_t newMouseReport)` - Overrides and saves the report_mouse_t to be sent to the host computer
* `pointing_device_set_report(report_mouse_t mouse_report)` - Overrides and saves the report_mouse_t to be sent to the host computer
* `pointing_device_send()` - Sends the mouse report to the host and zeroes out the report.
When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden.
Additionally, by default, `pointing_device_send()` will only send a report when the report has actually changed. This prevents it from continuously sending mouse reports, which will keep the host system awake. This behavior can be changed by creating your own `pointing_device_send()` function.
Also, you use the `has_mouse_report_changed(new, old)` function to check to see if the report has changed.
Also, you use the `has_mouse_report_changed(new_report, old_report)` function to check to see if the report has changed.
## Examples
@@ -260,7 +325,8 @@ report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
if (set_scrolling) {
mouse_report.h = mouse_report.x;
mouse_report.v = mouse_report.y;
mouse_report.x = mouse_report.y = 0
mouse_report.x = 0;
mouse_report.y = 0;
}
return mouse_report;
}
@@ -274,3 +340,62 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
```
This allows you to toggle between scrolling and cursor movement by pressing the DRAG_SCROLL key.
## Split Examples
The following examples make use the `SPLIT_POINTING_ENABLE` functionality and show how to manipulate the mouse report for a scrolling mode.
### Single Pointing Device
The following example will work with either `POINTING_DEVICE_LEFT` or `POINTING_DEVICE_RIGHT` and enables scrolling mode while on a particular layer.
```c
static bool scrolling_mode = false;
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case _RAISE: // If we're on the _RAISE layer enable scrolling mode
scrolling_mode = true;
pointing_device_set_cpi(2000);
break;
default:
if (scrolling_mode) { // check if we were scrolling before and set disable if so
scrolling_mode = false;
pointing_device_set_cpi(8000);
}
break;
}
return state;
}
report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
if (scrolling_mode) {
mouse_report.h = mouse_report.x;
mouse_report.v = mouse_report.y;
mouse_report.x = 0;
mouse_report.y = 0;
}
return mouse_report;
}
```
### Combined Pointing Devices
The following example requires `POINTING_DEVICE_COMBINED` and sets the left side pointing device to scroll only.
```c
void keyboard_post_init_user(void) {
pointing_device_set_cpi_on_side(true, 1000); //Set cpi on left side to a low value for slower scrolling.
pointing_device_set_cpi_on_side(false, 8000); //Set cpi on right side to a reasonable value for mousing.
}
report_mouse_t pointing_device_task_combined_user(report_mouse_t left_report, report_mouse_t right_report) {
left_report.h = left_report.x;
left_report.v = left_report.y;
left_report.x = 0;
left_report.y = 0;
return pointing_device_combine_reports(left_report, right_report);
}
```
=======

View File

@@ -232,6 +232,115 @@ const is31_led PROGMEM 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/led/issi/is31fl3737.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0`, `1` for now).
---
### IS31FLCOMMON :id=is31flcommon
There is basic support for addressable RGB matrix lighting with a selection of I2C ISSI Lumissil RGB controllers through a shared common driver. To enable it, add this to your `rules.mk`:
```makefile
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = <driver name>
```
Where `<driver name>` is the applicable LED driver chip as below
| Driver Name | Data Sheet | Capability |
|-------------|------------|------------|
| `IS31FL3742A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3742A_DS.pdf) | 60 RGB, 30x6 Matrix |
| `ISSIFL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 66 RGB, 18x11 Matrix |
| `IS31FL3745` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3745_DS.pdf) | 48 RGB, 18x8 Matrix |
| `IS31FL3746A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3746A_DS.pdf) | 24 RGB, 18x4 Matrix |
You can use between 1 and 4 IC's. Do not specify `DRIVER_ADDR_<N>` define for IC's if not present on your keyboard. The `DRIVER_ADDR_1` default assumes that all Address pins on the controller have been connected to GND. Drivers that have SYNC functionality have the default settings to disable if 1 driver. If more than 1 drivers then `DRIVER_ADDR_1` will be set to Master and the remaining ones set to Slave.
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` | (Optional) Address for the first RGB driver | |
| `DRIVER_ADDR_<N>` | (Required) Address for the additional RGB drivers | |
| `ISSI_SSR_<N>` | (Optional) Configuration for the Spread Spectrum Register | |
| `ISSI_CONFIGURATION` | (Optional) Configuration for the Configuration Register | |
| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `ISSI_PULLDOWNUP` | (Optional) Configuration for the Pull Up & Pull Down Register | |
| `ISSI_TEMP` | (Optional) Configuration for the Tempature Register | |
| `ISSI_PWM_ENABLE` | (Optional) Configuration for the PWM Enable Register | |
| `ISSI_PWM_SET` | (Optional) Configuration for the PWM Setting Register | |
| `ISSI_SCAL_RED` | (Optional) Configuration for the RED LEDs in Scaling Registers | 0xFF |
| `ISSI_SCAL_BLUE` | (Optional) Configuration for the BLUE LEDs in Scaling Registers | 0xFF |
| `ISSI_SCAL_GREEN` | (Optional) Configuration for the GREEN LEDs in Scaling Registers | 0xFF |
| `ISSI_MANUAL_SCALING` | (Optional) If you wish to configure the Scaling Registers manually | |
Defaults
| Variable | IS31FL3742A | IS31FL3743A | IS31FL3745 | IS31FL3746 |
|----------|-------------|-------------|------------|------------|
| `DRIVER_ADDR_1` | 0b0110000 | 0b0100000 | 0b0100000 | 0b1100000 |
| `ISSI_SSR_1` | 0x00 | 0x00 / 0x60 | 0x00 / 0xC0 | 0x00 |
| `ISSI_SSR_<2-4>` | 0x00 | 0x40 | 0x80 | 0x00 |
| `ISSI_CONFIGURATION` | 0x31 | 0x01 | 0x31 | 0x01 |
| `ISSI_PULLDOWNUP` | 0x55 | 0x33 | 0x33 | 0x33 |
| `ISSI_TEMP` | N/A | 0x00 | 0x00 | 0x00 |
| `ISSI_PWM_ENABLE` | N/A | N/A | N/A | 0x00 |
| `ISSI_PWM_SET` | 0x00 | N/A | N/A | 0x00 |
Here is an example using 2 drivers.
```c
#define DRIVER_ADDR_2 0b0100001
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 42
#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 4 drivers are supported, but it would be trivial to support for more. Note that using a combination of different drivers is not supported. All drivers must be of the same model.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, CS1_SW1, CS2_SW1, CS3_SW1},
....
}
```
Where `CSx_SWx` is the location of the LED in the matrix defined by the datasheet. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
`ISSI_MANUAL_SCALING` is used to override the Scaling for individual LED's. By default they will be set as per `ISSI_SCAL_<colour>`. In `config.h` set how many LED's you want to manually set scaling for.
Eg `#define ISSI_MANUAL_SCALING 3`
Then Define the array listing all the LEDs you want to override in your `<keyboard>.c`:
```c
const is31_led __flash g_is31_scaling[ISSI_MANUAL_SCALING] = {
* LED Index
* | R scaling
* | | G scaling
* | | | B scaling
* | | | | */
{5, 120, 155, 167},
{9, 120, 155, 167},
....
}
```
Where LED Index is the position of the LED in the `g_is31_leds` array. The `scaling` value between 0 and 255 to be written to the Scaling Register.
---
### WS2812 :id=ws2812
@@ -252,6 +361,8 @@ Configure the hardware via your `config.h`:
#define DRIVER_LED_TOTAL 70
```
?> There are additional configuration options for ARM controllers that offer increased performance over the default bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information.
---
### APA102 :id=apa102
@@ -417,6 +528,9 @@ All RGB keycodes are currently shared with the RGBLIGHT system:
`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MODE_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped.
?> `RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
!> By default, if you have both the [RGB Light](feature_rgblight.md) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
## RGB Matrix Effects :id=rgb-matrix-effects
@@ -454,6 +568,7 @@ enum rgb_matrix_effects {
RGB_MATRIX_HUE_PENDULUM, // Hue shifts up a slight ammount in a wave to the right, then back to the left
RGB_MATRIX_HUE_WAVE, // Hue shifts up a slight ammount and then back down in a wave to the right
RGB_MATRIX_PIXEL_FRACTAL, // Single hue fractal filled keys pulsing horizontally out to edges
RGB_MATRIX_PIXEL_FLOW, // Pulsing RGB flow along LED wiring with random hues
RGB_MATRIX_PIXEL_RAIN, // Randomly light keys with random hues
#if define(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
RGB_MATRIX_TYPING_HEATMAP, // How hot is your WPM!
@@ -509,6 +624,7 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi
|`#define ENABLE_RGB_MATRIX_HUE_PENDULUM` |Enables `RGB_MATRIX_HUE_PENDULUM` |
|`#define ENABLE_RGB_MATRIX_HUE_WAVE` |Enables `RGB_MATRIX_HUE_WAVE ` |
|`#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL` |Enables `RGB_MATRIX_PIXEL_FRACTAL` |
|`#define ENABLE_RGB_MATRIX_PIXEL_FLOW` |Enables `RGB_MATRIX_PIXEL_FLOW` |
|`#define ENABLE_RGB_MATRIX_PIXEL_RAIN` |Enables `RGB_MATRIX_PIXEL_RAIN` |
?> These modes don't require any additional defines.
@@ -554,9 +670,7 @@ In order to change the delay of temperature decrease define
## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects
By setting `RGB_MATRIX_CUSTOM_USER = yes` in `rules.mk`, new effects can be defined directly from your keymap or userspace, without having to edit any QMK core files.
To declare new effects, create a `rgb_matrix_user.inc` file in the user keymap directory or userspace folder.
By setting `RGB_MATRIX_CUSTOM_USER = yes` in `rules.mk`, new effects can be defined directly from your keymap or userspace, without having to edit any QMK core files. To declare new effects, create a `rgb_matrix_user.inc` file in the user keymap directory or userspace folder.
?> Hardware maintainers who want to limit custom effects to a specific keyboard can create a `rgb_matrix_kb.inc` file in the root of the keyboard directory, and add `RGB_MATRIX_CUSTOM_KB = yes` to the keyboard level `rules.mk`.
@@ -706,6 +820,7 @@ Where `28` is an unused index from `eeconfig.h`.
|`rgb_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) |
|`rgb_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 |
|`rgb_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) |
|`rgb_matrix_reload_from_eeprom()` |Reload the effect configuration (enabled, mode and color) from EEPROM |
### Change Color :id=change-color
|Function |Description |
@@ -809,6 +924,8 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
```
?> Split keyboards will require layer state data syncing with `#define SPLIT_LAYER_STATE_ENABLE`. See [Data Sync Options](feature_split_keyboard?id=data-sync-options) for more details.
#### Examples :id=indicator-examples
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).
@@ -848,6 +965,8 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
```
!> RGB indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](feature_split_keyboard.md#data-sync-options) for more details.
#### Indicators without RGB Matrix Effect
If you want to just use RGB indicators without RGB matrix effect, it is not possible to disable the latter because toggling RGB off will disable everything. You can workaround it with solid effect and colors off using this init function:

View File

@@ -22,6 +22,8 @@ On keyboards with onboard RGB LEDs, it is usually enabled by default. If it is n
RGBLIGHT_ENABLE = yes
```
?> There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information.
For APA102 LEDs, add the following to your `rules.mk`:
```make
@@ -76,9 +78,11 @@ Changing the **Value** sets the overall brightness.<br>
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode |
!> By default, if you have both the RGB Light and the [RGB Matrix](feature_rgb_matrix.md) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
?> `RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUI)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
!> By default, if you have both the RGB Light and the [RGB Matrix](feature_rgb_matrix.md) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
## Configuration
Your RGB lighting can be configured by placing these `#define`s in your `config.h`:
@@ -202,7 +206,7 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
## Lighting Layers
?> **Note:** Lighting Layers is an RGB Light feature, it will not work for RGB Matrix. See [RGB Matrix Indicators](feature_rgb_matrix.md?indicators) for details on how to do so.
?> **Note:** Lighting Layers is an RGB Light feature, it will not work for RGB Matrix. See [RGB Matrix Indicators](feature_rgb_matrix.md#indicators) for details on how to do so.
By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
@@ -322,6 +326,8 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
```
would turn the layer 0 (or 1) on and off again three times when `DEBUG` is pressed.
!> Lighting layers on split keyboards will require layer state synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](feature_split_keyboard.md#data-sync-options) for more details.
### Overriding RGB Lighting on/off status
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`.
@@ -344,7 +350,7 @@ If you need to change your RGB lighting in code, for example in a macro to chang
### Low level Functions
|Function |Description |
|--------------------------------------------|-------------------------------------------|
|`rgblight_set()` |Flash out led buffers to LEDs |
|`rgblight_set()` |Flush out led buffers to LEDs |
|`rgblight_set_clipping_range(pos, num)` |Set clipping Range. see [Clipping Range](#clipping-range) |
Example:

View File

@@ -130,14 +130,17 @@ To enable this method, add the following to your `config.h` file:
#define EE_HANDS
```
However, you'll have to flash the EEPROM files for the correct hand to each controller. You can do this manually, or there are targets for avrdude and dfu to do this, while flashing the firmware:
Next, you will have to flash the EEPROM files once for the correct hand to the controller on each halve. You can do this manually with the following bootloader targets while flashing the firmware:
* `:avrdude-split-left`
* `:avrdude-split-right`
* `:dfu-split-left`
* `:dfu-split-right`
* `:dfu-util-split-left`
* `:dfu-util-split-right`
* AVR controllers with the Caterina bootloader (e.g. Pro Micro):
* `:avrdude-split-left`
* `:avrdude-split-right`
* AVR controllers with the stock Amtel DFU or DFU compatible bootloader (e.g. Elite-C):
* `:dfu-split-left`
* `:dfu-split-right`
* ARM controllers with a DFU compatible bootloader (e.g. Proton-C):
* `:dfu-util-split-left`
* `:dfu-util-split-right`
Example:
@@ -145,9 +148,13 @@ Example:
make crkbd:default:avrdude-split-left
```
?> ARM controllers using `dfu-util` will require an EEPROM reset after setting handedness. This can be done using the `EEP_RST` keycode or [Bootmagic Lite](feature_bootmagic.md). Controllers using emulated EEPROM will always require handedness parameter when flashing the firmware.
?> [QMK Toolbox]() can also be used to flash EEPROM handedness files. Place the controller in bootloader mode and select menu option Tools -> EEPROM -> Set Left/Right Hand
This setting is not changed when re-initializing the EEPROM using the `EEP_RST` key, or using the `eeconfig_init()` function. However, if you reset the EEPROM outside of the firmware's built in options (such as flashing a file that overwrites the `EEPROM`, like how the [QMK Toolbox]()'s "Reset EEPROM" button works), you'll need to re-flash the controller with the `EEPROM` files.
You can find the `EEPROM` files in the QMK firmware repo, [here](https://github.com/qmk/qmk_firmware/tree/master/quantum/split_common).
You can find the `EEPROM` files in the QMK firmware repo, [here](https://github.com/qmk/qmk_firmware/tree/master/quantum/split_common).
#### Handedness by `#define`
@@ -266,6 +273,14 @@ This enables transmitting the current OLED on/off status to the slave side of th
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.
```c
#define SPLIT_POINTING_ENABLE
```
This enables transmitting the pointing device status to the master side of the split keyboard. The purpose of this feature is to enable use pointing devices on the slave side.
!> There is additional required configuration for `SPLIT_POINTING_ENABLE` outlined in the [pointing device documentation](feature_pointing_device.md?id=split-keyboard-configuration).
### 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.

View File

@@ -243,7 +243,7 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
*
* How to figure out tap dance state: interrupted and pressed.
*
* Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit
* Interrupted: If the state of a dance is "interrupted", that means that another key has been hit
* under the tapping term. This is typically indicitive that you are trying to "tap" the key.
*
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term

View File

@@ -16,7 +16,7 @@ For split keyboards using soft serial, the computed WPM score will be available
| `WPM_ALLOW_COUNT_REGRESSION` | _Not defined_ | If defined allows the WPM to be decreased when hitting Delete or Backspace |
| `WPM_UNFILTERED` | _Not defined_ | If undefined (the default), WPM values will be smoothed to avoid sudden changes in value |
| `WPM_SAMPLE_SECONDS` | `5` | This defines how many seconds of typing to average, when calculating WPM |
| `WPM_SAMPLE_PERIODS` | `50` | This defines how many sampling periods to use when calculating WPM |
| `WPM_SAMPLE_PERIODS` | `25` | This defines how many sampling periods to use when calculating WPM |
| `WPM_LAUNCH_CONTROL` | _Not defined_ | If defined, WPM values will be calculated using partial buffers when typing begins |
'WPM_UNFILTERED' is potentially useful if you're filtering data in some other way (and also because it reduces the code required for the WPM feature), or if reducing measurement latency to a minimum is important for you.

24
docs/flash_driver.md Normal file
View File

@@ -0,0 +1,24 @@
# FLASH Driver Configuration :id=flash-driver-configuration
The FLASH driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present.
Driver | Description
-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`FLASH_DRIVER = spi` | Supports writing to almost all NOR Flash chips. See the driver section below.
## SPI FLASH Driver Configuration :id=spi-flash-driver-configuration
Currently QMK supports almost all NOR Flash chips over SPI. As such, requires a working spi_master driver configuration. You can override the driver configuration via your config.h:
`config.h` override | Description | Default Value
-----------------------------------------------|--------------------------------------------------------------------------------------|-----------------
`#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN` | SPI Slave select pin in order to inform that the FLASH is currently being addressed | _none_
`#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR` | Clock divisor used to divide the peripheral clock to derive the SPI frequency | `8`
`#define EXTERNAL_FLASH_PAGE_SIZE` | The Page size of the FLASH in bytes, as specified in the datasheet | `256`
`#define EXTERNAL_FLASH_SECTOR_SIZE` | The sector size of the FLASH in bytes, as specified in the datasheet | `(4 * 1024)`
`#define EXTERNAL_FLASH_BLOCK_SIZE` | The block size of the FLASH in bytes, as specified in the datasheet | `(64 * 1024)`
`#define EXTERNAL_FLASH_SIZE` | The total size of the FLASH in bytes, as specified in the datasheet | `(512 * 1024)`
`#define EXTERNAL_FLASH_ADDRESS_SIZE` | The Flash address size in bytes, as specified in datasheet | `3`
!> All the above default configurations are based on MX25L4006E NOR Flash.

View File

@@ -25,6 +25,11 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` target in QMK (recommended command line)
```
dfu-programmer <mcu> erase --force
dfu-programmer <mcu> flash --force <filename>
dfu-programmer <mcu> reset
```
Flashing sequence:
@@ -73,8 +78,11 @@ BOOTLOADER = caterina
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
* [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line)
```
avrdude -p <mcu> -c avr109 -P <serialport> -U flash:w:<filename>:i
```
Flashing sequence:
@@ -106,8 +114,11 @@ BOOTLOADER = halfkay
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line)
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line)
```
teensy_loader_cli -v -mmcu=<mcu> <filename>
```
Flashing sequence:
@@ -133,8 +144,11 @@ BOOTLOADER = usbasploader
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
* [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line)
```
avrdude -p <mcu> -c usbasp -U flash:w:<filename>:i
```
Flashing sequence:
@@ -159,8 +173,11 @@ 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)
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash)
* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadhid` target in QMK (recommended command line)
```
bootloadHID -r <filename>
```
Flashing sequence:
@@ -232,6 +249,9 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
```
dfu-util -a 0 -d 0483:DF11 -s 0x8000000:leave -D <filename>
```
Flashing sequence:
@@ -265,6 +285,9 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
```
dfu-util -a 2 -d 1EAF:0003 -D <filename>
```
Flashing sequence:
@@ -286,6 +309,9 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
```
dfu-util -a 0 -d 1C11:B007 -D <filename>
```
Flashing sequence:

View File

@@ -1,182 +0,0 @@
# Keyboards with AVR Processors
This page describes the support for for AVR processors in QMK. AVR processors include the atmega32u4, atmega32u2, at90usb1286, and other processors from Atmel Corporation. AVR processors are 8-bit MCUs that are designed to be easy to work with. The most common AVR processors in keyboards have on-board USB and plenty of GPIO for supporting large keyboard matrices. They are the most popular MCU for use in keyboards today.
If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_guidelines.md) to get a sense of how keyboards fit into QMK.
## 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 `qmk new-keyboard`:
```
$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory
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...
Ψ 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.
## `readme.md`
This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates.md#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](https://imgur.com) to host the images.
## `<keyboard>.c`
This is where all the custom logic for your keyboard goes. Many keyboards do not need to put anything at all in here. You can learn more about writing custom logic in [Custom Quantum Functions](custom_quantum_functions.md).
## `<keyboard>.h`
This is the file you define your [Layout Macro(s)](feature_layouts.md) in. At minimum you should have a `#define LAYOUT` for your keyboard that looks something like this:
```c
#define LAYOUT( \
k00, k01, k02, \
k10, k11 \
) { \
{ k00, k01, k02 }, \
{ k10, KC_NO, k11 }, \
}
```
The first half of the `LAYOUT` pre-processor macro defines the physical arrangement of keys. The second half of the macro defines the matrix the switches are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix.
Each of the `k__` variables needs to be unique, and typically they follow the format `k<row><col>`.
The physical matrix (the second half) must have a number of rows equaling `MATRIX_ROWS`, and each row must have exactly `MATRIX_COLS` elements in it. If you do not have this many physical keys you can use `KC_NO` to fill in the blank spots.
## `config.h`
The `config.h` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list there. For a complete overview of available options see the [Config Options](config_options.md) page.
### Hardware Configuration
At the top of the `config.h` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `VENDOR_ID` as `0xFEED`. For the `PRODUCT_ID` you should pick a number that is not yet in use.
Do change the `MANUFACTURER` and `PRODUCT` lines to accurately reflect your keyboard.
```c
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER You
#define PRODUCT my_awesome_keyboard
```
?> Windows and macOS will display the `MANUFACTURER` and `PRODUCT` in the list of USB devices. `lsusb` on Linux instead prefers the values in the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html). By default, it will only use `MANUFACTURER` and `PRODUCT` if the list does not contain that `VENDOR_ID` / `PRODUCT_ID`. `sudo lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in.
### Keyboard Matrix Configuration
The next section of the `config.h` file deals with your keyboard's matrix. The first thing you should set is the matrix's size. This is usually, but not always, the same number of rows and columns as the physical key arrangement.
```c
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
```
Once you've defined the size of your matrix you need to define which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins:
```c
#define MATRIX_ROW_PINS { D0, D5 }
#define MATRIX_COL_PINS { F1, F0, B0 }
#define UNUSED_PINS
```
The number of `MATRIX_ROW_PINS` entries must be the same as the number you assigned to `MATRIX_ROWS`, and likewise for `MATRIX_COL_PINS` and `MATRIX_COLS`. You do not have to specify `UNUSED_PINS`, but you can if you want to document what pins are open.
Finally, you can specify the direction your diodes point. This can be `COL2ROW` or `ROW2COL`.
```c
#define DIODE_DIRECTION COL2ROW
```
#### Direct Pin Matrix
To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `DIRECT_PINS`. The mapping defines the pins of each switch in rows and columns, from left to right. Must conform to the sizes within `MATRIX_ROWS` and `MATRIX_COLS`, use `NO_PIN` to fill in blank spaces. Overrides the behaviour of `DIODE_DIRECTION`, `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`.
```c
// #define MATRIX_ROW_PINS { D0, D5 }
// #define MATRIX_COL_PINS { F1, F0, B0 }
#define DIRECT_PINS { \
{ F1, E6, B0, B2, B3 }, \
{ F5, F0, B1, B7, D2 }, \
{ F6, F7, C7, D5, D3 }, \
{ B5, C6, B6, NO_PIN, NO_PIN } \
}
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
//#define DIODE_DIRECTION
```
### Backlight Configuration
QMK supports backlighting on most GPIO pins. A select few of these can be driven by the MCU in hardware. For more details see the [Backlight Documentation](feature_backlight.md).
```c
#define BACKLIGHT_PIN B7
#define BACKLIGHT_LEVELS 3
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 6
```
### Other Configuration Options
There are a lot of features that can be configured or tuned in `config.h`. You should see the [Config Options](config_options.md) page for more details.
## `rules.mk`
You use the `rules.mk` file to tell QMK what files to build and what features to enable. If you are building around an atmega32u4 you can largely leave these defaults alone. If you are using another MCU you may have to tweak some parameters.
### MCU Options
These options tell the build system what CPU to build for. Be very careful if you change any of these settings, you can render your keyboard inoperable.
```make
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
```
### Bootloaders
The bootloader is a special section of your MCU that allows you to upgrade the code stored on the MCU. Think of it like a Rescue Partition for your keyboard.
#### Teensy Bootloader Example
```make
BOOTLOADER = halfkay
```
#### Atmel DFU Loader Example
```make
BOOTLOADER = atmel-dfu
```
#### Pro Micro Bootloader Example
```make
BOOTLOADER = caterina
```
### Build Options
There are a number of features that can be turned on or off in `rules.mk`. See the [Config Options](config_options.md#feature-options) page for a detailed list and description.

View File

@@ -87,6 +87,7 @@ The `config.h` files can also be placed in sub-folders, and the order in which t
* `keyboards/top_folder/sub_1/sub_2/config.h`
* `keyboards/top_folder/sub_1/sub_2/sub_3/config.h`
* `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/config.h`
* [`.build/objs_<keyboard>/src/info_config.h`](data_driven_config.md#add-code-to-generate-it) see [Data Driven Configuration](data_driven_config.md)
* `users/a_user_folder/config.h`
* `keyboards/top_folder/keymaps/a_keymap/config.h`
* `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/post_config.h`

View File

@@ -39,7 +39,6 @@
'/glossary': '/reference_glossary',
'/key_lock': '/feature_key_lock',
'/make_instructions': '/getting_started_make_guide',
'/porting_your_keyboard_to_qmk': '/hardware_avr',
'/space_cadet_shift': '/feature_space_cadet_shift',
'/getting_started_getting_help': '/support',
'/tap_dance': '/feature_tap_dance',

View File

@@ -6,17 +6,19 @@ QMK has a GPIO control abstraction layer which is microcontroller agnostic. This
The following functions provide basic control of GPIOs and are found in `platforms/<platform>/gpio.h`.
|Function |Description | Old AVR Examples | Old ChibiOS/ARM Examples |
|------------------------|--------------------------------------------------|-------------------------------------------------|-------------------------------------------------|
| `setPinInput(pin)` | Set pin as input with high impedance (High-Z) | `DDRB &= ~(1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT)` |
| `setPinInputHigh(pin)` | Set pin as input with builtin pull-up resistor | `DDRB &= ~(1<<2); PORTB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT_PULLUP)` |
| `setPinInputLow(pin)` | Set pin as input with builtin pull-down resistor | N/A (Not supported on AVR) | `palSetLineMode(pin, PAL_MODE_INPUT_PULLDOWN)` |
| `setPinOutput(pin)` | Set pin as output | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
| `writePinHigh(pin)` | Set pin level as high, assuming it is an output | `PORTB \|= (1<<2)` | `palSetLine(pin)` |
| `writePinLow(pin)` | Set pin level as low, assuming it is an output | `PORTB &= ~(1<<2)` | `palClearLine(pin)` |
| `writePin(pin, level)` | Set pin level, assuming it is an output | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` |
| `readPin(pin)` | Returns the level of the pin | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` |
| `togglePin(pin)` | Invert pin level, assuming it is an output | `PORTB ^= (1<<2)` | `palToggleLine(pin)` |
| Function | Description | Old AVR Examples | Old ChibiOS/ARM Examples |
|------------------------------|-----------------------------------------------------|-------------------------------------------------|--------------------------------------------------|
| `setPinInput(pin)` | Set pin as input with high impedance (High-Z) | `DDRB &= ~(1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT)` |
| `setPinInputHigh(pin)` | Set pin as input with builtin pull-up resistor | `DDRB &= ~(1<<2); PORTB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT_PULLUP)` |
| `setPinInputLow(pin)` | Set pin as input with builtin pull-down resistor | N/A (Not supported on AVR) | `palSetLineMode(pin, PAL_MODE_INPUT_PULLDOWN)` |
| `setPinOutput(pin)` | Set pin as output (alias of `setPinOutputPushPull`) | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
| `setPinOutputPushPull(pin)` | Set pin as output, push/pull mode | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
| `setPinOutputOpenDrain(pin)` | Set pin as output, open-drain mode | N/A (Not implemented on AVR) | `palSetLineMode(pin, PAL_MODE_OUTPUT_OPENDRAIN)` |
| `writePinHigh(pin)` | Set pin level as high, assuming it is an output | `PORTB \|= (1<<2)` | `palSetLine(pin)` |
| `writePinLow(pin)` | Set pin level as low, assuming it is an output | `PORTB &= ~(1<<2)` | `palClearLine(pin)` |
| `writePin(pin, level)` | Set pin level, assuming it is an output | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` |
| `readPin(pin)` | Returns the level of the pin | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` |
| `togglePin(pin)` | Invert pin level, assuming it is an output | `PORTB ^= (1<<2)` | `palToggleLine(pin)` |
## Advanced Settings :id=advanced-settings

View File

@@ -4,7 +4,7 @@ In order to flash a microcontroller over USB, it needs something called a bootlo
However, it can sometimes happen that the bootloader becomes corrupted and needs reflashing, or you may want to change the bootloader to another one. It's not possible to do this with the existing bootloader, because, of course, it is already running, and cannot overwrite itself. Instead, you will need to ISP flash the microcontroller.
There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed.
There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed. The one current exception is the [STM32F103](#flashing-stm32duino-bootloader).
## Hardware
@@ -57,13 +57,33 @@ To use a Teensy 2.0 as an ISP flashing tool, you will first need to load a [spec
!> Note that the `B0` pin on the Teensy should be wired to the `RESET` pin on the keyboard's controller. ***DO NOT*** connect the `RESET` pin on the Teensy to the `RESET` on the keyboard.
### SparkFun PocketAVR / USBtinyISP / USBasp
### SparkFun PocketAVR / USBtinyISP
[SparkFun PocketAVR](https://www.sparkfun.com/products/9825)
[Adafruit USBtinyISP](https://www.adafruit.com/product/46)
!> SparkFun PocketAVR and USBtinyISP **DO NOT support** AVR chips with more than 64 KiB of flash (e.g., the AT90USB128 series). This limitation is mentioned on the [shop page for SparkFun PocketAVR](https://www.sparkfun.com/products/9825) and in the [FAQ for USBtinyISP](https://learn.adafruit.com/usbtinyisp/f-a-q#faq-2270879). If you try to use one of these programmers with AT90USB128 chips, you will get verification errors from `avrdude`, and the bootloader won't be flashed properly (e.g., see the [issue #3286](https://github.com/qmk/qmk_firmware/issues/3286)).
**AVRDUDE Programmer**: `usbtiny`
**AVRDUDE Port**: `usb`
#### Wiring
|ISP |Keyboard|
|---------|--------|
|`VCC` |`VCC` |
|`GND` |`GND` |
|`RST` |`RESET` |
|`SCLK` |`SCLK` |
|`MOSI` |`MOSI` |
|`MISO` |`MISO` |
### USBasp
[Thomas Fischl's USBasp](https://www.fischl.de/usbasp/)
**AVRDUDE Programmer**: `usbtiny` / `usbasp`
**AVRDUDE Programmer**: `usbasp`
**AVRDUDE Port**: `usb`
#### Wiring
@@ -240,3 +260,93 @@ For mass production purposes, it is possible to join the bootloader and QMK firm
4. Save it as a new file, for example `<keyboard>_<keymap>_production.hex`.
You can then ISP flash this combined firmware instead, which allows you to skip the extra step of flashing the QMK firmware over USB.
## Flashing STM32Duino Bootloader
As mentioned above, *most* supported STM32 devices already possess a USB DFU bootloader which cannot be overwritten, however the ROM bootloader in the STM32F103 used on the Bluepill is not USB capable. In this case an ST-Link V2 dongle is required to upload the STM32Duino bootloader to the device. These can be readily purchased for relatively cheap on eBay and other places.
This bootloader is a descendant of the Maple bootloader by Leaflabs, and is compatible with dfu-util.
### Software
To communicate with the ST-Link, you must install the following packages:
* **macOS:** `brew install stlink openocd`
* **Windows (MSYS2):** `pacman -S mingw-w64-x86_64-stlink mingw-w64-x86_64-openocd`
* **Linux:** will vary by distribution, but will likely be `stlink` and `openocd` through your particular package manager
Additionally, you may need to update the ST-Link's firmware with the [`STSW-LINK007`](https://www.st.com/en/development-tools/stsw-link007.html) application. Note you will be asked to provide your name and email address if you do not have an ST.com account (this does not create one).
Finally, the bootloader binary itself can be downloaded from [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/bootloader_only_binaries/generic_boot20_pc13.bin).
### Wiring
Connect the four-pin header on the end of the Bluepill to the matching pins on the ST-Link (the pinout will usually be printed on the side):
|ST-Link |Bluepill|
|-------------|--------|
|`GND` (6) |`GND` |
|`SWCLK` (2) |`DCLK` |
|`SWDIO` (4) |`DIO` |
|`3.3V` (8) |`3.3` |
### Flashing
Firstly, make sure both jumpers on the Bluepill are set to 0.
Check that the ST-Link can talk to the Bluepill by running `st-info --probe`:
```
Found 1 stlink programmers
version: V2J37S7
serial: 2C1219002B135937334D4E00
flash: 65536 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1xx Medium-density
```
If the reported `chipid` is `0x0410`, everything is working. If it is `0x0000`, check your wiring, and try swapping the `SWDIO` and `SWCLK` pins, as some ST-Link dongles may have incorrect pinouts.
Next, run the following command:
```
st-flash --reset --format binary write <path-to-bootloader> 0x08000000
```
where `<path-to-bootloader>` is the path to the bootloader `.bin` file above. You can run this command from the directory you downloaded it to, so that you can simply pass in the filename.
If all goes well, you should get output similar to the following:
```
st-flash 1.7.0
2022-03-08T12:16:30 INFO common.c: F1xx Medium-density: 20 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file generic_boot20_pc13.bin md5 checksum: 333c30605e739ce9bedee5999fdaf81b, stlink checksum: 0x0008e534
2022-03-08T12:16:30 INFO common.c: Attempting to write 7172 (0x1c04) bytes to stm32 address: 134217728 (0x8000000)
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000000 erased
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000c00 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001000 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001c00 erased
2022-03-08T12:16:31 INFO common.c: Finished erasing 8 pages of 1024 (0x400) bytes
2022-03-08T12:16:31 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL
2022-03-08T12:16:31 INFO flash_loader.c: Successfully loaded flash loader in sram
2022-03-08T12:16:31 INFO flash_loader.c: Clear DFSR
8/ 8 pages written
2022-03-08T12:16:31 INFO common.c: Starting verification of write complete
2022-03-08T12:16:31 INFO common.c: Flash written and verified! jolly good!
2022-03-08T12:16:31 WARN common.c: NRST is not connected
```
Otherwise, if you receive an `Unknown memory region` error, run the following command to unlock the STM32F103:
```
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init; reset halt; stm32f1x unlock 0; reset halt; exit"
```
Then re-plug the ST-Link and try again.
After all of this, unplug the Bluepill from the ST-Link and connect it to USB. It should now be ready to flash using dfu-util, the QMK CLI or Toolbox.

View File

@@ -59,7 +59,7 @@ $ qmk compile -km 66_iso
```
$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
$ qmk compile
Ψ Compiling keymap with make make gh60/satan:colemak
Ψ Compiling keymap with make gh60/satan:colemak
...
```
@@ -275,14 +275,14 @@ $ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk format-py`
## `qmk format-python`
このコマンドは `qmk_firmware` 内の python コードを整形します。
**使用法**:
```
qmk format-py
qmk format-python
```
## `qmk pytest`

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``format-py` サブコマンドを使うことができます。
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``format-python` サブコマンドを使うことができます。
### テストとリント
@@ -200,7 +200,7 @@ nose2、flake8 および yapf を使ってコードをテスト、リントお
### フォーマット
qmk format-py
qmk format-python
## フォーマットの詳細

View File

@@ -16,7 +16,7 @@ POINTING_DEVICE_ENABLE = yes
マウスレポートを操作するために、以下の関数を使うことができます:
* `pointing_device_get_report()` - ホストコンピュータに送信された情報を表す現在の report_mouse_t を返します。
* `pointing_device_set_report(report_mouse_t newMouseReport)` - ホストコンピュータに送信される report_mouse_t を上書き保存します。
* `pointing_device_set_report(report_mouse_t mouse_report)` - ホストコンピュータに送信される report_mouse_t を上書き保存します。
report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つことを覚えておいてください:
@@ -34,7 +34,7 @@ report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つ
さらに、デフォルトでは、`pointing_device_send()` はレポートが実際に変更された場合のみレポートを送信します。これにより、マウスレポートが継続的に送信されてホストシステムが起動されたままになることを防ぎます。この動作は、独自の `pointing_device_send()` 関数を作成することで変更できます。
また、`has_mouse_report_changed(new, old)` 関数を使って、レポートが変更されたかどうかを確認できます。(訳注:独自の `pointing_device_send()` 関数を作成する場合でも、その中で `has_mouse_report_changed(new, old)` 関数でチェックして、デフォルトの `pointing_device_send()` と類似の無駄なレポートの抑制をして、ホストシステムがスリープ状態に入れる余地を残すようにしておくのが良いでしょう。)
また、`has_mouse_report_changed(new_report, old_report)` 関数を使って、レポートが変更されたかどうかを確認できます。(訳注:独自の `pointing_device_send()` 関数を作成する場合でも、その中で `has_mouse_report_changed(new_report, old_report)` 関数でチェックして、デフォルトの `pointing_device_send()` と類似の無駄なレポートの抑制をして、ホストシステムがスリープ状態に入れる余地を残すようにしておくのが良いでしょう。)
以下の例では、カスタムキーを使ってマウスをクリックし垂直および水平方向に127単位スクロールし、リリースされた時にそれを全て元に戻します - なぜならこれは完全に便利な機能だからです。いいですか、以下はひとつの例です:

View File

@@ -219,11 +219,11 @@ See also: [Basic Keycodes](keycodes_basic.md)
See also: [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
|Key |Aliases |Description |
|--------------|---------|-------------------------------------------------------|
|`RESET` | |Put the keyboard into bootloader mode for flashing |
|`DEBUG` | |Toggle debug mode |
|`EEPROM_RESET`|`EEP_RST`|Reinitializes the keyboard's EEPROM (persistent memory)|
|Key |Aliases |Description |
|-----------------|---------|-------------------------------------------------------|
|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory)|
## Audio Keys :id=audio-keys
@@ -283,9 +283,9 @@ See also: [Dynamic Macros](feature_dynamic_macros.md)
See also: [Grave Escape](feature_grave_esc.md)
|Key |Aliases |Description |
|-----------|---------|------------------------------------------------------------------|
|`GRAVE_ESC`|`KC_GESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
|Key |Aliases |Description |
|-----------------|---------|------------------------------------------------------------------|
|`QK_GRAVE_ESCAPE`|`QK_GESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
## Key Lock :id=key-lock
@@ -326,6 +326,7 @@ See also: [Magic Keycodes](keycodes_magic.md)
|----------------------------------|---------|--------------------------------------------------------------------------|
|`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_TOGGLE_CONTROL_CAPSLOCK` |`CL_TOGG`|Toggle Caps Lock and Left Control swap |
|`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 |
@@ -763,7 +764,7 @@ See also: [Unicode Support](feature_unicode.md)
|Key |Aliases |Description |
|----------------------|---------|----------------------------------------------------------------|
|`UC(c)` | |Send Unicode code point `c` |
|`UC(c)` | |Send Unicode code point `c`, up to `0x7FFF` |
|`X(i)` | |Send Unicode code point at index `i` in `unicode_map` |
|`XP(i, j)` | |Send Unicode code point at index `i`, or `j` if Shift/Caps is on|
|`UNICODE_MODE_FORWARD`|`UC_MOD` |Cycle through selected input modes |

View File

@@ -6,6 +6,7 @@
|----------------------------------|---------|--------------------------------------------------------------------------|
|`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_TOGGLE_CONTROL_CAPSLOCK` |`CL_TOGG`|Toggle Caps Lock and Left Control swap |
|`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 |

View File

@@ -8,7 +8,7 @@ Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since an
Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
To fix this, open Remote Desktop Connection, click on "Show Options", open the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
## Keycodes

View File

@@ -132,11 +132,11 @@ The main part of this file is the `keymaps[]` definition. This is where you list
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
After this you'll find a list of LAYOUT() macros. A LAYOUT() is simply a list of keys to define a single layer. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
After this you'll find the layer definitions. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
`keymaps[][MATRIX_ROWS][MATRIX_COLS]` in QMK holds the 16 bit action code (sometimes referred as the quantum keycode) in it. For the keycode representing typical keys, its high byte is 0 and its low byte is the USB HID usage ID for keyboard.
> TMK from which QMK was forked uses `const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]` instead and holds the 8 bit keycode. Some keycode values are reserved to induce execution of certain action codes via the `fn_actions[]` array.
> TMK from which QMK was forked uses `const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]` instead and holds the 8 bit keycode.
#### Base Layer
@@ -153,7 +153,9 @@ Here is an example of the Clueboard's base layer:
Some interesting things to note about this:
* From a C source point of view it's only a single array, but we have embedded whitespace to more easily visualize where each key is on the physical device.
* The layer is defined using the LAYOUT macro, traditionally defined in the keyboard's `.h` file.
* The LAYOUT macro takes a single list of keycodes, but we have written it in the C source using embedded whitespace and newlines to visualize where each key is on the physical device.
* The LAYOUT macro hides and handles the mapping to the hardware's key scan matrix.
* Plain keyboard scancodes are prefixed with KC_, while "special" keys are not.
* The upper left key activates custom function 0 (`F(0)`)
* The "Fn" key is defined with `MO(_FL)`, which moves to the `_FL` layer while that key is being held down.

View File

@@ -58,7 +58,7 @@ Currently, the `kc` argument of `MT()` is limited to the [Basic Keycode set](key
Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
You may also run into issues when using Remote Desktop Connection on Windows. Because these keycodes send key events faster than a human, Remote Desktop could miss them.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
To fix this, open Remote Desktop Connection, click on "Show Options", open the "Local Resources" tab, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
It can also be mitigated by increasing [`TAP_CODE_DELAY`](config_options.md#behaviors-that-can-be-configured).
## Intercepting Mod-Taps

View File

@@ -1,6 +1,20 @@
# Building Your First Firmware
Now that you have setup your build environment you are ready to start building custom firmware. For this section of the guide we will bounce between 3 programs- your file manager, your text editor, and your terminal window. Keep all 3 open until you are done and happy with your keyboard firmware.
Now that you have set up your build environment you are ready to start building custom firmware. For this section of the guide we will bounce between 3 programs- your file manager, your text editor, and your terminal window. Keep all 3 open until you are done and happy with your keyboard firmware.
## Configure Your Build Environment Defaults (Optional)
You can configure your build environment to set the defaults and make working with QMK less tedious. Let's do that now!
Most people new to QMK only have 1 keyboard. You can set this keyboard as your default with the `qmk config` command. For example, to set your default keyboard to `clueboard/66/rev4`:
qmk config user.keyboard=clueboard/66/rev4
?> The keyboard option is the path relative to the keyboard directory, the above example would be found in `qmk_firmware/keyboards/clueboard/66/rev4`. If you're unsure you can view a full list of supported keyboards with `qmk list-keyboards`.
You can also set your default keymap name. Most people use their GitHub username like the keymap name from the previous steps:
qmk config user.keymap=<github_username>
## Create a New Keymap
@@ -45,7 +59,7 @@ When your changes to the keymap are complete you will need to build the firmware
qmk compile
If you did not configure your environment, or you have multiple keyboards, you can specify a keyboard and/or keymap:
If you did not configure defaults for your environment, or you have multiple keyboards, you can specify a keyboard and/or keymap:
qmk compile -kb <keyboard> -km <keymap>

View File

@@ -96,7 +96,7 @@ This has been made pretty simple compared to what it used to be. When you are re
qmk flash
If you have not configured your keyboard/keymap name in the CLI, or you have multiple keyboards, you can specify the keyboard and keymap:
If you did not configure your keyboard/keymap name in the CLI according to the [Configure your build environment](newbs_getting_started.md) section, or you have multiple keyboards, you can specify the keyboard and keymap:
qmk flash -kb <my_keyboard> -km <my_keymap>

View File

@@ -145,7 +145,7 @@ In most situations you will want to answer `y` to all of the prompts.
?>**Note on Debian, Ubuntu and their derivatives**:
It's possible, that you will get an error saying something like: `bash: qmk: command not found`.
This is due to a [bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155) Debian introduced with their Bash 4.4 release, which removed `$HOME/.local/bin` from the PATH. This bug was later fixed on Debian and Ubuntu.
Sadly, Ubuntu reitroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
Sadly, Ubuntu reintroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc`
### ** FreeBSD **
@@ -182,22 +182,6 @@ Checking file size of clueboard_66_rev3_default.hex
* The firmware size is fine - 26356/28672 (2316 bytes free)
```
## 5. Configure Your Build Environment (Optional)
You can configure your build environment to set the defaults and make working with QMK less tedious. Let's do that now!
Most people new to QMK only have 1 keyboard. You can set this keyboard as your default with the `qmk config` command. For example, to set your default keyboard to `clueboard/66/rev4`:
qmk config user.keyboard=clueboard/66/rev4
You can also set your default keymap name. Most people use their GitHub username here, and we recommend that you do too.
qmk config user.keymap=<github_username>
The keyboard can now be compiled without arguments using the following command after creating your keymap in the next section:
qmk compile
# Creating Your Keymap
You are now ready to create your own personal keymap! Move on to [Building Your First Firmware](newbs_building_firmware.md) for that.

View File

@@ -20,6 +20,7 @@ Not sure which text editor to use?
Editors specifically made for code:
* [Sublime Text](https://www.sublimetext.com/)
* [VS Code](https://code.visualstudio.com/)
* [Atom](https://atom.io/)
### Git resources

View File

@@ -11,7 +11,7 @@ Using an IDE such as Eclipse provides many advantages over a plain text editor,
* static code analysis
* many other tools such as debugging, code formatting, showing call hierarchies etc.
The purpose of the is page is to document how to set-up Eclipse for developing AVR software, and working on the QMK code base.
The purpose of this page is to document how to set-up Eclipse for developing AVR software, and working on the QMK code base.
Note that this set-up has been tested on Ubuntu 16.04 only for the moment.
@@ -74,7 +74,7 @@ Once both plugins are installed, restart Eclipse as prompted.
## Build Your Keyboard
We will now change the default make target of the the project from `all` to the
We will now change the default make target of the project from `all` to the
specific keyboard and keymap combination we are working on,
e.g. `kinesis/kint36:stapelberg`. This way, project-wide actions like cleaning
and building the project will complete quickly, instead of taking a long time or

View File

@@ -15,7 +15,7 @@ The purpose of this page is to document how to set up VS Code for developing QMK
This guide covers how to configure everything needed on Windows and Ubuntu 18.04
# Set up VS Code
Before starting, you will want to make sure that you have all of the build tools set up, and QMK Firmware cloned. Head to the the [Newbs Getting Started Guide](newbs_getting_started.md) to get things set up, if you haven't already.
Before starting, you will want to make sure that you have all of the build tools set up, and QMK Firmware cloned. Head to the [Newbs Getting Started Guide](newbs_getting_started.md) to get things set up, if you haven't already.
## Windows

View File

@@ -17,7 +17,6 @@ As such, if you wish to override this API consider limiting use to writing to lo
| `config.h` override | Description | Default |
|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|
| `#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP` | Whether or not bootloader is to be executed during the early initialisation code of QMK. | `FALSE` |
| `#define STM32_BOOTLOADER_ADDRESS` | Relevant for single-bank STM32 MCUs, signifies the memory address to jump to bootloader. Consult [AN2606](https://www.st.com/content/st_com/en/search.html#q=an2606-t=resources-page=1) for the _System Memory_ address for your MCU. This value should be of the format `0x11111111`. | `<none>` |
| `#define STM32_BOOTLOADER_DUAL_BANK` | Relevant for dual-bank STM32 MCUs, signifies that a GPIO is to be toggled in order to enter bootloader mode. | `FALSE` |
| `#define STM32_BOOTLOADER_DUAL_BANK_GPIO` | Relevant for dual-bank STM32 MCUs, the pin to toggle when attempting to enter bootloader mode, e.g. `B8` | `<none>` |
| `#define STM32_BOOTLOADER_DUAL_BANK_POLARITY` | Relevant for dual-bank STM32 MCUs, the value to set the pin to in order to trigger charging of the RC circuit. e.g. `0` or `1`. | `0` |

View File

@@ -0,0 +1,163 @@
# Adding Your Keyboard to QMK
This page describes the support for [Compatible Microcontrollers](compatible_microcontrollers.md) in QMK.
If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_guidelines.md) to get a sense of how keyboards fit into QMK.
QMK has a number of features to simplify working with keyboards. For most, you don't have to write a single line of code. To get started, run `qmk new-keyboard`:
```
$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory
Name Your Keyboard Project
For more infomation, see:
https://docs.qmk.fm/#/hardware_keyboard_guidelines?id=naming-your-keyboardproject
keyboard Name? mycoolkeeb
Attribution
Used for maintainer, copyright, etc
Your GitHub Username? [jsmith]
More Attribution
Used for maintainer, copyright, etc
Your Real Name? [John Smith]
Pick Base Layout
As a starting point, one of the common layouts can be used to bootstrap the process
Default Layout?
1. 60_ansi
...
50. tkl_iso
51. none of the above
Please enter your choice: [51]
What Powers Your Project
For more infomation, see:
https://docs.qmk.fm/#/compatible_microcontrollers
MCU?
1. atmega32u4
...
22. STM32F303
Please enter your choice: [12]
Ψ Created a new keyboard called mycoolkeeb.
Ψ To start working on things, `cd` into keyboards/mycoolkeeb,
Ψ or open the directory in your preferred text editor.
Ψ And build with qmk compile -kb mycoolkeeb -km default.
```
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.
## `readme.md`
This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates.md#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](https://imgur.com) to host the images.
## `info.json`
The `info.json` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list here. For a complete overview of available options see the [Data Driven Configuration Options](reference_info_json.md) page.
### Hardware Configuration
At the top of the `info.json` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `usb.vid` as `0xFEED`. For the `usb.pid` you should pick a number that is not yet in use.
Do change the `manufacturer` and `keyboard_name` lines to accurately reflect your keyboard.
```json
"keyboard_name": "my_awesome_keyboard",
"maintainer": "You",
"usb": {
"vid": "0xFEED",
"pid": "0x0000",
"device_version": "1.0.0"
},
```
?> Windows and macOS will display the `manufacturer` and `keyboard_name` in the list of USB devices. `lsusb` on Linux instead prefers the values in the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html). By default, it will only use `manufacturer` and `keyboard_name` if the list does not contain that `usb.vid` / `usb.pid`. `sudo lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in.
### Matrix Configuration
The next section of the `info` file deals with your keyboard's matrix. The first thing you should define is which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins:
```json
"matrix_pins": {
"cols": ["C1", "C2", "C3", "C4"],
"rows": ["D1", "D2", "D3", "D4"]
},
```
The size of the `matrix_pins.cols` and `matrix_pins.rows` arrays infer the size of the matrix (previously `MATRIX_ROWS` and `MATRIX_COLS`).
Finally, you can specify the direction your diodes point. This can be `COL2ROW` or `ROW2COL`.
```json
"diode_direction": "ROW2COL",
```
#### Direct Pin Matrix
To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `matrix_pins.direct`. The mapping defines the pins of each switch in rows and columns, from left to right. The size of the `matrix_pins.direct` array infers the size of the matrix. Use `NO_PIN` to fill in blank spaces. Overrides the behaviour of `diode_direction`, `matrix_pins.cols` and `matrix_pins.rows`.
```json
"matrix_pins": {
"direct": [
["F1", "E6", "B0", "B2", "B3" ],
["F5", "F0", "B1", "B7", "D2" ],
["F6", "F7", "C7", "D5", "D3" ],
["B5", "C6", "B6", "NO_PIN", "NO_PIN"]
]
},
```
### Layout macros
Next is configuring Layout Macro(s). These define the physical arrangement of keys, and its position within the matrix that a switch are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix.
```json
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1, "y": 0 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
{ "matrix": [0, 3], "x": 3, "y": 0 },
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2 },
{ "matrix": [3, 0], "x": 0, "y": 3 },
{ "matrix": [3, 1], "x": 1, "y": 3 },
{ "matrix": [3, 2], "x": 2, "y": 3 },
{ "matrix": [3, 3], "x": 3, "y": 3 }
]
}
}
```
In the above example,
* `LAYOUT_ortho_4x4` defines the name of the layout macro
* It must conform to [hardware_keyboard_guidelines.md#ltkeyboard_namehgt]
* `"matrix": [0, 0]` defines the electrical position
## Additional Configuration
There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config.md). The following sections cover the process for when an `info.json` option is unavailable.
### Configuration Options
For available options for `config.h`, you should see the [Config Options](config_options.md) page for more details.
### Build Options
For available options for `rules.mk`, see the [Config Options](config_options.md#feature-options) page for a detailed list and description.

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