Compare commits

...

1309 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
Michael Stapelberg
7c186ebb97 Revert "core: make the full 4096 bytes of EEPROM work on Teensy 3.6 (#12947)" (#15695)
This reverts commit 7f8faa429e.

related to https://github.com/qmk/qmk_firmware/issues/15521
2022-01-10 08:17:15 +11:00
QMK Bot
9682abd5b8 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 20:08:56 +00:00
werther
1ed5c48d93 [Keyboard] Add RGB Matrix support to id67 and add thewerther keymap (#15558)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: sigprof and fauxpark
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-09 12:08:18 -08: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
Islam Sharabash
ec78acae69 [Keyboard] Adding Dygma Raise (#13543)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-01-09 11:57:08 -08:00
QMK Bot
78dba27922 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 18:22:39 +00:00
Arda Kılıçdağı
8e17f9911d [Keymap] Ardakilic keymap for crkbd added (#13745)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-09 10:21:54 -08:00
QMK Bot
515eb94fab Merge remote-tracking branch 'origin/master' into develop 2022-01-09 17:45:14 +00:00
Gabriel Kim
1df390c34f [Keyboard] Add Meck TKL handwired (#15533)
* Add meck_tkl

* Fix configuration and pin assignment

* Rellocate A10 pin, as it is used by the USB DFU bootloader

* Add volume and media keys to the function keys layer

* Rellocate source files to the handwired keyboards folder and add documentation

* Review changes for PR
- Improve LAYOUT macro to match the keyboard layout.
- Use "kxy" as pin names on the LAYOUT macro.
- Remove unused mcuconf.h and halconf.h.
- Fix README.

* Improve layout macro naming
2022-01-09 09:44:33 -08:00
QMK Bot
30d060417f Merge remote-tracking branch 'origin/master' into develop 2022-01-09 04:03:19 +00:00
Domanic Calleja
7b27957adf [Keyboard] Delete lyra (located in malevolti/lyra) (#15524)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-08 20:02:45 -08:00
QMK Bot
9578b4b570 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 03:58:05 +00:00
TW59420
70469d373d [Keyboard] Add MMKZOO65 PCB (#15546)
* Add MMKZOO65 PCB

* Update keyboards/mmkzoo65/rules.mk

* Update keyboards/mmkzoo65/rules.mk
2022-01-08 19:57:31 -08:00
QMK Bot
a1ca14c1e1 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 03:54:14 +00:00
Uy Bui
50d81b63e9 [Keyboard] Stelo65 (#15102)
* [Keyboard] add new keyboard Stelo

* [Keyboard] Stelo encoder action

* Update keyboards/wekey/stelo/readme.md

* Update keyboards/wekey/stelo/rules.mk

* [Keyboard] change name Stelo to Stelo65
2022-01-08 19:53:45 -08: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
Tate
0acc0924db [Docs] Update feature_tap_dance.md (#14931) 2022-01-08 19:26:44 -08:00
QMK Bot
de59dd1835 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 02:34:46 +00:00
mechlovin
69510bab8e [Keyboard] add Haus PCB (#12434)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-01-08 18:33:46 -08:00
QMK Bot
e67ac61160 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 02:30:48 +00:00
WestM
ac02260bcb Updated Info.json for westm/westmergo (#15530)
* Added WestM keyboard

* Update keyboards/westm/westm68/config.h

* Update keyboards/westm/westm68/config.h

* Update keyboards/westm/westm68/rules.mk

* Update keyboards/westm/westm68/rules.mk

* Update keyboards/westm/westm68/rules.mk

* Updated Ergo as well to match Drashna's recommended changes

* Added layers for VIA and updated keymaps

* Applied missing changes that were done on 68 but not Ergo

* Update keyboards/westm/westmergo/readme.md

* Update keyboards/westm/westmergo/readme.md

* Update keyboards/westm/westm68/readme.md

* Update keyboards/westm/westm68/rules.mk

* Update keyboards/westm/westmergo/rules.mk

* Update keyboards/westm/westm68/rules.mk

* Update keyboards/westm/westmergo/rules.mk

* Update keyboards/westm/westm68/readme.md

* Updated README bootloader  and keymaps

* Updated info.json

* Changed to proper layout (for real this time)

* Updated info.json

* Fixed Alice layout in info.json
2022-01-08 18:30:14 -08:00
QMK Bot
a120a166b9 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 01:30:24 +00:00
mmccoyd
4c1fd0897c [Keyboard] Add Hillside support (#15399)
* [Keyboard] Add Hillside

* Remove no longer used define, rename README

* Rename to readme.md

* Readme: Improve clarity, fix grammar and typos

* Readme: Remove extra line pointing to QMK docs

* Readme: Join consecutive source lines in .md

* Readme: split lines, post spelling fix

* Keymap: fix key label in readme
2022-01-08 17:29:51 -08:00
QMK Bot
687d4772a7 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 00:14:06 +00:00
Brandon Claveria
fc8346e0b3 [keyboard] BumbleBee handwired (#14908)
* add bumblebee

* change keymaps

* change PID

* update info.json

* Apply suggestions from code review

* Update keyboards/handwired/swiftrax/bumblebee/rules.mk

* update readme.md

* Update keyboards/handwired/swiftrax/bumblebee/info.json

* edit keymaps

* Update keyboards/handwired/swiftrax/bumblebee/rules.mk

* Update keyboards/handwired/swiftrax/bumblebee/bumblebee.h

* Update keyboards/handwired/swiftrax/bumblebee/info.json

* Update keyboards/handwired/swiftrax/bumblebee/keymaps/default/keymap.c

* Update keyboards/handwired/swiftrax/bumblebee/keymaps/default/keymap.c

* Update keyboards/handwired/swiftrax/bumblebee/keymaps/default/keymap.c

* Update keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c

* Update keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c

* Update keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c

* Update keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c
2022-01-08 16:13:37 -08:00
QMK Bot
fea1a3d5c7 Merge remote-tracking branch 'origin/master' into develop 2022-01-09 00:13:07 +00:00
James Young
4b0aa1a2af kbdfans/kbd67/mkiirgb_iso: LAYOUT_65_iso_blocker conformance (#15794) 2022-01-08 16:12:37 -08:00
QMK Bot
6332caef78 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:24:33 +00:00
x1
a461f607e7 [Keyboard] Add Kudox Full (#15256)
* Add Kudox Full keyboard

* Add keyboards/kudox_full SPDX identifier

* Modify rule.mk of keyboards/kudox_full

* Remove html code from README of keyboards/kudox_full

* Modify readme of keyboards/kudox_full

* rev1.c includes rev1.h - kudox-full/rev1

* Move to <keyboard>.c oled_task_user and eeconfig_init_user

* Move post_config.h MOUSEKEY_*

* Change BOOTMAGIC_ENABLE no kudox_full

* Modify the obsoleted codes

* Modify eeconfig_init_kb from eeconfig_init_user

* Set none as default, but values

* Add about the bootloader on kudox_full/readme

* Modify the comments in keyboards/kudox_full/rules.mk
2022-01-08 13:23:34 -08:00
QMK Bot
ff878aa30c Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:23:13 +00:00
Andrew Missel
4c080be8e8 [Keyboard] Bathroom Epiphanies Frosty Flake rev 20130602 (#15365)
* add optional support for Frosty Flake rev 20130602

* update documentation with instructions on building for rev 20130602

* support revisions using subfolders instead of preprocessor directives

* rules.mk cleanup
2022-01-08 13:22:14 -08:00
QMK Bot
98aaf7dccd Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:19:44 +00:00
Brandon Claveria
31331e6d33 [Keyboard] Glacier handwired (#14758)
* finish adding glacier

* change PID

* Update keyboards/handwired/swiftrax/glacier/info.json

* edit info.json

* Update keyboards/handwired/swiftrax/glacier/info.json

* Apply suggestions from code review

* Update keyboards/handwired/swiftrax/glacier/rules.mk
2022-01-08 13:19:13 -08:00
QMK Bot
86fd95962c Merge remote-tracking branch 'origin/master' into develop 2022-01-08 21:14:01 +00:00
FREEWING.JP
604fca4aa9 [Keyboard] bstk100 handwired (#14158)
* General: Initial commit for bstk100

* bstk100 custom keyboard firmware

* fix Bootloader section

* fix  "Pad 0" key twice

* delete via config

* fix readme.md key layout

* add via keymap

* fix readme.md info

* remove keymap.json

* Suggested change readme.md

* moved to handwired folder

* fix readme.md for handwired

* fix info.json

* Suggested change readme.md

* Update keyboards/handwired/bstk100/rules.mk

fix requested changes

* Update keyboards/handwired/bstk100/rules.mk

fix requested changes

* Update keyboards/handwired/bstk100/info.json

* Update keyboards/handwired/bstk100/rules.mk
2022-01-08 13:13:29 -08:00
QMK Bot
3c9ddf7c53 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 20:51:03 +00:00
moyi4681
2ad8826b75 [Keyboard] KBDfans KBD67 Mk.II RGB ISO (#14830)
* add kbd67mkiirgb iso keyboard

add kbd67mkiirgb iso keyboard

* Update rules.mk

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.h

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/config.h

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/rules.mk

* Update readme.md

* Update readme.md

* Create info.json

* Update info.json

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c

* Update keyboards/kbdfans/kbd67/mkiirgb_iso/rules.mk
2022-01-08 12:49:52 -08:00
QMK Bot
0a21929928 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 20:33:10 +00:00
Andrew Kannan
1709f3b430 [Keyboard] Add caps and scroll indicator LEDs to andromeda PCB (#15793) 2022-01-08 12:32:27 -08:00
QMK Bot
30c201e1c5 Merge remote-tracking branch 'origin/master' into develop 2022-01-08 18:45:13 +00:00
dnaq
6fe3a1af01 [Keyboard] Fix inverted ploopy trackball (#15790) 2022-01-08 10:44:37 -08:00
QMK Bot
34dccc565e Merge remote-tracking branch 'origin/master' into develop 2022-01-08 03:23:12 +00:00
Richard
a2ed670eee Add a-ball handwired trackball based on ADSN9800 (#9015)
* Initial commit of kball

* Pretty much working

* Rename to aball

* Cleanup

* Fix typo and make instructions

* Refactor to use qmk spi

* Suggestions from ZVECR

* Update keyboards/handwired/aball/adns9800_srom_A6.h

* Update keyboards/handwired/aball/adns.c

* Update keyboards/handwired/aball/adns.c

* Update keyboards/handwired/aball/adns.c

* Added copyright and source attribution

* Update keyboards/handwired/aball/rules.mk

Include as quantum lib to help avoid timing issues with LTO

* Only send report on change, adj sensitivity, fix src include

* Fix issue causing constant reports and bad clamping

* Streamline conversion to int, add required wait before burst read

* Changes to track develop

* Update rules with new feature descriptors, add info.json

* Add stub layout

* Rework / cleanup key matrix.  Add missing CS pin define for new ADNS driver

* Add stub keymap to enable compile
2022-01-07 19:22:35 -08:00
QMK Bot
2093498425 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 21:48:28 +00:00
James Young
4ace960b98 JJ50 Touch-Up (#15762)
* rules.mk: Build Options sorting and white space

* use QMK 3-character notation

* info.json: apply friendly formatting

* info.json: use 3-character notation

* move layout macro alias to info.json

* number matrix identifiers by electrical position
2022-01-07 13:47:49 -08:00
QMK Bot
c3937de310 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 21:31:06 +00:00
James Young
a5afe84a12 Dango40: Fix QMK Configurator Implementation (#15761)
* friendly-format info.json

* correct info.json structure

* info.json: update key labels
2022-01-07 13:30:22 -08:00
QMK Bot
bd63d91163 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 20:21:40 +00:00
FateEverywhere
145e91d41f [Keyboard] Hard Light Mark 2 and keymaps (#13719)
* Hard Light Mark 2 and keymaps

This time with minor competence!

* Update keyboards/edi/hardlight/mk2/rules.mk

* Delete config.h

* Apply suggestions from code review
2022-01-07 12:21:04 -08:00
QMK Bot
bd07ae6713 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 13:28:14 +00:00
chance
a8927ac601 [Keymap] Adding Frosty Flake VIA keymap (#13211)
* updated my personal layouts

* added Artix to install script

* setting up for PR

* added Artix to install script

* Created frosty flake via keymap.c

Created the default VIA keymap.c file for the Frosty Flake controller

* Create rules.mk

* add #define DYNAMIC_KEYMAP_LAYER_COUNT 3

* Update keymap.c

* Delete keyboards/tada68/keymaps/trashcat directory

* Create keymap.c

* Create README.md

* Create rules.mk

* Delete keyboards/whitefox/keymaps/trashcat directory

* Update qmk_install.sh

* Rename README.md to readme.md

* Update keymap.c

* Update keymap.c

* Apply suggestions from code review
2022-01-07 05:27:42 -08:00
QMK Bot
f9a39775fc Merge remote-tracking branch 'origin/master' into develop 2022-01-07 08:25:25 +00:00
Samuel Fischer
febbf66be1 [Keyboard] Add croxsplit44 handwired keyboard (#14227)
* Add files via upload

* Delete keyboards/croxsplit44 directory

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Apply suggestions from code review

* Apply suggestions from code review
2022-01-07 00:24:54 -08:00
QMK Bot
6e8c3dfafc Merge remote-tracking branch 'origin/master' into develop 2022-01-07 05:25:57 +00:00
Mason
3076d3c4f4 [Keymap] Add masoncowen planck keymap (#14353)
Co-authored-by: Drashna Jael're <drashna@live.com>
2022-01-06 21:25:20 -08:00
QMK Bot
ccd1839443 Merge remote-tracking branch 'origin/master' into develop 2022-01-07 03:07:48 +00:00
TJ
7ed34bb59f [Keyboard] Adalyn keyboard (#14184)
* first Adalyn commit

* fixed json and removed via

* fixed GPL headers and rules.mk

* fix extra space after gpl
add vial keymap

* Removed VIAL and revised rules.mk

* updating per request and completing readme
2022-01-06 19:07:06 -08:00
QMK Bot
b1c4d3322d Merge remote-tracking branch 'origin/master' into develop 2022-01-07 01:39:11 +00:00
Walter Hanley
db8cf0b872 [Keyboard] Add Support for Wren Keyboard (#14570)
* initial prime_o commit

* Cleaned up comments, other things.

* Updated keymap to use standard seven-underscore KC_TRNS notation

* initial prime_o commit

* Cleaned up comments, other things.

* Updated keymap to use standard seven-underscore KC_TRNS notation

* Initial Code for Wren Keyboard

This is the initial hardware test commit for the wren. More detailed keymaps will be added soon.

* Update layout and add author

* Add PCB Image and Clarify Bootloader Instructions

* Update config.h

Updating config.h to remove mentions to LED backlighting (not supported on this PCB)

* Update wren.h to match PR checklist

* Roll back addition of code that should have been in wren.h

* Update /default/keymap.c

Make keyboard.c "pristine" to the best of my ability and add information about configuring a "non-standard" layout.

* Update readme.md

* Update keymap readmes to match PR checklist

* Update readme.md

* Final touches before PR

* Un-delete non-wren files

* Create rules.mk

* Create config.h

* Update keyboards/wren/keymaps/walterhanley/keymap.c

* Update keyboards/wren/keymaps/walterhanley/keymap.c

* Update keyboards/wren/wren.c

As per feedback, move encoder definition to wren.c from keymap.c.

* Update keyboards/wren/keymaps/walterhanley/keymap.c

As per feedback, move encoder definition to wren.c from keymap.c

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

As per feedback, move encoder definition to wren.c from keymap.c

* Create Keymap-Level config.h

I've been dealing with some issues with this board over-drawing power on certain devices; this should fix that issue on my build without affecting other users.

* Add bells and whistles to personal keymap

This update adds bells and whistles to my personal keymap. I couldn't figure out how to modify rotary encoder functionality for just my personal layout with the definition in wren.c, so I moved it back into the individual keymaps. Please let me know if this is an issue and I can look into possible alternative implementations.

* Update to match drashna's requested changes

* Update keymap.c

This update refines drashna's requested changes.

* Update keymap.c

Fix typo
2022-01-06 17:38:42 -08:00
QMK Bot
03f2235bc5 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 23:50:31 +00:00
Leo Batyuk
845529782e Migrate crkbd/soundmonster to split common, fix OLED and RGB matrix (#15717)
Co-authored-by: Leo B <leo.the.soundmonster@gmail.com>
2022-01-06 23:49:55 +00:00
QMK Bot
eada33b889 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 23:46:19 +00:00
hadi
a6ed0e10f3 [Keyboard] Adding GOS65 files (#14734)
* Adding gos65 files

* Updating info and config to align with other review

* Changing LAYOUT_all to LAYOUT

* Updating LAYOUT to have 69 elements
2022-01-06 15:45:48 -08:00
QMK Bot
d5293e1f43 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 23:45:47 +00:00
AnthonyNguyen168
58d2712936 Update keymap for MechBrewery MB65S (#15673) 2022-01-06 15:45:12 -08:00
QMK Bot
005949ff25 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 12:00:55 +00:00
James Young
cf8c9befff checkerboards/quark_squared: fix broken layout macro reference in info.json (#15757) 2022-01-06 04:00:03 -08:00
Drashna Jael're
ac466c1571 Merge remote-tracking branch 'origin/master' into develop 2022-01-06 02:01:04 -08:00
James Young
910a7b92d0 Pearlboards Touch-Up (#15756)
* add QMK Configurator data for Atlas

* add QMK Configurator data for Pearl

* add QMK Configurator data for Zeus

* add QMK Configurator data for Zeuspad

* physically arrange Zeus layout macro

Moves the keycode for the rotary encoder to the top row.
2022-01-06 01:39:10 -08:00
Drashna Jaelre
2669b0bee8 [Docs] Add drag scrolling example to Pointing device docs page (#15715)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-01-06 00:30:22 -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
James Young
f5d11e7586 handwired/ortho_brass: add QMK Configurator data (#15755) 2022-01-05 23:51:21 -08:00
QMK Bot
ce8e5fb54e Merge remote-tracking branch 'origin/master' into develop 2022-01-06 07:44:56 +00:00
James Young
1fd448f7fc cannonkeys/adelie: Fix QMK Configurator Implementation (#15754)
* info.json: apply friendly formatting

* info.json: correct key sequence
2022-01-05 23:44:21 -08:00
QMK Bot
d0063ea3e9 Merge remote-tracking branch 'origin/master' into develop 2022-01-05 23:39:51 +00:00
Albert Y
896ab38fd2 [Keyboard] Remove locking support for Boardsource LP boards (#15747) 2022-01-05 18:39:18 -05:00
QMK Bot
2b975f3f3a Merge remote-tracking branch 'origin/master' into develop 2022-01-05 21:57:10 +00:00
Nick Brassel
7b151143f7 eol=lf, where appropriate (#15752) 2022-01-05 21:56:31 +00:00
QMK Bot
34592f225a Merge remote-tracking branch 'origin/master' into develop 2022-01-05 20:07:12 +00:00
Sergey Vlasov
efa2b5b683 Fix info.json for kbdfans/odin/{rgb,soldered} (#15750)
* kbdfans/odin/*: Reformat info.json to be human-readable

Apply `qmk format-json` to the `info.json` files for `kbdfans/odin/rgb`
and `kbdfans/odin/soldered; no actual content changes.

* kbdfans/odin/*: Fix key ordering in info.json

The order of key entries in `info.json` did not match the order of
layout macro arguments (apparently the keys in the cursor block, which
are shifted down by 0.25u with respect to the rest of keys, were treated
as separate rows).  Fix the order to make the configurator
produce proper keymaps.
2022-01-05 20:06:34 +00:00
QMK Bot
49d8d9ebf2 Merge remote-tracking branch 'origin/master' into develop 2022-01-05 20:03:59 +00:00
Drashna Jaelre
fda5d98242 [Keymap] Fix onekey oled keymap (#15751) 2022-01-05 20:03:21 +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
Joel Challis
1c1e6fa47d Remove stale docs translations (#15737) 2022-01-04 18:11:24 -08:00
QMK Bot
c089541938 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 22:42:47 +00:00
Joel Challis
550c9a315f Refix "No C files in filelist: None" (#15728) 2022-01-03 22:42:15 +00:00
QMK Bot
73e372d920 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 21:55:23 +00:00
Joel Challis
aea7155423 Fix "No C files in filelist: None" (#15560)
* Fix "No C files in filelist: None"

* Align other commands

* force absolute paths
2022-01-03 21:54:46 +00:00
QMK Bot
1f1d2ffd29 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 17:08:10 +00:00
Albert Y
a88dc08643 [Docs] Note the order of enumerated custom keycodes (#15706)
Co-authored-by: filterpaper <filterpaper@localhost>
2022-01-03 09:07:58 -08:00
peepeetee
d49b46a30d [Keyboard] change bm60hsrgb/rev2 layout to LAYOUT_60_ansi_arrow (#15701) 2022-01-03 09:07:35 -08:00
QMK Bot
0a3452f307 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 03:26:48 +00:00
ripdog
1b953ac1e2 [Keyboard] Keychron Q1: Turn off RGB during PC suspend (#15685) 2022-01-02 19:26:16 -08:00
QMK Bot
bfc8539d68 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 00:21:07 +00:00
Mango The Fourth
838b214a2e Fix DracuLad keymap to accomodate for breaking changes. (#15713)
Co-authored-by: MangoIV <mangoiv@outlook.com>
2022-01-03 00:20:24 +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
Albert Y
6f043c5497 Volume as default encoder documentation example (#15678)
Co-authored-by: filterpaper <filterpaper@localhost>
2022-01-02 00:07:22 -08: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
Vino Rodrigues
f3c080b4b4 Revert "mkiirgb/v3: Swap R and G lanes to achieve correct RGB. (#15511)" (#15660)
This reverts commit 235c666f3d.
2022-01-02 12:38:31 +11:00
QMK Bot
6513e0cea3 Merge remote-tracking branch 'origin/master' into develop 2022-01-01 18:11:31 +00:00
James Young
a7735b614f BM60HSRGB Poker rev2: Fix QMK Configurator Implementation (#15697)
* fix layout macro reference

* correct layout data

* correct maintainer field
2022-01-01 11:10:47 -07: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
8408 changed files with 193992 additions and 67597 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

113
.gitattributes vendored
View File

@@ -2,69 +2,70 @@
* text=auto
# sources
*.c text
*.cc text
*.cxx text
*.cpp text
*.c++ text
*.hpp text
*.h text
*.h++ text
*.hh text
*.bat text
*.coffee text
*.css text
*.htm text
*.html text
*.inc text
*.ini text
*.js text
*.jsx text
*.json text
*.less text
*.php text
*.pl text
*.py text
*.rb text
*.sass text
*.scm text
*.scss text
*.sh text
*.sql text
*.styl text
*.ts text
*.xml text
*.xhtml text
*.c text eol=lf
*.cc text eol=lf
*.cxx text eol=lf
*.cpp text eol=lf
*.c++ text eol=lf
*.hpp text eol=lf
*.h text eol=lf
*.h++ text eol=lf
*.hh text eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
*.coffee text eol=lf
*.css text eol=lf
*.htm text eol=lf
*.html text eol=lf
*.inc text eol=lf
*.ini text eol=crlf
*.js text eol=lf
*.jsx text eol=lf
*.json text eol=lf
*.less text eol=lf
*.php text eol=lf
*.pl text eol=lf
*.py text eol=lf
*.rb text eol=lf
*.sass text eol=lf
*.scm text eol=lf
*.scss text eol=lf
*.sh text eol=lf
*.sql text eol=lf
*.styl text eol=lf
*.ts text eol=lf
*.xml text eol=lf
*.xhtml text eol=lf
# make files (need to always use lf for compatibility with Windows 10 bash)
Makefile eol=lf
*.mk eol=lf
*.mk eol=lf
# make files (need to always use lf for compatibility with Windows 10 bash)
*.sh eol=lf
# documentation
*.markdown text
*.md text
*.mdwn text
*.mdown text
*.mkd text
*.mkdn text
*.mdtxt text
*.mdtext text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text
*.markdown text eol=lf
*.md text eol=lf
*.mdwn text eol=lf
*.mdown text eol=lf
*.mkd text eol=lf
*.mkdn text eol=lf
*.mdtxt text eol=lf
*.mdtext text eol=lf
*.txt text eol=lf
AUTHORS text eol=lf
CHANGELOG text eol=lf
CHANGES text eol=lf
CONTRIBUTING text eol=lf
COPYING text eol=lf
INSTALL text eol=lf
license text eol=lf
LICENSE text eol=lf
NEWS text eol=lf
readme text eol=lf
*README* text eol=lf
TODO text eol=lf
GRAPHICS
*.ai binary
@@ -82,7 +83,7 @@ GRAPHICS
*.png binary
*.psb binary
*.psd binary
*.svg text
*.svg text eol=lf
*.svgz binary
*.tif binary
*.tiff binary

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

@@ -1,46 +0,0 @@
{
"structure": {
"summary": "_summary.md"
},
"plugins" : [
"edit-link",
"forkmegithub",
"hints",
"page-toc",
"terminal",
"toolbar",
"bulk-redirect"
],
"pluginsConfig": {
"edit-link": {
"base": "https://github.com/qmk/qmk_firmware/edit/master/docs",
"label": "Suggest an edit"
},
"forkmegithub": {
"color": "red",
"url": "https://github.com/qmk/qmk_firmware"
},
"page-toc": {
"selector": ".markdown-section h1, .markdown-section h2"
},
"terminal": {
"copyButtons": true,
"fade": false,
"style": "flat"
},
"toolbar": {
"buttons": [
{
"label": "QMK Firmware",
"icon": "fa fa-github",
"url": "https://github.com/qmk/qmk_firmware"
}
]
},
"bulk-redirect": {
"basepath": "/",
"redirectsFile": "docs/redirects.json"
}
},
"root": "./docs/"
}

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

@@ -1,9 +1,4 @@
- Translations
- [:uk: English](/)
- [:cn: 简体中文](/zh-cn/)
- [:es: Español](/es/)
- [:fr: Français](/fr-fr/)
- [:israel: עברית](/he-il/)
- [:brazil: Português](/pt-br/)
- [:ru: Русский](/ru-ru/)
- [:jp: 日本語](/ja/)

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

@@ -1,32 +0,0 @@
# Quantum Mechanical Keyboard Firmware
[![Aktuelle Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## Was ist QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](https://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nützlichen Zusatzfunktionen für Atmel AVR-Prozessoren. Ursprünglich wurde sie für Produkte von [OLKB](https://olkb.com), das [ErgoDox EZ](https://www.ergodox-ez.com) und das [Clueboard](https://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](https://chibios.org) auch für die ARM-Architektur angepasst. Außerdem ist es inzwischen möglich, auch handverdrahtete Tastaturen und selbst geätzte PCBs mit QMK zu verwenden.
## Bezugsquelle für QMK
Wenn Du vorhast, deine Tastatur, Tastaturbelegung oder Features zu QMK beizusteuern, geht das am einfachsten, indem Du das [Repository auf GitHub](https://github.com/qmk/qmk_firmware#fork-destination-box) forkst, die Änderungen in deinem lokalen Repo vornimmst und anschließend einen [Pull Request](https://github.com/qmk/qmk_firmware/pulls) einreichst.
Ansonsten kannst Du es als [zip](https://github.com/qmk/qmk_firmware/zipball/master) oder [tar](https://github.com/qmk/qmk_firmware/tarball/master) herunterladen, oder es direkt via git klonen (`git clone git@github.com:qmk/qmk_firmware.git` bzw. `git clone https://github.com/qmk/qmk_firmware.git`).
## Anleitung fürs Kompilieren
Bevor Du in der Lage bist, die Firmware zu kompilieren, musst Du eine [Entwicklungsumgebung](de/getting_started_build_tools.md) für AVR und/oder ARM aufsetzen. Danach kannst Du mit dem `make` Befehl eine Keymap für deine Tastatur erzeugen. Die Notation dafür ist:
make planck/rev4:default
Dies generiert die Revision `rev4` für eine Tastatur vom Type `planck` mit der `default` Tastaturbelegung. Nicht alle Tastaturen haben Revisionen (auch bekannt als Subprojekt oder Unterordner) weswegen dies auch ausgelassen werden kann:
make preonic:default
## Möglichkeiten der Anpassung
QMK hat viele [Features](de/features.md), die es zu entdecken gibt. In der [Dokumentation](https://docs.qmk.fmk) kannst Du Dir einen Überblick verschaffen. Die meisten Features basieren darauf, die [Tastaturbelegung](de/keymap.md) anzupassen und das Verhalten der [Keycodes](de/keycodes.md) zu verändern.

View File

@@ -1,122 +0,0 @@
* [Anleitung für Anfänger](de/newbs.md)
* [Erste Schritte](de/newbs_getting_started.md)
* [Die erste Firmware](de/newbs_building_firmware.md)
* [Firmware flashen](de/newbs_flashing.md)
* [Testen und Debuggen](de/newbs_testing_debugging.md)
* [Git Tips und Tricks](de/newbs_best_practices.md)
* [Hilfreiche Ressourcen](de/newbs_learn_more_resources.md)
* [QMK Basics](de/README.md)
* [QMK Einführung](de/getting_started_introduction.md)
* [QMK CLI](de/cli.md)
* [QMK CLI Konfiguration](de/cli_configuration.md)
* [Zu QMK beitragen](de/contributing.md)
* [Anleitung für GitHub](de/getting_started_github.md)
* [Nach Hilfe fragen](de/getting_started_getting_help.md)
* [Breaking Changes](de/breaking_changes.md)
* [2019 Aug 30](de/ChangeLog/20190830.md)
* [FAQ](de/faq.md)
* [Häufige Fragen](de/faq_general.md)
* [Build/Kompilieren](de/faq_build.md)
* [Debugging/Troubleshooting](de/faq_debug.md)
* [Keymap](de/faq_keymap.md)
* [Treiber Installation mit Zadig](de/driver_installation_zadig.md)
* Detailierte Guides
* [Build Tools installieren](de/getting_started_build_tools.md)
* [Vagrant Guide](de/getting_started_vagrant.md)
* [Build/Compile Anleitung](de/getting_started_make_guide.md)
* [Firmware flashen](de/flashing.md)
* [Funktionalität anpassen](de/custom_quantum_functions.md)
* [Keymap Überblick](de/keymap.md)
* [Hardware](de/hardware.md)
* [AVR Prozessoren](de/hardware_avr.md)
* [Treiber](de/hardware_drivers.md)
* Referenz
* [Tastatur Richtlinien](de/hardware_keyboard_guidelines.md)
* [Konfigurations Optionen](de/config_options.md)
* [Keycodes](de/keycodes.md)
* [Coding Konventionen - C](de/coding_conventions_c.md)
* [Coding Konventionen - Python](de/coding_conventions_python.md)
* [Dokumentations Best Practices](de/documentation_best_practices.md)
* [Dokumentations Templates](de/documentation_templates.md)
* [Glossar](de/reference_glossary.md)
* [Unit Testing](de/unit_testing.md)
* [Nützliche Funktionen](de/ref_functions.md)
* [Configurator Support](de/reference_configurator_support.md)
* [info.json Format](de/reference_info_json.md)
* [Python CLI Development](de/cli_development.md)
* [Features](de/features.md)
* [Basic Keycodes](de/keycodes_basic.md)
* [US ANSI Shifted Keys](de/keycodes_us_ansi_shifted.md)
* [Quantum Keycodes](de/quantum_keycodes.md)
* [Advanced Keycodes](de/feature_advanced_keycodes.md)
* [Audio](de/feature_audio.md)
* [Auto Shift](de/feature_auto_shift.md)
* [Backlight](de/feature_backlight.md)
* [Bluetooth](de/feature_bluetooth.md)
* [Bootmagic](de/feature_bootmagic.md)
* [Combos](de/feature_combo.md)
* [Command](de/feature_command.md)
* [Debounce API](de/feature_debounce_type.md)
* [DIP Switch](de/feature_dip_switch.md)
* [Dynamic Macros](de/feature_dynamic_macros.md)
* [Encoders](de/feature_encoders.md)
* [Grave Escape](de/feature_grave_esc.md)
* [Haptic Feedback](de/feature_haptic_feedback.md)
* [HD44780 LCD Controller](de/feature_hd44780.md)
* [Key Lock](de/feature_key_lock.md)
* [Layouts](de/feature_layouts.md)
* [Leader Key](de/feature_leader_key.md)
* [LED Matrix](de/feature_led_matrix.md)
* [Macros](de/feature_macros.md)
* [Mouse Keys](de/feature_mouse_keys.md)
* [OLED Driver](de/feature_oled_driver.md)
* [One Shot Keys](de/one_shot_keys.md)
* [Pointing Device](de/feature_pointing_device.md)
* [PS/2 Mouse](de/feature_ps2_mouse.md)
* [RGB Lighting](de/feature_rgblight.md)
* [RGB Matrix](de/feature_rgb_matrix.md)
* [Space Cadet](de/feature_space_cadet.md)
* [Split Keyboard](de/feature_split_keyboard.md)
* [Stenography](de/feature_stenography.md)
* [Swap Hands](de/feature_swap_hands.md)
* [Tap Dance](de/feature_tap_dance.md)
* [Terminal](de/feature_terminal.md)
* [Thermal Printer](de/feature_thermal_printer.md)
* [Unicode](de/feature_unicode.md)
* [Userspace](de/feature_userspace.md)
* [Velocikey](de/feature_velocikey.md)
* Für Maker und Modder
* [Hand Wiring Guide](de/hand_wire.md)
* [ISP Flashing Guide](de/isp_flashing_guide.md)
* [ARM Debugging Guide](de/arm_debugging.md)
* [I2C Driver](de/i2c_driver.md)
* [SPI Driver](de/spi_driver.md)
* [GPIO Controls](de/internals_gpio_control.md)
* [Proton C Conversion](de/proton_c_conversion.md)
* Für ein tieferes Verständnis
* [Wie Tastaturen funktionieren](de/how_keyboards_work.md)
* [QMK verstehen](de/understanding_qmk.md)
* Andere Themen
* [Eclipse mit QMK](de/other_eclipse.md)
* [VSCode mit QMK](de/other_vscode.md)
* [Support](de/getting_started_getting_help.md)
* [Übersetzungen](de/translating.md)
* QMK Internals (In Progress)
* [Defines](de/internals_defines.md)
* [Input Callback Reg](de/internals_input_callback_reg.md)
* [Midi Device](de/internals_midi_device.md)
* [Midi Device Setup Process](de/internals_midi_device_setup_process.md)
* [Midi Util](de/internals_midi_util.md)
* [Send Functions](de/internals_send_functions.md)
* [Sysex Tools](de/internals_sysex_tools.md)

View File

@@ -1,150 +0,0 @@
# QMK CLI (Kommandozeile)
Diese Seite beschreibt die Einrichtung und den Umgang mit dem QMK CLI (Kommandozeile).
# Übersicht
Die QMK CLI vereinfacht das Zusammenbauen und Arbeiten mit QMK Tastaturen. Hier findest Du wichtige Befehle, um beispielsweise das Herunterladen und Kompilieren der QMK Firmware oder das Erstellen von Tastaturbelegungen (und vieles mehr) zu erleichtern.
* [Globale CLI](#globale-cli)
* [Lokale CLI](#lokale-cli)
* [CLI-Befehle](#cli-befehle)
# System-Anforderungen
Die CLI benötigt Python 3.5 oder höher. Außerdem ist es nötig, die Packages laut [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) zu installieren.
# Globale CLI
QMK bietet ein installierbares CLI, das Du zum Einrichten Deiner QMK Build-Umgebung verwenden kannst. Dieses ermöglicht Dir das Arbeiten mit QMK, und erleichtert das Arbeiten mit mehreren Kopien der `qmk_firmware`. Wir empfehlen, dieses CLI zu installieren und regelmäßig upzudaten.
## Installation mit Homebrew (macOS, manche Linux)
Solltest Du [Homebrew](https://brew.sh) installiert haben, kannst Du QMK per tap installieren:
```
brew tap qmk/qmk
brew install qmk
export QMK_HOME='~/qmk_firmware' # Optional: setzt den Installationsort für `qmk_firmware`
qmk setup # Dies klont `qmk/qmk_firmware` und richtet optional auch Deine Build-Umgebung ein
```
## Installation mit easy_install oder pip
Falls Du kein Homebrew hast, kannst Du QMK auch manuell installieren. Zuerst musst Du sicherstellen, dass Python 3.5 (oder höher) und pip installiert ist. Dann installiere QMK mit diesem Befehl:
```
pip3 install qmk
export QMK_HOME='~/qmk_firmware' # Optional: setzt den Installationsort für `qmk_firmware`
qmk setup # Dies klont `qmk/qmk_firmware` und richtet optional auch Deine Build-Umgebung ein
```
## Installation mit git Repo
`git clone https://github.com/qmk/qmk_cli.git && cd qmk_cli && python3 setup.py install`
## Packaging für andere Betriebssysteme
Wir suchen nach Freiwilligen, die ein `qmk`-Package für weitere Betriebssysteme erstellen und pflegen. Falls Du ein Package für Dein OS erstellen möchtest, bitte befolge diese Richtlinien:
* Verwende "Best Practices" für Dein OS, sollten sie mit diesen Richtlinien in Konflikt stehen.
* Dokumentiere den Grund in einem Kommentar, wenn Du abweichen musstest.
* Installiere mit einem [virtualenv](https://virtualenv.pypa.io/en/latest/).
* Weise den User an, die Umgebungs-Variable `QMK_HOME` zu setzen, um die Firmware-Quelle anders einzustellen als `~/qmk_firmware`.
# CLI-Befehle
## `qmk compile`
Dieser Befehl erlaubt es dir, die Firmware - aus egal welchem Datei-Verzeichnis - zu compilen. Du kannst JSON-Exporte von <https://config.qmk.fm> oder Keymaps in der Repo kompilen.
**Anwendung für Konfigurations-Exports**:
```
qmk compile <configuratorExport.json>
```
**Anwendung für Keymaps**:
```
qmk compile -kb <keyboard_name> -km <keymap_name>
```
## `qmk format-c`
Dieser Befehl formatiert C-Code im clang-Format. Benutze ihn ohne Argumente, um den core-Code zu formatieren, oder benutze Namen von Dateien in der CLI, um den Befehl auf bestimmte Dateien anzuwenden.
**Anwendung**:
```
qmk format-c [file1] [file2] [...] [fileN]
```
## `qmk config`
Dieser Befehl konfiguriert das Verhalten von QMK. Für die volle `qmk config`-Dokumentation gehe zu [CLI-Konfiguration](cli_configuration.md).
**Anwendung**:
```
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
## `qmk docs`
Dieser Befehl startet einen lokalen HTTP-Server, den Du zum Browsen oder Verbessern der Dokumentation verwenden kannst. Der Default-Port ist 8936.
**Anwendung**:
```
qmk docs [-p PORT]
```
## `qmk doctor`
Dieser Befehl untersucht Deine Umgebung und warnt Dich vor potentiellen Build- oder Flash-Problemen.
**Anwendung**:
```
qmk doctor
```
## `qmk list-keyboards`
Dieser Befehl listet alle zurzeit in `qmk_firmware` definierten Tastaturen/Keyboards auf.
**Anwendung**:
```
qmk list-keyboards
```
## `qmk new-keymap`
Dieser Befehl erstellt eine neue Keymap basierend auf einer existierenden Standard-Keymap eines bestimmten Keyboards.
**Anwendung**:
```
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk format-py`
Dieser Befehl formatiert Python-Code in `qmk_firmware`.
**Anwendung**:
```
qmk format-py
```
## `qmk pytest`
Dieser Befehl führt die Python Test Suite aus. Wenn Du Python-Code veränderst, solltest Du sicherstellen, dass der Test erfolgreich ausgeführt wurde.
**Anwendung**:
```
qmk pytest
```

View File

@@ -1,47 +0,0 @@
# Bootloader Treiber Installation mit Zadig
QMK erscheint für den Host als normales HID Eingabegerät und benötigt deshalb keine zusätzlichen Treiber. Der Bootloader, den Du für das Flashen der Firmware benötigst, jedoch meistens schon.
Hierzu gibt es zwei Ausnahmen: den Caterina Bootloader, meistens auf Pro Micros, sowie den HalfKay Bootloader auf PJRC Teensys. Diese erscheinen als serieller Port und als generisches HID Gerät und benötigen keine Treiber.
Wir empfehlen deshalb [Zadig](https://zadig.akeo.ie/). Wenn Du die Entwicklungsumgebung mit MSYS2 oder WSL installiert hast, wird dich dass `qmk_install.sh` Skript gefragt haben, ob es die Treiber für dich installieren sollte.
## Installation
Versetze deine Tastatur in den Bootloader-Modus, entweder durch Betätigung des physischen `RESET` Schalters - meist auf der Unterseite der Platine - oder durch das Auslösen des Key-Codes `RESET` bzw. `KC_RESET` (sollte in der zur Tastatur gehörigen `keycode.c` zu entnehmen sein). Sollte deine Tastatur weder noch besitzen, versuche es damit die `Escape`-Taste oder `Leertaste + B` zu halten während Du die Tastatur mit dem PC verbindest (Siehe auch [Bootmagic](de/feature_bootmagic.md) für weitere Details). Ein paar Tastaturen benutzen das [Command](de/feature_command.md)-Feature an Stelle von Bootmagic; in diesem Fall kannst du mit den Tastenkombinationen `linkes Shift + rechtes Shift + B` oder `linkes Shift + rechtes Shift + Escape` zu jeder Zeit in den Bootloader wechseln solange die Tastatur verbunden ist.
Eingie Tastaturen haben u.U. spezielle Anweisungen um in den Bootloader-Modus zu gelangen. Zum Beispiel kann die [Bootmagic-Lite](de/feature_bootmagic.md#bootmagic-lite)-Taste (default: Escape) auf eine andere Taste gemappt sein; oder die magische Kombination (default: linkes Shift+rechtes Shift) verwendet anstatt Shift die STRG-Tasten. Die zur Tastatur gehörige README sollte dir Aufschluss darüber geben wie der Bootloader-Modus ausgelöst werden kann wenn Du unsicher bist.
Um ein Gerät mit USBaspLoader in den Bootloader-Modus zu versetzen, halte `BOOT` gedrückt während Du den `RESET`-Knopf drückst.
Alternativ, halte `BOOT` gedrückt während Du das USB-Kabel einsteckst.
Zadig sollte das Bootloader-Gerät automatisch erkennen. Manchmal musst Du zusätzlich noch **Options → List All Devices** auswählen.
- Tastaturen mit Atmel AVR MCUs sollten als `ATm32U4DFU` (oder ähnlich) angezeigt werden, mit der Vendor ID `03EB`.
- USBasp werden als `USBasp` angezeigt, mit VID/PID `16C0:05DC`.
- Tastaturen AVR controller und dem QMK-DFU Bootloader haben den namen `<Tastatur Name> Bootloader` und die VID `03EB`.
- Die meisten ARM Tastaturen werden als `STM32 BOOTLOADER` angezeigt, mit VID/PID `0483:DF11`.
!> Sollte Zadig ein oder mehrere Geräte mit `HidUsb`-Treiber anzeigen, dann ist deine Tastatur wahrscheinlich nicht im Bootloader-Modus. Der Pfeil wird orange eingefärbt sein und Du wirst nach einer Bestätigung gefragt um Veränderungen am System vorzunehmen. In diesem Fall **fahre nicht fort**!
Wenn der Pfeil grün angezeigt wird, wähle den Treiber aus und klicke auf **Treiber installieren**. Der `libusb-win32`-Treiber sollte gewöhnlich für AVR verwendet werden und `WinUSB` für ARM. Sollte es danach noch nicht möglich sein die Tastatur zu flashen, versuche es mit einem anderen Treiber. Für USBaspLoader Geräte, die über die Befehlszeile mit MSYS2 geflasht werden, wird der `libusbk`-Treiber empfohlen. Ansonsten sollte `libusb-win32` funktionieren wenn die QMK Toolbox verwendet wird.
![Zadig mit Bootloader-Treiber korrekt installiert](https://i.imgur.com/b8VgXzx.png)
Entferne nun deine Tastatur und verbinde sie erneut um sicherzugehen dass der neue Treiber erfolgreich installiert wurde. Wenn Du QMK Toolbox benutzt, starte die Anwendung zur Sicherheit einmal neu, da Veränderungen am Treiber manchmal nicht richtig erkannt werden. Wenn dies immer noch nicht erfolgreich war hilft es an dieser Stelle manchmal ein Neustart des Computers.
## Wiederherstellung einer Installation für ein falsches Gerät
Wenn Du feststellst dass Du anschließend auf deiner Tastatur nicht mehr tippen kannst, ist etwas bei der Installation schief gelaufen. Ein häufiger Fehler ist es dass die Tastatur nicht im Bootloader-Modus war und stattdessen der Treiber für das HID-Gerät ersetzt wurde. Dies kannst Du einfach mit Zadig überprüfen, eine funktionierende Tastatur verwendet als Treiber `HidUsb` auf allen Interfaces .
![Eine funktionierende Tastatur aus Zadigs Sicht](https://i.imgur.com/Hx0E5kC.png)
Öffne den Geräte-Manager und suche nach einem Gerät das wie deine Tastatur aussieht.
![Die Tastatur mit dem falschen Treiber installiert, im Geräte-Manager](https://i.imgur.com/L3wvX8f.png)
Rechtsklick und **Gerät deinstallieren** anklicken. Bitte gehe sicher dass in diesem Schritt auch **Treibersoftware für dieses Gerät löschen** markiert ist.
![Der "Gerät deinstallieren"-Dialog, mit "Treibersoftware für dieses Gerät entfernen" markiert](https://i.imgur.com/aEs2RuA.png)
Klick **Aktion → Suche nach veränderter Hardware**. Nun solltest Du wieder in der Lage sein normal zu tippen. Vergewissere dich mit Hilfe von Zadig dass die Tastatur nun `HidUsb` als Treiber verwendet. Wenn dies der Fall ist sollte wieder alles funktionieren.

View File

@@ -1,22 +0,0 @@
# Anleitung für absolute Beginner
QMK ist eine mächtige Open Source Firmware für mechanische Tastaturen. Mit QMK kannst Du deine Tastatur sowohl sehr einfach als auch sehr umfangreich anpassen. Menschen unterschiedlichen Wissensstandes - vom kompletten Anfänger bis zum erfahrenen Programmierer - haben ihre Tastaturen mit QMK erfolgreich auf ihre persönlichen Bedürfnisse angepasst. Diese Anleitung soll Dir unabhängig von deinen Vorkenntnissen dabei helfen dies ebenfalls zu bewältigen.
Bist Du unsicher ob deine Tastatur QMK unterstützt? Wenn es eine mechanische Tastatur ist, die Du selbst gebaut hast, stehen deine Chancen gut. Wir unterstützen eine [Vielzahl](https://qmk.fm/keyboards/) selbst gebauter Tastaturen, sodass selbst wenn deine jetzige Tastatur nicht unterstützt wird Du keine Probleme haben solltest eine für deine Anforderungen zu finden.
## Übersicht
Diese Anleitung ist in 7 Abschnitte unterteilt:
* [Die ersten Schritte](newbs_getting_started.md)
* [Die erste Firmware auf der Kommandozeile erzeugen](newbs_building_firmware.md)
* [Die erste Firmware mit der Online GUI erzeugen](newbs_building_firmware_configurator.md)
* [Firmware flashen](newbs_flashing.md)
* [Testen und Debuggen](newbs_testing_debugging.md)
* [Git Leitfaden](newbs_best_practices.md)
* [Weitere hilfreiche Ressourcen für Anfänger](newbs_learn_more_resources.md)
Diese Anleitung richtet sich an Personen, die vorher noch nie Software kompiliert haben. Die Entscheidungen und Empfehlungen basieren auf dieser Grundannahme. Es gibt unterschiedliche Herangehensweisen für viele der Prozeduren und wir unterstützen die meisten Alternativen. Wenn Du mal nicht weiter weißt oder Dir nicht sicher bist, wie Du an ein Problem herangehen sollst, kannst Du uns gerne [um Hilfe bitten](getting_started_getting_help.md).
## Weitere Ressourcen
* [Thomas Baart's QMK Basics Blog](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk/qmk-basics/) Ein äußerst hilfreicher Blog eines Community-Mitglieds, der einige Grundlagen der QMK-Firmware aus der Sicht des Benutzers erklärt (auf Englisch).

View File

@@ -1,78 +0,0 @@
# Eine eigene Firmware erstellen
Nachdem Du nun eine funktionierende Entwicklungsumgebung aufgesetzt hast, bist Du nun bereit, deine eigene Firmware zu erstellen. Dieses Sektion des Guides wird zwischen drei Programmen hin- und herwechseln: deinem Dateimanager, deinem Texteditor und der Befehlszeile. Lasse diese drei Fenster geöffnet, bis Du fertig und zufrieden mit deiner Tastatur-Firmware bist.
Solltest Du die Befehlszeile zwischenzeitlich geschlossen haben, vergiss nicht wieder in das richtige Verzeichnis zu navigieren, benutze dazu den Befehl `cd qmk_firmware`.
## Navigiere in deinen Keymap Ordner
Beginne damit, in das `keymaps` Verzeichnis für deine Tastatur zu navigieren.
Wenn Du macOS oder Windows benutzt, kannst Du einfach in das keymaps Verzeichnis wechseln.
?> macOS:<br>
open keyboards/<keyboard_folder>/keymaps
?> Windows:<br>
start .\\keyboards\\<keyboard_folder>\\keymaps
## Eine Kopie der `default` Tastaturbelegung erstellen
Wenn Du den `keymaps` Ordner geöffnet hast, solltest Du zuerst eine Kopie des `default` Verzeichnisses erstellen. Wir empfehlen dafür deinen GitHub Benutzernamen zu verweden, aber Du kannst auch jeden anderen Namen verwenden solange er nur aus Kleinbuchstaben, Zahlen und Unterstrichen besteht.
Um den Prozess zu automatisieren kannst Du dazu auch das Skript `new_keymap.sh` verwenden.
Navigiere dazu in das `qmk_firmware/util` Verzeichnis und gib folgenden Befehl ein:
```
./new_keymap.sh <keyboard path> <username>
```
Um zum Beispiel den Benutzernamen John für die Tastaturbelegung eines 1up60hse zu verwenden, würdest Du Folgendes eingeben:
```
./new_keymap.sh 1upkeyboards/1up60hse john
```
## Öffne `keymap.c` in deinem bevorzugtem Text Editor
Öffne deine `keymap.c`. In dieser Datei findest Du die Strukturen, die das Verhalten deiner Tastatur bestimmen. Oben in der `keymap.c` befinden sich Definitionen (defines) und Aufzählungen (enums), die die Tastaturbelegung leserlicher machen sollen. Weiter unten wirst Du eine Zeile finden, die wie folgt aussieht:
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
Diese Zeile markiert den Anfang der Liste der Ebenen (Layers). Darunter befinden sich Zeilen die entweder `LAYOUT` oder `KEYMAP` enthalten, das deutet auf den Start einer Ebene hin. Danach folgt eine Liste von Tasten, die dieser Ebene zugewiesen sind.
!> Beim Bearbeiten einer Tastaturbelegung solltest Du darauf achten, keine Kommata hinzuzufügen oder zu entfernen. Ansonsten kann dies dazu führen, dass deine Firmware nicht mehr kompiliert und es ist nicht immer einfach festzustellen, wo genau ein Komma zuviel oder zu wenig ist. Die letzte Zeile hat am Ende kein Komma, die Zeilen davor jedoch schon.
## Personalisiere die Tastaturbelegung nach deinen Wünschen
Wie Du diesen Schritt abschließt ist vollkommen Dir überlassen. Ändere die eine Sache die Dich stört oder verändere alles von Grund auf. Du kannst Ebenen entfernen die Du nicht brauchst oder Neue hinzufügen, bis zu 32 Stück. Die folgende Dokumentation verrät Dir was Du hier alles definieren kannst:
* [Keycodes](de/keycodes.md)
* [Features](de/features.md)
* [FAQ](de/faq.md)
?> Während Du langsam ein Gefühl dafür kriegst wie Keymaps funktionieren, solltest Du darauf achten nicht zuviel auf einmal zu verändern. Größere Änderungen machen es schwieriger, Probleme zu debuggen.
## Deine Firmware erzeugen
Wenn Du damit fertig bist, deine Tastaturbelegung anzupassen, musst Du noch die Firmware erzeugen. Öffne dazu wieder die Befehlszeile und führe folgenden Befehl aus:
make <my_keyboard>:<my_keymap>
Wenn deine Tastaturbelegung z.B. "xyverz" heißt und Du die Belegung für ein rev5 planck erzeugen möchtest, lautet der Befehl:
make planck/rev5:xyverz
Während des Kompiliervorgangs wird viel Text auf dem Bildschirm ausgegeben. Es sollte am Ende mit etwas enden das ungefähr so aussieht:
```
Linking: .build/planck_rev5_xyverz.elf [OK]
Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
Checking file size of planck_rev5_xyverz.hex [OK]
* File size is fine - 18392/28672
```
## Deine Firmware flashen
Bitte fahre mit [Firmware flashen](de/newbs_flashing.md) fort, um zu erfahren, wie Du deine neue Firmware auf deine Tastatur flashen kannst.

View File

@@ -1,369 +0,0 @@
# Deine Tastatur flashen
Nachdem deine Firmware nun fertig ist musst Du Sie noch auf deine Tastatur flashen.
## Flash-Vorgang mit QMK Toolbox
Der einfachste Weg deine Tastatur zu flashen ist mit Hilfe der [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases)
Leider ist die QMK Toolbox derzeit nur für Windows und macOS verfügbar. Wenn Du Linux benutzt (oder es vorziehst die Firmware mit der Kommandozeile zu flashen) solltest Du die Methode benutzen die [hier](de/newbs_flashing.md#tastatur-mit-der-befehlszeile-flashen) beschrieben wird.
### Lade die Datei in QMK Toolbox
Beginne damit die Datei in der QMK Toolbox Anwendung zu laden. Versichere dich dass Du die Firmware-Datei im Finder oder Explorer findest. Deine Tastatur-Firmware sollte entweder vom Typ `.hex` oder `.bin` sein sein. QMK sollte die für deine Tastatur entsprechende Datei automatisch in das Root-Verzeichnis (normalerweise `qmk_firmware`) kopieren.
?> Wenn Du Windows oder macOS benutzt kannst Du mit folgenden Befehlen ganz einfach das aktuelle Firmware-Verzeichnis im Explorer oder Finder öffnen.
#### Windows:
``` start . ```
#### macOS:
``` open . ```
Die Firmware-Dateien folgen dabei immer folgendem Schema:
<meine_Tastatur>_<meine_Tastaturbelegung>.{bin,hex}
Zum Beispiel würde ein `planck/rev5` mit der `default` Tastaturbelegung folgenden Dateinamen haben:
planck_rev5_default.hex
Wenn Du die Firmware-Datei gefunden hast kannst Du sie in das "Local file" ("Lokale Datei") Feld in der QMK Toolbox ziehen, alternativ kannst Du auf "Öffnen" klicken und in das Verzeichnis navigieren indem sich die Firmware-Datei befindet.
### Die Tastatur in den DFU (Bootloader) Modus versetzen
Um deine angepasste Firmware auf deine Tastatur zu flashen musst Du diese erst in einen speziellen "flashing"-Modus versetzen. Während die Tastatur in diesem Modus ist kannst Du nicht auf ihr tippen oder sie wie gewohnt als Tastatur benutzen. Es ist wichtig dass der flashing-Prozesses nicht unterbrochen oder die Tastatur ausstöpselst wird, da der Vorgang ansonst wiederholt werden muss.
Verschiedene Tastaturen verwenden unterschiedliche Methoden um in den Bootloader-Modus zu gelangen. Wenn dein PCB im Moment QMK oder TMK verwendet und Du keine spezifischen Anweisungen erhalten hast probiere die folgenden Methoden in dieser Reihenfolge:
* Halte beide Shift-Tasten und drücke `Pause`
* Halte beide Shift-Tasten und drücke `B`
* Entferne deine Tastatur vom Computer, drücke gleichzeitig `Leertaste` und `B`, verbinde die Tastatur wieder mit dem Computer und warte eine Sekunde bevor Du die Tasten wieder loslässt.
* Drücke den physischen `RESET`-Knopf auf der Unterseite des PCBs
* Suche auf dem PCB den Pin mit dem Label `RESET`, verbinde diesen mit deinem GND-Pin
* Suche auf dem PCB den Pin mit dem Label `BOOT0`, verbinde diesen mit GND und schließe die Tastatur wieder an den PC an TODO: DIS IS DANGEROUS!!
Wenn Du damit erfolgreich warst solltest Du in der QMK Toolbox eine Nachricht sehen die ungefähr so aussieht:
```
*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
*** DFU device connected
```
### Tastatur flashen
Klicke auf den `Flash`-Knopf in der QMK Toolbox. Die Ausgabe wird ungefähr so aussehen:
```
*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
*** DFU device connected
*** Attempting to flash, please don't remove device
>>> dfu-programmer atmega32u4 erase --force
Erasing flash... Success
Checking memory from 0x0 to 0x6FFF... Empty.
>>> dfu-programmer atmega32u4 flash qmk_firmware/clueboard_66_hotswap_skully.hex
Checking memory from 0x0 to 0x55FF... Empty.
0% 100% Programming 0x5600 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x5600 bytes written into 0x7000 bytes memory (76.79%).
>>> dfu-programmer atmega32u4 reset
*** DFU device disconnected
*** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390
```
## Tastatur mit der Befehlszeile flashen
Zunächst solltest Du versuchen herauszufinden welchen Bootlader deine Tastatur benutzt. Diese vier Bootloader sind am Weitesten verbreitet:
| MCU | Bootloader |
| --- | --- |
| Pro-Micro und Klone | CATERINA |
| Teensy | Halfkay |
| OLKB Boards | QMK-DFU |
| sonstige atmega32u4 | DFU |
Auf der Seite [Flash Anleitung und Bootloader Informationen](de/flashing.md) kannst Du mehr über das Thema erfahren.
Wenn Du weißt welchen Bootloader deine Tastaur verwendet, kannst Du diese Information bei der Kompilation hinzufügen um den Flash-Vorgang mit dem `make`-Befehl zu automatisieren.
```rules.mk
...
BOOTLOADER = caterina
...
```
### DFU
Wenn Du den DFU-Bootloader verwendest und Du bereit bist deine Firmware zu kompilieren und zu flashen, öffne ein Befehlszeile und führe folgenden Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:dfu
Wenn deine Tastaturbelegung z.B den Namen "xzverz" trägt und Du ein rev5 planck flashen möchtest sähe der Befehl wie folgt aus:
make planck/rev5:xyverz:dfu
Nachdem der Vorgang abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/planck_rev5_xyverz.elf [OK]
Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
Checking file size of planck_rev5_xyverz.hex
* File size is fine - 18574/28672
```
Wenn dieser Punkt erreicht ist wird das Build-Skript alle 5 Sekunden nach einem DFU Bootloader suchen. Dieser Vorgang wird wiederholt bis er erfolgreich ist oder abgebrochen wird.
dfu-programmer: no device present.
Error: Bootloader not found. Trying again in 5s.
Wenn diese Nachricht erscheint konnte das Build-Skript den Controller nicht eigenständig in den DFU Modus versetzen (z.B. weil der Modus in rules.mk falsch gesetzt wurde oder ein Problem mit der Hardware besteht), wenn dies eintritt musst Du die oben beschrieben Schritte benutzen um den Controller in den DFU Modus zu versetzen. Danach sollte die Ausgabe ungefähr so aussehen:
```
*** Attempting to flash, please don't remove device
>>> dfu-programmer atmega32u4 erase --force
Erasing flash... Success
Checking memory from 0x0 to 0x6FFF... Empty.
>>> dfu-programmer atmega32u4 flash qmk_firmware/clueboard_66_hotswap_skully.hex
Checking memory from 0x0 to 0x55FF... Empty.
0% 100% Programming 0x5600 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x5600 bytes written into 0x7000 bytes memory (76.79%).
>>> dfu-programmer atmega32u4 reset
```
?> Wenn Du mit diesem Schritt Probleme hast (z.B. `dfu-programmer: no device present`) hilft dir hoffentlich der Abschnitt [Häufig gestellte Fragen (Build/Kompilieren)](de/faq_build.md).
#### DFU Befehle
Es gibt verschiedene DFU Befehle um die Firmware auf ein DFU Gerät zu flashen:
* `:dfu` - Dies ist die default Option. Es wird gecheckt ob ein DFU Gerät verfügbar ist, ist dies der Fall wird die Firmware geflasht. Dieser Check wird alle 5 Sekunden ausgeführt bis ein DFU Gerät erkannt wird.
* `:dfu-ee` - Der Flash-Vorgang benutzt eine `.eep` Datei anstatt einer `.hex` Datei. Dies ist eher unüblich.
* `:dfu-split-left` - Dies flasht die Firmware wie gewohnt (`:dfu`). Allerdings nur die "linke Seite" der EEPROM für geteilte Tastaturen. _Dies ist ideal für auf Elite C basierenden geteilten Tastaturen._
* `:dfu-split-right` - Dies flasht die Firmware wie gewohnt (`:dfu`). Allerdings nur die "rechte Seite" der EEPROM für geteilte Tastaturen. _Dies ist ideal für auf Elite C basierenden geteilten Tastaturen._
### Caterina
Für Arduinos und andere ProMicro Klone (z.B. SparkFun ProMicro), wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:avrdude
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein "rev2 Lets Split" erzeugen möchtest, lautet der Befehl dafür:
make lets_split/rev2:xyverz:avrdude
Nachdem die Kompilation abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/lets_split_rev2_xyverz.elf [OK]
Creating load file for flashing: .build/lets_split_rev2_xyverz.hex [OK]
Checking file size of lets_split_rev2_xyverz.hex [OK]
* File size is fine - 27938/28672
Detecting USB port, reset your controller now..............
```
Nun wird die Tastatur automatisch zurückgesetzt und das Skript wird die Firmware flashen sobald es den Bootloader erkennt. Die Ausgabe sollte ungefähr so aussehen:
```
Detected controller on USB port at /dev/ttyS15
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9587 (probably m32u4)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "./.build/lets_split_rev2_xyverz.hex"
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
avrdude.exe: writing flash (27938 bytes):
Writing | ################################################## | 100% 2.40s
avrdude.exe: 27938 bytes of flash written
avrdude.exe: verifying flash memory against ./.build/lets_split_rev2_xyverz.hex:
avrdude.exe: load data flash data from input file ./.build/lets_split_rev2_xyverz.hex:
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex contains 27938 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 0.43s
avrdude.exe: verifying ...
avrdude.exe: 27938 bytes of flash verified
avrdude.exe: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude.exe done. Thank you.
```
Sollten dabei Probleme auftreten (z.B. "Zugriff verweigert" / "Permission denied") muss der Make-Befehl mit privilegierten Berechtigungen ausgeführt werden:
sudo make <meine_Tastatur>:<meine_Tastaturbelegung>:avrdude
Zusätzlich ist es möglich mehrere Tastaturen in einem Vorgang zu flashen:
make <keyboard>:<keymap>:avrdude-loop
Du kannst den Loop mit STRG + C unterbrechen sobald der Vorgang abgeschlossen ist. Die korrekte Tastenkombination kann abweichen und hängt vom Betriebssystem ab.
### HalfKay
Für Tastaturen mit PJRC Controllern (Teensy's), wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:teensy
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein Ergodox oder Ergodox EZ erzeugen möchtest, lautet der Befehl dafür:
make ergodox_ez:xyverz:teensy
Nachdem die Kompilation abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/ergodox_ez_xyverz.elf [OK]
Creating load file for flashing: .build/ergodox_ez_xyverz.hex [OK]
Checking file size of ergodox_ez_xyverz.hex [OK]
* File size is fine - 25584/32256
Teensy Loader, Command Line, Version 2.1
Read "./.build/ergodox_ez_xyverz.hex": 25584 bytes, 79.3% usage
Waiting for Teensy device...
(hint: press the reset button)
```
An diesem Punkt solltest Du die Tastatur zurücksetzen um den Flash-Vorgang auszulösen. Wenn dies abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Found HalfKay Bootloader
Read "./.build/ergodox_ez_xyverz.hex": 28532 bytes, 88.5% usage
Programming.............................................................
...................................................
Booting
```
### BootloadHID
Für auf Bootmapper Client(BMC)/bootloaderHID/ATmega32A basierende Tastaturen, wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:bootloaderHID
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein jj40 erzeugen möchtest, lautet der Befehl dafür:
make jj40:xyverz:bootloaderHID
Nachdem die Kompilation abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/jj40_default.elf [OK]
Creating load file for flashing: .build/jj40_default.hex [OK]
Copying jj40_default.hex to qmk_firmware folder [OK]
Checking file size of jj40_default.hex [OK]
* The firmware size is fine - 21920/28672 (6752 bytes free)
```
Wenn dieser Punkt erreicht ist wird das Build-Skript alle 5 Sekunden nach einem DFU Bootloader suchen. Dieser Vorgang wird wiederholt bis er erfolgreich ist oder abgebrochen wird.
```
Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
An diesem Punkt solltest Du die Tastatur zurücksetzen um den Flash-Vorgang auszulösen. Wenn dies abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Page size = 128 (0x80)
Device size = 32768 (0x8000); 30720 bytes remaining
Uploading 22016 (0x5600) bytes starting at 0 (0x0)
0x05580 ... 0x05600
```
### STM32 (ARM)
Für die meisten ARM Tastaturen (inkl. Proton C, Planck Rev 6 und Preonic Rev 3), wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:dfu-util
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein Planck Revision 6 erzeugen möchtest, benutze dafür den folgenden Befehl und reboote die Tastatur in den Bootloader (kurz bevor der Kompiliervorgang abgeschlossen ist):
make planck/rev6:xyverz:dfu-util
Nachdem der Kompiliervorgang abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
Für auf Bootmapper Client(BMC)/bootloaderHID/ATmega32A basierende Tastaturen, wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:bootloaderHID
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein jj40 erzeugen möchtest, lautet der Befehl dafür:
```
Linking: .build/planck_rev6_xyverz.elf [OK]
Creating binary load file for flashing: .build/planck_rev6_xyverz.bin [OK]
Creating load file for flashing: .build/planck_rev6_xyverz.hex [OK]
Size after:
text data bss dec hex filename
0 41820 0 41820 a35c .build/planck_rev6_xyverz.hex
Copying planck_rev6_xyverz.bin to qmk_firmware folder [OK]
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 41824
Download [=========================] 100% 41824 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
```
#### STM32 Befehle
Für Tastaturen mit STM32 Controller sind die DFU Befehle wie folgt:
* `:dfu-util` - The default command for flashing to STM32 devices.
* `:dfu-util` - Der Standard-Befehl für STM32 Geräte.
* `:dfu-util-wait` - Funktioniert wie der Standard-Befehl, aber mit einem 10 Sekunden Timeout bevor erneut versucht wird die Firmware zu flashen. Mit dem Parameter `TIME_DELAY=20` auf der Befehlszeile kann der Timeout beeinflusst werden.
* z.B.: `make <meine_Tastatur>:<meine_Tastaturbelegung>:dfu-util TIME_DELAY=5`
* `:dfu-util-split-left` - Gleiche Funktionsweise wie `dfu-util`, jedoch wird zusätzlich das EEPROM Setting "linke Seite" für geteilte Tastaturen gesetzt.
* `:dfu-util-split-right` - Gleiche Funktionsweise wie `dfu-util`, jedoch wird zusätzlich das EEPROM Setting "rechte Seite" für geteilte Tastaturen gesetzt.
## Probier's aus!
Herzlichen Glückwunsch! Deine individuell angepasst Firmware wurde auf deine Tastatur übertragen!
Probiere deine neue Tastatur aus und gehe sicher dass alles wie gewünscht funktioniert. Wir haben einen weiteren Artikel zum Thema [Testen und Debuggen](de/newbs_testing_debugging.md) verfasst der sich mit Problembeseitigung beschäftigt um den Beginnger-Guide abzuschließen.

View File

@@ -1,101 +0,0 @@
# Einleitung
Genau wie in einem Computer befindet sich auch in einer Tastatur ein Prozessor.
Dieser Prozessor führt Software aus, die registriert wenn Tasten gedrückt bzw. wieder losgelassen werden und leitet die entsprechenden Signale an den Computer weiter.
QMK übernimmt die Rolle dieser Software und teilt dem Host-Computer den aktuellen Zustand der Tastatur mit. Wenn Du eine Tastaturbelegung definierst, ist dies äquivalent zu einem ausführbarem Programm, das auf deiner Tastatur läuft.
QMK möchte seine BenutzerInnen in die Lage versetzen, simple Aufgaben möglichst einfach zu gestalten und gleichzeitig komplexe Dinge zu ermöglichen, die mit normalen Tastaturen ohne zusätzliche Software undenkbar wären. Du musst nicht programmieren können, um abgefahrene Tastaturbelegungen zu gestalten - es reicht wenn Du eine Idee hast und ein paar einfache syntaktische Regeln verstehen kannst.
# Los geht's!
Bevor Du damit loslegen kannst, deine Tastaturbelegung zu erstellen, musst Du ein wenig Software installieren und Dir eine Entwicklungsumgebung aufsetzen. Die gute Nachricht ist, dass das nur einmal erledigt werden muss, egal für wie viele verschiedene Tastaturen Du hinterher Firmware entwickeln willst.
Wenn Du es vorziehst mit einer grafischen Oberfläche zu entwickeln kannst Du auch dazu gerne direkt mit dem online [QMK Konfigurator](https://config.qmk.fm) loslegen. Siehe auch: [Firmware mit der Online GUI erzeugen](de/newbs_building_firmware_configurator.md)
## Software herunterladen
### Text Editor
Du wirst ein Programm benötigen, mit dem Du **plain text** (= reiner Text) Dateien bearbeiten und speichern kannst. Wenn Du Windows benutzt, reicht dafür schon das normale `Notepad` und für Linux z.B. `gedit` oder `leafpad`. Beide sind sehr rudimentäre Editoren deren Funktionsumfang aber vollkommen ausreicht. Für macOS' standard `TextEdit` muss man ein bisschen vorsichtig sein und darauf achten, beim Speichern explizit unter _Format_ die Option _Reiner Text_ auszuwählen.
Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der für die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](https://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/).
?> Immer noch unsicher, welcher Text Editor der Richtige für Dich ist? Laurence Bradford hat eine hervorragende [Einleitung](https://learntocodewith.me/programming/basics/text-editors/) zu dem Thema geschrieben (auf Englisch).
### QMK Toolbox
QMK Toolbox ist ein optionales grafisches Programm für Windows und macOS, das es erleichtern soll, deine Tastatur zu programmieren und zu debuggen. Du wirst es höchstwahrscheinlich früher oder später als unverzichtbar ansehen, wenn es darum geht eine Tastatur einfach zu flashen oder zu debuggen, da es ermöglicht, sich debug-Nachrichten direkt anzeigen zu lassen.
[Hier kannst Du die aktuelle Version herunterladen.](https://github.com/qmk/qmk_toolbox/releases/latest)
* Für Windows: `qmk_toolbox.exe` (portable) oder `qmk_toolbox_install.exe` (installer)
* Für macOS: `QMK.Toolbox.app.zip` (portable) oder `QMK.Toolbox.pkg` (installer)
## Die Entwicklungsumgebung aufsetzen
Wir haben versucht, die Installation der Entwicklungsumgebung für QMK so einfach wie möglich zu gestalten. Alles, was Du tun musst, ist eine Linux oder Unix Umgebung aufzusetzen, danach macht QMK den Rest.
?> Wenn Du das erste Mal mit der Linux/Unix Befehlszeile arbeitest, schadet es nicht, sich mit ein paar Grundlagen und Befehlen vertraut zu machen. Diese Ressourcen sollten ausreichen, um sich das Nötigste anzueignen um mit QMK arbeiten zu können:<br>
[Erforderliche Linux Grundlagen](https://www.guru99.com/must-know-linux-commands.html)<br>
[Noch ein paar Linux Befehle](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html)
### Windows
Du wirst MSYS2 (o.Ä.) und Git benötigen.
* Befolge die Installationsanleitung auf der [MSYS2 Homepage](https://www.msys2.org)
* Schließe alle offenen MSYS2 Fenster und öffne ein neues MSYS2 MinGW 64-bit Terminal
* Installiere Git mit dem Kommando: `pacman -S git`
### macOS
Du wirst Homebrew benötigen. Folge dafür den Anweisungen auf der [Homebrew homepage](https://brew.sh).
Nachdem Homebrew erfolgreich installiert ist, kannst Du mit _QMK aufsetzen_ fortfahren.
### Linux
Du benötigst Git, aber es ist ziemlich wahrscheinlich, dass es bereits installiert ist. Sollte dies nicht der Fall sein, kannst Du es mit dem folgenden Aufruf installieren:
* Debian / Ubuntu / Devuan: `apt-get install git`
* Fedora / Red Hat / CentOS: `yum install git`
* Arch Linux: `pacman -S git`
?> Docker ist ebenfalls eine Option für alle Plattformen. [Hier](de/getting_started_build_tools.md#docker) kannst Du dazu weitere Informationen finden.
## QMK aufsetzen
Wenn Du damit fertig bist, deine Linux/Unix Umgebung zu installieren, kannst Du damit fortfahren QMK herunterzuladen. Dafür werden wir mit Git das QMK Repository "klonen". Öffne ein Terminal oder ein MSYS2 MinGW Fenster, dies wirst Du für den Rest der Anleitung benötigen. In diesem Fenster rufst Du nun die beiden folgenden Kommandos auf:
```shell
git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
```
?> Wenn Du bereits weißt, [wie man GitHub benutzt](de/getting_started_github.md), empfehlen wir, dass Du Dir ein eigenen Fork erstellst. Wenn Du nicht weißt, was das bedeuten soll, kannst Du diesen Ratschlag getrost ignorieren.
QMK liefert ein Script mit, das helfen soll, Dir alles Weitere abzunehmen. Du kannst es mit dem folgenden Befehl aufrufen:
util/qmk_install.sh
## Die Build-Umgebung testen
Nun sollte hoffentlich alles Nötige für eine funktionierende QMK Build-Umgebung installiert sein und Du solltest in der Lage sein, die QMK-Firmware zu kompilieren. Um dies mit einer `default` Tastaturbelegung zu testen, kannst Du den folgenden Befehl ausprobieren:
make <keyboard>:default
Der Befehl um z.B. die Firmware für ein _Clueboard 66%_ zu erzeugen lautet:
make clueboard/66/rev3:default
Wenn es fertig ist, sollte der Output ungefähr so ähnlich wie das Folgende aussehen:
```
Linking: .build/clueboard_66_rev3_default.elf [OK]
Creating load file for flashing: .build/clueboard_66_rev3_default.hex [OK]
Copying clueboard_66_rev3_default.hex to qmk_firmware folder [OK]
Checking file size of clueboard_66_rev3_default.hex [OK]
* The firmware size is fine - 26356/28672 (2316 bytes free)
```
# Eine eigene Tastaturbelegung erstellen
Du bist nun fertig mit dem Setup der Entwicklungsumgebung und solltest somit in der Lage sein, deine eigenen Tastaturbelegungen zu erstellen. Um fortzufahren, folge bitte der nächsten Anleitung unter [Die erste Firmware](de/newbs_building_firmware.md).

View File

@@ -1,14 +0,0 @@
# Lernmaterial
Diese weiterführenden Ressourcen sind darauf ausgerichtet, Neulingen der QMK Commmunity mehr Informationen und ein besseres Verständnis zu einzelnen Themen zu bieten.
Git Ressourcen:
* [Gutes allgemeines Tutorial](https://www.codecademy.com/learn/learn-git) (auf Englisch)
* [Git spielerisch anhand von Beispielen lernen](https://learngitbranching.js.org/) (auf Englisch)
* [Mehr über den allgemeinen Umgang mit GitHub](getting_started_github.md)
* [Mehr über Git im Bezug zu QMK](contributing.md)
Mehr über die Arbeit mit der Befehlszeile:
* [Gutes allgemeines Tutorial über die Arbeit mit der Befehlszeile](https://www.codecademy.com/learn/learn-the-command-line) (auf Englisch)

View File

@@ -1,102 +0,0 @@
# Testen und Debuggen
Nachdem Du deine Tastatur mit deiner angepassten Firmware geflasht hast, ist es nun an der Zeit sie auszuprobieren. Mit ein bisschen Glück sollte alles ohne Probleme funktionieren, wenn dies nicht der Fall ist, soll dieses Dokument dir dabei helfen, herauszufinden wo das Problem liegt.
## Testen
Die Tastatur zu testen ist relativ selbsterklärend. Drücke jede der Tasten um dich zu versichern, dass der gesendete Keyode der ist, den du erwarten würdest. Dafür gibt es sogar ein paar Programme die helfen sollen, dass keine Taste ausgelassen wurde.
Anmerkung: Diese Programme werden weder von QMK bereitgestellt oder gutgeheißen.
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Nur für Windows)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Nur für Mac)
* [Keyboard Tester](https://www.keyboardtester.com) (Web basiert)
* [Keyboard Checker](https://keyboardchecker.com) (Web basiert)
## Debuggen
Deine Tastatur wird Debug Informationen liefern wenn Du `CONSOLE_ENABLE = yes` in deiner `rules.mk` gesetzt hast. Die default-Ausgabe ist sehr beschränkt und kann wenn nötig durch die Aktivierung des Debug-Modes erhöht werden. Benutze dafür entweder den `DEBUG` Keycode in deiner Tastaturbelegung, das [Command](de/feature_command.md)-Feature oder füge den folgenden Code zu deiner Tastaturbelegung hinzu.
```c
void keyboard_post_init_user(void) {
// Customise these values to desired behaviour
debug_enable=true;
debug_matrix=true;
//debug_keyboard=true;
//debug_mouse=true;
}
```
### Debuggen mit der QMK Toolbox
Für kompatible Plattformen kann die [QMK Toolbox](https://github.com/qmk/qmk_toolbox) benutzt werden um Debug-Nachrichten deiner Tastatur anzuzeigen.
### Debuggen mit hid_listen
Bevorzugst Du es lieber auf der Befehlszeile zu debuggen? Dafür eignet sich das Programm [hid_listen](https://www.pjrc.com/teensy/hid_listen.html) von PJRC. Binaries sind für Windows, Linux und MacOS verfügbar.
<!-- FIXME: Describe the debugging messages here. -->
## Eigene Debug-Nachrichten senden
Manchmal ist es hilfreich Debug-Nachrichten innerhalb deines eigenen [Custom Codes](de/custom_quantum_functions.md) zu drucken. Das ist ziemlich einfach. Beginne damit `print.h` am Anfang deiner Datei zu inkludieren:
```c
#include "print.h"
```
Danach stehen dir verschiedene Druck-Funktionen zur Verfügung:
* `print("string")`: Druckt einen simplen String
* `uprintf("%s string", var)`: Druckt einen formatierten String
* `dprint("string")` Druckt einen simplen String, aber nur wenn der Debug-Mode aktiviert ist
* `dprintf("%s string", var)`: Druckt einen formatierten String, aber nur wenn der Debug-Mode aktiviert ist
## Debug Beispiele
Anbei findest Du eine Sammlung von hilfreichen Beispielen. Für weitere Informationen Informationen sei an dieser Stelle auf [Debugging/Troubleshooting QMK](de/faq_debug.md) verwiesen.
### Which matrix position is this keypress?
### Welche Matrix Position hat dieser Tastenanschlag
Beim Portieren, oder bei der Fehlerdiagnose von PCB Problemen, ist es nützlich sich anzeigen zu lassen ob ein Tastenanschlag richtig erkannt wurde. Um die Protokollierung für diesen Fall zu aktivieren, füge bitte folgenden Code zu deiner Tastaturbelegung `keymap.c` hinzu.
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Wenn 'console' aktiviert ist wird die Matrix-Position und der Status jedes Tastenanschlags ausgegeben
#ifdef CONSOLE_ENABLE
uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
#endif
return true;
}
```
Beispiel Ausgabe:
```text
Waiting for device:.......
Listening:
KL: kc: 169, col: 0, row: 0, pressed: 1
KL: kc: 169, col: 0, row: 0, pressed: 0
KL: kc: 174, col: 1, row: 0, pressed: 1
KL: kc: 174, col: 1, row: 0, pressed: 0
KL: kc: 172, col: 2, row: 0, pressed: 1
KL: kc: 172, col: 2, row: 0, pressed: 0
```
### Wieviel Zeit wurde benötigt um einen Tastenanschlag zu detektieren?
Wenn Performance-Probleme auftreten ist es hilfreich die Frequenz, mit der die Matrix gescannt wird, zu wissen. Um dies in diesem Fall zu aktiveren füge, den folgenden Code zu deiner Tastaturbelegung in `config.h` hinzu.
```c
#define DEBUG_MATRIX_SCAN_RATE
```
Beispiel Ausgabe
```text
> matrix scan frequency: 315
> matrix scan frequency: 313
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
```

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

@@ -1,31 +0,0 @@
# Firmware Quantum Mechanical Keyboard
[![Versión actual](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Estado de la documentación](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![Contribuyentes en GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![Forks en GitHub](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## ¿Qué es el firmware QMK?
QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el firmware QMK, QMK Toolbox, qmk.fm, y estos documentos. El firmware QMK es un firmware para teclados basado en [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) con algunas características útiles para controladores Atmel AVR, y más específicamente, la [línea de productos OLKB](https://olkb.com), el teclado [ErgoDox EZ](https://www.ergodox-ez.com), y la [línea de productos Clueboard](https://clueboard.co/). También ha sido portado a chips ARM chips usando ChibiOS. Lo puedes utilizar para manejar tu propio teclado ya sea cableado a mano o basado en una PCB personalizada.
## Cómo conseguirlo
Si estás pensando en contribuir con un keymap, teclado, or característica a QMK, la manera más sencilla es hacer un [fork del repositorio en GitHub](https://github.com/qmk/qmk_firmware#fork-destination-box), y clonar tu repositorio localmente para hacer los cambios, subirlos, y abir un [Pull Request](https://github.com/qmk/qmk_firmware/pulls) desde tu fork.
De cualquier manera, también puedes descargarlo directamente en formatos ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), o clonarlo via git (`git@github.com:qmk/qmk_firmware.git`), o https (`https://github.com/qmk/qmk_firmware.git`).
## Cómo compilar
Antes de poder compilar, necesitarás [instalar un entorno](es/getting_started_build_tools.md) para el desarrollo de AVR y/o ARM. Una vez hayas completado este paso, usarás el comando `make` para compilar un teclado y keymap con la siguiente notación:
make planck/rev4:default
Este ejemplo compilaría la revisión `rev4` del teclado `planck` con el keymap `default`. No todos los teclados tienen revisiones (también llamados subproyectos o carpetas), en ese caso, se puede omitir:
make preonic:default
## Cómo personalizar
QMK tiene montones de [características](es/features.md) para explorar, y una buena cantidad de [documentación de referencia](https://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md).

View File

@@ -1,122 +0,0 @@
* [Guía completa para novatos](es/newbs.md)
* [Empezando](es/newbs_getting_started.md)
* [Construyendo tu primer firmare](es/newbs_building_firmware.md)
* [Flasheando el firmware](es/newbs_flashing.md)
* [Testeando y depurando ](es/newbs_testing_debugging.md)
* [Mejores práticas](es/newbs_best_practices.md)
* [Recursos de aprendizaje](es/newbs_learn_more_resources.md)
* [QMK Basics](es/README.md)
* [Introducción a QMK](es/getting_started_introduction.md)
* [QMK CLI](es/cli.md)
* [Configuración de QMK CLI](es/cli_configuration.md)
* [Contribuyendo a QMK](es/contributing.md)
* [Cómo usar GitHub](es/getting_started_github.md)
* [Obtener ayuda](es/getting_started_getting_help.md)
* [Cambios incompatibles](es/breaking_changes.md)
* [30 Ago 2019](es/ChangeLog/20190830.md)
* [Preguntas frecuentes](es/faq.md)
* [General](es/faq_general.md)
* [Construir/Compilar QMK](es/faq_build.md)
* [Depurando/Encontrando problemas en QMK](es/faq_debug.md)
* [Keymap](es/faq_keymap.md)
* [Instalación de drivers con Zadig](es/driver_installation_zadig.md)
* Guías detalladas
* [Instalar herramientas construcción](es/getting_started_build_tools.md)
* [Guía Vagrant](es/getting_started_vagrant.md)
* [Instrucciones de Construcción/Compilado](es/getting_started_make_guide.md)
* [Flasheando Firmware](es/flashing.md)
* [Personalizando funcionalidad](es/custom_quantum_functions.md)
* [Visión general del Keymap](es/keymap.md)
* [Hardware](es/hardware.md)
* [Procesadores AVR](es/hardware_avr.md)
* [Drivers](es/hardware_drivers.md)
* Referencia
* [Pautas de teclados](es/hardware_keyboard_guidelines.md)
* [Opciones de configuración](es/config_options.md)
* [Keycodes](es/keycodes.md)
* [Convenciones de código - C](es/coding_conventions_c.md)
* [Convenciones de código - Python](es/coding_conventions_python.md)
* [Mejores prácticas de documentación](es/documentation_best_practices.md)
* [Plantillas de documentación](es/documentation_templates.md)
* [Glosario](es/reference_glossary.md)
* [Tests unitarios](es/unit_testing.md)
* [Funciones útiles](es/ref_functions.md)
* [Sporte configurador](es/reference_configurator_support.md)
* [Formato info.json](es/reference_info_json.md)
* [Desarrollo Python CLI](es/cli_development.md)
* [Características](es/features.md)
* [Keycodes Básicos](es/keycodes_basic.md)
* [Teclas US ANSI Shifted](es/keycodes_us_ansi_shifted.md)
* [Keycodes Quantum](es/quantum_keycodes.md)
* [Keycodes Avanzados](es/feature_advanced_keycodes.md)
* [Audio](es/feature_audio.md)
* [Auto Shift](es/feature_auto_shift.md)
* [Retroiluminación](es/feature_backlight.md)
* [Bluetooth](es/feature_bluetooth.md)
* [Bootmagic](es/feature_bootmagic.md)
* [Combos](es/feature_combo.md)
* [Comando](es/feature_command.md)
* [API Debounce](es/feature_debounce_type.md)
* [Switch DIP](es/feature_dip_switch.md)
* [Macros Dinámicas](es/feature_dynamic_macros.md)
* [Encoders](es/feature_encoders.md)
* [Grave Escape](es/feature_grave_esc.md)
* [Feedback Háptico](es/feature_haptic_feedback.md)
* [Controlador LCD HD44780](es/feature_hd44780.md)
* [Key Lock](es/feature_key_lock.md)
* [Layouts](es/feature_layouts.md)
* [Tecla Leader](es/feature_leader_key.md)
* [Matriz LED](es/feature_led_matrix.md)
* [Macros](es/feature_macros.md)
* [Teclas del ratón](es/feature_mouse_keys.md)
* [Driver OLED](es/feature_oled_driver.md)
* [Teclas One Shot](es/one_shot_keys.md)
* [Dispositivo de apuntado](es/feature_pointing_device.md)
* [Ratón PS/2](es/feature_ps2_mouse.md)
* [Iluminación RGB](es/feature_rgblight.md)
* [Matriz RGB](es/feature_rgb_matrix.md)
* [Cadete espacial](es/feature_space_cadet.md)
* [Teclado dividido](es/feature_split_keyboard.md)
* [Stenografía](es/feature_stenography.md)
* [Swap Hands](es/feature_swap_hands.md)
* [Tap Dance](es/feature_tap_dance.md)
* [Terminal](es/feature_terminal.md)
* [Impresora Térmica](es/feature_thermal_printer.md)
* [Unicode](es/feature_unicode.md)
* [Userspace](es/feature_userspace.md)
* [Velocikey](es/feature_velocikey.md)
* Para Makers y Modders
* [Guía de cableado a mano](es/hand_wire.md)
* [Guía de flasheado de ISP](es/isp_flashing_guide.md)
* [Guía de depuración de ARM](es/arm_debugging.md)
* [Driver I2C](es/i2c_driver.md)
* [Driver SPI](es/spi_driver.md)
* [Controles GPIO](es/internals_gpio_control.md)
* [Conversión Proton C](es/proton_c_conversion.md)
* Para entender en profundidad
* [Cómo funcionan los teclados](es/how_keyboards_work.md)
* [Entendiendo QMK](es/understanding_qmk.md)
* Otros temas
* [Usando Eclipse con QMK](es/other_eclipse.md)
* [Usando VSCode con QMK](es/other_vscode.md)
* [Soporte](es/getting_started_getting_help.md)
* [Cómo añadir traducciones](es/translating.md)
* QMK Internals (En progreso)
* [Defines](es/internals_defines.md)
* [Input Callback Reg](es/internals_input_callback_reg.md)
* [Dispositivo Midi](es/internals_midi_device.md)
* [Proceso de configuración de un dispositivo Midi](es/internals_midi_device_setup_process.md)
* [Utilidad Midi](es/internals_midi_util.md)
* [Funciones Send](es/internals_send_functions.md)
* [Herramientas Sysex](es/internals_sysex_tools.md)

View File

@@ -1,8 +0,0 @@
# Hardware
QMK es compatible con una variedad de hardware. Si tu procesador puede ser dirigido por [LUFA](https://www.fourwalledcubicle.com/LUFA.php) o [ChibiOS](https://www.chibios.org), probablemente puedes hacer que QMK se ejecute en él. Esta sección explora cómo hacer que QMK se ejecute y se comunique con hardware de todo tipo.
* [Pautas de teclados](hardware_keyboard_guidelines.md)
* [Procesadores AVR](hardware_avr.md)
* Procesadores ARM (TBD)
* [Drivers](hardware_drivers.md)

View File

@@ -1,182 +0,0 @@
# Teclados con Procesadores AVR
Esta página describe el soporte para procesadores AVR en QMK. Los procesadores AVR incluyen el atmega32u4, atmega32u2, at90usb1286, y otros procesadores de la Corporación Atmel. Los procesadores AVR son MCUs de 8-bit que son diseñados para ser fáciles de trabajar. Los procesadores AVR más comunes en los teclados tienen USB y un montón de GPIO para permitir grandes matrices de teclado. Son los MCUs más populares para el uso en los teclados hoy en día.
Si aún no lo has hecho, debes leer las [Pautas de teclados](hardware_keyboard_guidelines.md) para tener una idea de cómo los teclados encajan en QMK.
## Añadir tu Teclado AVR a QMK
QMK tiene varias características para simplificar el trabajo con teclados AVR. Para la mayoría de los teclados no tienes que escribir ni una sola línea de código. Para empezar, ejecuta `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.
```
Esto creará todos los archivos necesarios para tu nuevo teclado, y rellenará la configuración con valores predeterminados. Ahora sólo tienes que personalizarlo para tu teclado.
## `readme.md`
Aquí es donde describirás tu teclado. Por favor sigue la [Plantilla del readme de teclados](documentation_templates.md#keyboard-readmemd-template) al escribir tu `readme.md`. Te animamos a colocar una imagen en la parte superior de tu `readme.md`. Por favor, utiliza un servicio externo como [Imgur](https://imgur.com) para alojar las imágenes.
## `<keyboard>.c`
Aquí es donde pondrás toda la lógica personalizada para tu teclado. Muchos teclados no necesitan nada aquí. Puedes aprender más sobre cómo escribir lógica personalizada en [Funciones Quantum Personalizadas](custom_quantum_functions.md).
## `<keyboard>.h`
Este es el archivo en el que defines tu(s) [Macro(s) de Layout](feature_layouts.md). Por lo menos deberías tener un `#define LAYOUT` para tu teclado que se ve algo así:
```c
#define LAYOUT( \
k00, k01, k02, \
k10, k11 \
) { \
{ k00, k01, k02 }, \
{ k10, KC_NO, k11 }, \
}
```
La primera mitad de la macro pre-procesador `LAYOUT` define la disposición física de las llaves. La segunda mitad de la macro define la matriz a la que están conectados los interruptores. Esto te permite tener una disposición física de las llaves que difiere de la matriz de cableado.
Cada una de las variables `k__` tiene que ser única, y normalmente sigue el formato `k<row><col>`.
La matriz física (la segunda mitad) debe tener un número de filas igualando `MATRIX_ROWS`, y cada fila debe tener exactamente `MATRIX_COLS` elementos. Si no tienes tantas teclas físicas puedes usar `KC_NO` para rellenar los espacios en blanco.
## `config.h`
El archivo `config.h` es donde configuras el hardware y el conjunto de características para tu teclado. Hay un montón de opciones que se pueden colocar en ese archivo, demasiadas para listar allí. Para obtener una visión de conjunto completa de las opciones disponibles consulta la página de [Opciones de Configuración](config_options.md).
### Configuración de hardware
En la parte superior de `config.h` encontrarás ajustes relacionados con USB. Estos controlan la apariencia de tu teclado en el Sistema Operativo. Si no tienes una buena razón para cambiar debes dejar el `VENDOR_ID` como `0xFEED`. Para el `PRODUCT_ID` debes seleccionar un número que todavía no esté en uso.
Cambia las líneas de `MANUFACTURER` y `PRODUCT` para reflejar con precisión tu teclado.
```c
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER Tú
#define PRODUCT mi_teclado_fantastico
```
?> Windows y macOS mostrarán el `MANUFACTURER` y `PRODUCT` en la lista de dispositivos USB. `lsusb` en Linux toma estos de la lista mantenida por el [Repositorio de ID USB](http://www.linux-usb.org/usb-ids.html) por defecto. `lsusb -v` mostrará los valores reportados por el dispositivo, y también están presentes en los registros del núcleo después de conectarlo.
### Configuración de la matriz del teclado
La siguiente sección del archivo `config.h` trata de la matriz de tu teclado. Lo primero que debes establecer es el tamaño de la matriz. Esto es generalmente, pero no siempre, el mismo número de filas y columnas como la disposición física de las teclas.
```c
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
```
Una vez que hayas definido el tamaño de tu matriz, necesitas definir qué pines en tu MCU están conectados a filas y columnas. Para hacerlo simplemente especifica los nombres de esos pines:
```c
#define MATRIX_ROW_PINS { D0, D5 }
#define MATRIX_COL_PINS { F1, F0, B0 }
#define UNUSED_PINS
```
El número de entradas debe ser el mismo que el número que asignaste a `MATRIX_ROWS`, y del mismo modo para `MATRIX_COL_PINS` y `MATRIX_COLS`. No tienes que especificar `UNUSED_PINS`, pero puedes si deseas documentar qué pines están abiertos.
Finalmente, puedes especificar la dirección en la que apuntan tus diodos. Esto puede ser `COL2ROW` o `ROW2COL`.
```c
#define DIODE_DIRECTION COL2ROW
```
#### Matriz de patas directas
Para configurar un teclado en el que cada interruptor está conectado a un pin y tierra separados en lugar de compartir los pines de fila y columna, usa `DIRECT_PINS`. La asignación define los pines de cada interruptor en filas y columnas, de izquierda a derecha. Debe ajustarse a los tamaños dentro de `MATRIX_ROWS` y `MATRIX_COLS`. Usa `NO_PIN` para rellenar espacios en blanco. Sobreescribe el comportamiento de `DIODE_DIRECTION`, `MATRIX_ROW_PINS` y `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
```
### Configuración de retroiluminación
QMK soporta retroiluminación en la mayoría de los pines GPIO. Algunos de ellos pueden ser manejados por el MCU en hardware. Para más detalles, consulta la [Documentación de Retroiluminación](feature_backlight.md).
```c
#define BACKLIGHT_PIN B7
#define BACKLIGHT_LEVELS 3
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 6
```
### Otras opciones de configuración
Hay un montón de características que se pueden configurar o ajustar en `config.h`. Debes consultar la página de [Opciones de Configuración](config_options.md) para más detalles.
## `rules.mk`
Usa el archivo `rules.mk` para decirle a QMK qué archivos construir y qué características habilitar. Si estás construyendo sobre un atmega32u4 deberías poder dejar mayormente los valores predeterminados. Si estás usando otro MCU es posible que tengas que ajustar algunos parámetros.
### Opciones MCU
Estas opciones le indican al sistema de compilación para qué CPU construir. Ten mucho cuidado si cambias cualquiera de estos ajustes. Puedes inutilizar tu teclado.
```make
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
```
### Gestores de arranque
El gestor de arranque es una sección especial de tu MCU que te permite actualizar el código almacenado en el MCU. Piensa en ello como una partición de rescate para tu teclado.
#### Ejemplo de gestor de arranque
```make
BOOTLOADER = halfkay
```
#### Ejemplo de cargador DFU Atmel
```make
BOOTLOADER = atmel-dfu
```
#### Ejemplo de gestor de arranque Pro Micro
```make
BOOTLOADER = caterina
```
### Opciones de construcción
Hay un serie de características que se pueden activar o desactivar en `rules.mk`. Consulta la página de [Opciones de Configuración](config_options.md#feature-options) para obtener una lista detallada y una descripción.

View File

@@ -1,31 +0,0 @@
# Controladores de hardware QMK
QMK se utiliza en un montón de hardware diferente. Mientras que el soporte para los MCUs y las configuraciones de matriz más comunes está integrado, hay una serie de controladores que se pueden añadir para soportar hardware adicional al teclado. Los ejemplos incluyen ratones y otros dispositivos de apuntamiento, extensores de i/o para teclados divididos, modúlos Bluetooth, y pantallas LCD, OLED y TFT.
<!-- FIXME: Esto debe hablar de cómo se integran los controladores en QMK y cómo puedes añadir su propio controlador.
# Descripción del sistema de controladores
-->
# Controladores disponibles
## ProMicro (Solo AVR)
Soporte para direccionar pines en el ProMicro por su nombre Arduino en lugar de su nombre AVR. Esto necesita ser mejor documentado. Si estás tratando de hacer esto y leer el código no ayuda por favor [abre una issue](https://github.com/qmk/qmk_firmware/issues/new) y podemos ayudarte por el proceso.
## Controlador OLED SSD1306
Soporte para pantallas OLED basadas en SSD1306. Para obtener más información consulta la página de [Característica de Controlador OLED](feature_oled_driver.md).
## WS2812 (Solo AVR)
Soporte para LEDs WS2811/WS2812{a,b,c}. Para obtener más información consulta la página de [Luz RGB](feature_rgblight.md).
## IS31FL3731
Soporte para hasta 2 controladores. Cada controlador implementa 2 matrices charlieplex para direccionar LEDs individualmente usando I2C. Esto permite hasta 144 LEDs del mismo color o 32 LEDs RGB. Para obtener más información sobre cómo configurar el controlador, consulta la página de [Matriz RGB](feature_rgb_matrix.md).
## IS31FL3733
Soporte para hasta un solo controlador con espacio para expansión. Cada controlador puede controlar 192 LEDs individuales o 64 LEDs RGB. Para obtener más información sobre cómo configurar el controlador, consulta la página de [Matriz RGB](feature_rgb_matrix.md).

View File

@@ -1,147 +0,0 @@
# Pautas del teclado QMK
Desde sus inicios, QMK ha crecido a pasos agigantados gracias a personas como tú que contribuyes a la creación y mantenimiento de nuestros teclados comunitarios. A medida que hemos crecido hemos descubierto algunos patrones que funcionan bien, y pedimos que te ajustes a ellos para que sea más fácil para que otras personas se beneficien de tu duro trabajo.
## Nombrar tu Teclado/Proyecto
Todos los nombres de teclado están en minúsculas, consistiendo sólo de letras, números y guiones bajos (`_`). Los nombres no pueden comenzar con un guión bajo. La barra de desplazamiento (`/`) se utiliza como un carácter de separación de subcarpetas.
Los nombres `test`, `keyboard`, y `all` están reservados para las órdenes de make y no pueden ser usados como un nombre de teclado o subcarpeta.
Ejemplos Válidos:
* `412_64`
* `chimera_ortho`
* `clueboard/66/rev3`
* `planck`
* `v60_type_r`
## Subcarpetas
QMK utiliza subcarpetas tanto para organización como para compartir código entre las revisiones del mismo teclado. Puedes anidar carpetas hasta 4 niveles de profundidad:
qmk_firmware/keyboards/top_folder/sub_1/sub_2/sub_3/sub_4
Si una subcarpeta tiene un archivo `rules.mk` será considerado un teclado compilable. Estará disponible en el configurador de QMK y se probará con `make all`. Si estás utilizando una carpeta para organizar varios teclados del mismo fabricante no debes tener un archivo `rules.mk`.
Ejemplo:
Clueboard utiliza subcarpetas para ambos propósitos: organización y revisiones de teclado.
* [`qmk_firmware`](https://github.com/qmk/qmk_firmware/tree/master)
* [`keyboards`](https://github.com/qmk/qmk_firmware/tree/master/keyboards)
* [`clueboard`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard) &larr; This is the organization folder, there's no `rules.mk` file
* [`60`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/60) &larr; This is a compilable keyboard, it has a `rules.mk` file
* [`66`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66) &larr; This is also compilable- it uses `DEFAULT_FOLDER` to specify `rev3` as the default revision
* [`rev1`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev1) &larr; compilable: `make clueboard/66/rev1`
* [`rev2`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev2) &larr; compilable: `make clueboard/66/rev2`
* [`rev3`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev3) &larr; compilable: `make clueboard/66/rev3` or `make clueboard/66`
## Estructura de carpetas de teclado
Su teclado debe estar ubicado en `qmk_firm cuidada/keyboards/` y el nombre de la carpeta debe ser el nombre de su teclado como se describe en la sección anterior. Dentro de esta carpeta debe haber varios archivos:
* `readme.md`
* `info.json`
* `config.h`
* `rules.mk`
* `<keyboard_name>.c`
* `<keyboard_name>.h`
### `readme.md`
Todos los proyectos necesitan tener un archivo `readme.md` que explica lo que es el teclado, quién lo hizo y dónde está disponible. Si es aplicable, también debe contener enlaces a más información, como el sitio web del fabricante. Por favor, sigue la [plantilla publicada](documentation_templates.md#keyboard-readmemd-template).
### `info.json`
Este archivo es utilizado por la [API de QMK](https://github.com/qmk/qmk_api). Contiene la información que [configurador de QMK](https://config.qmk.fm/) necesita mostrar en una representación de su teclado. También puede establecer metadatos aquí. Para más información, consulta la [página de referencia](reference_info_json.md).
### `config.h`
Todos los proyectos necesitan tener un archivo `config.h` que establece cosas como el tamaño de la matriz, nombre del producto, USB VID/PID, descripción y otros ajustes. En general, usa este archivo para establecer la información esencial y los valores predeterminados para tu teclado que siempre funcionarán.
### `rules.mk`
La presencia de este archivo indica que la carpeta es un destino de teclado y se puede utilizar en las órdenes `make`. Aquí es donde estableces el entorno de compilación para tu teclado y configuras el conjunto predeterminado de características.
### `<keyboard_name.c>`
Aquí es donde escribirás código personalizado para tu teclado. Típicamente escribirás código para inicializar e interactuar con el hardware de tu teclado. Si tu teclado se compone de sólo una matriz de teclas sin LEDs, altavoces u otro hardware auxiliar este archivo puede estar en blanco.
Las funciones siguientes se definen típicamente en este archivo:
* `void matrix_init_kb(void)`
* `void matrix_scan_kb(void)`
* `bool process_record_kb(uint16_t keycode, keyrecord_t *record)`
* `void led_set_kb(uint8_t usb_led)`
### `<keyboard_name.h>`
Este archivo se utiliza para definir la matriz para tu teclado. Debes definir al menos un macro de C que traduce una serie en una matriz que representa la matriz de interruptor físico para tu teclado. Si es posible construir tu teclado con múltiples diseños debes definir macros adicionales.
Si solo tienes un diseño debes llamar a esta macro `LAYOUT`.
Al definir diseños múltiples debes tener un diseño base, llamado `LAYOUT_all`, que soporte todas las posibles posiciones de switch en tu matriz, incluso si ese diseño es imposible de construir físicamente. Esta es la macro que deberías usar en tu keymap `predeterminado`. Debes tener keymaps adicionales llamados `default_ término layout>` que usen tus otras macros de diseño. Esto hará que sea más fácil para las personas utilizar los diseños que defines.
Los nombres de las macros de diseño son completamente minúsculas, excepto por la palabra `LAYOUT` en el frente.
Por ejemplo, si tienes un PCB de 60% que soporta ANSI e ISO podría definir los siguientes diseños y keymaps:
| Nombre de diseño | Nombre de keymap | Descripción |
|-------------|-------------|-------------|
| LAYOUT_all | default | Un diseño que soporta tanto ISO como ANSI |
| LAYOUT_ansi | default_ansi | Un diseño ANSI |
| LAYOUT_iso | default_iso | Un diseño ISO |
## Archivos de Imagen/Hardware
En un esfuerzo por mantener el tamaño de repo abajo ya no estamos aceptando archivos binarios de cualquier formato, con pocas excepciones. Alojarlos en otro lugar (por ejemplo <https://imgur.com>) y enlazarlos en el `readme.md` es preferible.
Para archivos de hardware (tales como placas, casos, pcb) puedes contribuir a [qmk.fm repo](https://github.com/qmk/qmk.fm) y estarán disponibles en [qmk.fm](https://qmk.fm). Archivos descargables se almacenan en `/<teclado>/` (nombre sigue el mismo formato que el anterior), se sirven en `https://qmk.fm/<teclado>/`, y se generan páginas de `/_pages/<teclado>/` que se sirven en la misma ubicación (Los archivos .md se generan en archivos .html mediante Jekyll). Echa un vistazo a la carpeta `lets_split` para ver un ejemplo.
## Predeterminados de teclado
Dada la cantidad de funcionalidad que expone QMK, es muy fácil confundir a los nuevos usuarios. Al armar el firmware predeterminado para tu teclado, te recomendamos limitar tus funciones y opciones habilitadas al conjunto mínimo necesario para soportar tu hardware. A continuación se formulan recomendaciones sobre características específicas.
### Bootmagic y Command
[Bootmagic](feature_bootmagic.md) and [Command](feature_command.md) son dos características relacionadas que permiten a un usuario controlar su teclado de manera no obvia. Te recomendamos que piense largo y tendido acerca de si vas a habilitar cualquiera de las características, y cómo vas a exponer esta funcionalidad. Tengas en cuenta que los usuarios que quieren esta funcionalidad puede habilitarla en sus keymaps personales sin afectar a todos los usuarios novatos que pueden estar usando tu teclado como su primera tarjeta programable.
De lejos el problema más común con el que se encuentran los nuevos usuarios es la activación accidental de Bootmagic mientras están conectando su teclado. Están sosteniendo el teclado por la parte inferior, presionando sin saberlo en alt y barra espaciadora, y luego se dan cuenta de que estas teclas han sido intercambiadas en ellos. Recomendamos dejar esta característica deshabilitada de forma predeterminada, pero si la activas consideres establecer la opción `BOOTMAGIC_KEY_SALT` a una tecla que es difícil de presionar al conectar el teclado.
Si tu teclado no tiene 2 teclas de cambio debes proporcionar un predeterminado de trabajo para `IS_COMMAND`, incluso cuando haya definido `COMMAND_ENABLE = no`. Esto dará a sus usuarios un valor predeterminado para ajustarse a si lo hacen enable Command.
## Programación de teclado personalizado
Como se documenta en [Funcionalidad de Adaptación](custom_quantum_functions.md) puedes definir funciones personalizadas para tu teclado. Por favor, tengas en cuenta que sus usuarios pueden querer personalizar ese comportamiento así, y hacer que sea posible para que puedan hacer eso. Si está proporcionando una función personalizada, por ejemplo `process_record_kb()`, asegúrese de que su función también llame a la versión` `_user()` de la llamada. También debes tener en cuenta el valor de retorno de la versión `_user()`, y ejecutar sólo tu código personalizado si el usuario devuelve `true`.
## Proyectos Sin Producción/Conectados A Mano
Estamos encantados de aceptar cualquier proyecto que utilice QMK, incluidos los prototipos y los cableados de mano, pero tenemos una carpeta `/keyboards/handwired/` separada para ellos, por lo que la carpeta `/keyboards/` principal no se llena. Si un proyecto prototipo se convierte en un proyecto de producción en algún momento en el futuro, ¡estaremos encantados de moverlo a la carpeta `/keyboards/` principal!
## Advertencias como errores
Al desarrollar su teclado, tengas en cuenta que todas las advertencias serán tratadas como errores - estas pequeñas advertencias pueden acumularse y causar errores más grandes en el camino (y pierdan es generalmente una mala práctica).
## Derechos de autor
Si estás adaptando la configuración de tu teclado de otro proyecto, pero no utilizando el mismo código, asegúrese de actualizar la cabecera de derechos de autor en la parte superior de los archivos para mostrar tu nombre, en este formato:
Copyright 2017 Tu nombre <tu@email.com>
Si estás modificando el código de otra persona y sólo ha hecho cambios triviales debes dejar su nombre en la declaración de derechos de autor. Si has hecho un trabajo significativo en el archivo debe agregar tu nombre a la de ellos, así:
Copyright 2017 Su nombre <original_author@ejemplo.com> Tu nombre <tu@ejemplo.com>
El año debe ser el primer año en que se crea el archivo. Si el trabajo se hizo a ese archivo en años posteriores puedes reflejar que mediante la adición del segundo año a la primera, como así:
Copyright 2015-2017 Tu nombre <tu@ejemplo.com>
## Licencia
El núcleo de QMC está licenciado bajo la [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). Si estás enviando binarios para los procesadores AVR puedes elegir cualquiera [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) o [GPLv3](https://www.gnu.org/licenses/gpl.html). Si estás enviando binarios para ARM procesadores debes elegir [GPL Versión 3](https://www.gnu.org/licenses/gpl.html) para cumplir con los [ChibiOS](https://www.chibios.org) licencia GPLv3.
## Detalles técnicos
Si estás buscando más información sobre cómo hacer que su teclado funcione con QMK, [echa un vistazo a la sección hardware](hardware.md)!

View File

@@ -1,23 +0,0 @@
# La guía completa de QMK para novatos
QMK es un poderoso firmware Open Source para tu teclado mecánico. Puedes utilizar QMK para personalizar tu teclado en maneras a la vez simples y potentes. Gente de todos los niveles de habilidad, desde completos novatos hasta expertos programadores, han utilizado con éxito QMK para personalizar sus teclados. Esta guía te ayudará a hacer lo mismo, sin importar tu nivel de habilidad.
¿No estás seguro de si tu teclado puede ejecutar QMK? Si es un teclado mecánico construido por ti mismo probablemente puedas. Damos soporte a [gran número de placas de hobbistas](https://qmk.fm/keyboards/), e incluso si tu teclado actual no pudiera ejecutar QMK no deberías tener problemas encontrando uno que cumpliera tus necesidades.
## Visión general
Hay 7 secciones principales en esta guía:
* [Empezando](newbs_getting_started.md)
* [Construyendo tu primer firmware](newbs_building_firmware.md)
* [Construyendo tu primer firmware usando la GUI](newbs_building_firmware_configurator.md)
* [Flasheando el firmware](newbs_flashing.md)
* [Testeando y depurando](newbs_testing_debugging.md)
* [Mejores práticas](newbs_best_practices.md)
* [Recursos de aprendizaje](newbs_learn_more_resources.md)
Esta guía está enfocada en ayudar a alguien que nunca ha compilado software con anterioridad. Toma decisiones y hace recomendaciones teniendo en cuenta este punto de vista. Hay métodos alternativos para muchos de estos procedimientos, y soportamos la mayoría de esas alternativas. Si tienes alguna duda sobre cómo llevar a cabo una tarea nos puedes [preguntar para que te guiemos](getting_started_getting_help.md).
## Recursos adicionales
* [Blog de Básicos de Thomas Baart's QMK](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk/qmk-basics/) Un blog creado por un usuario que cubre lo básico sobre cómo usar el firmware QMK Firmware, visto desde la perspectiva de un usuario nuevo.

View File

@@ -1,159 +0,0 @@
# Mejores prácticas
## O, "Cómo aprendí a dejar de preocuparme y amarle a Git."
Este documento procura instruir a los novatos en las mejores prácticas para tener una experiencia más fácil en contribuir a QMK. Te guiaremos por el proceso de contribuir a QMK, explicando algunas maneras de hacerlo más fácilmente, y luego romperemos algunas cosas para enseñarte cómo arreglarlas.
En este documento suponemos un par de cosas:
1. Tienes una cuenta de GitHub, y has hecho un [fork del repo qmk_firmware](getting_started_github.md) en tu cuenta.
2. Has [configurado tu entorno de desarrollo](newbs_getting_started.md?id=environment-setup).
## La rama master de tu fork: Actualizar a menudo, nunca commit
Se recomienda que para desarrollo con QMK, lo que sea que estés haciendo, mantener tu rama `master` actualizada, pero **nunca** commit en ella. Mejor, haz todos tus cambios en una rama de desarrollo y manda pull requests de tus ramas mientras programas.
Para evitar los conflictos de merge &mdash; cuando dos o más usuarios han editado la misma parte de un archivo al mismo tiempo &mdash; mantén tu rama `master` actualizada, y empieza desarrollo nuevo creando una nueva rama.
### Actualizando tu rama master
Para mantener tu rama `master` actualizada, se recomienda agregar el repository ("repo") de Firmware QMK como un repo remoto en git. Para hacer esto, abre tu interfaz de línea de mandatos y ingresa:
```
git remote add upstream https://github.com/qmk/qmk_firmware.git
```
Para verificar que el repo ha sido agregado, ejecuta `git remote -v`, y lo siguiente debe aparecer:
```
$ git remote -v
origin https://github.com/<your_username>/qmk_firmware.git (fetch)
origin https://github.com/<your_username>/qmk_firmware.git (push)
upstream https://github.com/qmk/qmk_firmware.git (fetch)
upstream https://github.com/qmk/qmk_firmware.git (push)
```
Ya que has hecho esto, puedes buscar actualizaciones del repo ejecutando `git fetch upstream`. Esto busca las ramas y etiquetas &mdash; juntos conocidos como "refs" &mdash; del repo QMK, que ahora tiene el apodo `upstream`. Ahora podemos comparar los archivos en nuestro fork `origin` con los de QMK.
Para actualizar la rama master de tu fork, ejecuta lo siguiente, pulsando Intro después de cada línea:
```
git checkout master
git fetch upstream
git pull upstream master
git push origin master
```
Esto te coloca en tu rama master, busca los refs del repo de QMK, descarga la rama `master` actual a tu computadora, y después lo sube a tu fork.
### Hacer cambios
Para hacer cambios, crea una nueva rama ejecutando:
```
git checkout -b dev_branch
git push --set-upstream origin dev_branch
```
Esto crea una nueva rama llamada `dev_branch`, te coloca en ella, y después guarda la nueva rama a tu fork. El parámetro `--set-upstream` le dice a git que use tu fork y la rama `dev_branch` cada vez que uses `git push` o `git pull` en esta rama. Solo necesitas usarlo la primera que que subes cambios; ya después, puedes usar `git push` o `git pull`, sin usar los demás parámetros.
!> Con `git push`, puedes usar `-u` en vez de `--set-upstream` &mdash; `-u` es un alias de `--set-upstream`.
Puedes nombrar tu rama casi cualquier cosa, pero se recomienda ponerle algo con relación a los cambios que vas a hacer.
Por defecto `git checkout -b` se basará tu nueva rama en la rama en la cual estás actualmente. Puedes basar tu rama en otra rama existente agregando el nombre de la rama al comando:
```
git checkout -b dev_branch master
```
Ahora que tienes una rama development, abre tu editor de texto y haz los cambios que quieres. Se recomienda hacer varios commits pequeños a tu rama; de este modo cualquier cambio que causa problemas puede ser rastreado y deshecho si fuera necesario. Para hacer tus cambios, edita y guarda los archivos que necesitas actualizar, agrégalos al *staging area* de Git, y luego haz un commit a tu rama:
```
git add path/to/updated_file
git commit -m "My commit message."
```
`git add` agrega los archivos que han sido cambiados al *staging area* de Git, lo cual es la "zona de preparación"de Git. Este contiene los cambios que vas a *commit* usando `git commit`, que guarda los cambios en el repo. Usa un mensaje de commit descriptivo para que puedas saber que ha cambiado fácilmente.
!> Si has cambiado muchos archivos, pero todos los archivos son parte del mismo cambio, puedes usar `git add .` para agregar todos los archivos cambiados que están en tu directiro actual, en vez de agregar cada archivo manualmente.
### Publicar tus cambios
El útimo paso es subir tus cambios a tu fork. Para hacerlo, ejecuta `git push`. Ahora Git publicará el estado actual de `dev_branch` a tu fork.
## Resolver los conflictos del merge
A veces cuando el trabajo en una rama tarda mucho tiempo en completarse, los cambios que han sido hechos por otros chocan con los cambios que has hecho en tu rama cuando abres un pull request. Esto se llama un *merge conflict*, y es algo que ocurre cuando varias personas editan las mismas partes de los mismos archivos.
### Rebase tus cambios
Un *rebase* es la manera de Git de tomar los cambios que se aplicaron en un punto, deshacerlos, y aplicar estos mismos cambios en otro punto. En el caso de un conflicto de merge, puedes hacer un rebase de tu rama para recoger los cambios que has hecho.
Para empezar, ejecuta lo siguiente:
```
git fetch upstream
git rev-list --left-right --count HEAD...upstream/master
```
El comando `git rev-list` ejecutado aquí muestra el número de commits que difieren entre la rama actual y la rama master de QMK. Ejecutamos `git fetch` primero para asegurarnos de que tenemos los refs que representan es estado actual del repo upstream. El output del comando `git rev-list` muestra dos números:
```
$ git rev-list --left-right --count HEAD...upstream/master
7 35
```
El primer número representa el número de commits en la rama actual desde que fue creada, y el segundo número es el número de commits hecho a `upstream/master` desde que la rama actual fue creada, o sea los cambios que no están registrados en la rama actual.
Ahora que sabemos el estado actual de la rama actual y el del repo upstream, podemos empezar una operación rebase:
```
git rebase upstream/master
```
Esto le dice a Git que deshaga los commits en la rama actual, y después los re-aplica en la rama master de QMK.
```
$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Applying: Commit #1
Using index info to reconstruct a base tree...
M conflicting_file_1.txt
Falling back to patching base and 3-way merge...
Auto-merging conflicting_file_1.txt
CONFLICT (content): Merge conflict in conflicting_file_1.txt
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 Commit #1
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
```
Esto nos dice que tenemos un conflicto de merge, y nos dice el nombre del archivo con el conflict. Abre el archivo en tu editor de texto, y en alguna parte del archivo verás algo así:
```
<<<<<<< HEAD
<p>For help with any issues, email us at support@webhost.us.</p>
=======
<p>Need help? Email support@webhost.us.</p>
>>>>>>> Commit #1
```
La línea `<<<<<<< HEAD` marca el principio de un conflicto de merge, y la línea `>>>>>>> Commit #1` marca el final, con las secciones de conflicto separadas por `=======`. La parte del lado `HEAD` is de la versión de QMK master del archivo, y la parte marcada con el mensaje de commit es de la rama actual.
Ya que Git rastrea *cambios de archivos* en vez del contenido de los archivos directamente, si Git no puede encontrar el texto que estaba en el archivo antes del último commit, no sabrá cómo editar el archivo. El editar el archivo de nuevo resolverá este conflicto. Haz tus cambios, y guarda el archivo.
```
<p>Need help? Email support@webhost.us.</p>
```
Ahora ejecuta:
```
git add conflicting_file_1.txt
git rebase --continue
```
Git registra los cambios al archivo con conflictos, y sigue aplicando los commits de nuestra rama hasta llegar al final.

View File

@@ -1,81 +0,0 @@
# Construyendo tu primer firmware
Ahora que has configurado tu entorno de construcción estas listo para empezar a construir firmwares personalizados. Para esta sección de la guía alternaremos entre 3 programas - tu gestor de ficheros, tu editor de texto , y tu ventana de terminal. Manten los 3 abiertos hasta que hayas acabado y estés contento con el firmware de tu teclado.
Si has cerrado y reabierto la ventana de tu terminal después de seguir el primero paso de esta guía, no olvides hacer `cd qmk_firmware` para que tu terminal esté en el directorio correcto.
## Navega a tu carpeta de keymaps
Comienza navegando a la carpeta `keymaps` correspondiente a tu teclado.
?> Si estás en macOS o Windows hay comandos que puedes utilizar fácilmente para abrir la carpeta keymaps.
?> macOS:
abre keyboards/<keyboard_folder>/keymaps
?> Windows:
inicia .\\keyboards\\<keyboard_folder>\\keymaps
## Crea una copia del keymap `default`
Una vez que tengas la carpeta `keymaps` abierta querrás crear una copia de la carpeta `default`. Recomendamos encarecidamente que nombres la carpeta igual que tu nombre de usuario de GitHub, pero puedes utilizar el nombre que quieras siempre que contenga sólo letras en minúscula, números y el caracter de guión bajo.
Para automatizar el proceso, también tienes la opción de ejecutar el script `new_keymap.sh`.
Navega a la carpeta `qmk_firmware/util` e introduce lo siguiente:
```
./new_keymap.sh <keyboard path> <username>
```
Por ejemplo, para un usuario llamado John, intentando hacer un keymap nuevo para el 1up60hse, tendría que teclear
```
./new_keymap.sh 1upkeyboards/1up60hse john
```
## Abre `keymap.c` con tu editor de texto favorito
Abre tu `keymap.c`. Dentro de este fichero encontrarás la estructura que controla cómo se comporta tu teclado. En lo alto de `keymap.c` puede haber distintos defines y enums que hacen el keymap más fácil de leer. Continuando por abajo encontrarás una línea con este aspecto:
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
Esta línea indica el comienzo del listado de Capas. Debajo encontrarás líneas que contienen o bien `LAYOUT` o `KEYMAP`, y estas líneas indican el comienzo de una capa. Debajo de esa línea está la lista de teclas que pertenecen a esa capa concreta.
!> Cuando estés editando tu fichero de keymap ten cuidado con no añadir ni eliminar ninguna coma. Si lo haces el firmware dejará de compilar y puede no ser fácil averiguar dónde está la coma faltante o sobrante.
## Personaliza el Layout a tu gusto
Cómo completar esta paso depende enteramente de ti. Haz ese pequeño cambio que querías o rehaz completamente todo. Puedes eliminar capas si no las necesitas todas, o añadir nuevas hasta un total de 32. Comprueba la siguiente documentación para descubrir qué es lo que puedes definir aquí:
* [Keycodes](keycodes.md)
* [Características](features.md)
* [Preguntas frecuentes](faq.md)
?> Mientras estás descubriendo cómo funcionan los keymaps, haz pequeños cambios. Cambios mayores pueden hacer difícil la depuración de problemas que puedan aparecer.
## Construye tu firmware
Cuando los cambios a tu keymap están completos necesitarás construir el firmware. Para hacerlo vuelve a la ventana de tu terminal y ejecuta el siguiente comando:
make <my_keyboard>:<my_keymap>
Por ejemplo, si tu keymap se llama "xyverz" y estás construyendo un keymap para un planck rev5, utilizarás el siguiente comando:
make planck/rev5:xyverz
Mientras compila, recibirás un montón de información de salida en la pantalla informándote de qué ficheros están siendo compilados. Debería acabar con una información similar a esta:
```
Linking: .build/planck_rev5_xyverz.elf [OK]
Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
Checking file size of planck_rev5_xyverz.hex [OK]
* File size is fine - 18392/28672
```
## Flashea tu firmware
Continua con [Flasheando el firmware](newbs_flashing.md) para aprender cómo escribir tu firmware nuevo en tu teclado.

View File

@@ -1,105 +0,0 @@
# Configurador QMK
El [Configurador QMK](https://config.qmk.fm) es un entorno gráfico online que genera ficheros hexadecimales de Firmware QMK.
?> **Por favor sigue estos pasos en orden.**
Ve el [Video tutorial](https://www.youtube.com/watch?v=-imgglzDMdY)
El Configurador QMK functiona mejor con Chrome/Firefox.
!> **Ficheros de otras herramientas como KLE, o kbfirmware no serán compatibles con el Configurador QMK. No las cargues, no las importes. El configurador Configurador QMK es una herramienta DIFERENTE. **
## Seleccionando tu teclado
Haz click en el desplegable y selecciona el teclado para el que quieres crear el keymap.
?> Si tu teclado tiene varias versiones, asegúrate de que seleccionas la correcta.**
Lo diré otra vez porque es importante
!> **ASEGÚRATE DE QUE SELECCIONAS LA VERSIÓN CORRECTA!**
Si se ha anunciado que tu teclado funciona con QMK pero no está en la lista, es probable que un desarrollador no se haya encargado de él aún o que todavía no hemos tenido la oportunidad de incluirlo. Abre un issue en [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) solicitando soportar ese teclado un particular, si no hay un [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) activo para ello. Hay también teclados que funcionan con QMK que están en las cuentas de GitHub de sus manufacturantes. Acuérdate de comprobar esto también.
## Eligiendo el layout de tu teclado
Elige el layout que mejor represente el keymap que quieres crear. Algunos teclados no tienen suficientes layouts o layouts correctos definidos aún. Serán soportados en el futuro.
## Nombre del keymap
Llama a este keymap como quieras.
?> Si estás teniendo problemas para compilar, puede merecer la pena probar un cambio de nombre, ya que puede que ya exista en el repositorio de QMK Firmware.
## Creando Tu keymap
La adición de keycodes se puede hacer de 3 maneras.
1. Arrastrando y soltando
2. Clickando en un hueco vacío en el layout y haciendo click en el keycode que deseas
3. Clickando en un hueco vacío en el layout, presionando la tecla física en tu teclado.
Mueve el puntero de tu ratón sobre una tecla y un pequeño extracto te dirá que es lo que hace la tecla. Para una descripción más detallada por favor, mira
[Referencia básica de keycodes](https://docs.qmk.fm/#/keycodes_basic)
[Referencia avanzada de keycodes](https://docs.qmk.fm/#/feature_advanced_keycodes)
En el caso de que no puedas encontrar un layout que suporte tu keymap, por ejemplo, tres huecos para la barra espaciadora, dos huecos para el retroceso o dos huecos para shift etc etc, rellènalos TODOS.
### Ejemplo:
3 huecos para barra espaciadora: Rellena TODOS con barra espaciadora
2 huecos para retroceso: Rellena AMBOS con retroceso
2 huecos para el shift derecho: Rellena AMBOS con shift derecho
1 hueco para el shift izquierdo y 1 hueco para soporte iso: Rellena ambos con el shift izquierdo
5 huecos , pero sólo 4 teclas: Intuye y comprueba o pregunta a alguien que lo haya hecho anteriormente.
## Guardando tu keymap para ediciones futuras
Cuando estés satisfecho con un teclado o quieres trabajar en el después, pulsa el botón `Exportar Keymap`. Guardára tu keymap con el nombre que elijas seguido de .json.
Entonces podrás cargar este fichero .json en el futuro pulsando el botón `Importar Keymap`.
!> **PRECAUCIÓN:** No es el mismo tipo de fichero .json usado en kbfirmware.com ni ninguna otra herramienta. Si intentas utilizar un fichero .json de alguna de estas herramientas con el Configurador QMK, existe la posibilidad de que tu teclado **explote**.
## Generando tu fichero de firmware
Pulsa el botón verde `Compilar`.
Cuando la compilación haya acabado, podrás presionar el botón verde `Descargar Firmware`.
## Flasheando tu teclado
Por favor, dirígete a la sección de [Flashear firmware](newbs_flashing.md)
## Problemas comunes
#### Mi fichero .json no funciona
Si el fichero .json fue generado con el Configurador QMK, enhorabuena, has dado con un bug. Abre una issue en [qmk_configurator](https://github.com/qmk/qmk_configurator/issues)
Si no....cómo no viste el mensaje en negrita que puse arriba diciendo que no hay que utilizar otros ficheros .json?
#### Hay espacios extra en mi layout ¿Qué hago?
Si te refieres a tener tres espacios para la barra espaciadora, la mejor decisión es rellenar los tres con la barra espaciadora. También se puede hacer lo mismo con las teclas retroceso y las de shift
#### Para qué sirve el keycode.......
Por favor, mira
[Referencia básica de keycodes](https://docs.qmk.fm/#/keycodes_basic)
[Referencia avanzada de keycodes](https://docs.qmk.fm/#/feature_advanced_keycodes)
#### No compila
Por favor, revisa las otras capas de tu keymap para asegurarte de que no hay teclas aleatorias presentes.
## Problemas y bugs
Siempre aceptamos peticiones de clientes y reportes de bug. Por favor, indícalos en [qmk_configurator](https://github.com/qmk/qmk_configurator/issues)

View File

@@ -1,351 +0,0 @@
# Flasheando tu teclado
Ahora que has construido tu fichero de firmware personalizado querrás flashear tu teclado.
## Flasheando tu teclado con QMK Toolbox
La manera más simple de flashear tu teclado sería con [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases).
De todos modos, QMK Toolbox actualmente sólo está disponible para Windows y macOS. Si estás usando Linux (o sólo quisieras flashear el firmware desde la línea de comandos), tendrás que utilizar el [método indicado abajo](newbs_flashing.md#flash-your-keyboard-from-the-command-line).
### Cargar el fichero en QMK Toolbox
Empieza abriendo la aplicación QMK Toolbox. Tendrás que buscar el fichero de firmware usando Finder o Explorer. El firmware de teclado puede estar en uno de estos dos formatos- `.hex` o `.bin`. QMK intenta copiar el apropiado para tu teclado en el fichero raíz `qmk_firmware`.
?> Si tu estás on Windows o macOS hay comandos que puedes usar para abrir fácilmente la carpeta del firmware actual en Explorer o Finder.
?> Windows:
start .
?> macOS:
open .
El fichero de firmware sempre sigue el siguiente formato de nombre:
<nombre_teclado>_<nombre_keymap>.{bin,hex}
Por ejemplo, un `plank/rev5` con un keymap `default` tendrá este nombre de fichero:
planck_rev5_default.hex
Una vez que hayas localizado el fichero de tu firmware arrástralo a la caja "Fichero local" en QMK Toolbox, o haz click en "Abrir" y navega allí donde tengas almacenado tu fichero de firmware.
### Pon tu teclado en modo DFU (Bootloader)
Para poder flashear tu firmware personalizado tienes que poner tu teclado en un modo especial que permite flasheado. Cuando está en este modo no podrás teclear o utilizarlo para ninguna otra cosa. Es muy importante que no desconectes tu teclado, de lo contrario interrumpirás el proceso de flasheo mientras el firmware se está escribiendo.
Diferentes teclados tienen diferentes maneras de entrar en este modo especial. Si tu PCB actualmente ejecuta QMK o TMK y no has recibido instrucciones específicas, intenta los siguientes pasos en orden:
* Manten pulsadas ambas teclas shift y pulsa `Pause`
* Manten pulsadas ambas teclas shift y pulsa `B`
* Desconecta tu teclado, mantén pulsada la barra espaciadora y `B` al mismo tiempo, conecta tu teclado y espera un segundo antes de dejar de pulsar las teclas
* Pulsa el botón físico `RESET` situado en el fondo de la PCB
* Localiza los pines en la PCB etiquetados on `BOOT0` o `RESET`, puentea estos dos juntos cuando enchufes la PCB
Si has tenido éxito verás un mensaje similar a este en QMK Toolbox:
```
*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
*** DFU device connected
```
### Flashea tu teclado
Haz click en el botón `Flash` de QMK Toolbox. Verás una información de salida similar a esta:
```
*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
*** DFU device connected
*** Attempting to flash, please don't remove device
>>> dfu-programmer atmega32u4 erase --force
Erasing flash... Success
Checking memory from 0x0 to 0x6FFF... Empty.
>>> dfu-programmer atmega32u4 flash /Users/skully/qmk_firmware/clueboard_66_hotswap_gen1_skully.hex
Checking memory from 0x0 to 0x55FF... Empty.
0% 100% Programming 0x5600 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x5600 bytes written into 0x7000 bytes memory (76.79%).
>>> dfu-programmer atmega32u4 reset
*** DFU device disconnected
*** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390
```
## Flashea tu teclado desde la línea de comandos
Lo primero que tienes que saber es qué bootloader utiliza tu teclado. Hay cuatro bootloaders pincipales que se usan habitualmente . Pro-Micro y sus clones usan CATERINA, Teensy's usa Halfkay, las placas OLKB usan QMK-DFU, y otros chips atmega32u4 usan DFU.
Puedes encontrar más información sobre bootloaders en la página [Instrucciones de flasheado e información de Bootloader](flashing.md).
Si sabes qué bootloader estás usando, en el momento de compilar el firmware, podrás añadir algún texto extra al comando `make` para automatizar el proceso de flasheado.
### DFU
Para eo bootloader DFU, cuando estés listo para compilar y flashear tu firmware, abre tu ventana de terminal y ejecuta el siguiente comando de construcción:
make <my_keyboard>:<my_keymap>:dfu
Por ejemplo, si tu keymap se llama "xyverz" y estás construyendo un keymap para un planck rev5, utilizarás este comando:
make planck/rev5:xyverz:dfu
Una vez que finalice de compilar, deberá aparecer lo siguiente:
```
Linking: .build/planck_rev5_xyverz.elf [OK]
Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
Checking file size of planck_rev5_xyverz.hex
* File size is fine - 18574/28672
```
Después de llegar a este punto, el script de construcción buscará el bootloader DFU cada 5 segundos. Repetirá lo siguiente hasta que se encuentre el dispositivo o lo canceles:
dfu-programmer: no device present.
Error: Bootloader not found. Trying again in 5s.
Una vez haya hecho esto, tendrás que reiniciar el controlador. Debería mostrar una información de salida similar a esta:
```
*** Attempting to flash, please don't remove device
>>> dfu-programmer atmega32u4 erase --force
Erasing flash... Success
Checking memory from 0x0 to 0x6FFF... Empty.
>>> dfu-programmer atmega32u4 flash /Users/skully/qmk_firmware/clueboard_66_hotswap_gen1_skully.hex
Checking memory from 0x0 to 0x55FF... Empty.
0% 100% Programming 0x5600 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x5600 bytes written into 0x7000 bytes memory (76.79%).
>>> dfu-programmer atmega32u4 reset
```
?> Si tienes problemas con esto- del estilo de `dfu-programmer: no device present` - por favor consulta las [Preguntas frecuentes de construcción](faq_build.md).
#### Comandos DFU
Hay un número de comandos DFU que puedes usar para flashear firmware a un dispositivo DFU:
* `:dfu` - Esta es la opción normal y espera hasta que un dispositivo DFU esté disponible, entonces flashea el firmware. Esperará reintentando cada 5 segundos, para ver si un dispositivo DFU ha aparecido.
* `:dfu-ee` - Esta flashea un fichero `eep` en vez del hex normal. Esto no es lo común.
* `:dfu-split-left` - Esta flashea el firmware normal, igual que la opción por defecto (`:dfu`). Sin embargo, también flashea el fichero EEPROM "Lado Izquierdo" para teclados divididos. _Esto es ideal para los ficheros divididos basados en Elite C._
* `:dfu-split-right` - Esto flashea el firmware normal, igual que la opción por defecto (`:dfu`). Sin embargo, también flashea el fichero EEPROM "Lado Derecho" para teclados divididos. _Esto es ideal para los ficheros divididos basados en Elite C._
### Caterina
Para placas Arduino y sus clones (como la SparkFun ProMicro), cuando estés listo para compilar y flashear tu firmware, abre tu ventana de terminal y ejecuta el siguiente comando de construcción:
make <my_keyboard>:<my_keymap>:avrdude
Por ejemplo, si tu keymap se llama "xyverz" y estás construyendo un keymap para un Lets Split rev2, usarás este comando:
make lets_split/rev2:xyverz:avrdude
Una vez que finalice de compilar, deberá aparecer lo siguiente:
```
Linking: .build/lets_split_rev2_xyverz.elf [OK]
Creating load file for flashing: .build/lets_split_rev2_xyverz.hex [OK]
Checking file size of lets_split_rev2_xyverz.hex [OK]
* File size is fine - 27938/28672
Detecting USB port, reset your controller now..............
```
En este punto, reinicia la placa y entonces el script detectará el bootloader y procederá a flashear la placa. La información de salida deber ser algo similar a esto:
```
Detected controller on USB port at /dev/ttyS15
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9587 (probably m32u4)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "./.build/lets_split_rev2_xyverz.hex"
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
avrdude.exe: writing flash (27938 bytes):
Writing | ################################################## | 100% 2.40s
avrdude.exe: 27938 bytes of flash written
avrdude.exe: verifying flash memory against ./.build/lets_split_rev2_xyverz.hex:
avrdude.exe: load data flash data from input file ./.build/lets_split_rev2_xyverz.hex:
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex contains 27938 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 0.43s
avrdude.exe: verifying ...
avrdude.exe: 27938 bytes of flash verified
avrdude.exe: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude.exe done. Thank you.
```
Si tienes problemas con esto, puede ser necesario que hagas esto:
sudo make <my_keyboard>:<my_keymap>:avrdude
Adicionalmente, si quisieras flashear múltiples placas, usa el siguiente comando:
make <keyboard>:<keymap>:avrdude-loop
Cuando hayas acabado de flashear placas, necesitarás pulsar Ctrl + C o cualquier combinación que esté definida en tu sistema operativo para finalizar el bucle.
### HalfKay
Para dispositivos PJRC (Teensy's), cuando estés listo para compilar y flashear tu firmware, abre tu ventana de terminal y ejecuta el siguiente comando de construcción:
make <my_keyboard>:<my_keymap>:teensy
Por ejemplo, si tu keymap se llama "xyverz" y estás construyendo un keymap para un Ergodox o un Ergodox EZ, usarás este comando:
make ergodox_ez:xyverz:teensy
Una vez que el firmware acabe de compilar, deberá mostrar una información de salida como esta:
```
Linking: .build/ergodox_ez_xyverz.elf [OK]
Creating load file for flashing: .build/ergodox_ez_xyverz.hex [OK]
Checking file size of ergodox_ez_xyverz.hex [OK]
* File size is fine - 25584/32256
Teensy Loader, Command Line, Version 2.1
Read "./.build/ergodox_ez_xyverz.hex": 25584 bytes, 79.3% usage
Waiting for Teensy device...
(hint: press the reset button)
```
En este punto, reinicia tu placa. Una vez que lo hayas hecho, deberás ver una información de salida como esta:
```
Found HalfKay Bootloader
Read "./.build/ergodox_ez_xyverz.hex": 28532 bytes, 88.5% usage
Programming............................................................................................................................................................................
...................................................
Booting
```
### BootloadHID
Para placas basadas en Bootmapper Client(BMC)/bootloadHID/ATmega32A, cuando estés listo para compilar y flashear tu firmware, abre tu ventana de terminal y ejecuta el comando de construcción:
make <my_keyboard>:<my_keymap>:bootloaderHID
Por ejemplo, si tu keymap se llama "xyverz" y estás construyendo un keymap para un jj40, usarás esté comando:
make jj40:xyverz:bootloaderHID
Una vez que el firmware acaba de compilar, mostrará una información de salida como esta:
```
Linking: .build/jj40_default.elf [OK]
Creating load file for flashing: .build/jj40_default.hex [OK]
Copying jj40_default.hex to qmk_firmware folder [OK]
Checking file size of jj40_default.hex [OK]
* The firmware size is fine - 21920/28672 (6752 bytes free)
```
Después de llegar a este punto, el script de construcción buscará el bootloader DFU cada 5 segundos. Repetirá lo siguiente hasta que se encuentre el dispositivo o hasta que lo canceles.
```
Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
Una vez que lo haga, querrás reinicar el controlador. Debería entonces mostrar una información de salida similar a esta:
```
Page size = 128 (0x80)
Device size = 32768 (0x8000); 30720 bytes remaining
Uploading 22016 (0x5600) bytes starting at 0 (0x0)
0x05580 ... 0x05600
```
### STM32 (ARM)
Para la mayoría de placas ARM (incluyendo la Proton C, Planck Rev 6, y Preonic Rev 3), cuando estés listo para compilar y flashear tu firmware, abre tu ventana de terminal y ejecuta el siguiente comando de construcción:
make <my_keyboard>:<my_keymap>:dfu-util
Por ejemplo, si tu keymap se llama "xyverz" y estás construyendo un keymap para un teclado Planck Revision 6, utilizarás este comando y a continuación reiniciarás el teclado con el bootloader (antes de que acabe de compilar):
make planck/rev6:xyverz:dfu-util
Una vez que el firmware acaba de compilar, mostrará una información de salida similar a esta:
```
Linking: .build/planck_rev6_xyverz.elf [OK]
Creating binary load file for flashing: .build/planck_rev6_xyverz.bin [OK]
Creating load file for flashing: .build/planck_rev6_xyverz.hex [OK]
Size after:
text data bss dec hex filename
0 41820 0 41820 a35c .build/planck_rev6_xyverz.hex
Copying planck_rev6_xyverz.bin to qmk_firmware folder [OK]
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 41824
Download [=========================] 100% 41824 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
```
#### STM32 Commands
Hay un número de comandos DFU que puedes usar para flashear firmware a un dispositivo DFU:
* `:dfu-util` - El comando por defecto para flashing en dispositivos STM32.
* `:dfu-util-wait` - Esto funciona como el comando por defecto, pero te da (configurable) 10 segundos de tiempo antes de que intente flashear el firmware. Puedes usar `TIME_DELAY=20` desde la líena de comandos para cambiar este tiempo de retardo.
* Eg: `make <keyboard>:<keymap>:dfu-util TIME_DELAY=5`
* `:dfu-util-split-left` - Flashea el firmware normal, igual que la opción por defecto (`:dfu-util`). Sin embargo, también flashea el fichero EEPROM "Lado Izquierdo" para teclados divididos.
* `:dfu-util-split-right` - Flashea el firmware normal, igual que la opción por defecto (`:dfu-util`). Sin embargo, también flashea el fichero EEPROM "Lado Derecho" para teclados divididos.
## ¡Pruébalo!
¡Felicidades! ¡Tu firmware personalizado ha sido programado en tu teclado!
Pruébalo y asegúrate de que todo funciona de la manera que tu quieres. Hemos escrito [Testeando y depurando](newbs_testing_debugging.md) para redondear esta guía de novatos, así que pásate por allí para aprender cómo resolver problemas con tu funcionalidad personalizada.

View File

@@ -1,103 +0,0 @@
# Introducción
El teclado de tu computador tiene un procesador dentro de él, no muy distinto del que está dentro de tu ordenador. Este procesador ejecuta software que es responsable de detectar la pulsación de las teclas y enviar informes sobre el estado del teclado cuando las teclas son pulsadas y liberadas. QMK ocupa el rol de ese software. Cuando construyes un keymap personalizado , estas creando el equivalente de un programa ejecutable en tu teclado.
QMK intenta poner un montón de poder en tus manos haciendo que las cosas fáciles sean fáciles, y las cosas difíciles posibles. No tienes que saber cómo programar para crear keymaps potentes — sólo tienes que seguir un conjunto simple de reglas sintácticas.
# Comenzando
Antes de que puedas construir keymaps, necesitarás instalar algun software y configurar tu entorno de construcción. Esto sólo hay que hacerlo una vez sin importar en cuántos teclados planeas configurar el software.
Si prefieres hacerlo mediante un interfaz gráfico , por favor, considera utilizar el [Configurador QMK](https://config.qmk.fm). En ese caso dirígete a [Construyendo tu primer firmware usando la GUI](newbs_building_firmware_configurator.md).
## Descarga el software
### Editor de texto
Necesitarás un programa con el que puedas editar y guardar archivos de **texto plano**, en windows puedes utilizar Notepad y en tu Linux puedes utilizar gedit. Estos dos programas son editores simples y funcionales. En macOS ten cuidado con la aplicación de edición de texto por defecto TextEdit: no guardará texto plano a menos de que se le seleccione explícitamente _Make Plain Text_ desde el menú _Format_.
También puedes descargar e instalar un editor de texto dedicado como [Sublime Text](https://www.sublimetext.com/) o [VS Code](https://code.visualstudio.com/). Esta es probablemente la mejor manera independientemente de la plataforma, ya que estos programas fueron creados específicamente para editar código.
?> ¿No estás seguro de qué editor de texto utilizar? Laurence Bradford escribió una [estupenda introducción](https://learntocodewith.me/programming/basics/text-editors/) al tema.
### QMK Toolbox
QMK Toolbox is an optional graphical program for Windows and macOS that allows you to both program and debug your custom keyboard. You will likely find it invaluable for easily flashing your keyboard and viewing debug messages that it prints.
[Download the latest release here.](https://github.com/qmk/qmk_toolbox/releases/latest)
* For Windows: `qmk_toolbox.exe` (portable) or `qmk_toolbox_install.exe` (installer)
* For macOS: `QMK.Toolbox.app.zip` (portable) or `QMK.Toolbox.pkg` (installer)
## Configura tu entorno
Hemos intentado hacer QMK lo más fácil de configurar posible. Sólo tienes que preparar tu entorno Linux o Unix, y luego dejar que QMK
instale el resto.
?> Si no has trabajado con la línea de comandos de Linux/Unix con anterioridad, hay algunos conceptos y comandos básicos que deberías aprender. Estos recursos te enseñarán lo suficiente para poder trabajar con QMK:<br>
[Comandos de Linux que debería saber](https://www.guru99.com/must-know-linux-commands.html)<br>
[Algunos comandos básicos de Unix](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html)
### Windows
Necesitarás instalar MSYS2 y Git.
* Sigue las instrucciones de instalación en la [página de MSYS2](https://www.msys2.org).
* Cierra las terminales abiertas de MSYS2 y abre una nueva termial de MSYS2 MinGW 64-bit.
* Instala Git ejecutando este comando: `pacman -S git`.
### macOS
Necesitarás instalar Homebrew. Sigue las instrucciones que encontrarás en la [página de Homebrew](https://brew.sh).
Despueś de que se haya inastalado Homebrew, continúa con _Set Up QMK_. En ese paso ejecutará un script que instalará el resto de paquetes.
### Linux
Necesitarás instalar Git. Es bastante probable que ya lo tengas, pero si no, uno de los siguientes comandos debería instalarlo:
* Debian / Ubuntu / Devuan: `apt-get install git`
* Fedora / Red Hat / CentOS: `yum install git`
* Arch: `pacman -S git`
?> Docker es también una opción en todas las plataformas. [Haz click aquí si quieres detalles.](getting_started_build_tools.md#docker)
## Configura QMK
Una vez que hayas configurado tu entorno Linux/Unix, estarás listo para descargar QMK. Haremos esto utilizando Git para "clonar" el respositorio de QMK. Abre una ventana de Terminal o MSYS2 MinGW y mantenla abierta mientras sigues esta guía. Dentro de esa ventana ejecuta estos dos comandos:
```shell
git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
```
?> Si ya sabes [cómo usar GitHub](getting_started_github.md), te recomendamos en vez de eso, crees y clones tu propio fork. Si no sabes lo que significa, puedes ignorar este mensaje sin problemas.
QMK viene con un script para ayudarte a configurar el resto de cosas que necesitarás. Deberías ejecutarlo introduciendo este comando:
util/qmk_install.sh
## Prueba tu entorno de construcción
Ahora que tu entorno de construcción de QMK está configurado, puedes construcir un firmware para tu teclado. Comienza intentado construir el keymap por defecto del teclado. Deberías ser capaz de hacerlo con un comando con este formato:
make <keyboard>:default
Por ejemplo, para construir el firmware para un Clueboard 66% deberías usar:
make clueboard/66/rev3:default
Cuando esté hecho, deberías tener un montón de información de salida similar a esta:
```
Linking: .build/clueboard_66_rev3_default.elf [OK]
Creating load file for flashing: .build/clueboard_66_rev3_default.hex [OK]
Copying clueboard_66_rev3_default.hex to qmk_firmware folder [OK]
Checking file size of clueboard_66_rev3_default.hex [OK]
* The firmware size is fine - 26356/28672 (2316 bytes free)
```
# Creando tu keymap
Ya estás listo para crear tu propio keymap personal! Para hacerlo continua con [Construyendo tu primer firmware](newbs_building_firmware.md).

View File

@@ -1,15 +0,0 @@
# Recursos de aprendizaje
Estos recursos procuran dar miembros nuevos en la communidad QMK un mayor entendimiento de la información proporcionada en la documentación para novatos.
Recursos de Git:
* [Excelente tutorial general](https://www.codecademy.com/learn/learn-git)
* [Juego de Git para aprender usando ejemplos](https://learngitbranching.js.org/)
* [Recursos de Git para aprender más sobre GitHub](getting_started_github.md)
* [Recursos de Git dirigidos específicamente a QMK](contributing.md)
Recursos para línea de mandatos:
* [Excelente tutorial general sobre la línea de mandatos](https://www.codecademy.com/learn/learn-the-command-line)

View File

@@ -1,101 +0,0 @@
# Testeando y depurando
Una vez que hayas flasheado tu teclado con un firmware personalizado estarás listo para probarlo. Con un poco de suerte todo funcionará a la primera, pero si no es así, este documento te ayudará a averiguar qué está mal.
## Probando
Probar tu teclado es generalmente bastante sencillo. Persiona cada una de las teclas y asegúrate de que envía la tecla correcta. Existen incluso programas que te ayudarán a asegurarte de que no te dejas ninguna tecla sin comprobar.
Nota: Estos programas no los provée ni están relacionados con QMK.
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Sólo Windows)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Sólo Mac)
* [Keyboard Tester](https://www.keyboardtester.com) (Aplicación web)
* [Keyboard Checker](https://keyboardchecker.com) (Aplicación web)
## Depurando
Tu teclado mostrará información de depuración si tienes `CONSOLE_ENABLE = yes` en tu `rules.mk`. Por defecto la información de salida es muy limitada, pero puedes encender el modo de depuración para incrementar la información de salida. Utiliza el keycode `DEBUG` de tu keymap, usa la característica [Comando](feature_command.md) para activar el modo depuración, o añade el siguiente código a tu keymap.
```c
void keyboard_post_init_user(void) {
// Customise these values to desired behaviour
debug_enable=true;
debug_matrix=true;
//debug_keyboard=true;
//debug_mouse=true;
}
```
### Depurando con QMK Toolbox
Para plataformas compatibles, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) se puede usar para mostrar mensajes de depuración de tu teclado.
### Depurando con hid_listen
¿Prefieres una solución basada en una terminal? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provista por PJRC, se puede usar también para mostrar mensajes de depuración. Hay binarios preconstruídos para Windows,Linux,y MacOS.
<!-- FIXME: Describe the debugging messages here. -->
## Enviando tus propios mensajes de depuración
A veces, es útil imprimir mensajes de depuración desde tu [código personalizado](custom_quantum_functions.md). Hacerlo es bastante simple. Comienza incluyendo `print.h` al principio de tu fichero:
```c
#include "print.h"
```
Después de eso puedes utilzar algunas funciones print diferentes:
* `print("string")`: Imprime un string simple
* `uprintf("%s string", var)`: Imprime un string formateado
* `dprint("string")` Imprime un string simple, pero sólo cuando el modo de depuración está activo
* `dprintf("%s string", var)`: Imprime un string formateado, pero sólo cuando el modo de depuración está activo
## Ejemplos de depuración
Debajo hay una colección de ejemplos de depuración del mundo real. Para información adicional, Dirígete a [Depurando/Encontrando problemas en QMK](faq_debug.md).
### ¿Que posición en la matriz tiene esta pulsación de tecla?
Cuando estés portando, o intentando diagnosticar problemas en la pcb, puede ser útil saber si la pulsación de una tecla es escaneada correctamente. Para hablitar la información de registro en este escenario, añade el siguiente código al `keymap.c` de tus keymaps
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// If console is enabled, it will print the matrix position and status of each key pressed
#ifdef CONSOLE_ENABLE
uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
#endif
return true;
}
```
Ejemplo de salida
```text
Waiting for device:.......
Listening:
KL: kc: 169, col: 0, row: 0, pressed: 1
KL: kc: 169, col: 0, row: 0, pressed: 0
KL: kc: 174, col: 1, row: 0, pressed: 1
KL: kc: 174, col: 1, row: 0, pressed: 0
KL: kc: 172, col: 2, row: 0, pressed: 1
KL: kc: 172, col: 2, row: 0, pressed: 0
```
### ¿Cuanto tiempo tardó en escanear la pulsación de una tecla?
Cuando estés probando problemas en el rendimiento, puede ser útil saber la frecuenta a la cual la matríz de pulsadores se está escaneando. Para hablitar la información de registro en este escenario, añade el siguiente código al `config.h` de tus keymaps
```c
#define DEBUG_MATRIX_SCAN_RATE
```
Ejemplo de salida
```text
> matrix scan frequency: 315
> matrix scan frequency: 313
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
```

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

@@ -70,22 +70,22 @@ or `keymap.c`:
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_PGDN);
tap_code_delay(KC_VOLU, 10);
} else {
tap_code(KC_PGUP);
tap_code_delay(KC_VOLD, 10);
}
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_DOWN);
rgb_matrix_increase_hue();
} else {
tap_code(KC_UP);
rgb_matrix_decrease_hue();
}
}
return false;
}
```
!> 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:
@@ -100,9 +100,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}
} else if (index == 1) {
if (clockwise) {
tap_code(KC_VOLU);
tap_code_delay(KC_VOLU, 10);
} else {
tap_code(KC_VOLD);
tap_code_delay(KC_VOLD, 10);
}
}
} else { /* Layer 0 */
@@ -114,9 +114,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}
} else if (index == 1) {
if (clockwise) {
tap_code(KC_DOWN);
rgb_matrix_increase_speed();
} else {
tap_code(KC_UP);
rgb_matrix_decrease_speed();
}
}
}
@@ -124,13 +124,18 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}
```
?> Media and mouse countrol keycodes such as `KC_VOLU` and `KC_WH_D` requires `EXTRAKEY_ENABLE = yes` and `MOUSEKEY_ENABLE = yes` respectively in user's `rules.mk` if they are not enabled as default on keyboard level configuration.
## Hardware
The A an B lines of the encoders should be wired directly to the MCU, and the C/common lines should be wired to ground.
## 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
@@ -193,6 +193,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
```
?> An enumerated list of custom keycodes (`enum custom_keycodes`) must be declared before `keymaps[]` array, `process_record_user()` and any other function that use the list for the compiler to recognise it.
#### Advanced Macros
In addition to the `process_record_user()` function, is the `post_process_record_user()` function. This runs after `process_record` and can be used to do things after a keystroke has been sent. This is useful if you want to have a key pressed before and released after a normal key, for instance.

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,18 +276,20 @@ 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.
## Example
## Examples
In the following example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function. Listen, this is an example:
### Custom Mouse Keycode
In this example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function.
```c
case MS_SPECIAL:
@@ -242,3 +309,93 @@ case MS_SPECIAL:
```
Recall that the mouse report is set to zero (except the buttons) whenever it is sent, so the scrolling would only occur once in each case.
### Drag Scroll or Mouse Scroll
A very common implementation is to use the mouse movement to scroll instead of moving the cursor on the system. This uses the `pointing_device_task_user` callback to intercept and modify the mouse report before it's sent to the host system.
```c
enum custom_keycodes {
DRAG_SCROLL = SAFE_RANGE,
};
bool set_scrolling = false;
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 = 0;
mouse_report.y = 0;
}
return mouse_report;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (keycode == DRAG_SCROLL && record->event.pressed) {
set_scrolling = !set_scrolling;
}
return true;
}
```
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:

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