Compare commits

..

976 Commits

Author SHA1 Message Date
ducoterra
5413fb76a7 add custom q10 keymap 2022-10-14 21:42:24 -04:00
lalalademaxiya1
b0523764a0 Merge pull request #66 from lalalademaxiya1/playground
Update v5, v6
2022-09-19 14:01:30 +08:00
lalalademaxiya1
2e7b526f64 Update v5, v6 2022-09-19 14:00:11 +08:00
lalalademaxiya1
9a665f9f12 Update default keymap of all keyboards 2022-09-19 12:24:34 +08:00
lalalademaxiya1
fb39fc7e13 Merge pull request #65 from ToyKeeper/keychron-no-factory-tests-in-user-keymaps
moved factory tests to factory keymaps only (default + via)
2022-09-19 09:14:15 +08:00
lalalademaxiya1
e08360b190 Update all keyboards 2022-09-18 16:52:02 +08:00
lalalademaxiya1
4078f374f9 Update all keyboards 2022-09-18 12:01:05 +08:00
Selene ToyKeeper
39439c8d7e moved factory tests to factory keymaps only (default + via)
(these tests don't belong in user keymaps,
 and they break several user keymap functions)
2022-09-17 17:20:58 -06:00
lalalademaxiya1
a44d65b624 Merge pull request #63 from ToyKeeper/keychron-v1-fix-post-init-user
bug fix: un-break keyboard_post_init_user() in all Keychron keyboards
2022-09-17 11:21:33 +08:00
lalalademaxiya1
78ae45e658 Update test.c 2022-09-17 11:18:41 +08:00
lalalademaxiya1
a16b549e52 Merge pull request #64 from lalalademaxiya1/playground
Playground
2022-09-17 11:11:23 +08:00
lalalademaxiya1
68ff6019dd Update q60 2022-09-17 11:08:44 +08:00
Selene ToyKeeper
afe9ccb101 bug fix: allow user keymaps to use keyboard_post_init_user()
(applies previous commit to all Keychron keyboards)

Keyboard models which define keyboard_post_init_kb() are required
by QMK to call keyboard_post_init_user(), but Keychron's code did
not do this... so I fixed it.  This enables user keymaps to run
custom code on boot, like loading user eeprom data and activating
custom RGB settings.

For more info:
https://docs.qmk.fm/#/custom_quantum_functions?id=keyboard-post-initialization-code
https://docs.qmk.fm/#/custom_quantum_functions?id=example-implementation
2022-09-16 15:48:15 -06:00
Selene ToyKeeper
7083a70c21 bug fix: allow keyboard_post_init_user() to work
This lets the user run custom code at boot time,
like loading user eeprom values.  Without this,
the V1 couldn't load/save any custom settings in my
user keymap... even though all my other keyboards
worked fine.
2022-09-16 15:33:27 -06:00
lalalademaxiya1
539922211e Update q60 2022-09-16 21:43:39 +08:00
lalalademaxiya1
09a1c041ae Update all test.c 2022-09-15 12:09:07 +08:00
lalalademaxiya1
6d9254ebc3 Merge pull request #59 from darkstego/playground-fix
Unblock process_record_user for certain keys
2022-09-15 12:02:54 +08:00
lalalademaxiya1
b2f6c42b7a Merge branch 'develop' into playground 2022-09-15 11:50:50 +08:00
QMK Bot
6d39cc858f Merge remote-tracking branch 'origin/master' into develop 2022-09-15 00:14:52 +00:00
ENDO Katsuhiro
f483520ff9 Fix problem that Chidori is not recognized by host computer. (#17882) 2022-09-15 01:14:19 +01:00
QMK Bot
a949164b99 Merge remote-tracking branch 'origin/master' into develop 2022-09-15 00:05:17 +00:00
Drew Hamilton
3fbc3ac8ad [Keyboard] Add a new keyboard 'plum47' (#18359) 2022-09-15 01:04:40 +01:00
QMK Bot
13dab7f050 Merge remote-tracking branch 'origin/master' into develop 2022-09-15 00:04:32 +00:00
Joel Challis
01f31bf28e [Docs] RESET -> QK_BOOT (#18365) 2022-09-15 01:03:55 +01:00
QMK Bot
91a3ae24fe Merge remote-tracking branch 'origin/master' into develop 2022-09-14 22:56:12 +00:00
jack
0abde386ae Remove RESET keycodes from fjlabs keyboards (#18364) 2022-09-14 23:54:24 +01:00
Joel Challis
8d715fc16b Remove deprecated RESET keycode alias (#18271) 2022-09-14 11:15:57 -07:00
QMK Bot
5492dd00c7 Merge remote-tracking branch 'origin/master' into develop 2022-09-14 18:14:36 +00:00
Andrew Kannan
017398c283 [Keyboard] Add Vector PCB (#17380) 2022-09-14 11:13:13 -07:00
QMK Bot
da60b89dc0 Merge remote-tracking branch 'origin/master' into develop 2022-09-14 17:56:45 +00:00
jels
624ab64750 [Keyboard] Add Calice (#17929)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-09-14 10:56:09 -07:00
QMK Bot
dd7b700ab1 Merge remote-tracking branch 'origin/master' into develop 2022-09-14 16:00:10 +00:00
James Young
083ac400e2 GeonWorks Frog Mini Soldered Layout Rework (#18308) 2022-09-14 08:59:17 -07:00
QMK Bot
ff2585dc49 Merge remote-tracking branch 'origin/master' into develop 2022-09-14 15:41:05 +00:00
satorusaka
87b1b560cb [Keyboard] Add skmt/15k keyboard (#18321)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-09-14 08:40:18 -07:00
QMK Bot
41da1f42de Merge remote-tracking branch 'origin/master' into develop 2022-09-14 15:18:04 +00:00
Ramon Imbao
fc3f2dcb43 [Keyboard] Replace Nayeon ATmega32u4 config with RP2040 (#18265) 2022-09-14 08:16:54 -07:00
QMK Bot
d2ce817dfa Merge remote-tracking branch 'origin/master' into develop 2022-09-14 00:36:56 +00:00
dependabot[bot]
23666150e9 Bump anothrNick/github-tag-action from 1.42.0 to 1.45.0 (#18355)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-14 10:36:20 +10:00
QMK Bot
e591b94544 Merge remote-tracking branch 'origin/master' into develop 2022-09-14 00:21:20 +00:00
Reibl János Dániel
6984c6d3b3 fix: Remove TERM_ON/TERM_OFF from my keymap (#18354) 2022-09-14 01:20:34 +01:00
QMK Bot
38f9b0beea Merge remote-tracking branch 'origin/master' into develop 2022-09-13 11:11:26 +00:00
dependabot[bot]
2800cd31ae Bump anothrNick/github-tag-action from 1.39.0 to 1.42.0 (#18344)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-13 21:10:52 +10:00
Joshua Diamond
23e12497b2 Merge remote-tracking branch 'origin/master' into develop 2022-09-12 18:57:58 -04:00
Purdea Andrei
b2ad047d7f Fix keyboard_name for Unicomp Classic/Ultra Classic keyboards (#18327) 2022-09-12 23:10:17 +01:00
Joshua Diamond
7c49b8caa9 Adapt to unicode refactoring (#18345) 2022-09-12 21:32:52 +01:00
ebastler
110de0b512 Add EM.8 keyboard (#18328)
by ebastler
2022-09-12 17:17:01 +01:00
Thomas
55c637f28f [Docs] Fix docs regarding cirque pinnacle attenuation (#18279) 2022-09-12 08:56:21 -07:00
Ryan
3d667f0970 Refactor Unicode feature (#18333) 2022-09-12 08:49:04 -07:00
Abdulla Bubshait
0100fe5635 Add default case to process_record_kb 2022-09-12 08:26:52 -04:00
Abdulla Bubshait
a37f78f6f8 Remove calling process_record_user at end of process_record_kb
This avoids calling process_record_user twice in case of return true.
It should only be called before any processing.
2022-09-12 08:18:21 -04:00
Abdulla Bubshait
6f117dacdf Unblock process_record_user for certain keys
process_record_user should be called for all keys and if it returns
true then process_record_kb will continue processing.
2022-09-12 07:54:33 -04:00
Vino Rodrigues
f46379f308 fixed missing x coordinate on spacebar (#18330) 2022-09-11 13:07:32 +01:00
Joel Challis
16c2b528df GMMK2: Fix 'ISO' within product name (#18322) 2022-09-10 13:31:46 +01:00
Joel Challis
4087251da6 Reboot wb32 devices after flashing (#18323) 2022-09-10 01:14:12 +01:00
Joy Lee
405a32ddf4 Added gmmk v2 p65 keyboard. (#18185) 2022-09-09 23:12:48 +01:00
Ryan
f20883fef1 RN42 driver: small cleanups (#18310)
* RN42 driver: small cleanups

* Include header

* Fix mouse report per RN42 UG

* Spacing for consistency
2022-09-09 21:36:39 +01:00
Joel Challis
725df1278b Fix '_RIGHT' matrix pins lint error (#18320) 2022-09-09 21:22:55 +01:00
Joel Challis
9e24262161 Fix DD use within boardsource/microdox (#18319) 2022-09-09 21:21:48 +01:00
QMK Bot
a18aab4c3c Merge remote-tracking branch 'origin/master' into develop 2022-09-09 18:17:46 +00:00
ZhaoYou.Ge
9ad75dbf47 'soda/cherish' support apm32f072 (#18316) 2022-09-09 19:17:10 +01:00
QMK Bot
2b30b3e168 Merge remote-tracking branch 'origin/master' into develop 2022-09-09 12:41:51 +00:00
Jacqueline Liang
88555d8e18 Add via support for 6key (#18082) 2022-09-09 13:41:18 +01:00
QMK Bot
b6a79bec46 Merge remote-tracking branch 'origin/master' into develop 2022-09-09 01:58:52 +00:00
James Young
107ccc56b4 Hillside 46 & 52: remove dead space from QMK Configurator renderings (#18315)
* Hillside 46 info.json: fix syntax error

* Hillside 46 info.json: remove dead space

* Hillside 52 info.json: remove dead space
2022-09-09 02:57:46 +01:00
Danny
fb6e821541 Add Elite-Pi converter (#18236)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-09-08 14:59:27 -04:00
lalalademaxiya1
ea02eb122c Update iso version 0f q5 2022-09-08 11:43:50 +08:00
QMK Bot
3e0a22d532 Merge remote-tracking branch 'origin/master' into develop 2022-09-07 21:52:45 +00:00
Danny
7b4dc5a7e4 Add Iris Rev. 6b (#18307) 2022-09-07 17:52:11 -04:00
QMK Bot
60d2108f23 Merge remote-tracking branch 'origin/master' into develop 2022-09-07 21:30:54 +00:00
James Young
ce90be0961 GeonWorks Frog Mini Hotswap Layout Rework (#18305)
* fmh.h: add matrix diagram

* info.json: apply friendly formatting

* physically arrange LAYOUT_all macro

Move position `K5D` (right half of Split Backspace) to the end of the top row.

* rename LAYOUT_all to LAYOUT_60_tsangan_hhkb

* add LAYOUT_60_ansi_tsangan

* add LAYOUT_60_hhkb

* add LAYOUT_60_ansi_wkl

* add LAYOUT_60_ansi_wkl_split_bs_rshift

* enable Community Layouts support
2022-09-07 14:30:17 -07:00
QMK Bot
fd8875f82c Merge remote-tracking branch 'origin/master' into develop 2022-09-07 21:05:23 +00:00
Danny
3f65d48539 Update Iris VIA configuration (#18306)
* Update RGB matrix max brightness

* Remove old VIA workaround code

* Fix default encoder rotations	for encoder map
2022-09-07 22:04:46 +01:00
QMK Bot
4bbac50277 Merge remote-tracking branch 'origin/master' into develop 2022-09-07 19:19:22 +00:00
mechlovin
b0dc789a1b [Keyboard] Wearhaus66 correct matrix (#18284) 2022-09-07 20:18:48 +01:00
QMK Bot
9ca91a7a98 Merge remote-tracking branch 'origin/master' into develop 2022-09-07 19:18:35 +00:00
David Luo
76910eece1 enable RGB matrix effects for drop ctrl (#18291) 2022-09-07 20:17:52 +01:00
Ryan
f7d2b001bc Move Bluetooth-related function calls up to host/keyboard level (#18274)
* Move Bluetooth-related function calls up to host/keyboard level

* Remove pointless set_output() call

* Move bluetooth (rn42) init to end of keyboard_init()

* Enable SPI/UART for ChibiOS targets

* Some more slight tweaks
2022-09-07 19:59:24 +01:00
QMK Bot
cf8cdd1992 Merge remote-tracking branch 'origin/master' into develop 2022-09-07 18:53:04 +00:00
syntax-magic
6321cbaadd [Keymap] removed else in numlock led if statement (#18304) 2022-09-07 19:52:32 +01:00
QMK Bot
54f6b61643 Merge remote-tracking branch 'origin/master' into develop 2022-09-07 16:15:38 +00:00
syntax-magic
8a0c0f72a5 added a new kprepublic/bm40hsrgb keymap called dan (#18301)
by syntax-magic
2022-09-07 17:14:46 +01:00
QMK Bot
03f6954c3a Merge remote-tracking branch 'origin/master' into develop 2022-09-07 10:39:35 +00:00
ddeklerk
a082fcc933 Delete my keymaps (#18302) 2022-09-07 20:38:54 +10:00
Dasky
d30f0f71d0 Remove legacy define SERIAL_USE_MULTI_TRANSACTION (#18299) 2022-09-07 00:42:28 +01:00
Dasky
c2b35b2327 Remove legacy define USE_SERIAL_PD2 (#18298) 2022-09-07 00:35:47 +01:00
Joshua Diamond
ff7470420a Merge remote-tracking branch 'origin/master' into develop 2022-09-06 19:03:08 -04:00
Michael Stapelberg
f733307551 keymaps/stapelberg: keypad layer for multimedia keys, wake on escape (#18295)
This makes more keys function as printed on the actual keyboard :)
2022-09-06 23:13:12 +01:00
Joshua Diamond
a4d1d8b745 Resolve conflict merging master to develop (#18297)
* Discourage use of ENCODER_MAP at keyboard level (#18286)

* Discourage use of ENCODER_MAP at keyboard level

* Update docs/feature_encoders.md

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

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

* Fungo rev1: fix QMK Configurator key sequence (#18293)

* info.json: correct JSON syntax; friendly formatting

* info.json: fix key sequence

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-09-06 17:42:43 -04:00
Dasky
dc4af81e0b Remove legacy USE_SERIAL define (#18292)
* Remove legacy USE_SERIAL define

* tidy up missed comments
2022-09-06 18:46:34 +01:00
James Young
7160487ccd Fungo rev1: fix QMK Configurator key sequence (#18293)
* info.json: correct JSON syntax; friendly formatting

* info.json: fix key sequence
2022-09-06 18:36:37 +01:00
Joel Challis
60cac6d938 Discourage use of ENCODER_MAP at keyboard level (#18286)
* Discourage use of ENCODER_MAP at keyboard level

* Update docs/feature_encoders.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-09-06 18:08:48 +01:00
Ryan
8833b28361 Remove UNICODE_KEY_OSX and UC_OSX (#18290) 2022-09-06 18:07:08 +01:00
QMK Bot
c6ab11bc45 Merge remote-tracking branch 'origin/master' into develop 2022-09-06 04:26:42 +00:00
James Young
712aa7b1cd Mars 6.5 Layout Additions (#18282)
* info.json: apply friendly formatting

* add LAYOUT_65_ansi_blocker

* add LAYOUT_65_ansi_blocker_split_bs

* add LAYOUT_65_iso_blocker

* add LAYOUT_65_iso_blocker_split_bs

* enable Community Layouts support

* info.json: correct maintainer value
2022-09-06 05:26:11 +01:00
QMK Bot
165c15e250 Merge remote-tracking branch 'origin/master' into develop 2022-09-06 04:26:03 +00:00
Joel Challis
0306bdf7fd Remove use of legacy keycode (#18281) 2022-09-06 05:25:32 +01:00
QMK Bot
f010af0c8e Merge remote-tracking branch 'origin/master' into develop 2022-09-05 13:15:04 +00:00
James Young
5f1273fca6 EU ISOlation: fix QMK Configurator key sequence (#18272)
* eu_isolation.h: physically arrange layout macros

Whitespace only; no logic changes.

* info.json: apply friendly formatting

Add line breaks between physical rows.

* info.json: correct key sequence
2022-09-05 14:14:25 +01:00
QMK Bot
0ac18bfc84 Merge remote-tracking branch 'origin/master' into develop 2022-09-05 01:01:23 +00:00
AMing Lau
a36c95db60 Fix compilation error for GH60 satan HHKB 7u layout (#18250)
* Fix compilation error for GH60 satan HHKB 7u layout

* Update keyboards/gh60/satan/info.json

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

Co-authored-by: Joel Challis <git@zvecr.com>
2022-09-05 02:00:44 +01:00
Ryan
3e02b70d28 Rename keyboards with uppercase letters (#18268) 2022-09-04 21:36:33 +01:00
QMK Bot
a9f8111eac Merge remote-tracking branch 'origin/master' into develop 2022-09-03 21:44:27 +00:00
James Young
288808526b dyz60_hs Layout Additions (#18261)
* dyz60_hs: add matrix diagram

* add LAYOUT_60_ansi

* add LAYOUT_60_ansi_split_bs_rshift

* add LAYOUT_60_tsangan_hhkb

* add LAYOUT_60_iso

* add LAYOUT_60_iso_split_bs_rshift

* enable Community Layouts support

* readme.md: correct keyboard references

Replace `dyz60` with `dyz60_hs` as needed.
2022-09-03 22:43:52 +01:00
QMK Bot
3a56e973ff Merge remote-tracking branch 'origin/master' into develop 2022-09-03 18:47:52 +00:00
Ryan
3c09db41fe Fix a couple of boards still using usb.device_ver (#18258) 2022-09-03 14:47:22 -04:00
QMK Bot
d1c4008f1c Merge remote-tracking branch 'origin/master' into develop 2022-09-03 18:45:16 +00:00
Ryan
bfec30a9fe Clean up data driven mappings syntax (#18257) 2022-09-03 19:44:42 +01:00
QMK Bot
aa2e5fc6da Merge remote-tracking branch 'origin/master' into develop 2022-09-03 17:47:15 +00:00
coliss86
39e611794d [Docs] Update 'Process Record' according to the code (#18209)
* [doc] Update 'Process Record' according to the code

* [doc] fix link
2022-09-03 13:46:42 -04:00
QMK Bot
272b6f6ddb Merge remote-tracking branch 'origin/master' into develop 2022-09-03 15:27:31 +00:00
Xelus22
489b287e1f [Keyboard] RS60 Rev2 change to eeprom emulation (#18201)
by xelus
2022-09-03 16:27:00 +01:00
QMK Bot
556fd909eb Merge remote-tracking branch 'origin/master' into develop 2022-09-03 15:21:53 +00:00
Vino Rodrigues
0c76a3c7d0 [Keyboard] Add IDOBAO Abacus ID42 Keyboard (#16923)
by vinorodrigues
2022-09-03 16:21:00 +01:00
QMK Bot
2c9c62b365 Merge remote-tracking branch 'origin/master' into develop 2022-09-03 14:47:51 +00:00
Tim Traversy
f27c70fffc Add absolute key positions to microdox info.json (#18238) 2022-09-03 15:47:20 +01:00
QMK Bot
fea65c9856 Merge remote-tracking branch 'origin/master' into develop 2022-09-03 05:51:26 +00:00
Joel Challis
5c0e87608f Remove more RESET keycode references (#18252) 2022-09-03 06:50:44 +01:00
Ryan
f76b55d5ad Adjust EXTRAKEY_ENABLE ifdefs for send_extra() (#18249) 2022-09-02 21:50:36 +01:00
Ryan
09d668eb0e Simplify extrakeys sending at the host driver level (#18230)
* Simplify extrakeys sending at the host driver level

* There are two arguments here

* Wrong syntax

* Adjust keyboards which use a custom host driver
2022-09-02 20:38:27 +01:00
QMK Bot
0ceaaaae8e Merge remote-tracking branch 'origin/master' into develop 2022-09-02 16:10:46 +00:00
Brian
5d932e2612 [Keymap] Fixing location of my Keymap for the Gentleman65 (#18246) 2022-09-02 09:10:05 -07:00
QMK Bot
db90919c7a Merge remote-tracking branch 'origin/master' into develop 2022-09-02 15:33:43 +00:00
Drashna Jaelre
90418b371f [Keymap] Fix bootmagic compilation issue with Drashna keymaps (#18223) 2022-09-02 08:32:38 -07:00
QMK Bot
4ad659f226 Merge remote-tracking branch 'origin/master' into develop 2022-09-02 03:55:05 +00:00
Yoichiro Tanaka
27671d8a43 [Keyboard] Add Lunakey Pico (#18202)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-09-01 20:54:33 -07:00
QMK Bot
fbfb04b253 Merge remote-tracking branch 'origin/master' into develop 2022-09-02 03:48:58 +00:00
Jannik Becker
8c793c1a43 [Keyboard] Add Shoc Keyboard (#18143)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-09-01 20:48:24 -07:00
Joy Lee
b5a52b4cff Prevent USB peripheral fault when restarting USB on WB32 MCUs (#18058)
Co-authored-by: Joy <chang.li@westberrytech.com>
2022-09-01 20:48:02 -07:00
QMK Bot
6b6cbf6038 Merge remote-tracking branch 'origin/master' into develop 2022-09-02 03:43:52 +00:00
Joel Challis
26814ca060 Install correct package on Fedora (#18243) 2022-09-01 20:43:19 -07:00
Drashna Jaelre
423826a34a Better handle EEPROM reset keycode (#18244) 2022-09-01 20:43:06 -07:00
lalalademaxiya1
744e8e75b0 Update settings.json 2022-09-02 11:15:05 +08:00
QMK Bot
98ed5b6cfa Merge remote-tracking branch 'origin/master' into develop 2022-09-01 23:33:21 +00:00
jpuerto96
101d7b5337 [Keyboard] Add Ingrained Keyboard (#15928)
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>
Co-authored-by: Juan Puerto <jpuerto@psc.edu>
Co-authored-by: jpuerto-psc <68066250+jpuerto-psc@users.noreply.github.com>
2022-09-01 16:32:47 -07:00
QMK Bot
bc4ab8a433 Merge remote-tracking branch 'origin/master' into develop 2022-09-01 22:39:30 +00:00
Joel Challis
7adef85fa4 Remove non promicro pins from converters (#18239) 2022-09-01 15:38:52 -07:00
lalalademaxiya1
723e6561fd Add v10 for keychron 2022-09-01 14:23:16 +08:00
Joshua Diamond
e4bf832368 Add unicode mode change callbacks (#18235) 2022-08-31 16:39:16 -07:00
QMK Bot
b9effc94db Merge remote-tracking branch 'origin/master' into develop 2022-08-31 20:06:14 +00:00
3araht
1ccd0c19da Add giabalanai keyboard (#10125)
by 3araht
2022-08-31 21:05:43 +01:00
QMK Bot
55c0c920e9 Merge remote-tracking branch 'origin/master' into develop 2022-08-31 19:30:30 +00:00
Ryan Neff
d4c935d8fa Added personal Iris Rev6a layout and Milk 2% layout (#17600)
by JellyTitan
2022-08-31 20:29:26 +01:00
QMK Bot
64749d3adc Merge remote-tracking branch 'origin/master' into develop 2022-08-31 17:20:16 +00:00
Benjamin Collet
6104b66014 Add bepo variant to massdrop/thekey keymaps (#18129)
by mrBen
2022-08-31 18:19:42 +01:00
QMK Bot
5af7982af1 Merge remote-tracking branch 'origin/master' into develop 2022-08-31 17:18:46 +00:00
3araht
786b5d310d Bandominedoni encoder fix (#18229)
by 3araht
2022-08-31 18:17:54 +01:00
QMK Bot
8e6f8ec37f Merge remote-tracking branch 'origin/master' into develop 2022-08-31 16:44:57 +00:00
Drashna Jaelre
0faedb11cc [Keyboard] Updates to Work Louder keyboards (#18232)
by Drashna
2022-08-31 17:44:00 +01:00
QMK Bot
196b71ad53 Merge remote-tracking branch 'origin/master' into develop 2022-08-31 16:41:59 +00:00
JX
de0d342b82 [Keyboard] add tg67 (#18225) 2022-08-31 09:41:14 -07:00
Ryan
50c4ca3426 Ensure all keyboards have a bootloader set (#18234) 2022-08-31 17:36:41 +01:00
Ryan
bb6f028833 Move bootloader.mk to platforms (#18228) 2022-08-31 07:17:24 -07:00
Marek Kraus
0237ff0c62 [Core] Rework PS/2 driver selection (#17892)
* [Core] Rework PS/2 driver selection

Enabling and selecting PS/2 driver was using old approach,
so it was reworked to current approach, inspired by Serial
and WS2812 driver selections.

* [Keyboard] Update keyboards using PS/2 to use new PS/2 driver selection

* [Docs] Update PS/2 documentation to use new PS/2 driver selection

* Fix indentation

* [Core] Add PS2 to data driver

* Fix oversight in property name

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

* Add PS/2 pins to data driven mappings

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-31 09:16:07 +02:00
QMK Bot
ba7030d216 Merge remote-tracking branch 'origin/master' into develop 2022-08-31 05:20:33 +00:00
Ryan
6f804f76b4 qmk lint: fix TypeError (#18226) 2022-08-31 15:20:00 +10:00
QMK Bot
c249afefc6 Merge remote-tracking branch 'origin/master' into develop 2022-08-30 18:29:41 +00:00
Andrew Kannan
bc538e3776 [Keyboard] CannonKeys Malicious Ergo (#17076)
* Add Malicious Ergo keyboard to QMK

* Update layout

* update info.json

* update info.json again

* Update info.json again

* i h8 info.json

* its default not all

* Update keyboards/cannonkeys/malicious_ergo/config.h

* Add bootloader instructions and license header

* Update keyboards/cannonkeys/malicious_ergo/rules.mk

* Update keyboards/cannonkeys/malicious_ergo/rules.mk

* Update keyboards/cannonkeys/malicious_ergo/readme.md

* Remove rotation from info.json

* Remove labels

* Update keyboards/cannonkeys/malicious_ergo/readme.md

* Update keyboards/cannonkeys/malicious_ergo/malicious_ergo.h

* Revise info.json again

* whitespace fix

* Apply suggestions from code review

Move pid/vid into info json
Fix rounding errors in info json

Thanks to fauxpark and noroadsleft!
2022-08-30 11:29:05 -07:00
QMK Bot
757a03cf1a Merge remote-tracking branch 'origin/master' into develop 2022-08-30 09:50:48 +00:00
yiancar
a9e726501d [Keyboard] Add NK65B (#18211)
Co-authored-by: yiancar <yiancar@gmail.com>
2022-08-30 02:50:43 -07:00
yiancar
907d7bfc54 [Keyboard] Add NK87B (#18210)
Co-authored-by: yiancar <yiancar@gmail.com>
2022-08-30 02:50:00 -07:00
QMK Bot
ef4f73ff00 Merge remote-tracking branch 'origin/master' into develop 2022-08-30 08:41:07 +00:00
Drashna Jaelre
092dd58e34 [Keyboard] Fix layout macro for Cannonkeys Atlas keyboard (#18216) 2022-08-30 01:40:35 -07:00
QMK Bot
ae81e998ad Merge remote-tracking branch 'origin/master' into develop 2022-08-30 08:36:21 +00:00
jack
df4b01b433 fix boardsource/lulu (#18217) 2022-08-30 09:34:39 +01:00
Jeff Epler
9632360caa Use a macro to compute the size of arrays at compile time (#18044)
* Add ARRAY_SIZE and CEILING utility macros

* Apply a coccinelle patch to use ARRAY_SIZE

* fix up some straggling items

* Fix 'make test:secure'

* Enhance ARRAY_SIZE macro to reject acting on pointers

The previous definition would not produce a diagnostic for
```
int *p;
size_t num_elem = ARRAY_SIZE(p)
```
but the new one will.

* explicitly get definition of ARRAY_SIZE

* Convert to ARRAY_SIZE when const is involved

The following spatch finds additional instances where the array is
const and the division is by the size of the type, not the size of
the first element:
```
@ rule5a using "empty.iso" @
type T;
const T[] E;
@@

- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)

@ rule6a using "empty.iso" @
type T;
const T[] E;
@@

- sizeof(E)/sizeof(T)
+ ARRAY_SIZE(E)
```

* New instances of ARRAY_SIZE added since initial spatch run

* Use `ARRAY_SIZE` in docs (found by grep)

* Manually use ARRAY_SIZE

hs_set is expected to be the same size as uint16_t, though it's made
of two 8-bit integers

* Just like char, sizeof(uint8_t) is guaranteed to be 1

This is at least true on any plausible system where qmk is actually used.

Per my understanding it's universally true, assuming that uint8_t exists:
https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1

* Run qmk-format on core C files touched in this branch

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-08-30 10:20:04 +02:00
QMK Bot
2c5aa98143 Merge remote-tracking branch 'origin/master' into develop 2022-08-30 08:04:19 +00:00
precondition
6f2c173743 Expand on the differences between Caps Word and Caps Lock (#18139)
* Expand on the differences between Caps Word and Caps Lock

* Add the equiv default KC_ next to intl alias

* It's configurable so it's not a problem
2022-08-30 10:03:25 +02:00
QMK Bot
8067c3bff5 Merge remote-tracking branch 'origin/master' into develop 2022-08-30 07:20:44 +00:00
jack
035e7fdb8b Add boardsource/lulu RP2040 support (#18200)
by waffle87
2022-08-30 08:20:05 +01:00
lalalademaxiya1
8cf88f04b6 Update s1 2022-08-30 12:19:45 +08:00
lalalademaxiya1
c75068a0ef Update s1 2022-08-30 12:15:39 +08:00
QMK Bot
4a7a4b2b94 Merge remote-tracking branch 'origin/master' into develop 2022-08-30 03:03:51 +00:00
Xelus22
f3d52d8fe8 [Keyboard] Kangaroo Rev2 (#18199) 2022-08-29 20:03:30 -07:00
Less/Rikki
7eb71f72a7 [Keyboard] jacky_studio/piggy60 refactor (#18197) 2022-08-29 20:03:16 -07:00
QMK Bot
1a33b5a479 Merge remote-tracking branch 'origin/master' into develop 2022-08-29 19:19:56 +00:00
3araht
f04336ff46 Redefinition of MIN is avoided in midi.c (#18203) 2022-08-29 12:18:53 -07:00
QMK Bot
774aa2499d Merge remote-tracking branch 'origin/master' into develop 2022-08-29 18:26:02 +00:00
Felix Jen
de1d6b6f15 [Keyboard] Add sinanju WK (#17736)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-29 11:25:20 -07:00
QMK Bot
bf77307ffb Merge remote-tracking branch 'origin/master' into develop 2022-08-29 18:23:39 +00:00
Felix Jen
a6b47de732 [Keyboard] Add Peaker keyboard (#17920)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-29 11:23:23 -07:00
Felix Jen
ccb244d5ed [Keyboard] Add Trailblazer Avalon (#17568)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-29 11:22:54 -07:00
QMK Bot
f87f802d6c Merge remote-tracking branch 'origin/master' into develop 2022-08-29 18:22:52 +00:00
Christian Solje
22136f8135 [Keymap] Add csolje 42 keymap for the cantor (#18125)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Christian Solje <csolje@gn.com>
2022-08-29 11:22:01 -07:00
Ryan
ef775d0fc8 Fix incorrect bluetooth.driver rules.mk mapping (#18205) 2022-08-29 19:05:05 +01:00
Stefan Kerkmann
e99ec28f5f [Core] Introduce pointing device specific debug messages (#17663) 2022-08-29 19:16:49 +02:00
Nick Brassel
d910e8df77 Use TAP_CODE_DELAY for encoder mapping by default (#18098) 2022-08-28 21:53:08 -07:00
QMK Bot
7ef6c179e4 Merge remote-tracking branch 'origin/master' into develop 2022-08-29 04:49:22 +00:00
Stefan
56b93a3ad8 [Keyboard] Add handwired Split 5x7 (#18128)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-28 21:49:17 -07:00
TJ
b719a16b03 [Keyboard] add Nearfield, fix typo in Le Chiffre Readme (#17914) 2022-08-28 21:48:41 -07:00
QMK Bot
2b8d7af941 Merge remote-tracking branch 'origin/master' into develop 2022-08-29 04:48:02 +00:00
bbrfkr
a2294bcc97 [Keyboard] Update dynamis keyboard (#17625)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-28 21:47:30 -07:00
QMK Bot
7084fc3d65 Merge remote-tracking branch 'origin/master' into develop 2022-08-29 04:40:24 +00:00
Simon Hengel
38de991fda [Keyboard] Add chord/zero (#18190) 2022-08-28 21:39:45 -07:00
Drzony
f2edb73974 Fix mouse report comparison failing on shared EP (#18060)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-08-28 21:34:42 -07:00
QMK Bot
7e246b8a63 Merge remote-tracking branch 'origin/master' into develop 2022-08-29 01:44:06 +00:00
NGatti1997
8b9f0a58b4 Swap KC_VOLD and KC_VOLU on GMMK2 to correct places (#18193) 2022-08-29 02:43:24 +01:00
QMK Bot
0d40c65aee Merge remote-tracking branch 'origin/master' into develop 2022-08-29 01:38:01 +00:00
biesigrr
3f99c42800 Expose Moonlander split detection to user code (#18040) 2022-08-29 02:37:29 +01:00
QMK Bot
6a13ae9fd7 Merge remote-tracking branch 'origin/master' into develop 2022-08-29 01:35:17 +00:00
Juno Nguyen
1cc0b1e371 Update junonum keymap: add AG_NORM recovery (#18170) 2022-08-29 02:34:47 +01:00
QMK Bot
cfb9486d40 Merge remote-tracking branch 'origin/master' into develop 2022-08-28 20:40:55 +00:00
Jeff Epler
3c3f55c0e9 Add an ez_maker directpins for rp2040 (#17908)
* Add an ez_maker directpins for rp2040

This allows all exposed pins on the Raspberry Pi Pico to be used
as up to 26 individual keys. Keys use a common ground arrangement.

The firmware is also expected to work on generic RP2040 boards, check
manufacturer pinout diagrams or use trial and error to find out the GP#s
of the pins.

* Update keyboards/ez_maker/directpins/rp2040/info.json

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

* Changes based on review comments

Co-authored-by: Joel Challis <git@zvecr.com>
2022-08-28 21:40:10 +01:00
QMK Bot
a699b24638 Merge remote-tracking branch 'origin/master' into develop 2022-08-28 20:21:18 +00:00
Ryan
d18698a8e8 Remove deprecated USBasp and bootloadHID bootloader types (#18195) 2022-08-28 21:20:43 +01:00
Davide Masserut
0633e71a18 [Keymap] Add Miryoku keymap for Hillside 48 (#18191) 2022-08-28 13:20:30 -07:00
QMK Bot
8fc62cb098 Merge remote-tracking branch 'origin/master' into develop 2022-08-28 19:55:56 +00:00
Ryan
8e113c5991 kegen/gboy: add manufacturer string (#18196) 2022-08-28 12:55:35 -07:00
Drashna Jaelre
fa08cb2478 [Keymap] Drashna keymap updates for 0.18.0 (#18184)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-28 12:55:19 -07:00
Ryan
3adaf6a46a Handle escaping of manufacturer/product strings (#18194) 2022-08-28 19:35:17 +01:00
QMK Bot
ac33b7b0b3 Merge remote-tracking branch 'origin/master' into develop 2022-08-28 18:24:41 +00:00
Ryan
d4a6ee1cad Clean up schema syntax (#18192) 2022-08-28 19:24:11 +01:00
QMK Bot
10a84d6b93 Merge remote-tracking branch 'origin/master' into develop 2022-08-28 17:16:50 +00:00
Less/Rikki
4adb64a91b [Keyboard] mechwild/bde cleanup and refactor (#18149) 2022-08-28 10:16:20 -07:00
QMK Bot
75c3e9545c Merge remote-tracking branch 'origin/master' into develop 2022-08-28 17:12:49 +00:00
Matt Chan
585b134729 [Keyboard] Add Kegen G-Boy (#18048)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-28 10:12:18 -07:00
QMK Bot
d2cc8d5060 Merge remote-tracking branch 'origin/master' into develop 2022-08-28 17:11:07 +00:00
Joshua Diamond
37a85e1f9b More spidey3 userspace cleanup (#18049) 2022-08-28 10:10:28 -07:00
QMK Bot
f4b5842a7a Merge remote-tracking branch 'origin/master' into develop 2022-08-28 16:59:43 +00:00
Ryan
d983251c10 Switch over MANUFACTURER and PRODUCT to string literals (#18183) 2022-08-28 09:59:40 -07:00
Albert Y
ef0c87c976 Exclude uf2 files in VS Code (#18186) 2022-08-28 09:59:07 -07:00
QMK Bot
6a28ceefcd Merge remote-tracking branch 'origin/master' into develop 2022-08-28 06:14:30 +00:00
James Young
efdd4f4d50 Clean-up of #define _ADJUST 16 instances (#18182)
* enum layer_names: 40percentclub/nori default keymap

* enum layer_names: ergotravel default keymap

* enum layer_names: handwired/atreus50 default keymap

* enum layer_names: handwired/ortho5x13 default keymap

* enum layer_names: keebio/levinson default keymap

* enum layer_names: keebio/nyquist default keymap

* enum layer_names: keebio/rorschach default keymap

* enum layer_names: keebio/viterbi default keymap

* enum layer_names: keebio/wavelet default keymap

* enum layer_names: lets_split default keymap

* enum layer_names: maple_computing/launchpad reference keymaps

Update `default` and `default_rgb` keymaps.

* enum layer_names: maple_computing/minidox default keymap

* enum layer_names: miniaxe reference keymaps

Update `default` and `underglow` keymaps.

* enum layer_names: omkbd/ergodash/mini default keymap

* enum layer_names: omkbd/ergodash/rev1 default keymap

* enum layer_names: orthodox default keymap

* enum layer_names: unikeyboard/divergetm2 default keymap

* enum layer_names: woodkeys/scarletbandana default keymap

* add _Static_assert to keymap_introspection.c
2022-08-27 23:13:44 -07:00
Nick Brassel
1258fdb9ee Branch point for 2022 Nov 26 Breaking Change 2022-08-28 14:27:52 +10:00
Nick Brassel
0a3f7e4869 Merge remote-tracking branch 'upstream/develop' 2022-08-28 14:23:01 +10:00
Nick Brassel
9b5b072255 2022q3 Changelog. (#18180)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-28 14:20:52 +10:00
Joel Challis
a2765bfe19 Add missing SS_LOPT and SS_ROPT defines (#18175) 2022-08-27 09:41:10 +10:00
lalalademaxiya1
e28220c074 Merge pull request #57 from lalalademaxiya1/playground
Update q1
2022-08-26 15:04:38 +08:00
lalalademaxiya1
4e76ba7606 Update q1 2022-08-26 15:01:21 +08:00
Ryan
24720400a8 Update LUFA submodule (#18168) 2022-08-26 12:19:34 +10:00
Joel Challis
43fd647130 Add eeprom defaults for tinyuf2 bootloader (#18042) 2022-08-25 21:17:41 +10:00
lalalademaxiya1
0c564ffc76 Merge pull request #56 from lalalademaxiya1/playground
Playground
2022-08-25 17:28:26 +08:00
lalalademaxiya1
a7ecd8e1f9 Merge 2022-08-25 17:22:40 +08:00
lalalademaxiya1
65356eae42 Update iso version of q10 2022-08-25 17:11:06 +08:00
QMK Bot
1c47bd0ddf Merge remote-tracking branch 'origin/master' into develop 2022-08-24 21:20:43 +00:00
Ryan
fc0bf67f37 Add missing DD mapping for RGB_MATRIX_DRIVER (#18160) 2022-08-24 22:20:05 +01:00
QMK Bot
fdb0cc5981 Merge remote-tracking branch 'origin/master' into develop 2022-08-24 20:41:37 +00:00
Joel Challis
4a67123310 Refactor pianoforte for configurator (#18159) 2022-08-24 13:39:49 -07:00
QMK Bot
3aba764b43 Merge remote-tracking branch 'origin/master' into develop 2022-08-24 20:39:34 +00:00
Joel Challis
e95aa2a352 Fix use of encoder map in mechlovin/zed65/retro66 (#18158) 2022-08-24 13:38:53 -07:00
QMK Bot
fa25cacf6a Merge remote-tracking branch 'origin/master' into develop 2022-08-24 20:38:47 +00:00
Joel Challis
b2db8becf9 Fix use of encoder map in mechlovin/foundation (#18157) 2022-08-24 13:38:07 -07:00
QMK Bot
129c60946c Merge remote-tracking branch 'origin/master' into develop 2022-08-24 19:26:18 +00:00
Joel Challis
3d8c624698 Update invalid pip install flag (#18146) 2022-08-24 20:25:16 +01:00
QMK Bot
5f371104bc Merge remote-tracking branch 'origin/master' into develop 2022-08-24 18:11:55 +00:00
Joel Challis
7fab889696 Fix use of encoder map in mechwild/clunker (#18156) 2022-08-24 19:10:52 +01:00
Ryan
cf41c24db8 Move keyboard USB IDs and strings to data driven: develop (#18152)
* Move keyboard USB IDs and strings to data driven: develop

* Also do new onekeys
2022-08-24 15:28:38 +01:00
QMK Bot
e06ea4a10f Merge remote-tracking branch 'origin/master' into develop 2022-08-23 17:56:51 +00:00
Ramon Imbao
a53ef56946 [Keyboard] Add Plywrks Lune (#17057)
* Add Plywrks Lune

* Add OLED functionality

* Update keyboards/plywrks/lune/keymaps/default/keymap.c

* Update keyboards/plywrks/lune/keymaps/via/keymap.c

* Update keyboards/plywrks/lune/keymaps/via/keymap.c

* Update keyboards/plywrks/lune/lune.c

* Add the missing 2 layers in the keymap

Also added a missing parenthesis in lune.c, and removed
the oled_task_user in the default keymap.

* Update keyboards/plywrks/lune/info.json

* Update keyboards/plywrks/lune/info.json

* Update keyboards/plywrks/lune/info.json

* Update keyboards/plywrks/lune/config.h
2022-08-23 10:55:59 -07:00
QMK Bot
dd0277beab Merge remote-tracking branch 'origin/master' into develop 2022-08-23 17:51:17 +00:00
Kyle McCreery
7839396614 [Keyboard] Add Clunker (#18141)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-23 10:50:19 -07:00
QMK Bot
f03f89ccb5 Merge remote-tracking branch 'origin/master' into develop 2022-08-23 13:43:09 +00:00
Joel Challis
ee416048d9 Use correct board files for cantor (#18144) 2022-08-23 14:42:23 +01:00
QMK Bot
3dd12b5425 Merge remote-tracking branch 'origin/master' into develop 2022-08-23 05:01:45 +00:00
Dave Rowe
f9584c8368 [Keyboard] Enable VIA - ALF X1.1 (#18140) 2022-08-22 22:00:58 -07:00
QMK Bot
c1ce0f44f8 Merge remote-tracking branch 'origin/master' into develop 2022-08-23 02:13:07 +00:00
Brandon Claveria
b395f40e07 [Keyboard] add rgb animation handwired/swiftrax/glacier (#18121)
Co-authored-by: swiftrax <swiftrax@github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-22 19:12:33 -07:00
Sergey Vlasov
7c0e5ce917 Nix shell updates for develop (#18131)
* shell.nix: Update `tomlkit` to 0.11.4 using a Nixpkgs overlay

The used Nixpkgs snapshot contains `tomlkit` version 0.7.0, which is
affected by https://www.github.com/sdispater/tomlkit/issues/148; that
bug is triggered by `pyproject.toml` from `jsonschema` >= 4.11.0,
preventing the build of that module.

Just adding `tomlkit = "*"` to the `[tool.poetry.dev-dependencies]`
section of `nix/pyproject.toml` does not fix the `jsonschema` build,
because `makeRemoveSpecialDependenciesHook` inside `poetry2nix` is not
affected by `nix/pyproject.toml`.  Add a Nixpkgs overlay which updates
the `tomlkit` Python module globally, so that `poetry2nix` would also
use the updated version internally.

* shell.nix: Bump `poetry2nix` to the most recent version

The new `poetry2nix` version includes overrides which are required for
recent versions of some Python packages (in particular, `jsonschema` and
`dotty-dict`).

* shell.nix: Bump QMK CLI to 1.1.1; update other Python deps

Update `pyproject.toml` to match `requirements*.txt`:

- add `pyserial = "*"`
- replace `qmk-dotty-dict = "*"` with `dotty-dict = "*"` (#18117, also
  required for compatibility with `qmk` 1.1.1, where this replacement
  had already been performed)

Add build dependencies of various Python modules to `pyproject.toml`:

- `hatchling`, `hatch-vcs`, `hatch-fancy-pypi-readme` (required by
  `jsonschema` >= 4.11.0)
- `pytest` (a newer version is required to solve the dependency conflict
  with the `hatchling` module due to the upper bound on `pluggy`)
- `flit-core` (a more recent version is required to build `tomli`)
- `poetry-core` (required for `dotty-dict` >= 1.3.1, and the version
  from Nixpkgs does not build on Darwin due to NixOS/nix#4758)

Update `poetry.lock` to use the most recent versions of Python modules.

The complete list of Python module updates as listed in `poetry.lock`
(note that other modules might be present in the Python environment,
e.g., if they come from Nixpkgs):

- `atomicwrites`: none -> 1.4.1 (but this module is not actually used,
  because the corresponding dependency of `pytest` is win32-only)
- `attrs`: 21.4.0 -> 22.1.0
- `colorama`: 0.4.4 -> 0.4.5
- `coverage`: 6.4 -> none
- `dotty-dict`: none -> 1.3.1 (used instead of `qmk-dotty-dict`)
- `editables`: none -> 0.3
- `flake8`: 4.0.1 -> 5.0.4
- `flake8-polyfill`: 1.0.2 -> none
- `flit-core`: none -> 3.7.1
- `hatch-fancy-pypi-readme`: none -> 22.3.0
- `hatch-vcs`: none -> 0.2.0
- `hatchling`: none -> 1.8.0
- `hjson`: 3.0.2 -> 3.1.0
- `importlib-resources`: 5.7.1 -> 5.9.0
- `iniconfig`: none -> 1.1.1
- `jsonschema`: 4.5.1 -> 4.14.0
- `mccabe`: 0.6.1 -> 0.7.0
- `nose2`: 0.11.0 -> 0.12.0
- `packaging`: none -> 21.3
- `pathspec`: none -> 0.9.0
- `pep8-naming`: 0.12.1 -> 0.13.2
- `pillow`: 9.1.1 -> 9.2.0
- `pkgutil-resolve-name`: none -> 1.3.10
- `pluggy`: none -> 1.0.0
- `poetry-core`: none -> 1.0.8
- `py`: none -> 1.11.0
- `pycodestyle`: 2.8.0 -> 2.9.1
- `pyflakes`: 2.4.0 -> 2.5.0
- `pygments`: 2.12.0 -> 2.13.0
- `pyparsing`: none -> 3.0.9
- `pyserial`: none -> 3.5
- `pytest`: none -> 7.1.2
- `qmk`: 1.1.0 -> 1.1.1
- `qmk-dotty-dict`: 1.3.0.post1 -> none (replaced by `dotty-dict`)
- `setuptools-scm`: none -> 7.0.5
- `tomli`: none -> 2.0.1
- `typing-extensions`: none -> 4.3.0
- `zipp`: 3.8.0 -> 3.8.1
2022-08-23 02:59:33 +01:00
QMK Bot
d942c03be6 Merge remote-tracking branch 'origin/master' into develop 2022-08-22 23:06:18 +00:00
Jesse
624d92e2f5 Update Tap Dance Example 4 (#18138)
break statements are missing from the switch for both registering and unregistering key codes. Neither have a default: case either. The code as exists in the repository right now does not compile. It does with this changes.
2022-08-23 00:05:35 +01:00
QMK Bot
b1af9b4fe0 Merge remote-tracking branch 'origin/master' into develop 2022-08-22 09:04:48 +00:00
Ryan
68ad251667 Remove USB IDs and strings from fungo/rev1 (#18133) 2022-08-22 19:04:01 +10:00
Joel Challis
bbc3bc55f2 RESET -> QK_BOOT user keymaps (#17940) 2022-08-21 23:55:30 +01:00
QMK Bot
e36ae90a65 Merge remote-tracking branch 'origin/master' into develop 2022-08-21 22:09:30 +00:00
Ryan
b0eda7701a Move keyboard USB IDs and strings to data driven, pass 3 (#18111) 2022-08-21 23:08:50 +01:00
QMK Bot
51e4e91285 Merge remote-tracking branch 'origin/master' into develop 2022-08-21 19:37:50 +00:00
Paul Ewing
3c0806a489 Add pcewing Speedo v3 keymap (#18118)
* Add pcewing Speedo v3 keymap

* Add readme and code quality improvements
2022-08-21 20:37:18 +01:00
QMK Bot
1e84890a5b Merge remote-tracking branch 'origin/master' into develop 2022-08-21 19:04:26 +00:00
Mario Cadenas
93f0c1f32f [Keymap] Add new keymap to nasu (#18024) 2022-08-21 12:03:48 -07:00
Joel Challis
9b7965d3a9 Align CLI requirements (#18117) 2022-08-21 18:38:17 +01:00
QMK Bot
efd893be39 Merge remote-tracking branch 'origin/master' into develop 2022-08-21 00:18:07 +00:00
Louis Dalibard
7ea54a7837 [Keyboard] Add ai macropad (#17722)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Louis Dalibard <ontake@ontake.dev>
2022-08-20 17:17:02 -07:00
QMK Bot
f99bac052e Merge remote-tracking branch 'origin/master' into develop 2022-08-20 20:28:43 +00:00
Abigail
e2fbcc8099 added keymap for kprepublic/jj40:brdlf (#17961)
* added keymap for kprepublic/jj40:brdlf
2022-08-20 21:28:02 +01:00
QMK Bot
e3cf678569 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 20:21:44 +00:00
JX
706995c044 [Keyboard] Add yandrstudio/nz67v2 keyboard. (#17591)
* add yr nz67v2 by jiaxin96
2022-08-20 21:21:07 +01:00
QMK Bot
cb3c8f40d0 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 20:08:35 +00:00
QMK Bot
d93b5ef247 Format code according to conventions (#18119) 2022-08-20 21:07:57 +01:00
QMK Bot
aa7629f8e6 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 20:01:40 +00:00
bojiguard
5222cf7673 add fungo keyboard (#17513)
by bojiguard
2022-08-20 21:01:04 +01:00
QMK Bot
3609c24df4 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 20:00:24 +00:00
studiokestra
ce19a9cdc5 Add Nascent keyboard support. (#17824)
* Add nascent keyboard by studiokestra
2022-08-20 20:59:47 +01:00
QMK Bot
a580057422 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 18:46:12 +00:00
mechlovin
c2a46a6fa0 [Keyboard] Add Zed65 (#17917)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-20 11:45:38 -07:00
Drashna Jael're
8f6b019dcc Merge remote-tracking branch 'origin/master' into develop 2022-08-20 10:22:48 -07:00
Sergey Vlasov
7ee55b1754 Fix PID value for the Keyboardio Atreus 2 bootloader (#18116)
Copy the correct PID from `util/udev/50-qmk.rules`.
2022-08-20 15:59:17 +01:00
Joel Challis
d2accb48e7 RESET -> QK_BOOT keyboard readme (#18110) 2022-08-20 11:34:17 +01:00
Erovia
5e2ffe7d8f CLI: Teaching the CLI to flash binaries (#16584)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-08-20 15:39:19 +10:00
QMK Bot
3bf36e8b04 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 04:17:48 +00:00
Joe Scotto
e7107691ab [Keymap] Add joe_scotto keymap for CRKBD (#18103) 2022-08-19 21:17:09 -07:00
QMK Bot
68079cba61 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 03:52:33 +00:00
Drashna Jaelre
f08e08cec2 [Keyboard] Fix compilation issues for keycapsss kimiko (#18112) 2022-08-20 13:51:57 +10:00
QMK Bot
a69303bb78 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 02:59:05 +00:00
Davide Masserut
c9120ea8e9 [Keymap] Add Miryoku keymap for Hillside family (#18087) 2022-08-19 19:58:24 -07:00
QMK Bot
880ea06760 Merge remote-tracking branch 'origin/master' into develop 2022-08-20 01:55:33 +00:00
AliceH66
85831fc188 [Keyboard] Add aliceh66 pianoforte (#18081)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-19 18:55:01 -07:00
lalalademaxiya1
69e014586d Merge pull request #55 from lalalademaxiya1/playground
Update q10
2022-08-20 09:38:10 +08:00
fauxpark
61689ae609 Merge remote-tracking branch 'upstream/master' into develop 2022-08-20 10:55:40 +10:00
Ryan
201f1a8f47 Move keyboard USB IDs and strings to data driven, pass 2: S-Y (#18093) 2022-08-20 01:48:38 +01:00
Ryan
f4dcce7e59 Move keyboard USB IDs and strings to data driven, pass 2: M-O (#18090) 2022-08-20 01:45:28 +01:00
Ryan
201a914beb Move keyboard USB IDs and strings to data driven, pass 2: P-R (#18091) 2022-08-20 01:42:49 +01:00
Ryan
835c971f78 Move keyboard USB IDs and strings to data driven, pass 2: J-L (#18080) 2022-08-20 10:39:35 +10:00
QMK Bot
eceed6c50b Merge remote-tracking branch 'origin/master' into develop 2022-08-20 00:32:18 +00:00
Ryan
48792b030b Move keyboard USB IDs and strings to data driven, pass 2: handwired (#18079) 2022-08-20 10:31:48 +10:00
QMK Bot
f1ac92ac63 Merge remote-tracking branch 'origin/master' into develop 2022-08-19 23:50:09 +00:00
Drashna Jaelre
39f0fb7bea [Keyboard] Update Work Louder keyboards (#18109) 2022-08-19 16:49:37 -07:00
QMK Bot
4a8bed844d Merge remote-tracking branch 'origin/master' into develop 2022-08-19 22:15:34 +00:00
Joel Challis
f1786cbd7b Fix duplicate keys in info.json files (#18107) 2022-08-19 23:14:38 +01:00
QMK Bot
c0c875d675 Merge remote-tracking branch 'origin/master' into develop 2022-08-19 19:48:31 +00:00
yiancar
8e8c0e2d57 Cyberstar Custom (#18076)
* Create Cyberstar Custom

Co-authored-by: yiancar <yiancar@gmail.com>
2022-08-19 20:47:45 +01:00
lalalademaxiya1
b035a1e747 Update q10 2022-08-20 01:33:07 +08:00
lalalademaxiya1
7e688c5850 Merge pull request #54 from lalalademaxiya1/playground
Update test.c
2022-08-19 16:09:59 +08:00
lalalademaxiya1
a03de89b79 Update test.c 2022-08-19 16:09:02 +08:00
Nick Brassel
1eac095c0c Use the correct bootloader definition. (#18102) 2022-08-19 05:20:44 +01:00
QMK Bot
5ee482b110 Merge remote-tracking branch 'origin/master' into develop 2022-08-19 01:19:23 +00:00
Simon Hengel
e6a1afb8f1 [Docs] Fix typo in data driven config docs (#18095) 2022-08-18 18:18:51 -07:00
QMK Bot
2ed2c88a08 Merge remote-tracking branch 'origin/master' into develop 2022-08-19 01:17:50 +00:00
~ aka goonf!sh
286dd6abe6 [Docs] Update list of "ARM-based ProMicro replacements" (#18083) 2022-08-18 18:17:20 -07:00
Joel Challis
3c745caf61 Remove legacy bootmagic cli parsing (#18099) 2022-08-19 01:56:48 +01:00
Joel Challis
9550cc464c Fix new-keyboard default for RP2040 bootloader (#18100) 2022-08-19 01:48:33 +01:00
Joel Challis
0fcebdcdf1 Swap F4x1 default board files away from blackpill (#17522) 2022-08-19 00:52:50 +01:00
HorrorTroll
227e552f5c Add support keyboard Feker IK75 (#17611) 2022-08-18 01:23:34 +01:00
David Hoelscher
a645301c82 Add Bonsai C4 converter (#17711) 2022-08-18 01:01:54 +01:00
QMK Bot
29f47f4cf3 Merge remote-tracking branch 'origin/master' into develop 2022-08-17 22:51:34 +00:00
jack
9607b46756 Fixup mokey/ibis80 keymaps (#18088) 2022-08-17 23:51:04 +01:00
QMK Bot
f9abecda3f Merge remote-tracking branch 'origin/master' into develop 2022-08-17 14:11:59 +00:00
Juno Nguyen
45845ea07f Replace CG_SWAP in junonum (#18086)
Co-authored-by: Minh-tri Nguyen <mtngx@PigeonMac.local>
2022-08-17 15:11:00 +01:00
QMK Bot
47e98e3a68 Merge remote-tracking branch 'origin/master' into develop 2022-08-17 07:28:11 +00:00
CoffeeIsLife
0df97fc968 [Keymap] Add personal keymap for kprepublic BM40HSRGB (#18021)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Fae <faenkhauser@gmail.com>
2022-08-17 00:27:31 -07:00
ZhaoYou
6b78d07e64 [Keyboard] add 'soda/cherish' (#18057)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-17 00:26:35 -07:00
lalalademaxiya1
2b7af51fd3 Merge pull request #53 from lalalademaxiya1/playground
Playground
2022-08-17 14:54:53 +08:00
lalalademaxiya1
02ae9da074 Merge branch 'develop' into playground 2022-08-17 15:38:19 +09:00
lalalademaxiya1
22ccdc5583 Update v8 2022-08-17 15:36:19 +09:00
QMK Bot
39337373f5 Merge remote-tracking branch 'origin/master' into develop 2022-08-17 02:38:02 +00:00
Runheme
e5f1d8859e [Keyboard] Add ibis80 (#18051)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-16 19:37:57 -07:00
QMK Bot
2ade237e77 Merge remote-tracking branch 'origin/master' into develop 2022-08-17 02:37:40 +00:00
Toshihiro Suzuki
5a1a0e71de [Keymap] toshi0383 keymaps update (#18073) 2022-08-16 19:37:29 -07:00
QMK Bot
cfab3e2d6e Merge remote-tracking branch 'origin/master' into develop 2022-08-17 02:37:10 +00:00
Albert Y
a1f0208797 [Docs] Use layer number as example for COMBO_ONLY_FROM_LAYER (#18072)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-16 19:37:06 -07:00
jotix
8230b4c49d [Keymap] jotix's community/ortho4x12 change (#18069) 2022-08-16 19:36:30 -07:00
QMK Bot
77150d00ac Merge remote-tracking branch 'origin/master' into develop 2022-08-16 18:42:23 +00:00
coliss86
837a57b3c5 Adjust the hierarchy of chapter Deferred Execution (#18075) 2022-08-16 11:41:31 -07:00
QMK Bot
7014e1efa3 Merge remote-tracking branch 'origin/master' into develop 2022-08-16 17:23:31 +00:00
yiancar
c834608a74 Fix WS2812 order for aurora65 and loki65 (#18074) 2022-08-16 18:22:47 +01:00
QMK Bot
c5dc4b4d1d Merge remote-tracking branch 'origin/master' into develop 2022-08-16 17:02:38 +00:00
Tom Barnes
2f4ad40561 [Docs] update pr_checklist.md with info about data-driven (#18068)
* update pr_checklist with info about data-driven

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-08-16 18:01:56 +01:00
QMK Bot
9f0925fb18 Merge remote-tracking branch 'origin/master' into develop 2022-08-16 14:29:11 +00:00
Joel Challis
164faf0a5c Use correct board file in xelus/valor_frl_tkl/rev2_0 (#18071) 2022-08-16 15:28:22 +01:00
xiaonvziduoqing
110c5c67d2 Update q10 iso variant 2022-08-16 16:13:19 +08:00
xiaonvziduoqing
8c674af028 Merge branch 'develop' into playground 2022-08-16 13:57:25 +08:00
lalalademaxiya1
01a59c0a56 Add iso variant for keychron q10 2022-08-16 13:10:49 +08:00
QMK Bot
904df296b0 Merge remote-tracking branch 'origin/master' into develop 2022-08-15 17:55:58 +00:00
Joel Challis
e44b6242b7 Migrate more F4x1 board files (#18054) 2022-08-15 18:55:21 +01:00
precondition
5021cf58ad Fix DV_SCLN and DV_COLN in keymap_spanish_dvorak.h (#18043) 2022-08-15 18:41:05 +01:00
Stefan Kerkmann
f74ed5fc53 Fix GD32VF103 WS2812 PWM driver (#18067)
...by adding the missing STM32 DMA defines.
2022-08-15 18:00:22 +01:00
Stefan Kerkmann
8ce946b5c8 [Bug] Add key event check to is_tap_record and remove is_tap_key (#18063) 2022-08-15 16:40:51 +02:00
jack
5e6175a553 Fixup gmmk/pro/rev2 USB Data (#18056) 2022-08-15 23:21:15 +10:00
QMK Bot
1ccfed483d Merge remote-tracking branch 'origin/master' into develop 2022-08-15 09:15:56 +00:00
Ryan
b297a347bb ADB to USB converter: split into rev1 and rev2 (#18052) 2022-08-15 10:15:22 +01:00
fauxpark
c202602938 Merge remote-tracking branch 'upstream/master' into develop 2022-08-15 17:54:07 +10:00
precondition
8e9ee29fe3 Remove duplicate COMBINING HORN in keymap_us_extended.h (#18045) 2022-08-14 22:25:37 -07:00
Joel Challis
ed3b4bb606 Fix missing development_board schema entry (#18050) 2022-08-14 22:25:16 -07:00
lalalademaxiya1
610ec8a726 Add version iso for keychron q10 2022-08-15 12:57:46 +08:00
lalalademaxiya1
8f2426b7e3 Update the version jis of q2 2022-08-15 12:05:54 +08:00
lalalademaxiya1
5085d2d0e0 Merge pull request #52 from lalalademaxiya1/playground
Update test code
2022-08-15 11:53:36 +08:00
lalalademaxiya1
904a5cb799 Update test code 2022-08-15 11:47:23 +08:00
Ryan
51d5aad25b Move keyboard USB IDs and strings to data driven, pass 2: D-E (#17956) 2022-08-15 13:30:12 +10:00
Ryan
1027aed83a Move keyboard USB IDs and strings to data driven, pass 2: F-I (#17958) 2022-08-15 02:53:19 +01:00
QMK Bot
5334614e8a Merge remote-tracking branch 'origin/master' into develop 2022-08-14 23:55:05 +00:00
PeterFalken
4c91e5bef8 Allow disabling RGB_MATRIX_ANIMATIONS system76 keyboards (#17478) 2022-08-14 19:54:25 -04:00
QMK Bot
630de240b4 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 23:26:34 +00:00
Joel Challis
93fb69fbda Migrate more F4x1 board files (#18046) 2022-08-15 00:25:40 +01:00
Joel Challis
463fb72d29 Partially revert some WB32 specific changes (#18038) 2022-08-14 20:48:44 +01:00
QMK Bot
74b4bcb607 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 19:43:25 +00:00
Alberto
3d3e463598 Feat/port ft mars 65 (#17994)
* by wonderbeel
2022-08-14 20:42:58 +01:00
QMK Bot
e6a522417a Merge remote-tracking branch 'origin/master' into develop 2022-08-14 19:26:44 +00:00
Cyn
5f74ae5b63 Improve Drop Alt compatibility with VIA (#18041)
by slycedix
2022-08-14 20:26:06 +01:00
Pascal Getreuer
95c43a2759 Fix Caps Word to treat mod-taps more consistently. (#17463)
* Fix Caps Word to treat mod-taps more consistently.

Previously, holding any mod-tap key while Caps Word is active stops Caps
Word, and this happens regardless of `caps_word_press_user()`. Yet for
regular mod keys, AltGr (KC_RALT) is ignored, Shift keys are passed to
`caps_word_press_user()` to determine whether to continue, and
similarly, a key `RSFT(KC_RALT)` representing Right Shift + Alt is
passed to `caps_word_press_user()` to determine whether to continue.

This commit makes held mod-tap keys consistent with regular mod keys:

* Holding a `RALT_T` mod-tap is ignored.
* When holding a shift mod-tap key, `KC_LSFT` or `KC_RSFT` is passed to
  `caps_word_press_user()` to determine whether to continue.
* When holding a Right Shift + Alt (`RSA_T`) mod-tap, `RSFT(KC_RALT)` is
  passed to `caps_word_press_user()`.

Particularly, with this fix a user may choose to continue Caps Word when
a shift mod-tap key is held by adding `KC_LSFT` and `KC_RSFT` cases in
`caps_word_press_user()`. For instance as

```
bool caps_word_press_user(uint16_t keycode) {
  switch (keycode) {
    // Keycodes that continue Caps Word, with shift applied.
    case KC_A ... KC_Z:
    case KC_MINS:
      add_weak_mods(MOD_BIT(KC_LSFT));  // Apply shift to the next key.
      return true;

    // Keycodes that continue Caps Word, without shifting.
    case KC_1 ... KC_0:
    case KC_BSPC:
    case KC_DEL:
    case KC_UNDS:
    case KC_LSFT:  // <<< Added here.
    case KC_RSFT:
      return true;

    default:
      return false;  // Deactivate Caps Word.
  }
}
```

* Fix Caps Word to treat mod-taps more consistently.

Previously, holding any mod-tap key while Caps Word is active stops Caps
Word, and this happens regardless of `caps_word_press_user()`. Yet for
regular mod keys, AltGr (KC_RALT) is ignored, Shift keys are passed to
`caps_word_press_user()` to determine whether to continue, and
similarly, a key `RSFT(KC_RALT)` representing Right Shift + Alt is
passed to `caps_word_press_user()` to determine whether to continue.

This commit makes held mod-tap keys consistent with regular mod keys:

* Holding a `RALT_T` mod-tap is ignored.
* When holding a shift mod-tap key, `KC_LSFT` or `KC_RSFT` is passed to
  `caps_word_press_user()` to determine whether to continue.
* When holding a Right Shift + Alt (`RSA_T`) mod-tap, `RSFT(KC_RALT)` is
  passed to `caps_word_press_user()`.

Particularly, with this fix a user may choose to continue Caps Word when
a shift mod-tap key is held by adding `KC_LSFT` and `KC_RSFT` cases in
`caps_word_press_user()`. For instance as

```
bool caps_word_press_user(uint16_t keycode) {
  switch (keycode) {
    // Keycodes that continue Caps Word, with shift applied.
    case KC_A ... KC_Z:
    case KC_MINS:
      add_weak_mods(MOD_BIT(KC_LSFT));  // Apply shift to the next key.
      return true;

    // Keycodes that continue Caps Word, without shifting.
    case KC_1 ... KC_0:
    case KC_BSPC:
    case KC_DEL:
    case KC_UNDS:
    case KC_LSFT:  // <<< Added here.
    case KC_RSFT:
      return true;

    default:
      return false;  // Deactivate Caps Word.
  }
}
```

* Update quantum/process_keycode/process_caps_word.c

Co-authored-by: Joel Challis <git@zvecr.com>
2022-08-14 20:25:32 +01:00
Chewxy
6fc7c03e95 Added emacs as an "operating system" for input mode. (#16949) 2022-08-14 20:24:52 +01:00
Drashna Jaelre
4da3482872 Fix Emulated EEPROM issue with F466 (#18039) 2022-08-14 17:18:59 +01:00
precondition
0a6327d20c Replace ; by : in the shifted symbols ASCII art of keymap_norman (#18029)
Thanks!
2022-08-14 12:18:42 -04:00
Drashna Jaelre
9f31fcace3 [Keyboard] Fix compilation issues for Boardsource Microdox (#18037) 2022-08-14 17:03:40 +01:00
lalalademaxiya1
2fc4e36cec Merge pull request #51 from lalalademaxiya1/playground
Playground
2022-08-14 19:35:16 +08:00
Mega Mind
fce99f3875 [Controller] Added board config for custom controller STeMCell (#16287)
Co-authored-by: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Co-authored-by: Mariappan Ramasamy <maari@basis-ai.com>
Co-authored-by: Sadek Baroudi <sadekbaroudi@gmail.com>
2022-08-14 21:27:26 +10:00
Joel Challis
ba04ecfabd Align TO() max layers with other keycodes (#17989) 2022-08-14 21:25:46 +10:00
lalalademaxiya1
62f75190df Update all keyboards 2022-08-14 19:11:38 +08:00
Drashna Jael're
ac31e42974 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 01:54:23 -07:00
lalalademaxiya1
62d14ad731 Update ckled2001.c 2022-08-14 16:26:17 +08:00
lalalademaxiya1
8850c2cf02 Update v8 2022-08-14 16:18:28 +08:00
Xelus22
4195eb8fe1 [Keyboard] Add Valor FRL TKL rev2.0 and 2.1 (#17992)
* add valor frl tkl rev2 by xelus22
2022-08-14 08:17:11 +01:00
Joy Lee
e948fa6f6e Added support for gmmk pro rev2 keyboard. (#17655)
Co-authored-by: Joy <chang.li@westberrytech.com>
2022-08-14 14:00:12 +10:00
Ryan
3a7dbc8981 Move keyboard USB IDs and strings to data driven, pass 2: B-C (#17945) 2022-08-14 12:16:16 +10:00
yiancar
dfc92d8f7b Fix buffer size for WS2812 PWM driver (#17046)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-08-13 18:36:34 -07:00
Joy Lee
c02d7ae86f Added ws2812_pwm support for WB32 MCU. (#17142)
Co-authored-by: Joy <chang.li@westberrytech.com>
2022-08-13 18:21:46 -07:00
Joy Lee
6b1c7d20aa Added ws2812_spi support for WB32 MCU (#17143)
Co-authored-by: Joy <chang.li@westberrytech.com>
2022-08-13 18:09:57 -07:00
QMK Bot
5c805e4cc5 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 01:09:31 +00:00
Gary Kong
28b05d15ff [Keyboard] add bajjak keyboard (#12377)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-08-13 18:08:46 -07:00
JJ48
4eda139b83 Add Gentleman 65 SE Solderd PCB support (#16992) 2022-08-14 01:55:03 +01:00
QMK Bot
2d40713567 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 00:52:21 +00:00
Nick Brassel
86261bfd8e Add texts for Discord Events to be created post-merge. (#17944) 2022-08-13 17:51:45 -07:00
precondition
2c3b447641 Use ANSI ASCII art and fix comments for LT_COLN and LT_UNDS in keymap_lithuanian_qwerty.h (#18028) 2022-08-13 17:50:32 -07:00
QMK Bot
50ff52639f Merge remote-tracking branch 'origin/master' into develop 2022-08-14 00:47:42 +00:00
Ryan
3079691391 Move keyboard USB IDs and strings to data driven, pass 2: 0-9, A (#17941) 2022-08-13 17:47:05 -07:00
QMK Bot
b44c3f92ae Merge remote-tracking branch 'origin/master' into develop 2022-08-14 00:47:05 +00:00
Marko Skakun
0f1bb982e9 [Keyboard] Added different wiring of dactyl (#17997) 2022-08-13 17:46:35 -07:00
QMK Bot
4faf0ccaec Merge remote-tracking branch 'origin/master' into develop 2022-08-14 00:36:47 +00:00
Less/Rikki
ca2d05f5c6 [Keyboard] jacky_studio/piggy60 (#18012) 2022-08-13 17:36:11 -07:00
QMK Bot
2363a3bc42 Merge remote-tracking branch 'origin/master' into develop 2022-08-14 00:33:31 +00:00
Tom Barnes
0d3e07a3db [Docs] Suggest imgur images are edited to set size (#18031) 2022-08-13 17:32:30 -07:00
Takeshi ISHII
a83afb3fcd Improve avr wait_us() (#16879) 2022-08-14 00:04:03 +01:00
Joshua Diamond
2f87abd4ef Revert "[Core] Re-order user space rules inclusion (#17459)" (#18032) 2022-08-14 07:13:15 +10:00
QMK Bot
b1c7df9a68 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 20:26:43 +00:00
Jesus Climent
cbcb4f2ec0 [Keyboard] Added Atreyu keyboard. (#17698)
* Add Atreyu keyboard.

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-13 21:26:05 +01:00
QMK Bot
8fd7825007 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 20:16:08 +00:00
mechlovin
1eecdb502d [Keyboard] Add Foundation to QMK (#17573)
* add mechlovin foundation keyboard

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-13 21:15:35 +01:00
QMK Bot
7dca40f5af Merge remote-tracking branch 'origin/master' into develop 2022-08-13 20:13:03 +00:00
p4yne
40676d058e [Keymap] adding new user (p4yne) layout with complex lighting feature… (#16085)
* [Keymap] adding new user (p4yne) layout with complex lighting features (per layer, per key, per type) and usefull layers DE/US, etc.

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-13 21:12:31 +01:00
QMK Bot
bcd021263e Merge remote-tracking branch 'origin/master' into develop 2022-08-13 19:48:14 +00:00
emlah
a49bdd2659 add BAMFK-4 (#17985)
* add BAMFK-4
2022-08-13 20:47:39 +01:00
QMK Bot
97b610e166 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 19:45:00 +00:00
3araht
e145c7ad3f Bandominedoni version output feature and a new keymap added (#17947)
* SPLIT_USB_DETECT added.

* lednotg keymap added.

* lednotg missing modification fixed.

* VERSION is available.

* USER00 is used instead of SAFE_RANGE in via/keymap.c
2022-08-13 20:44:29 +01:00
QMK Bot
f417ffff5a Merge remote-tracking branch 'origin/master' into develop 2022-08-13 19:39:19 +00:00
Shem Sedrick
95782691d4 Dactyl Manuform 4x5 with 5 thumb cluster (#17671)
* Working on new dactyl

* Preliminary build and keymap in place for 4x5_5 dactyl manuform

* Removing first attempt to use 4x5

* Updating to match c style guide

* Fixing issues after merge, deletion of dactyl_manuform.h

* Spliting out custom keymap

* Adding license headers

* Fixing EE_HANDS detection on Pro-Micro

The pro-micro was not working when I plugged into the elite-c on the
right hand side of my keyboard. Adding the SPLIT_USB_DIRECT definition
fixed the issue.

* Apply suggestions from code review

Adding Drashna's delete comments

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

* Removed config.h for keymaps and tweaked keymap

Per Drashna's pr review, I have removed the config.h files for the
keymaps.
Also tweaked my keymap to switch backspace and enter. Added tapping
toggle for RAISE.

* Further tweaking ssedrick keymap for dactyl_manuform 4x5_5

As with most new keyboards, they take some getting used to.
I've rearranged my thumb cluster to hopfully a more long
term solution.

* Adding missing KC_BSLS to ssedrick keymap for 4x5_5

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-13 20:38:31 +01:00
QMK Bot
e95ba0d651 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 19:10:39 +00:00
mmccoyd
aee738c61b [Keyboard] Add Hillside 46 (#17968)
* 46: Copy from 52 and file rename

* 46: File internals refer to 46, not 52

* 46: Board remove row

* 46: Keymap: Lshift becomes ctrl, Rshift a symbol

- ESC and CAPs on upper thumbs
- AltGr and App on upper thumbs
- Page up/down on upper thumbs
- F11, F12 and mods for them on adjust

* 46: Readme update for json script, tweaks

* 46: Board fix LED count

* 46: Keymap: Arrows right, symmetric layer keys

* 46: Readme: Image link with and w/o outer pinkie

* 46: Keymap: link fixed image of nav layer

* 46: Keymap: fix reaching adj layer

Co-authored-by: mmccoyd <mmccoyd@cs.berkley.edu>
2022-08-13 20:10:01 +01:00
QMK Bot
826ab5412f Merge remote-tracking branch 'origin/master' into develop 2022-08-13 18:02:19 +00:00
alaviss
b1fe7621eb RFC: add a simple implementation of the ploopy optical encoder (#17912) 2022-08-13 11:01:44 -07:00
precondition
96731ba88e Fix LV_CCAR and LV_NCED (#18025) 2022-08-13 10:24:15 -07:00
QMK Bot
a03849c92c Merge remote-tracking branch 'origin/master' into develop 2022-08-13 16:24:37 +00:00
gourdo1
4c6ce12d2a Updated gourdo1 GMMK Pro keymaps (#17873)
* Fixed Left Shift tapdance in general and for gaming mode. (#12)

* update ISO readme
* left shift fixed in general, including for gaming mode

* fixed toggle menu rendering on ISO layouts

* updated readme's and cosmetics

* update readme's

* update readme's again

* readme cosmetics

* consolidate readme's

* more readme cosmetics

* clarification for bootloader mode on ISO

* Autocorrect added with 400 word English dictionary (#13)

* autocorrect added with 400 word dictionary

* update readme's for autocorrect

* Add FN-B as shortcut to bootloader

* Update .gitignore

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

* RGB changes to system numlock and ISO extended alphas

- hide system numlock off indicator (primarily for Mac users) by moving it to numpad and FN layers instead
- give users with extended alpha ISO languages a config option to add RGB highlights for extras alphas on capslock

* readme updates

* Fixed [FN]B and [FN]N shortcuts not working on numpad layer

Co-authored-by: Joel Challis <git@zvecr.com>
2022-08-13 17:24:07 +01:00
QMK Bot
149db3c6a8 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 16:19:58 +00:00
mmccoyd
0c0d01966f [Keyboard] Add Hillside 52 (#17374)
* 52 Keymap.json: Set for Hillside 52

- Change script rows

* 52 Keymap.c: mirror .json

CAPSWORD, QK_BOOT, readme cleanup, EE_RST

* 52 Keymap.json: Initial files copy from 56

* 52 Keymap.json nav/edit lay, thumb shift, syms

- Del in backspace spot on sym layer
- Thumb shift OSM instead of extra space
- Nav/edit on num/fn: arrows cut copy paste undo redo, page up/down
- Fn keys bottom row to allow nav edit keys
- App and AltGr on lower row, on their layer
- Braces on index, so more common -= on middle ring.
- Adjust has Ctrl/GUI swap
- EE_RST, CAPSWORD, QK_BOOT, SPLIT_DETECT

* 52 Family: readme image and folder link

* 52 Board: initial copy from 56

* 52 Keymap via

* 52 Board: remove keys, cant columns, better ids

- .json: vid: MM, pid: H52

* 52 Keymap.c: initial.c copy from 48

* QK_BOOT EE_CLR, not ANY(), as config.qmk supports

- CAPSWRD instead of ANY, though config.qmk still converts to ANY()

* Cleanup readme

* 52 Keymap: Remove redundant key, cleanup script

* 52 Keymap: Fix template

* 52 Readme: Link lower res image better for readme

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

* 52 Keymap: Move pretty-print script to GitHub wiki

* 52 Keymap: Link to 1024 res image thumbnails

* 52 Keymap: fix whitespace before image link

* Family: Fix image link to 1024 thumb

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

* 52: Keymap: Caps word on a layer home row

* 52: Keymap: Arrows on right. Symmetric layer keys.

- Nav:
  - Arrows on right so up/down more intuitive. Page up/down on ends
  - Cut on home row, as more common

- Sym:
  - Layer mods on activate hand, extras symbols on left
  - Common digits on lower row

- Base:
  - Layer keys symmetric, on most extended, not resting, thumb
  - Mute on util key for easy use

- Swap layers 3 and 4 to match swapped thumbs

Co-authored-by: mmccoyd <mmccoyd@cs.berkley.edu>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-13 17:19:21 +01:00
QMK Bot
39d2f61d51 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 16:14:39 +00:00
kopibeng
648f3eb71f Add support for XT60_SINGA (#17752)
* Added support for Christine, XT65E and Adelais

* Add support for MNK88

* Add support for XT8x

* Renamed XT65E to Typ65

* Revert "Renamed XT65E to Typ65"

This reverts commit b4fbc853d23003b9b4b5b67d49e098ea17d85a98.

* Revert "Revert "Renamed XT65E to Typ65""

This reverts commit 09baee94eba56dab0a0a96b99ce3758b0c5aa8a9.

* File reorganization

* Add support for MNK88

* Update readme.md

* Update keyboards/kopibeng/mnk88/rules.mk

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

* Update keyboards/kopibeng/mnk88/rules.mk

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

* Fix imgur link

* Update keyboards/kopibeng/mnk88/rules.mk

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

* Update keyboards/kopibeng/mnk88/info.json

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

* Update info.json

Previous suggested change was breaking lint check, reverting back to the original.

* Update keyboards/kopibeng/mnk88/info.json

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

* Fix info.json

* Added XT60_SINGA

* Update config.h

* Update readme.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-13 17:13:49 +01:00
Vino Rodrigues
52dc16b758 [Keyboard] IDOBAO ID80v1 folder rename (#17265)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-14 00:00:42 +10:00
Albert Y
69fa2d8378 [Core] Re-order user space rules inclusion (#17459) 2022-08-13 23:57:07 +10:00
Pascal Getreuer
6a0d90f81a Fix Caps Word capitalization when used with Combos + Auto Shift. (#17549) 2022-08-13 23:48:51 +10:00
Jay Greco
4eeafbebab Add Bit-C PRO converter (#17827) 2022-08-13 14:48:30 +01:00
Joel Challis
fc7e9efd21 Improve importer workflow (#17707) 2022-08-13 14:39:56 +01:00
lokher
a02aff9c77 Add led matrix support for CKLED2001 (#17643) 2022-08-13 14:39:06 +01:00
QMK Bot
ee664e0960 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 13:24:07 +00:00
Nick Brassel
dccb8ff7d6 Remove old submodules if present (#17930) 2022-08-13 23:23:32 +10:00
QMK Bot
853d47b4cc Merge remote-tracking branch 'origin/master' into develop 2022-08-13 04:49:33 +00:00
Drashna Jaelre
b881778f53 [Keyboard] Remove unused keycodes from Aurora65 keymap (#18022) 2022-08-12 21:48:33 -07:00
Drashna Jaelre
3d24845016 [Bug] Fix wrong varaible in encoder block (#18020) 2022-08-12 19:55:59 -07:00
QMK Bot
31e78aafbd Merge remote-tracking branch 'origin/master' into develop 2022-08-13 02:47:02 +00:00
arnstadm
aee48b8aab [Keyboard] add ogrn (#17983)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-12 19:46:16 -07:00
QMK Bot
60176a3a28 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 02:38:32 +00:00
rockybulwinkle
fb150e08f1 [Keyboard] Increase kinesis/kint41 unselect delay (#18015)
* [Keyboard] Increase kinesis/kint41 unselect delay

Fixes #18014

* Update kint41.c

Use correct si-abbreviation for micro in comment.
2022-08-13 03:38:01 +01:00
QMK Bot
7a95926f46 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 02:30:55 +00:00
arnstadm
5ed7e1acf1 [Keyboard] Add akb-ogr (#17982)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-12 19:30:10 -07:00
precondition
4ff39b5652 KR_DQUO S(KR_COLN) → KR_DQUO S(KR_QUOT) (#18011) 2022-08-12 19:20:58 -07:00
precondition
e3415d6b97 define CZ_PERC S(CZ_PLUS) → define CZ_PERC S(CZ_EQL) (#18008) 2022-08-12 19:20:35 -07:00
precondition
20f0f40220 Remove invisible variation selector-15 from keymap_japanese.h (#18007) 2022-08-12 19:16:50 -07:00
precondition
b4fbb340c5 Use LT_ZCAR in place of LT_PLUS for modded kc definitions (#18000) 2022-08-12 19:13:43 -07:00
precondition
db4c4b1f78 Fix Bépo's BP_NNBS (narrow non-breaking space) (#17999)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-12 19:13:22 -07:00
QMK Bot
e0b4fa512e Merge remote-tracking branch 'origin/master' into develop 2022-08-13 02:04:58 +00:00
Ryan
536e39a5d9 Fix viendi8l compilation (#18017) 2022-08-12 19:04:18 -07:00
Joy Lee
19ce1418ba Added implementation of WB32 MCU wear_leveling_efl. (#17579) 2022-08-13 02:14:33 +01:00
Drashna Jaelre
aed82bc6a0 Move Encoder+Encoder Map from generic features (#18018) 2022-08-12 18:04:02 -07:00
QMK Bot
06c7614a71 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 00:45:05 +00:00
Drashna Jaelre
ea2ec5835b [Keyboard] Fix compilation issues for Mechlovin Adelais (#18019) 2022-08-13 01:44:33 +01:00
QMK Bot
06391314cd Merge remote-tracking branch 'origin/master' into develop 2022-08-13 00:27:58 +00:00
DUILCHOI
a1fe9fe3b3 [Keymap] update fave104 keymap (#18004) 2022-08-12 17:27:53 -07:00
Albert Y
70c6b183df [Docs] Refactor code examples (#18003) 2022-08-12 17:27:24 -07:00
Drashna Jaelre
ccdba43e59 Create generic Pointing Device Pin defines (#17776) 2022-08-12 16:22:34 -07:00
QMK Bot
83f6aedd93 Merge remote-tracking branch 'origin/master' into develop 2022-08-12 23:03:46 +00:00
precondition
1a4a278251 Put non-US ISO keys in their expected spots in sagittarius' default keymaps (#18005) 2022-08-13 09:03:14 +10:00
Nick Brassel
8133f40c26 Update to latest ChibiOS-Contrib. (#18016) 2022-08-13 08:54:32 +10:00
QMK Bot
c565b415f7 Merge remote-tracking branch 'origin/master' into develop 2022-08-12 18:51:40 +00:00
QMK Bot
90e2a5100b Format code according to conventions (#18009) 2022-08-12 11:50:58 -07:00
QMK Bot
92d78a0198 Merge remote-tracking branch 'origin/master' into develop 2022-08-12 18:29:58 +00:00
Vertex-kb
cded26b199 [Keyboard] Add arc60 (#17976)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-12 11:28:53 -07:00
lalalademaxiya1
4da61b144a Update q5 q8 v3 v5 2022-08-12 14:54:02 +08:00
QMK Bot
15422b3b26 Merge remote-tracking branch 'origin/master' into develop 2022-08-12 02:04:13 +00:00
Joel Challis
7e7387c0d1 Remove legacy keycode use from command (#18002) 2022-08-12 03:03:36 +01:00
Albert Y
cde9dd8b90 Refactor Pixel Fractal effect (#17602)
* Refactor effect with smaller array

* Add RGB_MATRIX_USE_LIMITS call

* Remove spaces

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-11 22:41:42 +01:00
Sergey Vlasov
9e44362179 Add minimal STM32F103C6 support (#17853)
Unfortunately, the crippled versions of “Bluepill” boards with
STM32F103C6xx chips instead of STM32F103C8xx are now sold all over the
place, sometimes advertised in a confusing way to make the difference
not noticeable until too late.  Add minimal support for these MCUs in
the common “Bluepill with stm32duino” configuration, so that it could be
possible to make something useful from those boards (although fitting
QMK into the available 24 KiB of flash may be rather hard).

(In fact, I'm not sure whether the “STM32” part of the chip name is
actually correct for those boards of uncertain origin, so the onekey
board name is `bluepill_f103c6`; another reason for that name is to
match the existing `blackpill_f401` and `blackpill_f411`.)

The EEPROM emulation support is not included on purpose, because
enabling it without having a working firmware size check would be
irresponsible with such flash size (the chance that someone would build
a firmware where the EEPROM backing store ends up overlapping some
firmware code is really high).  Other than that, enabling the EEPROM
emulation code is mostly trivial (the `wear_leveling` driver with the
`embedded_flash` backing store even works without any custom
configuration, although its code is significantly larger than the
`vendor` driver, which may also be important for such flash size).
2022-08-11 22:37:41 +01:00
QMK Bot
8c4269f98e Merge remote-tracking branch 'origin/master' into develop 2022-08-11 21:04:46 +00:00
Danny
fab6c8a028 [Keyboard] Add Iris Rev. 7 (#17967)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-11 14:04:00 -07:00
Joshua Diamond
272f224dc6 Add cursor layer to DMQ Spin (#17996) 2022-08-11 13:28:48 -04:00
QMK Bot
ba370a54cd Merge remote-tracking branch 'origin/master' into develop 2022-08-11 16:09:38 +00:00
mincedshon
55f5406ac7 update ecila layout (#17975)
-update layout
2022-08-11 17:08:57 +01:00
QMK Bot
9981aaaae8 Merge remote-tracking branch 'origin/master' into develop 2022-08-11 05:06:33 +00:00
QMK Bot
a54ccb4ced Format code according to conventions (#17990) 2022-08-10 22:05:59 -07:00
QMK Bot
9d10a19fa8 Merge remote-tracking branch 'origin/master' into develop 2022-08-11 05:00:10 +00:00
DUILCHOI
0aeb9da030 [Keymap] update fave104 keymap (#17988) 2022-08-10 21:59:48 -07:00
Adam Applegate
a6fad5cc87 [Keymap] Added personal keymap for keebio/iris/rev6 (#17971) 2022-08-10 21:59:21 -07:00
Ivan Gromov
5dd944d450 [Keyboard] Add Aperture keyboard (#17980) 2022-08-10 21:59:05 -07:00
QMK Bot
f3acbf60fc Merge remote-tracking branch 'origin/master' into develop 2022-08-11 04:43:11 +00:00
Less/Rikki
34f0c1ac1b [Keyboard] fix: unicorne info.json LAYOUT (#17981) 2022-08-10 21:42:34 -07:00
QMK Bot
91be4740f2 Merge remote-tracking branch 'origin/master' into develop 2022-08-11 02:21:46 +00:00
James Young
380465e51c Acheron Athena Layout Macro Refactor and Additions (#17973) 2022-08-10 19:21:06 -07:00
QMK Bot
1882cdbf7b Merge remote-tracking branch 'origin/master' into develop 2022-08-11 01:48:48 +00:00
James Young
9ccbdad816 KBDfans KBD67 rev2: rename LAYOUT_65_ansi_split_bs_2_right_mods macro (#17972) 2022-08-10 18:48:12 -07:00
QMK Bot
e4b55a423a Merge remote-tracking branch 'origin/master' into develop 2022-08-11 01:45:33 +00:00
Álvaro A. Volpato
9898d6f4b0 [Keyboard] Add Viendi8L (#17943)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-10 18:44:59 -07:00
QMK Bot
ff59ae9783 Merge remote-tracking branch 'origin/master' into develop 2022-08-11 01:44:31 +00:00
Álvaro A. Volpato
90c4350af7 [Keyboard] Initial FM-S and FM-H support (#17765)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-10 18:43:52 -07:00
QMK Bot
b7b842da55 Merge remote-tracking branch 'origin/master' into develop 2022-08-11 01:39:09 +00:00
3araht
1038ade342 [Keyboard] add chromatonemini keyboard (#13516) 2022-08-10 18:38:32 -07:00
QMK Bot
90a290ea62 Merge remote-tracking branch 'origin/master' into develop 2022-08-11 01:34:34 +00:00
James Young
c230d0658e MacroCat Refactor (#17969) 2022-08-10 18:34:20 -07:00
Roger
d790b53580 [Keymap] single layer layout for BFO-9000 with numpad on the left (#17957) 2022-08-10 18:33:55 -07:00
QMK Bot
63915e84dc Merge remote-tracking branch 'origin/master' into develop 2022-08-10 20:08:21 +00:00
yiancar
a6d0cc3aab Aurora65 (#17966)
* aurora65 initial commit

* Add keymap images

* Move USB config to JSON

Co-authored-by: yiancar <yiancar@gmail.com>
2022-08-10 21:07:41 +01:00
QMK Bot
663b250e2f Merge remote-tracking branch 'origin/master' into develop 2022-08-10 03:01:41 +00:00
Wilba
8a24fbbdae Fix detection of EEPROM reset in some keyboards (#17970) 2022-08-09 20:01:09 -07:00
QMK Bot
9bbc0cbb3b Merge remote-tracking branch 'origin/master' into develop 2022-08-10 00:24:17 +00:00
Kyle McCreery
7019d0bce8 [Keyboard] MechWild Puckbuddy (#17161)
* Initial commit

* testing modes

* working on puckbuddy firmware. This is all working for now but need to clean it up and personalize it.

* needs to be updated from vial build

* prepping for PR

* added rgb mode cycling to fn1 since it isn't on the encoder for these maps

* readme written in preparation for pr

* reverting driver print line

* Removed old reference to OBE in the readme from copypaste error

* applying changes based on review

* applying changes from review

* Update keyboards/mechwild/puckbuddy/puckbuddy.c

* trailing whitespaces removed

* added clear screen condition for switching back to name rendering

* Added uf2 keymap and fixed display glitch for the logo render art.

* Removed extra definition of FEE_PAGE_BASE_ADDRESS

* Removed the uf2 keymap and made it automatic when selecting bootloader instead

* Fixed the bad bootloader check

* moved the uf2 check from rules.mk to post_rules.mk to satisfy lint

* changing it back to stm32-dfu bootloader default

* Fixed RGBLIGHT enable oversight.

* Added persistent dynamic tapping configuration for the cirque touchpad tap term

* new lines at end of files for formatting and diff sanity

* changing default bootloader back to stm32-dfu

* Had to completely redefine the tap keycodes instead of using the DT_UP and DT_DOWN keycodes because I was not able to specify them easily in the via/vial configs and this allows me to keep the original functionality instead of tying it to eeprom like these are.

* Added tap toggling keycodes to quick enable and disable the tapping term

* working out an issue where the tap status keeps turning to off on power cycle

* correcting submodule garbo

* Fixed display issue and rewrote TAP config approach to make it a little easier to control

* removing backup puckbuddy.c code

* Added some comment, removed some commented out old code, removed trailing whitespace

* Changed to handle tinyuf2 by expecting emulated eeprom so that adding other forms of eeprom can be handled for the memory offset separately, and added user oled conditional inside the keyboard oled code block

* Updated default keymaps to have the tap and dpi keys on by default

* Apply suggestions from code review

* Apply suggestions from code review
2022-08-09 17:23:44 -07:00
QMK Bot
994a2542af Merge remote-tracking branch 'origin/master' into develop 2022-08-09 18:21:11 +00:00
mechlovin
94b3efe92e change Adelais En Ciel rev. 3 from STM32F303 to APM32F103 MCU (#16964)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-09 11:20:36 -07:00
QMK Bot
525049990c Merge remote-tracking branch 'origin/master' into develop 2022-08-09 18:20:08 +00:00
mincedshon
336c4904b5 [Keyboard] add ecila keyboard (#17596) 2022-08-09 11:19:15 -07:00
QMK Bot
25913ef518 Merge remote-tracking branch 'origin/master' into develop 2022-08-09 17:41:07 +00:00
yiancar
5de655023e [Keyboard] Add NK20 (#17907)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-08-09 10:40:32 -07:00
QMK Bot
6e1c2b20e5 Merge remote-tracking branch 'origin/master' into develop 2022-08-09 06:41:55 +00:00
Salicylic-acid3
923cd63f3e [Keyboard] (7skb)Change number of LEDs and Enable Mouse Keys (#17954) 2022-08-08 23:41:10 -07:00
QMK Bot
1d33baac8f Merge remote-tracking branch 'origin/master' into develop 2022-08-08 18:06:29 +00:00
Joel Challis
0002b1cc20 Also disable line ending conversion for merge workflows (#17953) 2022-08-08 19:05:41 +01:00
QMK Bot
a3b06fd87c Format code according to conventions (#17951) 2022-08-08 17:33:25 +01:00
QMK Bot
a14cd0fba5 Merge remote-tracking branch 'origin/master' into develop 2022-08-08 16:31:00 +00:00
Joel Challis
bccf933bc9 Force no git line ending conversion on format workflow (#16176) 2022-08-08 17:30:26 +01:00
QMK Bot
22cb4e520a Merge remote-tracking branch 'origin/master' into develop 2022-08-08 09:46:27 +00:00
Vertex-kb
9a3c30f2c7 [Keyboard] Add Vertex AngleR2 keyboard (#16764)
* Add files via upload

* Delete Vertex/AngleR2 directory

* Add files via upload

* Delete keyboards/Vertex/AngleR2 directory

* Add files via upload

* Add files via upload

* Add files via upload

* Update keyboards/vertex/angler2/angler2.h

* Update keyboards/vertex/angler2/info.json

* Update keyboards/vertex/angler2/keymaps/default/keymap.c

* Update keyboards/vertex/angler2/keymaps/via/keymap.c

* Update keyboards/vertex/angler2/keymaps/via/keymap.c

* Update keyboards/vertex/angler2/keymaps/via/keymap.c

* Update keyboards/vertex/angler2/keymaps/default/keymap.c

* Update keyboards/vertex/angler2/keymaps/via/keymap.c
2022-08-08 02:45:36 -07:00
lalalademaxiya1
a94a1c3f89 Rename directory test 2022-08-08 14:15:47 +08:00
lalalademaxiya1
fe0d50733e Rename diretory test 2022-08-08 14:13:12 +08:00
lalalademaxiya1
e27437a18c Update v2 and v8 2022-08-08 14:03:05 +08:00
Joel Challis
764c542bef Remove tmk_core 'serial' code (#17866) 2022-08-08 03:13:16 +01:00
QMK Bot
972f9a612c Merge remote-tracking branch 'origin/master' into develop 2022-08-07 21:11:17 +00:00
Arturo Avila
d27a6bd629 [Keyboard] Add Shisaku keyboard (#17572) 2022-08-07 14:10:32 -07:00
QMK Bot
b214768e09 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 21:07:55 +00:00
yeimialberth
ca04babf3f [Keymap] qwerty and dvorak keyboard setup (#16592)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-07 14:07:25 -07:00
QMK Bot
6a1a398627 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 19:40:49 +00:00
csc027
4267f0e0d4 csc027/keymap-updates (#17881)
* Reverted to most usable configuration for RDP usage.

* Added some HSV color definitions without the value portion to allow using the existing value.

* Switched to using HSV and HS color definitions.

* Added media keys to the convenience layer.

* Updated make rules to enable media keys.

* Cleaned up planck make rules.
2022-08-07 20:40:16 +01:00
QMK Bot
67461a0a47 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 19:33:39 +00:00
Takeshi ISHII
5ecd745514 fix comment space code in quantum/matrix_common.c (#17942) 2022-08-07 20:32:59 +01:00
QMK Bot
6e7678c415 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 13:01:43 +00:00
XScorpion2
034e266998 Rgbkb/keeb fixes (#17932)
* Disable console by default for better bios & reboot behavior

* Remove custom matrix

* Disable console by default for better bios & reboot behavior

* PR feedback
2022-08-07 14:01:10 +01:00
QMK Bot
9087e6ee28 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 12:57:41 +00:00
Joel Challis
a6ea760c94 rgbkb/zen - Resolve CONVERT_TO_PROTON_C warnings (#17619) 2022-08-07 13:57:12 +01:00
QMK Bot
e8ff0d6ced Merge remote-tracking branch 'origin/master' into develop 2022-08-07 09:34:18 +00:00
medoix
b9269bf689 [Keyboard] Dumbpad v1x_oled (#17058)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-07 02:33:36 -07:00
QMK Bot
4f3bf762f1 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 09:30:52 +00:00
DUILCHOI
964ce931e2 [Keyboard] add fave104 (#17909)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-07 02:30:18 -07:00
QMK Bot
5599f26667 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 09:29:42 +00:00
yiancar
82a72fe815 [Keyboard] Add P01 (#17921)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-08-07 02:28:46 -07:00
QMK Bot
50e6dd41e6 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 09:21:28 +00:00
James Young
de613fac0a Lin Works FAve 65H Refactor (#17938) 2022-08-07 02:20:51 -07:00
Drashna Jaelre
ac25109312 Always run pointing device init (#17936) 2022-08-07 02:18:03 -07:00
QMK Bot
93914142a3 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 01:24:34 +00:00
Joel Challis
c6ad38e79f RESET -> QK_BOOT default keymaps (#17939) 2022-08-07 02:23:58 +01:00
QMK Bot
c5844931e2 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 21:42:44 +00:00
Julian Turner
5c1cfc917e [Keymap] German Corne Layout (#17268)
* added german corne

* added symbol layer

* Delete settings.json

revert setting

* Delete keymap.c

* Update config.h

* Update keycodes.h

* Update config.h

* Update keyboards/crkbd/keymaps/JulianTurner/oled.c

* Update keycodes.h

* Update oled.c

added header

* Update keymap.c

added header

* Update keytabs.h

added header

* Update readme.md

* Update rules.mk

* default settings

* Update settings.json

* renamed folder

* revert

* remove c file import and added to rules

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update rules.mk

* updated files from pull request

* fixed issues with merge

* Update keyboards/crkbd/keymaps/julian_turner/oled.c

* Update keyboards/crkbd/keymaps/julian_turner/rules.mk

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

* Delete keycodes.h

* Update keyboards/crkbd/keymaps/julian_turner/readme.md
2022-08-06 14:41:52 -07:00
Joshua Diamond
5408334083 Update ginkgo65hot to allow use of community layouts (#17911) 2022-08-06 13:29:06 -07:00
QMK Bot
e938c663e5 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 17:19:59 +00:00
takashicompany
c8afb7a513 Update miniZone keymap (#17919) 2022-08-06 18:19:25 +01:00
QMK Bot
985b91b30f Merge remote-tracking branch 'origin/master' into develop 2022-08-06 16:21:41 +00:00
James Young
efdd048e18 Cipulot Kawayo Refactor (#17884)
* info.json: apply friendly formatting

* kawayo.h: use QMK 3-character notation

* refactor keymaps

- use QMK-native keycode aliases
  - KC_ENTER -> KC_ENT
  - KC_RIGHT -> KC_RGHT
  - KC_TRNS -> _______
  - RESET -> QK_BOOT
- use four-space indent

* kawayo.h: add matrix diagram

* info.json: correct layout data

* rename LAYOUT_default to LAYOUT_ansi_blocker_split_bs

* add LAYOUT_ansi_blocker macro with reference keymap

* add LAYOUT_ansi_blocker_tsangan macro with reference keymap

* add LAYOUT_ansi_blocker_tsangan_split_bs macro with reference keymap

* kawayo.h: add Corner Blocker (CB) option to matrix diagram

* change Layout Macro naming scheme

- update layout macro naming scheme
  - rename `LAYOUT_ansi_blocker` to `LAYOUT_65_ansi_cb_blocker`
  - rename `LAYOUT_ansi_blocker_split_bs` to `LAYOUT_65_ansi_cb_blocker_split_bs`
  - rename `LAYOUT_ansi_blocker_tsangan` to `LAYOUT_65_ansi_cb_blocker_tsangan`
  - rename `LAYOUT_ansi_blocker_tsangan_split_bs` to `LAYOUT_65_ansi_cb_blocker_tsangan_split_bs`
- rename reference keymaps to format specified in QMK docs
  - keymap using `LAYOUT_65_ansi_cb_blocker` macro should be named `default_65_ansi_cb_blocker`, etc.
- update layout macro grid alignment (no logic change)

* add LAYOUT_65_ansi_blocker macro

* add LAYOUT_65_ansi_blocker_split_bs macro

* add LAYOUT_65_ansi_blocker_tsangan macro

* add LAYOUT_65_ansi_blocker_tsangan_split_bs macro

* denote LAYOUT_all as an alias for LAYOUT_65_ansi_blocker_split_bs

* enable Community Layout support
2022-08-06 09:21:11 -07:00
Nick Brassel
154d35ac14 Remove UNUSED_PINS (#17931) 2022-08-06 23:23:35 +10:00
QMK Bot
820371c31b Merge remote-tracking branch 'origin/master' into develop 2022-08-06 12:38:13 +00:00
Ryan
37345e2ace Provide users with replacements for deprecated/invalid functionality where applicable (#17604) 2022-08-06 22:37:40 +10:00
Stefan Kerkmann
f27b617f36 [Core] Process all changed keys in one scan loop, deprecate QMK_KEYS_PER_SCAN (#15292) 2022-08-06 20:51:13 +10:00
QMK Bot
e9f9f99a33 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 08:59:44 +00:00
Ryan
0ff8c4f6fd Move keyboard USB IDs and strings to data driven: Z (#17927) 2022-08-06 18:59:13 +10:00
QMK Bot
dd0ac80ee4 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 08:52:48 +00:00
Ryan
fb19e14048 Move keyboard USB IDs and strings to data driven: Y (#17926) 2022-08-06 18:52:13 +10:00
Stefan Kerkmann
ed9bdcbc36 [Core] guard RPC invocation by checking RPC info against crc checksum (#17840) 2022-08-06 18:46:59 +10:00
QMK Bot
cac7042414 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 08:46:12 +00:00
Ryan
0e3cc6af12 Move keyboard USB IDs and strings to data driven: X (#17925) 2022-08-06 18:45:43 +10:00
QMK Bot
1d45c99355 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 06:37:08 +00:00
Albert Y
64acbcb42a [Docs] Building with GitHub Userspace (#16271) 2022-08-06 16:36:31 +10:00
QMK Bot
3c9941a629 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 06:31:44 +00:00
Andrew Kannan
99377a0f5b [Keyboard] Add Crin PCB (#17913) 2022-08-05 23:31:05 -07:00
QMK Bot
5efa2ff23e Merge remote-tracking branch 'origin/master' into develop 2022-08-06 06:30:45 +00:00
keyquest.tech
07fc37541d Added support for keyquest keyboards (#17667)
Co-authored-by: Mathiaszmrga <mmoragrega@centro.edu.mx>
2022-08-06 16:30:05 +10:00
Joel Challis
897403c4a7 Publish data as part of API generation (#17020) 2022-08-06 16:14:29 +10:00
QMK Bot
ec5186f0f9 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 05:50:30 +00:00
Ryan
10ad238944 Move keyboard USB IDs and strings to data driven: W (#17903) 2022-08-06 15:49:44 +10:00
Jeff Epler
7bbc1b21dd Add kb2040 onkey keyboard that works with the oled keymap (#17786) 2022-08-05 19:38:10 -07:00
Drashna Jaelre
ad4ef47d2b [Keyboard] use correct function in Dilemma splinky (#17923) 2022-08-06 02:58:06 +01:00
QMK Bot
758a0a0902 Merge remote-tracking branch 'origin/master' into develop 2022-08-06 01:54:55 +00:00
Less/Rikki
660dedfb17 [Keyboard] encoder map on more mechwild boards (#17894) 2022-08-05 18:54:22 -07:00
lalalademaxiya1
6c93ae4335 Remove chconf.h of q4 2022-08-05 11:43:04 +08:00
lalalademaxiya1
926ed4fa00 Remove chconf.h of q3 2022-08-05 10:35:51 +08:00
lalalademaxiya1
a3549b7639 Remove chconf.h of q10 2022-08-05 10:21:32 +08:00
QMK Bot
217bd431e9 Merge remote-tracking branch 'origin/master' into develop 2022-08-04 23:41:59 +00:00
Joel Challis
8978960a87 Tidy up ez_maker (#17910) 2022-08-05 00:41:29 +01:00
Drashna Jaelre
eb417b3aaf Add deprecated check for RGBLIGHT_ANIMATIONS (#17832) 2022-08-04 11:05:53 -07:00
QMK Bot
7093846319 Merge remote-tracking branch 'origin/master' into develop 2022-08-04 13:07:34 +00:00
ebastler
efd3b1e0bd added missing indicator defines for dolice (#17906) 2022-08-04 14:06:50 +01:00
Nick Brassel
d9eb152a90 Fix issue with #17904. (#17905) 2022-08-04 22:15:42 +10:00
Nick Brassel
94e8701b3e Fixup compilation of printf-like functions with uint32_t args. (#17904) 2022-08-04 21:44:56 +10:00
Nick Brassel
543f54a483 [Core] STM32_USB_USE_OTG1 => USB_ENDPOINTS_ARE_REORDERABLE (#17647) 2022-08-04 21:05:16 +10:00
lalalademaxiya1
8aad4e1f11 Update v2 and remove chconf.h of q6,v4 2022-08-04 16:40:58 +08:00
lalalademaxiya1
b016227aa6 Remove chconf.h of q8 2022-08-04 11:08:32 +08:00
QMK Bot
88cfd55b8c Merge remote-tracking branch 'origin/master' into develop 2022-08-04 01:36:14 +00:00
Ryan
17176daf26 Move keyboard USB IDs and strings to data driven: T (#17899) 2022-08-04 02:35:08 +01:00
QMK Bot
4e50de3a4b Merge remote-tracking branch 'origin/master' into develop 2022-08-04 00:22:37 +00:00
James Young
5a631ed9ac Balloondogcaps TR90 and TR90PM: rename LAYOUT to LAYOUT_ortho_3x3 (#17879)
* balloondogcaps/tr90: rename LAYOUT to LAYOUT_ortho_3x3

* balloondogcaps/tr90pm: rename LAYOUT to LAYOUT_ortho_3x3
2022-08-04 01:21:59 +01:00
QMK Bot
42a36a2095 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 22:55:51 +00:00
James Young
b01814bf68 boardsource/the_mark: add QMK Configurator layout data (#17898)
* boardsource/the_mark: add QMK Configurator layout data

* add keyboard maintainers to info.json

Adds the individual and organization accounts as listed maintainers.
2022-08-03 23:54:50 +01:00
QMK Bot
d8a15ce5bb Merge remote-tracking branch 'origin/master' into develop 2022-08-03 22:54:33 +00:00
Ryan
a30c1884c7 Move keyboard USB IDs and strings to data driven: U (#17900) 2022-08-03 23:53:46 +01:00
QMK Bot
adf8218399 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 22:53:16 +00:00
Ryan
1fd8d5c322 Move keyboard USB IDs and strings to data driven: V (#17901) 2022-08-03 23:52:24 +01:00
QMK Bot
0a198b59a3 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 22:13:21 +00:00
Ryan
a8744b1630 Move keyboard USB IDs and strings to data driven: S (#17889) 2022-08-04 08:12:37 +10:00
QMK Bot
237039cdcd Merge remote-tracking branch 'origin/master' into develop 2022-08-03 22:06:14 +00:00
Ryan
b40c03140e Move keyboard USB IDs and strings to data driven: R (#17885) 2022-08-04 08:05:40 +10:00
QMK Bot
c6a6f987c9 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 20:08:10 +00:00
Joel Challis
92bcbee226 Fix up splittest/bluepill (#17897) 2022-08-03 21:06:54 +01:00
QMK Bot
f326b0b40e Merge remote-tracking branch 'origin/master' into develop 2022-08-03 17:23:55 +00:00
Stephen J Bush
df8a538489 Userspace: muppetjones (#1) (#13461)
* Userspace: muppetjones (#1)

Add and update lily58 to work with userspace
Add and update kyria keymap to work with userspace
Add and update planck keymap with userspace
Add etchamouse code and docs to userpace
Add userspace
Update mouse encoder for smoother movement.
Encoder + mouse
Added casemodes by andrewjrae

* Rollback lily58 state reader and add missing GPL

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>

* fix lily58 keymap

* Updates to user and lily for muppetjones.

Updated parameters for etchamouse for smoother mouse movement. Updated lily keymap and userspace to actually work together.

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

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

* Updated keymaps and userspace

* Little more cleanup.

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

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

* Rollback accidental libchibios update

* Apply suggestions from code review

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

* Update kyria keymap

* Move kyria keymap to splitkb/kyria

* Update planck keymap

* Remove all changes to keyboards/lily58/lib/layer_state_reader.c

* Update lily58 keymap

* Recommended change

* Update keymap readme

* Update kyria keymap and userspace

* Apply suggestions from code review

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

* Renamed users/muppetjones/README.md to lc

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

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-03 18:23:17 +01:00
QMK Bot
e93124f05c Merge remote-tracking branch 'origin/master' into develop 2022-08-03 14:59:13 +00:00
Ryan
5f6cf24294 Move keyboard USB IDs and strings to data driven: Q (#17883) 2022-08-03 15:58:29 +01:00
QMK Bot
4c81d4e526 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 13:20:50 +00:00
yulei
c4e767b4c9 added neson design's 700e keyboard (#17768)
* added neson design's 700e keyboard

* Apply suggestions from code review

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-03 14:20:10 +01:00
QMK Bot
671e211930 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 10:33:16 +00:00
jotix
4ec2626b43 jotix's community ortho_4x12 layout change (#17891) 2022-08-03 11:32:23 +01:00
lalalademaxiya1
79770ef7bd Update q5 and q6 2022-08-03 17:46:27 +08:00
QMK Bot
2dfccd29c8 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 08:33:04 +00:00
dvermd
0206bd9df3 add bluepill mcu to splittest (#16959)
* add bluepill mcu to splittest

* fix typo

* refactoring

* mcu config goes to mcuconf.h of keyboard
* keymap specific config goes to keymap config.h
* keyboard specific depending of keymap goes to post_config.h

* Apply suggested change

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

* Apply suggested change

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

* Apply suggested change

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

* Apply suggested change

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

* Apply suggested change

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

* splittest/bluepill: improve documentation

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-03 09:31:37 +01:00
QMK Bot
61a3fe4fac Merge remote-tracking branch 'origin/master' into develop 2022-08-03 07:23:52 +00:00
Ryan
b6757d2380 Move keyboard USB IDs and strings to data driven: P (#17875) 2022-08-03 17:23:15 +10:00
QMK Bot
d4f9eb5225 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 07:16:28 +00:00
Ryan
3da6575e24 Move keyboard USB IDs and strings to data driven: M (#17859) 2022-08-03 17:15:43 +10:00
QMK Bot
bce4fb4574 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 07:04:43 +00:00
Ryan
1b92c204c1 Move keyboard USB IDs and strings to data driven: K (#17846)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-08-03 17:03:47 +10:00
QMK Bot
d52d7bc658 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 06:48:37 +00:00
kkokdae
ce9bb6d39b [keymap] Add kkokdae keymap for keyboardio/atreus (#17843)
* [keymap] Add kkokdae keymap for keyboardio/atreus

* Update keyboards/keyboardio/atreus/keymaps/kkokdae/keymap.c

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

* Update keyboards/keyboardio/atreus/keymaps/kkokdae/keymap.c

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

* Revert "Update keyboards/keyboardio/atreus/keymaps/kkokdae/keymap.c"

This reverts commit 8e9ccc78c796ea482b5b48d546498c06e3a2af09.

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-03 07:47:48 +01:00
QMK Bot
40499bed06 Merge remote-tracking branch 'origin/master' into develop 2022-08-03 06:11:19 +00:00
Travis
5f6ec37b7d [Keymap] Add TravisHi keymap for SplitKB Kyria (#17858)
* Init commit

* Prep for MVP

* Add F Fixes (thanks F!)

* Fix some incorrect layer summons

* Create readme (remove comments from code)

* Update OLED indicators (test)

* Add more OLED updates

* Add more layouts

* Update readme and small tweaks

* Update layers and prep for LED layers

* Fix a trapped layer issue

* Test animations

* Add a happy frog animation to right screen

* Add bulk work

* Move fren readme image

* Can't save images

* Update FPS layout

* Update Symbols layer

* Update readme

* Update readme (future comments move to readme)

* Remove superfluous comments & add Licence

* Add licence update
2022-08-03 07:10:46 +01:00
QMK Bot
b31c914f0f Merge remote-tracking branch 'origin/master' into develop 2022-08-03 00:07:38 +00:00
AnthonyNguyen168
4c8469f565 Update json file to support Configurator correctly. (#17692) 2022-08-03 01:06:55 +01:00
QMK Bot
90259eb012 Merge remote-tracking branch 'origin/master' into develop 2022-08-02 18:39:44 +00:00
Ryan
be5b1a24bf Move keyboard USB IDs and strings to data driven: O (#17874) 2022-08-02 19:39:00 +01:00
QMK Bot
7883306466 Merge remote-tracking branch 'origin/master' into develop 2022-08-02 18:31:04 +00:00
James Young
24488e043e SKergo Refactor (#17877)
* skergo.h: use ___ for KC_NO

* skergo.h: use 3-character notation

* skergo.h: add matrix diagram

* add LAYOUT_all macro

* update grid alignment of LAYOUT macro and keymaps

* refactor keymaps

Refactor keymaps to use the `LAYOUT_all` macro. Converts tabs to spaces.

This change necessitates the following changes to keymaps:

- The keycodes for Page Up, Page Down, and End each move up one row - all as the last keys on their new rows.
- The keycode for the secondary B key moves up one row, inserted between the primary (left side) B and the N.

* remove LAYOUT macro

* rename LAYOUT_all macro to LAYOUT_split_bs

* add LAYOUT_2u_bs macro

* readme.md: add flashing example

* info.json: correct maintainer value

Update to reference maintainer's GitHub username.
2022-08-02 19:30:26 +01:00
QMK Bot
1f8e9c1854 Merge remote-tracking branch 'origin/master' into develop 2022-08-02 06:54:51 +00:00
Niko Wenselowski
068bfc49de [Keymap] Move the ut472 keymap from gardego5 to keyhive folder (#17598) 2022-08-01 23:54:14 -07:00
lalalademaxiya1
ec7d6d1d8d Update v4 2022-08-02 14:42:41 +08:00
QMK Bot
479c7876e6 Merge remote-tracking branch 'origin/master' into develop 2022-08-02 00:11:25 +00:00
Ryan
056a44c7d3 Move keyboard USB IDs and strings to data driven: N (#17865) 2022-08-02 01:10:48 +01:00
QMK Bot
e6dc14ae41 Merge remote-tracking branch 'origin/master' into develop 2022-08-02 00:03:00 +00:00
Ryan
7222969964 Move keyboard USB IDs and strings to data driven: L (#17849) 2022-08-02 01:02:19 +01:00
QMK Bot
e3ee87ee31 Merge remote-tracking branch 'origin/master' into develop 2022-08-01 16:10:17 +00:00
James Young
26b17a71e0 MS Sculpt Touch-Up (#17871)
* info.json: fix JSON syntax error

* info.json: convert tabs to spaces

* info.json: add QMK Configurator layout data

* readme.md: switch Bootloader and Docs sections
2022-08-01 17:09:40 +01:00
Drashna Jaelre
b1eac5c671 [Keyboard] Overhaul uzu42 (#17868) 2022-08-01 14:04:26 +01:00
QMK Bot
0e3b1740ef Merge remote-tracking branch 'origin/master' into develop 2022-08-01 13:01:06 +00:00
James Young
3b40ded512 ryanbaekr rb18 Configurator Data Fixes (#17872)
* info.json: apply friendly formatting

* info.json: correct key sequence

* info.json: remove dead space from layout

* info.json: correct maintainer value
2022-08-01 14:00:31 +01:00
lalalademaxiya1
8964cf7235 Update q3 2022-08-01 16:44:04 +08:00
QMK Bot
e32a956028 Format code according to conventions (#17869) 2022-07-31 21:35:53 -07:00
David Hoelscher
2bdd73f801 Add ST7735 driver to Quantum Painter (#17848) 2022-07-31 19:58:25 -07:00
jack
09ea5f6337 [Keyboard] Fix uzu42 compilation issue (#17867) 2022-07-31 19:05:15 -07:00
QMK Bot
735fb38a0e Merge remote-tracking branch 'origin/master' into develop 2022-07-31 22:34:03 +00:00
axtloss
e1b6034f00 [Keymap] Add axtloss keymap for sofle (#17835)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-31 15:33:34 -07:00
Joel Challis
98d5c77521 Remove legacy AVR ssd1306 driver (#17864) 2022-07-31 22:15:01 +01:00
Joel Challis
f7aaed1b57 Migrate crkbd keymaps to oled driver (#17863) 2022-07-31 12:36:30 -07:00
Joel Challis
c10c2575b8 Remove OLED driver Split Common warning (#17862) 2022-07-31 12:33:12 -07:00
Joel Challis
2f19579d3f Convert yosino58 to use split common (#17861) 2022-07-31 12:32:45 -07:00
Daniel Kao
b03a7cef75 Fix POINTING_DEVICE_GESTURES_SCROLL_ENABLE typo (#17850)
* Fix typo for POINTING_DEVICE_GESTURES_SCROLL_ENABLE

Follow the name written in documentation which follows
POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE

* Reword the blurb about POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE in docs
2022-07-31 15:51:20 +01:00
Joel Challis
409790457c Refactor satt/comet46 to use core OLED driver (#17856) 2022-07-31 15:35:42 +01:00
Joshua Diamond
baf34989f1 Default rgblight (#17855)
* better rgb bindings; improve default

* trim firmware size
2022-07-30 18:31:31 -04:00
Joshua Diamond
f02e355380 More glyph transformations for spidey3 userspace (#17854)
* add bold and blackboard bold glyph transformations

* trim firmware size; cformat

* fix typo in macro

* trim firmware size a bit more
2022-07-30 18:21:54 -04:00
QMK Bot
3d53c64992 Merge remote-tracking branch 'origin/master' into develop 2022-07-30 20:00:58 +00:00
James Young
f6a91649ff KPrepublic BM80v2 Touch-Up (#17851)
* info.json: apply friendly formatting

* info.json: correct layout data

Fix the size and position of the Backslash key.

* readme.md: touch-up formatting

* readme.md: switch Bootloader and Docs sections

* correct keyboard maintainer
2022-07-30 21:00:15 +01:00
lalalademaxiya1
17ca68de9d Update q0 2022-07-30 17:49:41 +08:00
lalalademaxiya1
06d7fc71e9 Update v4 2022-07-30 16:32:12 +08:00
QMK Bot
06fe4b16d2 Merge remote-tracking branch 'origin/master' into develop 2022-07-30 07:32:18 +00:00
Ryan
2d778d2ff2 Move keyboard USB IDs and strings to data driven: handwired (#17822) 2022-07-30 17:31:44 +10:00
QMK Bot
ef94f93fe2 Merge remote-tracking branch 'origin/master' into develop 2022-07-30 07:24:42 +00:00
Ryan
1c6b0391b4 Move keyboard USB IDs and strings to data driven: E (#17815) 2022-07-30 17:23:55 +10:00
lalalademaxiya1
820642264c Update quantum/via.c 2022-07-30 15:12:04 +08:00
lalalademaxiya1
ddc3c5517a Update all keyboards 2022-07-30 14:47:20 +08:00
Drzony
0b726a437b Implement relative mode for Cirque trackpad (#17760) 2022-07-29 21:20:34 -07:00
QMK Bot
b085d5221b Merge remote-tracking branch 'origin/master' into develop 2022-07-30 04:07:26 +00:00
Bahrul Hidayat
da07e7dd0e [Keyboard] add dyz60-hs (#17763)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-29 21:07:10 -07:00
kopibeng
c0e3a16121 [Keyboard] Update MNK88 RGB Underglow LED Number (#17833)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-29 21:06:40 -07:00
QMK Bot
7e172fd944 Merge remote-tracking branch 'origin/master' into develop 2022-07-30 03:03:14 +00:00
Ryan
306e50b84c Move keyboard USB IDs and strings to data driven: D (#17814) 2022-07-29 20:02:47 -07:00
QMK Bot
07f007de9a Merge remote-tracking branch 'origin/master' into develop 2022-07-30 03:02:29 +00:00
Chris Swenson
d1096ad440 [Keymap] Add enigma keymap for contra keyboard (#17829) 2022-07-29 20:01:35 -07:00
QMK Bot
a97c61074e Merge remote-tracking branch 'origin/master' into develop 2022-07-30 02:47:09 +00:00
James Young
d2aa8e6bb8 KBDfans Bounce Pad: Correct QMK Configurator Implementation (#17845) 2022-07-29 19:46:32 -07:00
QMK Bot
ed719d5d8d Merge remote-tracking branch 'origin/master' into develop 2022-07-30 02:17:19 +00:00
GG
0aec4203e7 [Keyboard] add Zoom87 (#17831) 2022-07-29 19:16:50 -07:00
QMK Bot
0c487cbeba Merge remote-tracking branch 'origin/master' into develop 2022-07-30 00:32:42 +00:00
Drashna Jaelre
d93dfbff3c Fix check when compiling HID Joystick with digital driver (#17844) 2022-07-30 01:32:06 +01:00
Frank Tackitt
21603c5142 Enable mousekeys by default for RGBKB Sol3 (#17842) 2022-07-29 23:42:34 +01:00
QMK Bot
3f1b61ba55 Merge remote-tracking branch 'origin/master' into develop 2022-07-29 21:03:24 +00:00
James Young
7f2ddf1711 kbdfans/bounce/75: correct typos of keyboard name (#17841) 2022-07-29 22:02:45 +01:00
Stefan Kerkmann
a204523bbb [Core] RP2040 disable PIO IRQs on serial timeout (#17839) 2022-07-29 20:13:16 +02:00
zvecr
ade2eb1e75 Merge remote-tracking branch 'origin/master' into develop 2022-07-29 17:30:33 +01:00
Ryan
394cf7c41e Move keyboard USB IDs and strings to data driven: J (#17837) 2022-07-29 13:49:01 +01:00
Ryan
bcb8600a31 Move keyboard USB IDs and strings to data driven: I (#17836) 2022-07-29 13:40:16 +01:00
QMK Bot
1050cf2453 Merge remote-tracking branch 'origin/master' into develop 2022-07-29 12:19:39 +00:00
James Young
1ded7ad460 KBDfans Bounce75 Touch-Up (#17834)
* kbdfans/bounce/75/hotswap: keymap readability fix

Update grid alignment to disambiguate which keycodes correspond in different layers.

----

Layer 0 had 13 and 9 keycodes on the bottom two rows respectively, while Layers 1-3 had 14 and 8.

* kbdfans/bounce/75/soldered: keymap readability fix

Update grid alignment to disambiguate which keycodes correspond in different layers.

----

Layer 0 had 14 and 9 keycodes on the bottom two rows respectively, while Layers 1-3 had 15 and 8.

* kbdfans/bounce/75/soldered: fix layer index in keymaps

Layer indexes were 0,1,2,1 instead of 0,1,2,3.
2022-07-29 13:18:28 +01:00
QMK Bot
a7d0e01e5b Merge remote-tracking branch 'origin/master' into develop 2022-07-29 06:44:32 +00:00
James Young
5c90f7ae14 Wuque Promise87 WKL Refactor (#17828) 2022-07-28 23:43:54 -07:00
precondition
95c1cc425e Rename postprocess_steno_user → post_process_steno_user (#17823) 2022-07-28 21:51:01 -07:00
QMK Bot
2d0443ec25 Merge remote-tracking branch 'origin/master' into develop 2022-07-29 04:42:45 +00:00
GG
b5452581da [Keyboard] fix mistakes in promise87 config (#17830) 2022-07-28 21:41:42 -07:00
QMK Bot
c2f68e3232 Merge remote-tracking branch 'origin/master' into develop 2022-07-28 13:13:39 +00:00
Ryan
920f983767 Move keyboard USB IDs and strings to data driven: H (#17821) 2022-07-28 14:12:40 +01:00
Stefan Kerkmann
157ea96411 ChibiOS: use correct status codes in i2c_master.c (#17808)
msg_t is MSG_OK in the success case and either MSG_RESET or MSG_TIMEOUT
in case of errors. So actually use them in the comparison.
2022-07-28 02:02:10 +01:00
QMK Bot
476d709fa5 Merge remote-tracking branch 'origin/master' into develop 2022-07-28 00:57:13 +00:00
Less/Rikki
e7affd0541 feat: encoder map, OLED & encoder kb-level config (#17809) 2022-07-28 01:56:37 +01:00
QMK Bot
b029252e76 Merge remote-tracking branch 'origin/master' into develop 2022-07-27 23:52:09 +00:00
Arthur
1e745c48b6 [Keymap] Add artflag kyria layout (#17778)
* Initial firmware

* feedback

* updates

* update map
2022-07-27 16:51:13 -07:00
QMK Bot
7bb73306d6 Merge remote-tracking branch 'origin/master' into develop 2022-07-27 21:44:42 +00:00
Ryan
23f365b601 Move keyboard USB IDs and strings to data driven: F (#17816) 2022-07-27 22:44:05 +01:00
QMK Bot
5055c9a74b Merge remote-tracking branch 'origin/master' into develop 2022-07-27 21:12:28 +00:00
Kevin Zhao
6731712cc1 Fix SKErgo Keymap (#17812) 2022-07-27 22:10:57 +01:00
QMK Bot
ed5351d75e Merge remote-tracking branch 'origin/master' into develop 2022-07-27 19:19:51 +00:00
Ryan
4a0eb733ac Move keyboard USB IDs and strings to data driven: G (#17818) 2022-07-27 20:19:09 +01:00
QMK Bot
602fde61e2 Merge remote-tracking branch 'origin/master' into develop 2022-07-27 16:29:08 +00:00
turbololvo
c788857b6b fix function layer to reflect cap labels (#17813)
These changes correctly reflect the keycap labels on the Vortex Race 3.
2022-07-27 17:27:39 +01:00
QMK Bot
df15caf407 Merge remote-tracking branch 'origin/master' into develop 2022-07-27 15:02:29 +00:00
James Young
0f40e5d0dc Wuque Promise87 ANSI Refactor (#17807) 2022-07-27 08:01:37 -07:00
Drashna Jael're
3d98269652 Merge remote-tracking branch 'origin/master' into develop 2022-07-27 07:40:30 -07:00
Drashna Jaelre
8973835183 [Docs] Add information about WeAct Blackpill F411 (#16755)
* [Docs] Add information about WeAct Blackpill F411

* Add clarification for matrix pins

* Update documentation

* Tweak wording
2022-07-27 14:49:12 +01:00
QMK Bot
00c1653a15 Merge remote-tracking branch 'origin/master' into develop 2022-07-27 09:29:50 +00:00
Albert Y
3285659690 CLI compatibility for MacOS (#17811) 2022-07-27 10:29:10 +01:00
Stefan Kerkmann
59d940c9f3 ChibiOS-Contrib: Update for RP2040 PWM and I2C driver (#17817) 2022-07-27 10:06:18 +02:00
QMK Bot
5df7cfdeb4 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 20:48:59 +00:00
Danny
dc48b3fd04 [Keyboard] Fix typo with RGB LED positioning in Iris (#17805) 2022-07-26 13:48:07 -07:00
QMK Bot
ff5848992c Merge remote-tracking branch 'origin/master' into develop 2022-07-26 20:25:59 +00:00
Less/Rikki
fc9654a1d0 feat: encoder map, OLED & encoder kb-level config (#17767) 2022-07-26 21:25:23 +01:00
QMK Bot
53ca6338c7 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 19:51:21 +00:00
Drashna Jaelre
5f36285fc5 [Keyboard] Add work louder micro (#17586)
* [Keyboard] Add work louder micro

* Update keyboards/work_louder/micro/readme.md

* Update readme

* Update kb config files

* Update to use encoder map

Co-authored-by: Tom Barnes <barnestom@me.com>
2022-07-26 20:50:45 +01:00
QMK Bot
e0e1f0af92 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 19:44:06 +00:00
Scott Bennett
9dbc0473ef Dz65v2 Settings for SBennett13 (#17747)
* Start of dz65v2 map for sbennett13

* No wpm, disable some rgb, ~copyright~

* No more raindrops

* Remove more rgb modes and set default

* Almost orgot this crappy thing

* cannot define startup :(

* Layered esc is kc_grv

* Start of dz65v2 map for sbennett13

* No wpm, disable some rgb, ~copyright~

* No more raindrops

* Remove more rgb modes and set default

* Almost orgot this crappy thing

* cannot define startup :(

* Layered esc is kc_grv

* Add license to config and keymap
2022-07-26 20:43:26 +01:00
Stefan Kerkmann
083b42068a Chibios: Stop I2C peripheral on transaction error (#17798)
From the ChibiOS HAL I2C driver pages:

After a timeout the driver must be stopped and restarted because the bus is in
an uncertain state.

This commit does that stopping explicitly on any error that occurred, not only
timeouts. As all the i2c functions restart the peripheral if necessary it is
safe to do so.

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

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-07-26 21:40:14 +02:00
QMK Bot
2899e69ead Merge remote-tracking branch 'origin/master' into develop 2022-07-26 19:15:45 +00:00
Spaceman
d4bb5a9820 Add alternative Logos (#17787) 2022-07-26 20:15:08 +01:00
Daniel Kao
b8b2e99976 Constrain Cirque Pinnacle coordinates (#17803)
Static x & y should be the same type as touchData.xValue &
touchData.yValue: uint16_t.
Their delta could be larger than int8_t and should be constrained to
mouse_xy_report_t.
2022-07-26 19:35:41 +01:00
Joel Challis
c982d6c5e3 Avoid OOB in dynamic_keymap_reset (#17695) 2022-07-26 17:38:28 +01:00
QMK Bot
61da9286a1 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 16:38:06 +00:00
QMK Bot
0534b878c3 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 16:37:29 +00:00
Nick Brassel
d1434b6d75 Make qmk doctor print out the last log entry for upstream/{master,develop}, including dates (#17713) 2022-07-26 17:37:28 +01:00
Wilba
501276a8fd Added WT65-D (#17724) 2022-07-26 17:36:30 +01:00
QMK Bot
1cf68476cc Merge remote-tracking branch 'origin/master' into develop 2022-07-26 08:00:23 +00:00
Álvaro A. Volpato
b0b14cc440 [Keyboard] Acheron Athena support (#16818)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-26 00:59:38 -07:00
Drashna Jaelre
5d898a3d34 [Docs] Updates to Pointing Device Docs (#17777) 2022-07-26 00:27:34 -07:00
Charly Delay
244450625a bastardkb: fix info.json changes that got reverted during the last merge from master to develop (#17800)
* bastardkb: fix info.json changes that got reverted during the last merge from `master` to `develop`

* Remove board name from root folder `info.json`
2022-07-26 07:41:24 +01:00
QMK Bot
9f5b71bada Merge remote-tracking branch 'origin/master' into develop 2022-07-26 06:27:00 +00:00
Olly Hayes
77e48f5b7e [Keymap] Add ollyhayes keymap (#16632) 2022-07-25 23:26:22 -07:00
QMK Bot
9825b66cac Merge remote-tracking branch 'origin/master' into develop 2022-07-26 06:26:00 +00:00
Leo Deng
ddae04bca1 [Keyboard] add DJam keyboard (#17430)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-25 23:25:28 -07:00
Daniel Kao
1de6811ebe Cirque circular scroll: Support POINTING_DEVICE_COMBINED (#17654) 2022-07-25 23:19:33 -07:00
QMK Bot
2456044d5f Merge remote-tracking branch 'origin/master' into develop 2022-07-26 05:36:55 +00:00
shamit05
91d911eb1f [Keyboard] Add Halokeys Elemental 75 (#17323)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-25 22:36:11 -07:00
QMK Bot
9f976b89d8 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 05:31:41 +00:00
Cipulot
ba1643af7d [Keyboard] Add Kawayo Keyboard (#17454)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-25 22:30:59 -07:00
QMK Bot
11c9a5e3ac Merge remote-tracking branch 'origin/master' into develop 2022-07-26 05:24:46 +00:00
hornslyn
a33dc8ebb5 [Keyboard] Add Star75 support (#17421)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-25 22:24:04 -07:00
Albert Y
70d554420c [Keyboard] Add RP2040 config defaults for ferris/sweep and cradio (#17557) 2022-07-25 22:22:42 -07:00
QMK Bot
f004d93bad Merge remote-tracking branch 'origin/master' into develop 2022-07-26 05:21:11 +00:00
James Young
753ca0e13c takashicompany miniZone: fix QMK Configurator implementation (#17801) 2022-07-25 22:20:36 -07:00
QMK Bot
4bd4210e97 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 05:02:37 +00:00
Daniel O'Brien
3eb9f28c89 [Keyboard] Add missing mute button to sofle keymap (#17796) 2022-07-25 22:02:02 -07:00
QMK Bot
f0300fc763 Merge remote-tracking branch 'origin/master' into develop 2022-07-26 05:00:11 +00:00
Diogo Sergio
e6a7db2fd2 Update README.md for teensy lc onekey (#17797) 2022-07-25 21:59:37 -07:00
QMK Bot
d556c4233e Merge remote-tracking branch 'origin/master' into develop 2022-07-26 04:01:41 +00:00
Ryan
5ed98df374 gboards/georgi: cleanup & fix (#17753) 2022-07-26 14:01:05 +10:00
Drashna Jaelre
928bbded6d [Keyboard] Fix compilation issues for Charybdis/Dilemma (#17791)
* [Keyboard] Fix debug printing for Charybdis/Dilemma

* Fix compliation issue for dilemma
2022-07-26 02:40:14 +01:00
QMK Bot
77ed0feebe Merge remote-tracking branch 'origin/master' into develop 2022-07-26 00:53:04 +00:00
Ryan
674422eb13 Move keyboard USB IDs and strings to data driven: A (#17781) 2022-07-26 01:52:18 +01:00
QMK Bot
1e651dbdb0 Merge remote-tracking branch 'origin/master' into develop 2022-07-25 23:04:48 +00:00
Ryan
a939293aca Move keyboard USB IDs and strings to data driven: C (#17789) 2022-07-26 00:04:09 +01:00
QMK Bot
4baed8037d Merge remote-tracking branch 'origin/master' into develop 2022-07-25 22:56:05 +00:00
James Young
b6ac0ecf82 Runes Skjöldr Touch-Up (#17792)
* skjoldr.h: use ___ for KC_NO

* skjoldr.h: use K<row><column> notation

Matrix was previously defined using identifiers in the format of K<column><row>.

* skjoldr.h: add matrix diagram

* info.json: apply friendly formatting

- key legends as labels
- correct key sizes and positioning

* refactor keymaps

Refactors the `default` and `via` keymaps.

- use QMK-native keycode aliases
- grid-align keycodes for readability

* rename LAYOUT macro to LAYOUT_60_ansi_arrow

* enable Community Layout support

* info.json: correct maintainer value

Field is meant to reference the maintainer's GitHub username.
2022-07-25 23:55:26 +01:00
QMK Bot
4837bc50c4 Merge remote-tracking branch 'origin/master' into develop 2022-07-25 22:08:08 +00:00
Drashna Jaelre
68cc6be564 [Keyboard] Fix Charue Sunsetter_r2 compilation issues (#17793) 2022-07-25 23:07:32 +01:00
Drashna Jaelre
683eeca2e2 [Docs] Fix custom debug function and sample output (#17790) 2022-07-25 23:07:15 +01:00
Drashna Jaelre
325da02e57 Fix QK_MAKE's reboot check (#17795) 2022-07-25 23:06:26 +01:00
Drashna Jael're
99c48f1361 Merge remote-tracking branch 'origin/master' into develop 2022-07-25 10:15:47 -07:00
ILWrites
1df6322f10 Fixed spacebar position (#17784) 2022-07-25 17:21:09 +01:00
Ryan
50c2b151b2 Move keyboard USB IDs and strings to data driven: B (#17782) 2022-07-25 16:20:19 +01:00
QMK Bot
7d2260ab75 Merge remote-tracking branch 'origin/master' into develop 2022-07-25 14:59:45 +00:00
James Young
d2161f113b MechWild Mokulua: Correct QMK Configurator Data (#17783)
* Mokulua Mirrored: rebuild info.json file

* Mokulua Standard: rebuild info.json file
2022-07-25 15:58:58 +01:00
Charly Delay
50a12c06b9 [keyboard] bastardkb: restructure folder hierarchy (#16778)
* bastardkb: restructure folder hierarchy ahead of supporting other adapters/mcus

Upcoming support for the following (adapter, mcu) pairs will be
submitted in follow-up PRs:

- `v2/elitec`
- `v2/stemcell`
- `blackpill`

This PR contains the following changes:

- Move previous implementation to an inner `v1/elitec` folder
- Move keyboard USB IDs and strings to data driven
- Update headers to update maintainers list
- Run `qmk format-c`

* bastardkb/charybdis: remove broken acceleration implementation

* bastardkb/charybdis: fix debug output

* bastardkb: add support for BastardKb the `v2/elitec` (adapter, mcu) pair

* bastardkb: add Blackpill support

* bastardkb/charybdis/3x5: add `bstiq` keymap

* bastardkb/charybdis: add fake LEDs to the configuration

For the Charybdis 3x5 (respectively 4x6), the LED config now simulates
36 (respectively 58) LEDs instead of the actual 35 (respectively 56) to
prevent confusion when testing LEDs during assembly when handedness is
not set correctly.  Those fake LEDs are bound to the physical
bottom-left corner.

* bastardkbk/charybdis/readme.md: update build commands

Merge pull request #5 from Nathancooke7/update_charybdis_readme_v2_shield.

* bastardkb/charybdis: fix Via keymap with blackpill

* bastardkb/charybdis: add 3x6 configuration

* bastardkb/charybdis: remove unnecessary files

* bastardkb/charybdis: remove obsolete code

* bastardkb/charybdis/3x6: add Via keymap

* bastardkb: add support for Splinky (RP2040) board

* bastardkb: initial configuration for the Splinky (SPI not working yet)

* bastardkb/charybdis/3x5/v2/splinky: tentative change to enable trackball

* bastardkb/charybdis/3x5/v2/splinky: fix SCK, MISO, MOSI pins

* bastardkb/charybdis/3x5/v2/splinky: fix SCK, MISO, MOSI pins

* bastardkb/charybdis/4x6/v2/splinky: add SPI configuration and enable trackball

* bastardkb/charybdis/3x6: add splinky config

* bastardkb/*/v2/splinky: update drivers to `vendor`

* bastardkb/dilemma: add new board

* bastardkb/charybdis: fix infinite loop in `layer_state_set_user(…)` in the `via` keymaps

* bastardkb/dilemma: add `bstiq` keymap

* bastardkb: specify blackpill boards

* bastardkb/charybdis: fix blackpill-specific define syntax

* bastardkb: remove `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION` which are no longer valid options

* bastardkb: fix `QK_BOOT` keycodes

* bastardkb/dilemma: fix mouse direction on X axis

* bastardkb/charybdis/3x6: adjust CS

* bastardkb/dilemma: adjust trackpad configuration

* charybdis: fix `PWM33XX_CS_PIN` defines

This is a follow-up of https://github.com/qmk/qmk_firmware/pull/17613.

* bastardkb: remove Vial mentions from `bstiq` keymaps

* Cleanup unnecessary comments

Co-authored-by: Nathan <nathan.cooke@compass.com>
Co-authored-by: Charly Delay <0xcharly@codesink.dev>
2022-07-25 10:11:28 +01:00
QMK Bot
336df3297e Merge remote-tracking branch 'origin/master' into develop 2022-07-24 23:01:36 +00:00
Drashna Jaelre
c0763363db [Docs] Fix tables in Audio driver document (#17780) 2022-07-25 00:00:51 +01:00
QMK Bot
d5e619f472 Merge remote-tracking branch 'origin/master' into develop 2022-07-24 16:12:13 +00:00
James Young
00c02e3bd8 FJLabs Sinanju Refactor (#17773)
* sinanju.h: add matrix diagram

* add LAYOUT_60_ansi_wkl_split_bs_rshift macro

Same matrix as `LAYOUT_all`, but with position K2D (right half of split Backspace) moved to the end of the top row.

* refactor keymaps

- use `LAYOUT_60_ansi_wkl_split_bs_rshift` macro instead of `LAYOUT_all`
- polish four-space indent
- update grid alignment
- replace `RESET` keycode with `QK_BOOT`

* remove now-unused LAYOUT_all macro

* add LAYOUT_60_ansi_wkl macro with keymap

Add a layout with 2u Backspace and 2.75u right Shift.

* info.json: correct maintainer value
2022-07-24 17:11:28 +01:00
QMK Bot
c1783ff35d Merge remote-tracking branch 'origin/master' into develop 2022-07-24 16:07:21 +00:00
James Young
5f172b63f5 Chocofly v1: add info.json (#17772) 2022-07-24 17:06:30 +01:00
QMK Bot
62cd280c3b Merge remote-tracking branch 'origin/master' into develop 2022-07-24 12:40:43 +00:00
James Young
191f6e8069 Idobao ID63 Community Layout support (#17769)
* info.json: add key labels

* rename LAYOUT_63_ansi to LAYOUT_60_ansi_arrow

* enable community layout support
2022-07-24 05:39:53 -07:00
QMK Bot
f6612c219f Merge remote-tracking branch 'origin/master' into develop 2022-07-24 12:26:27 +00:00
James Young
049811be0d Add info.json files for Acheron Apollo series keyboards (#17770)
* add info.json file for Apollo87H

* add info.json file for Apollo87H-T-SC

* add info.json file for Apollo88H-T-SC
2022-07-24 05:25:46 -07:00
QMK Bot
7f938e969d Merge remote-tracking branch 'origin/master' into develop 2022-07-24 11:07:34 +00:00
James Young
592028c724 boardsource/beiwagon: correct QMK Configurator layout data (#17771) 2022-07-24 21:06:55 +10:00
QMK Bot
914861b07c Merge remote-tracking branch 'origin/master' into develop 2022-07-24 05:10:28 +00:00
4pplet
58d484ea28 Waffling80 layout fix (#17757) 2022-07-24 06:09:40 +01:00
QMK Bot
db3d9f9935 Merge remote-tracking branch 'origin/master' into develop 2022-07-24 03:28:12 +00:00
James Young
962dcbf3a3 Creatkeebs Thera Refactor (#17766) 2022-07-23 20:27:38 -07:00
QMK Bot
3825362a3b Merge remote-tracking branch 'origin/master' into develop 2022-07-24 00:10:33 +00:00
Álvaro A. Volpato
98c1f7a9ef [Keyboard] Apollo87H PCB support (#16817)
* Initial Apollo87H support

* Define RGB animations and default animation

* Add proper per-key RGB support

* Adjust LED positions

* Separate delta-gamma

* Fine-tune LED positions

* fix up GAMMA revision

* fix up tabs indentation to spaces indentation

* Fixed positioning and CS-SW defs for some LEDs

* Fix INS RGB position

* Fine-tune LED positions, fix default RGB

* Update readme's

* Rename LAYOUT_87H to lowercase 87h

* Formatting gamma's rules.mk

* Formatting delta's rules.mk

* Use smaller readme image

* Use smaller README image

* First support for 87H-T-SC and 88H-T-SC

* Update README

* Fix layout naming

* Remove

* Remove EEPROM definitions, fix missing RGB LED mod/alpha definer

* Add suggestions from noroadsleft
2022-07-23 17:09:52 -07:00
QMK Bot
f383f7d6e5 Merge remote-tracking branch 'origin/master' into develop 2022-07-24 00:04:24 +00:00
TJ
c3df1775bc [Keyboard] Le Chiffre rev 2 and HE additions (#17377)
* chiffre refactor for new revisions

* updated led matrix config

* updated per suggestions

* add tapdance enable

* revert tapdance (none defined in the default keymaps)

* clean up rules

* add readme for HE

* remove notes in readme

* fix perm

* fix perms

* Fix spacing on readme

* fix perm

* fix perms again?
2022-07-23 17:03:41 -07:00
QMK Bot
302fa11d1f Merge remote-tracking branch 'origin/master' into develop 2022-07-23 20:23:43 +00:00
4pplet
f1ccd60458 [Keyboard] 4pplet Perk60 (#16853)
* adding perk60 iso

adding perk60 iso

* Update info.json

* Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c

* Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c

* Delete chconf.h

* Update keyboards/4pplet/perk60_iso/rev_a/rules.mk

* Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c

* Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c

* Update rules.mk

* Update config.h

* removing a few RGB effects

* removing more effects

* Update keyboards/4pplet/perk60_iso/rev_a/config.h

* Update keyboards/4pplet/perk60_iso/keymaps/default/keymap.c

* Update keyboards/4pplet/perk60_iso/keymaps/default/keymap.c

* Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c

* Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c

* Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c

* Update keyboards/4pplet/perk60_iso/rev_a/rev_a.h

* Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c

* Update keyboards/4pplet/perk60_iso/info.json

* Update keyboards/4pplet/perk60_iso/rev_a/rules.mk
2022-07-23 13:23:14 -07:00
JayceFayne
d02cefe613 implement tap_code16_delay (#17748) 2022-07-23 19:21:20 +01:00
jack
a6f3194397 Add ability to enter bootloader mode from QK_MAKE (#17745) 2022-07-23 17:43:32 +01:00
QMK Bot
8254d73fd4 Merge remote-tracking branch 'origin/master' into develop 2022-07-23 16:42:55 +00:00
Niko Wenselowski
1f42a8ccdd Fix test logic to check for both keymaps (#17761)
Python will evaluate first the left and then the right side of the and operator.

The left side would previously return True based on the truthiness logic that treats any non-emptry string as true.

It would not check if the desired keymap exists.

If the left side is true it will evaluate the right side which will check for the existance of a specific keymap.

With this change the check for existance of two keymaps is implemented.
2022-07-23 17:42:19 +01:00
lalalademaxiya1
5a3a7beb27 Update config.h 2022-07-21 15:02:18 +08:00
lalalademaxiya1
df3331ce51 Update v5 2022-07-21 12:14:54 +08:00
lalalademaxiya1
6ad220e31c Update q3... 2022-07-20 18:01:59 +08:00
lalalademaxiya1
f87bca8f68 Update v1 for keychron 2022-07-20 15:34:30 +08:00
lalalademaxiya1
6412c16106 Update v6 2022-07-19 15:51:39 +08:00
lalalademaxiya1
753fd94096 Update v5 and test.c, q2.c 2022-07-19 15:22:31 +08:00
lalalademaxiya1
af46cdf377 Update q1.c for keychron q1 2022-07-19 12:15:26 +08:00
lalalademaxiya1
e4a022ac19 Update q5 2022-07-19 11:54:44 +08:00
lalalademaxiya1
5afd315f44 Update keymap.c 2022-07-18 17:26:56 +08:00
lalalademaxiya1
fa92192c1a Merge branch 'develop' into playground 2022-07-18 16:30:44 +08:00
lalalademaxiya1
2a26bc0c29 Update q3 and q6 2022-07-18 16:29:22 +08:00
lalalademaxiya1
1d0320145e Update q65 and q10 2022-07-16 14:33:51 +08:00
lalalademaxiya1
6bb4611199 Minor modifications 2022-07-14 17:34:22 +08:00
lalalademaxiya1
7afdf42dd0 Update common_features.mk 2022-07-14 12:25:00 +08:00
lalalademaxiya1
efcd6e0f37 Update wear_leveling_efl.c 2022-07-14 12:22:26 +08:00
lalalademaxiya1
83266926d2 Update v6 for keychron 2022-07-14 11:17:15 +08:00
lalalademaxiya1
73b43dc068 Update q2 2022-07-12 18:27:03 +08:00
lalalademaxiya1
57c561c7d8 Merge qmk/develop into playground 2022-07-12 16:29:17 +08:00
lalalademaxiya1
29af921cee Update q1 and change nkro toggle key 2022-07-12 16:18:28 +08:00
lalalademaxiya1
d1ce8f74a8 Merge 2022-07-11 23:33:15 +08:00
lalalademaxiya1
044619fc3d Merge branch 'playground' of https://github.com/lalalademaxiya1/qmk_firmware into playground 2022-07-10 08:01:03 -07:00
lalalademaxiya1
bf8d94b4b4 Update v5 and v6 for keychron 2022-07-10 22:54:50 +08:00
lalalademaxiya1
ebeec675fd Merge pull request #26 from ibootstrapper/playground
Added left hand gamer layer, added caps lock
2022-07-08 04:23:45 -07:00
lalalademaxiya1
51925bf6bf Merge pull request #48 from lalalademaxiya1/playground
Update q2 for keychron
2022-07-08 04:05:20 -07:00
lalalademaxiya1
9959b6c903 Update q2 for keychron
- Cancel forcing keyboard into NKRO state when plug
- Improve capslcok incicating
2022-07-08 04:01:57 -07:00
lokher
0a2c795a06 Correct MCU to STM32L432 in config.h 2022-07-07 21:29:12 +08:00
lalalademaxiya1
ac51258505 Merge pull request #47 from lalalademaxiya1/playground
Update q1 for keychron
2022-07-07 03:32:08 -07:00
lalalademaxiya1
3db3754abb Update q1 for keychron
- Improved capslock indicate and it will keep on when the system is in capslock state whenever the state of backlights are open or off.
2022-07-07 18:28:11 +08:00
lalalademaxiya1
770ad2a0cb Merge pull request #46 from lalalademaxiya1/playground
Add eeprom_stm32_l4.h
2022-07-06 23:45:47 -07:00
lalalademaxiya1
b066af9656 Add eeprom_stm32_l4.h 2022-07-07 14:44:00 +08:00
lalalademaxiya1
afcd4f9f1e Merge pull request #45 from lalalademaxiya1/playground
Playground
2022-07-06 23:27:20 -07:00
lalalademaxiya1
57a50169b6 Update command.c 2022-07-07 14:20:07 +08:00
lalalademaxiya1
26af2efb5d Merge branch 'playground' of https://github.com/lalalademaxiya1/qmk_firmware into playground 2022-07-07 14:08:57 +08:00
lalalademaxiya1
765c219388 Update q1 for keychron 2022-07-07 12:33:22 +08:00
lalalademaxiya1
537c1c0661 Merge branch 'Keychron:playground' into playground 2022-06-30 11:55:40 +08:00
lalalademaxiya1
c9d1e74f6d Update via2json.py 2022-06-30 11:44:42 +08:00
lalalademaxiya1
eb3e14c61b Updare platforms/chibios 2022-06-30 11:39:38 +08:00
lalalademaxiya1
5589c8f8bb Update quantum_keycodes_legacy.h 2022-06-30 11:32:05 +08:00
lalalademaxiya1
7185ed3cc8 Add docker_cmd.sh 2022-06-30 11:27:06 +08:00
lalalademaxiya1
f88ff97ac6 Update users 2022-06-30 11:20:08 +08:00
lalalademaxiya1
2977aa9d2d Update keyboards 2022-06-30 11:14:58 +08:00
lalalademaxiya1
1fa631eda5 Update docs 2022-06-30 11:06:33 +08:00
lalalademaxiya1
5a72cbf887 Add .vscode 2022-06-30 11:01:55 +08:00
lalalademaxiya1
524515f76f Merge branch 'Keychron:playground' into playground 2022-06-30 10:25:14 +08:00
lalalademaxiya1
9ab79d6418 Merge branch 'playground_new' into playground
Update playground with the latest features from branch develop in qmk
2022-06-30 10:09:59 +08:00
lalalademaxiya1
59d0c00ecb Merge remote-tracking branch 'upstream/develop' into playground_new
Add new features
2022-06-30 09:55:17 +08:00
lalalademaxiya1
e0a567e9d4 Update q5 2022-06-30 09:32:01 +08:00
lalalademaxiya1
6b35d3ac4b Merge pull request #43 from lalalademaxiya1/playground
Playground
2022-06-29 11:53:41 +08:00
lalalademaxiya1
4d6d545990 Merge branch 'playground' of https://github.com/lalalademaxiya1/qmk_firmware into playground 2022-06-29 11:39:28 +08:00
lalalademaxiya1
2688e7d16e Update common_features.mk 2022-06-29 11:37:25 +08:00
lalalademaxiya1
ad8298a965 Merge pull request #42 from lalalademaxiya1/playground
Playground
2022-06-29 09:26:27 +08:00
lalalademaxiya1
71687629a0 Override function restart_usb_driver 2022-06-29 09:17:21 +08:00
lalalademaxiya1
897759491f Update ckled2001.c 2022-06-28 23:55:37 +08:00
lalalademaxiya1
aae4f196d4 Resolve conflicting files 2022-06-28 23:51:51 +08:00
lalalademaxiya1
4753be86b9 Update q3 2022-06-28 21:51:07 +08:00
lalalademaxiya1
ea518140dc Merge pull request #41 from lalalademaxiya1/playground
Update eeprom_stm32_l4.c
2022-06-27 11:12:03 +08:00
lalalademaxiya1
58aba271f3 Update eeprom_stm32_l4.c 2022-06-27 11:11:10 +08:00
lalalademaxiya1
03aa277537 Merge pull request #40 from lalalademaxiya1/playground
Playground
2022-06-27 11:09:30 +08:00
lalalademaxiya1
08095b3f3d Resolve conflicts for merge playground_new into playground 2022-06-27 10:33:05 +08:00
lalalademaxiya1
96d8e32d8d Update subproject commit 2022-06-27 09:24:24 +08:00
lalalademaxiya1
de608e6324 Update q0 and add q10, q65 2022-06-27 09:08:04 +08:00
Your Name
909b1ea96e Merge branch 'Keychron-playground' into playground 2022-06-25 03:34:50 -05:00
Your Name
e0277f678e merge 2022-06-25 03:34:31 -05:00
lalalademaxiya1
9a93b32edb Update q65 2022-06-22 21:33:07 +08:00
lalalademaxiya1
e974bf5994 Merge pull request #38 from lalalademaxiya1/playground_new
Playground new
2022-06-19 12:51:06 +08:00
lalalademaxiya1
75bd92341a Update file json of q6 2022-06-19 12:42:02 +08:00
lalalademaxiya1
71cd1993c9 Update v5 iso version 2022-06-19 12:11:00 +08:00
lalalademaxiya1
e6f02ba63b Update q6 iso version 2022-06-19 12:04:21 +08:00
lalalademaxiya1
efa69ee1e4 Delete v8 iso version 2022-06-19 11:40:28 +08:00
lalalademaxiya1
1f6ac8e844 Delete m1 2022-06-19 11:33:05 +08:00
lalalademaxiya1
fb4552b8fc Add keyboard q65 for keychron 2022-06-18 18:28:24 +08:00
lalalademaxiya1
f69d460cf4 Update s1 and v3 of keychron 2022-06-18 16:33:34 +08:00
lalalademaxiya1
47351e03b1 Update s1 of keychron 2022-06-18 13:23:31 +08:00
lalalademaxiya1
1ae99bc017 Update s1 2022-06-18 09:18:37 +08:00
lalalademaxiya1
ad67ffceec Update q0 and add custom hid command in via.c 2022-06-16 16:51:27 +08:00
lalalademaxiya1
80fc251925 Add keychron keyboards. 2022-06-15 19:47:31 +08:00
lalalademaxiya1
f80692c140 Add new features for keychron keyboards. 2022-06-15 13:33:14 +08:00
lalalademaxiya1
9a112e5b99 Merge pull request #37 from lalalademaxiya1/playground
update ./keyboards/keychron/q3/q3_ansi_stm32l432_ec11/rules.mk
2022-06-09 10:01:16 +08:00
lalalademaxiya1
ac271e09b9 update ./keyboards/keychron/q3/q3_ansi_stm32l432_ec11/rules.mk 2022-06-09 09:36:36 +08:00
lalalademaxiya1
e3df51da6e Merge pull request #34 from lalalademaxiya1/playground
Update knob version
2022-05-04 11:15:58 +08:00
lalalademaxiya1
76ee809f52 Update knob version 2022-05-04 11:07:32 +08:00
lalalademaxiya1
dbda307eed Merge pull request #33 from lalalademaxiya1/playground
Playground
2022-04-29 10:02:05 +08:00
lalalademaxiya1
e9cc4f0cc1 Add playground branch 2022-04-27 18:19:56 +08:00
bootstrapper
602cc4b47e fixed right layer color on boot 2022-04-14 03:54:53 -05:00
bootstrapper
b3bcf0bd57 Merge branch 'playground' of https://github.com/ibootstrapper/qmk_firmware into playground 2022-04-12 00:27:58 -05:00
bootstrapper
6a76bc7593 Added left hand gamer layer, added caps lock 2022-04-11 21:36:50 -05:00
bootstrapper
0376e34005 Added left hand gamer layer, added caps lock 2022-04-11 20:36:15 -05:00
lalalademaxiya1
1b7b6b41dd Update test.c 2022-04-07 19:57:09 +08:00
lalalademaxiya1
c183bcf1fb Update q7 2022-04-07 15:05:09 +08:00
lalalademaxiya1
d846155734 Update q4 2022-04-06 18:06:59 +08:00
lalalademaxiya1
8c5b31a68c Update q9 2022-04-06 15:34:46 +08:00
lalalademaxiya1
70eceff30c Update q2 2022-04-06 11:51:27 +08:00
lalalademaxiya1
8f8c6a0445 Update q3 2022-04-06 10:33:43 +08:00
lalalademaxiya1
0e0caa4aa7 Have some updates 2022-04-02 16:09:05 +08:00
lalalademaxiya1
5288d96248 Make some updates 2022-04-01 12:19:03 +08:00
lalalademaxiya1
32fadf61bf Update all keyboards 2022-03-23 17:38:40 +08:00
lalalademaxiya1
841e8370d7 q4 q8 q6 v1 2022-03-16 09:09:20 +08:00
lalalademaxiya1
fd1ad26cab q3 q5 2022-03-14 16:32:31 +08:00
lalalademaxiya1
f596ddaf5b q5 2022-03-14 09:48:39 +08:00
lalalademaxiya1
6998ab5158 Make some minor changes 2022-03-11 18:09:00 +08:00
lalalademaxiya1
e09420bf45 Add keyboard v2 2022-03-08 09:16:03 +08:00
lalalademaxiya1
6ce7f470e0 Rewrite test code 2022-03-07 15:07:15 +08:00
lalalademaxiya1
8bda07f6ff Update iso version of q7 2022-03-04 14:30:29 +08:00
lalalademaxiya1
c2fa4da7d9 Update some boards 2022-03-04 09:26:24 +08:00
lalalademaxiya1
c7fb4ba6a5 Update some code 2022-02-25 19:22:33 +08:00
lalalademaxiya1
3f8ad9b9ab Update q8 q9 2022-02-22 17:49:57 +08:00
lalalademaxiya1
70ba4b1293 Update q8. 2022-02-22 09:39:30 +08:00
lalalademaxiya1
01d6687fff Update q8 2022-02-21 15:34:16 +08:00
lalalademaxiya1
961a837042 Update q4. 2022-02-16 09:55:34 +08:00
lalalademaxiya1
42d505bcfd Merge pull request #18 from lalalademaxiya1/playground
Playground
2022-02-14 11:31:39 +08:00
lalalademaxiya1
405db97f59 Add key NKRO for q2. 2022-02-11 20:26:56 +08:00
lalalademaxiya1
3b63a3514c Update product image of q1/q2 in readme.md. 2022-02-11 17:13:05 +08:00
lalalademaxiya1
635abb3f71 Add key NKRO for q1. 2022-02-11 16:44:07 +08:00
lalalademaxiya1
2cc0d2b01f Add ISO variant of q4. 2022-02-10 18:36:34 +08:00
lalalademaxiya1
db7f677287 Add JIS variant for q1. 2022-02-10 09:35:16 +08:00
lalalademaxiya1
56e090fcd5 Merge pull request #17 from lalalademaxiya1/playground
Update matrix.c and slightly trim some code formats.
2022-02-09 11:11:16 +08:00
lalalademaxiya1
809dac5ebc Merge branch 'Keychron:playground' into playground 2022-02-09 11:02:22 +08:00
lalalademaxiya1
de7f3ab7c6 Keychron q2 QMK Configurator Refactor 2022-02-09 10:56:42 +08:00
lalalademaxiya1
dfa898807d Update matrix.c 2022-02-09 09:22:45 +08:00
lalalademaxiya1
06260b94c1 Merge pull request #16 from lalalademaxiya1/playground
Rearrange some layout macros...
2022-02-07 17:06:57 +08:00
lalalademaxiya1
5a3614f843 Rearrange some layout macros and fix key sequence errors for q1 series, that soft of business. 2022-02-07 16:58:12 +08:00
lalalademaxiya1
3164bc2f0a Merge pull request #15 from ghost/vr-q2-rgb-matrix
Adjusted Q2 RGB matrix to centre animations
2022-02-07 09:20:10 +08:00
lalalademaxiya1
044354a1dd Merge pull request #14 from ghost/vr-q2-caps-lock-led
Add Caps Lock LED to the Q2 boards
2022-02-07 09:19:12 +08:00
Vino Rodrigues
6d84790dd7 adjusted matrix for centred animations 2022-01-31 19:07:06 +11:00
Vino Rodrigues
ae43e23aff Merge branch 'vr-q2-caps-lock-led' of https://github.com/keychron-contrib/qmk_firmware into vr-q2-caps-lock-led 2022-01-31 14:18:42 +11:00
Vino Rodrigues
e50c2e6a13 add caps-lock LED code to Q2 boards 2022-01-31 14:17:53 +11:00
lalalademaxiya1
ca212da183 Merge pull request #13 from keychron-contrib/elmo-q2-fix-scan-matrix
Elmo's q2 fix for missing matrix.c file
2022-01-31 09:56:39 +08:00
lalalademaxiya1
b1bc9dcd74 Merge pull request #12 from keychron-contrib/vr-q1-iso-led-matrix
Align Q1 led matrix of the ISO revisions to be the same as the ANSI ones
2022-01-31 09:55:21 +08:00
lalalademaxiya1
b23f7f3d96 Merge pull request #11 from keychron-contrib/vr-q1-caps-lock-led-all
Added Caps-Lock LED to all other Q1 revs
2022-01-31 09:48:52 +08:00
Vino Rodrigues
eea970e4c5 add caps-lock LED code to Q2 boards 2022-01-31 10:58:44 +11:00
Vino Rodrigues
db54ea7c0e add custom matrix.c to q2 2022-01-31 08:18:36 +11:00
Vino Rodrigues
c832826202 redo of g_led_config variable for ISO boards 2022-01-30 16:14:41 +11:00
Vino Rodrigues
e76de5a572 pipe-backslash is a LED_FLAG_KEYLIGHT 2022-01-30 15:53:16 +11:00
Vino Rodrigues
00549a04d8 corrected bottom row matrix position alignment on ANSI boards 2022-01-30 13:37:38 +11:00
Vino Rodrigues
d4d08da553 added caps-lock led to all other revs 2022-01-30 12:51:10 +11:00
lalalademaxiya1
ca65b2c896 Merge pull request #8 from keychron-contrib/vr-revert-pr6
revert some of pr #6
2022-01-25 09:23:27 +08:00
Vino Rodrigues
e165f336ac revert some of #6 as the LED matrix does not work without all the LEDs assigned 2022-01-25 00:26:57 +11:00
lalalademaxiya1
1c9197facb Merge pull request #7 from lalalademaxiya1/playground
Delete unwanted comments.
2022-01-24 10:45:59 +08:00
lalalademaxiya1
d6621a81aa Delete unwanted comments. 2022-01-24 10:41:55 +08:00
lalalademaxiya1
8a9cd2966a Merge pull request #6 from keychron-contrib/vr-q1-fix-led-matrix
[Q1] pretty up RGB matrix code on ANSI boards
2022-01-24 09:53:59 +08:00
lalalademaxiya1
955488a679 Merge pull request #5 from keychron-contrib/vr-q1-add-caps-lock-light
[Q1] add caps lock indicator
2022-01-24 09:43:06 +08:00
Vino Rodrigues
51254f181e revert startup hue 2022-01-21 19:48:58 +11:00
Vino Rodrigues
33bfbef0dc moved CAPS_LOCK_LED_INDEX to per-board 2022-01-21 19:46:01 +11:00
Vino Rodrigues
0a69fce67e pretty up RGB matrix code on ANSI boards 2022-01-21 02:00:08 +11:00
Vino Rodrigues
db1e468850 add caps-lock indicator 2022-01-20 23:05:00 +11:00
lalalademaxiya1
059710a44b Merge pull request #4 from lalalademaxiya1/playground
Update config.h
2022-01-20 15:23:31 +08:00
lalalademaxiya1
daab54dcb9 Update config.h 2022-01-20 15:22:49 +08:00
lalalademaxiya1
1d45a038d5 Update mcuconf.h, halconf.h, chconf.h. 2022-01-20 15:02:27 +08:00
lalalademaxiya1
2ec82dd56b Update v4. 2022-01-20 11:42:00 +08:00
lalalademaxiya1
055f83519e Update v4. 2022-01-20 09:49:52 +08:00
lalalademaxiya1
a6273e40c2 Update q8. 2022-01-20 09:32:11 +08:00
lalalademaxiya1
789bfa0dbf Merge pull request #3 from lalalademaxiya1/playground
Update .gitignore
2022-01-19 16:01:25 +08:00
lalalademaxiya1
54a4ac468f Update .gitignore 2022-01-19 16:00:49 +08:00
lalalademaxiya1
b20e2e456e Update v1 and v4. 2022-01-19 15:59:29 +08:00
lalalademaxiya1
d1076291c5 Update q8. 2022-01-19 14:50:46 +08:00
lalalademaxiya1
bffb7be4bd Update q0. 2022-01-18 15:15:41 +08:00
lalalademaxiya1
2bc2758eff Update q9/q0. 2022-01-18 14:34:36 +08:00
lalalademaxiya1
95cb80bfa4 Update q9. 2022-01-18 12:24:55 +08:00
lalalademaxiya1
6442612e62 Update q9. 2022-01-18 11:53:21 +08:00
lalalademaxiya1
969f3ae0c3 Add q1 again. 2022-01-17 19:00:05 +08:00
lalalademaxiya1
beb8a29d54 Delete q1. 2022-01-17 18:59:26 +08:00
lalalademaxiya1
5b6f578a4a Add keyboard of q series for keychron. 2022-01-17 18:54:03 +08:00
lalalademaxiya1
29d64de4d1 Update q1. 2022-01-17 12:08:42 +08:00
lalalademaxiya1
79c3bf0a7c Update q1 and add mouse support. 2022-01-14 18:35:38 +08:00
lalalademaxiya1
7314f4bbd2 Update q1. 2022-01-14 14:54:50 +08:00
lalalademaxiya1
2b465c78bf Merge branch 'qmk:master' into playground 2022-01-13 10:01:18 +08:00
lalalademaxiya1
2dad42edae Add rev_0107 and flash support in stm32l433. 2022-01-12 18:56:15 +08:00
10686 changed files with 180070 additions and 51424 deletions

View File

@@ -7,6 +7,9 @@ on:
paths:
- 'keyboards/**'
- 'layouts/community/**'
- 'lib/python/**'
- 'data/**'
- '.github/workflows/api.yml'
workflow_dispatch:
jobs:

View File

@@ -27,7 +27,7 @@ jobs:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.39.0
uses: anothrNick/github-tag-action@1.45.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BUMP: 'patch'

View File

@@ -7,6 +7,9 @@ on:
paths:
- 'keyboards/**'
- 'layouts/community/**'
- 'lib/python/**'
- 'data/**'
- '.github/workflows/develop_api.yml'
workflow_dispatch:
jobs:

View File

@@ -17,6 +17,10 @@ jobs:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Disable automatic eol conversion
run: |
echo "* -text" > .git/info/attributes
- name: Checkout develop
run: |
git fetch origin master develop

View File

@@ -22,6 +22,10 @@ jobs:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Disable automatic eol conversion
run: |
echo "* -text" > .git/info/attributes
- name: Checkout branch
run: |
git fetch origin develop ${{ matrix.branch }}

View File

@@ -17,6 +17,10 @@ jobs:
with:
fetch-depth: 0
- name: Disable automatic eol conversion
run: |
echo "* -text" > .git/info/attributes
- name: Install dependencies
run: |
pip3 install -r requirements-dev.txt

View File

@@ -6,7 +6,8 @@
"files.exclude": {
"**/.build": true,
"**/*.hex": true,
"**/*.bin": true
"**/*.bin": true,
"**/*.uf2": true
},
"files.associations": {
"*.h": "c",
@@ -25,6 +26,6 @@
},
"python.formatting.provider": "yapf",
"[json]": {
"editor.formatOnSave": false
"editor.formatOnSave": false
}
}

View File

@@ -429,9 +429,15 @@ lib/%:
.PHONY: git-submodule
git-submodule:
[ -e lib/ugfx ] && rm -rf lib/ugfx || true
[ -e lib/pico-sdk ] && rm -rf lib/pico-sdk || true
[ -e lib/chibios-contrib/ext/mcux-sdk ] && rm -rf lib/chibios-contrib/ext/mcux-sdk || true
git submodule sync --recursive
git submodule update --init --recursive --progress
.PHONY: git-submodules
git-submodules: git-submodule
.PHONY: list-keyboards
list-keyboards:
util/list_keyboards.sh | sort -u | tr '\n' ' '

View File

@@ -1,222 +0,0 @@
# Copyright 2017 Jack Humbert
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# If it's possible that multiple bootloaders can be used for one project,
# you can leave this unset, and the correct size will be selected
# automatically.
#
# Sets the bootloader defined in the keyboard's/keymap's rules.mk
# Current options:
#
# AVR:
# halfkay PJRC Teensy
# caterina Pro Micro (Sparkfun/generic)
# atmel-dfu Atmel factory DFU
# lufa-dfu LUFA DFU
# qmk-dfu QMK DFU (LUFA + blinkenlight)
# qmk-hid QMK HID (LUFA + blinkenlight)
# 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
# apm32-dfu APM32 USB DFU in ROM
# 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
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE = 8192
endif
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
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE ?= 8192
endif
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
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE ?= 8192
endif
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
# Teensy 2.0
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 512
endif
# Teensy 2.0++
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 1024
endif
# Teensy LC, 3.0, 3.1/2, 3.5, 3.6
ifneq (,$(filter $(MCU_ORIG), MKL26Z64 MK20DX128 MK20DX256 MK64FX512 MK66FX1M0))
FIRMWARE_FORMAT = hex
endif
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
.INTERMEDIATE: lufa_warning
lufa_warning: $(FIRMWARE_FORMAT)
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
$(info LUFA MASS STORAGE Bootloader selected)
$(info DO NOT USE THIS BOOTLOADER IN NEW PROJECTS!)
$(info It is extremely prone to bricking, and is only included to support existing boards.)
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
endif
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
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
DFU_SUFFIX_ARGS ?= -v 0483 -p DF11
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
DFU_SUFFIX_ARGS ?= -v 314B -p 0106
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
DFU_SUFFIX_ARGS ?= -v 28E9 -p 0189
endif
ifeq ($(strip $(BOOTLOADER)), kiibohd)
OPT_DEFS += -DBOOTLOADER_KIIBOHD
BOOTLOADER_TYPE = kiibohd
ifeq ($(strip $(MCU_ORIG)), MK20DX128)
MCU_LDSCRIPT = MK20DX128BLDR4
endif
ifeq ($(strip $(MCU_ORIG)), MK20DX256)
MCU_LDSCRIPT = MK20DX256BLDR8
endif
# Options to pass to dfu-util when flashing
DFU_ARGS = -d 1C11:B007
DFU_SUFFIX_ARGS = -v 1C11 -p B007
endif
ifeq ($(strip $(BOOTLOADER)), stm32duino)
OPT_DEFS += -DBOOTLOADER_STM32DUINO
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
BOARD = STM32_F103_STM32DUINO
BOOTLOADER_TYPE = stm32duino
# Options to pass to dfu-util when flashing
DFU_ARGS = -d 1EAF:0003 -a 2 -R
DFU_SUFFIX_ARGS = -v 1EAF -p 0003
endif
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
OPT_DEFS += -DBOOTLOADER_TINYUF2
BOOTLOADER_TYPE = tinyuf2
endif
ifeq ($(strip $(BOOTLOADER)), rp2040)
OPT_DEFS += -DBOOTLOADER_RP2040
BOOTLOADER_TYPE = rp2040
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)), wb32-dfu)
OPT_DEFS += -DBOOTLOADER_WB32_DFU
BOOTLOADER_TYPE = wb32_dfu
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

@@ -428,7 +428,6 @@ include $(BUILDDEFS_PATH)/common_features.mk
include $(BUILDDEFS_PATH)/generic_features.mk
include $(TMK_PATH)/protocol.mk
include $(PLATFORM_PATH)/common.mk
include $(BUILDDEFS_PATH)/bootloader.mk
SRC += $(patsubst %.c,%.clib,$(LIB_SRC))
SRC += $(patsubst %.c,%.clib,$(QUANTUM_LIB_SRC))
@@ -443,6 +442,7 @@ ifneq ($(REQUIRE_PLATFORM_KEY),)
endif
endif
-include $(PLATFORM_PATH)/$(PLATFORM_KEY)/bootloader.mk
include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk
-include $(PLATFORM_PATH)/$(PLATFORM_KEY)/flash.mk

View File

@@ -222,10 +222,16 @@ else
# True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else ifneq ($(filter $(MCU_SERIES),STM32L4xx),)
# Emulated EEPROM
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += eeprom_driver.c eeprom_stm32_l4.c flash_stm32.c
else ifneq ($(filter $(MCU_SERIES),RP2040),)
# Wear-leveling EEPROM implementation, backed by RP2040 flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
# Wear-leveling EEPROM implementation, backed by RP2040 flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER = rp2040_flash
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations
@@ -332,7 +338,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
LED_MATRIX_ENABLE ?= no
VALID_LED_MATRIX_TYPES := IS31FL3731 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A custom
VALID_LED_MATRIX_TYPES := IS31FL3731 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A CKLED2001 custom
# TODO: IS31FL3733 IS31FL3737 IS31FL3741
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
@@ -388,6 +394,13 @@ endif
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), CKLED2001)
OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += ckled2001-simple.c
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
RGB_MATRIX_ENABLE ?= no
@@ -766,8 +779,10 @@ endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
OPT_DEFS += -DUNICODE_COMMON_ENABLE
COMMON_VPATH += $(QUANTUM_DIR)/unicode
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c \
$(QUANTUM_DIR)/utf8.c
$(QUANTUM_DIR)/unicode/unicode.c \
$(QUANTUM_DIR)/unicode/utf8.c
endif
MAGIC_ENABLE ?= yes
@@ -798,31 +813,25 @@ ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes)
OPT_DEFS += -DMOUSE_ENABLE
endif
ifeq ($(strip $(PS2_USE_BUSYWAIT)), yes)
PS2_ENABLE := yes
SRC += ps2_busywait.c
SRC += ps2_io.c
OPT_DEFS += -DPS2_USE_BUSYWAIT
endif
ifeq ($(strip $(PS2_USE_INT)), yes)
PS2_ENABLE := yes
SRC += ps2_interrupt.c
SRC += ps2_io.c
OPT_DEFS += -DPS2_USE_INT
endif
ifeq ($(strip $(PS2_USE_USART)), yes)
PS2_ENABLE := yes
SRC += ps2_usart.c
SRC += ps2_io.c
OPT_DEFS += -DPS2_USE_USART
endif
VALID_PS2_DRIVER_TYPES := busywait interrupt usart vendor
PS2_DRIVER ?= busywait
ifeq ($(strip $(PS2_ENABLE)), yes)
ifeq ($(filter $(PS2_DRIVER),$(VALID_PS2_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid PS2_DRIVER,PS2_DRIVER="$(PS2_DRIVER)" is not a valid PS/2 driver)
endif
OPT_DEFS += -DPS2_DRIVER_$(strip $(shell echo $(PS2_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/ps2
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/ps2
OPT_DEFS += -DPS2_ENABLE
ifneq ($(strip $(PS2_DRIVER)), vendor)
SRC += ps2_io.c
endif
SRC += ps2_$(strip $(PS2_DRIVER)).c
endif
JOYSTICK_ENABLE ?= no
@@ -881,15 +890,23 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
SRC += outputselect.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), BluefruitLE)
OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE
SRC += analog.c
OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
QUANTUM_LIB_SRC += analog.c
QUANTUM_LIB_SRC += spi_master.c
endif
ifeq ($(strip $(BLUETOOTH_DRIVER)), RN42)
OPT_DEFS += -DBLUETOOTH_RN42
OPT_DEFS += -DBLUETOOTH_RN42 -DHAL_USE_SERIAL=TRUE
SRC += $(DRIVER_PATH)/bluetooth/rn42.c
QUANTUM_LIB_SRC += uart.c
endif
endif
ifeq ($(strip $(ENCODER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/encoder.c
OPT_DEFS += -DENCODER_ENABLE
ifeq ($(strip $(ENCODER_MAP_ENABLE)), yes)
OPT_DEFS += -DENCODER_MAP_ENABLE
endif
endif

View File

@@ -371,6 +371,7 @@ show_path:
dump_vars: ERROR_IF_EMPTY=""
dump_vars: ERROR_IF_NONBOOL=""
dump_vars: ERROR_IF_UNSET=""
dump_vars: CATASTROPHIC_ERROR=""
dump_vars:
@$(foreach V,$(sort $(.VARIABLES)),$(if $(filter-out environment% default automatic,$(origin $V)),$(info $V=$($V))))

View File

@@ -25,8 +25,6 @@ GENERIC_FEATURES = \
DIP_SWITCH \
DYNAMIC_KEYMAP \
DYNAMIC_MACRO \
ENCODER \
ENCODER_MAP \
GRAVE_ESC \
HAPTIC \
KEY_LOCK \

View File

@@ -348,7 +348,8 @@ ifneq ($(findstring STM32F401, $(MCU)),)
# or <keyboard_dir>/ld/
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
MCU_LDSCRIPT ?= STM32F401xC_tinyuf2
FIRMWARE_FORMAT ?= uf2
EEPROM_DRIVER ?= wear_leveling
WEAR_LEVELING_DRIVER ?= legacy
else
MCU_LDSCRIPT ?= STM32F401xC
endif
@@ -359,7 +360,7 @@ ifneq ($(findstring STM32F401, $(MCU)),)
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= BLACKPILL_STM32_F401
BOARD ?= GENERIC_STM32_F401XC
USE_FPU ?= yes
@@ -464,7 +465,8 @@ ifneq ($(findstring STM32F411, $(MCU)),)
# or <keyboard_dir>/ld/
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
MCU_LDSCRIPT ?= STM32F411xE_tinyuf2
FIRMWARE_FORMAT ?= uf2
EEPROM_DRIVER ?= wear_leveling
WEAR_LEVELING_DRIVER ?= legacy
else
MCU_LDSCRIPT ?= STM32F411xE
endif
@@ -475,7 +477,7 @@ ifneq ($(findstring STM32F411, $(MCU)),)
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= BLACKPILL_STM32_F411
BOARD ?= GENERIC_STM32_F411XE
USE_FPU ?= yes

View File

@@ -66,7 +66,9 @@ OTHER_OPTION_NAMES = \
KEYLOGGER_ENABLE \
LCD_BACKLIGHT_ENABLE \
MACROS_ENABLED \
PS2_ENABLE \
PS2_MOUSE_ENABLE \
PS2_DRIVER \
RAW_ENABLE \
SWAP_HANDS_ENABLE \
RING_BUFFERED_6KRO_REPORT_ENABLE \

View File

@@ -10,6 +10,12 @@
"bootloader": "atmel-dfu",
"pin_compatible": "promicro"
},
"elite_pi": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"proton_c": {
"processor": "STM32F303",
"bootloader": "stm32-dfu",
@@ -34,6 +40,12 @@
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"bit_c_pro": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"bluepill": {
"processor": "STM32F103",
"bootloader": "stm32duino",
@@ -48,6 +60,18 @@
"processor": "STM32F411",
"bootloader": "stm32-dfu",
"board": "BLACKPILL_STM32_F411"
},
"stemcell": {
"processor": "STM32F411",
"bootloader": "tinyuf2",
"board": "STEMCELL",
"pin_compatible": "promicro"
},
"bonsai_c4": {
"processor": "STM32F411",
"bootloader": "stm32-dfu",
"board": "GENERIC_STM32_F411XE",
"pin_compatible": "promicro"
}
}
}

View File

@@ -9,6 +9,7 @@
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists
# invalid: Default `false`. Set to `true` to generate errors when a value exists
# replace_with: use with a key marked deprecated or invalid to designate a replacement
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
@@ -39,7 +40,7 @@
"LED_COMPOSE_PIN": {"info_key": "indicators.compose"},
"LED_KANA_PIN": {"info_key": "indicators.kana"},
"LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"},
"MANUFACTURER": {"info_key": "manufacturer"},
"MANUFACTURER": {"info_key": "manufacturer", "value_type": "str"},
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"},
"MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},
"MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"},
@@ -51,12 +52,13 @@
"ONESHOT_TAP_TOGGLE": {"info_key": "oneshot.tap_toggle", "value_type": "int"},
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "bool"},
"PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "bool"},
"PS2_CLOCK_PIN": {"info_key": "ps2.clock_pin"},
"PS2_DATA_PIN": {"info_key": "ps2.data_pin"},
"RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "bool"},
"RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "bool"},
"RGB_DI_PIN": {"info_key": "rgblight.pin"},
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
"RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"},
"RGBLIGHT_ANIMATIONS": {"info_key": "rgblight.animations.all", "value_type": "bool"},
"RGBLIGHT_EFFECT_ALTERNATING": {"info_key": "rgblight.animations.alternating", "value_type": "bool"},
"RGBLIGHT_EFFECT_BREATHING": {"info_key": "rgblight.animations.breathing", "value_type": "bool"},
"RGBLIGHT_EFFECT_CHRISTMAS": {"info_key": "rgblight.animations.christmas", "value_type": "bool"},
@@ -78,12 +80,11 @@
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"},
"PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false},
"PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str"},
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"},
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"},
"QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"},
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int"},
"QMK_LED": {"info_key": "qmk_lufa_bootloader.led"},
"QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"},
"SECURE_UNLOCK_SEQUENCE": {"info_key": "secure.unlock_sequence", "value_type": "array.array.int", "to_json": false},
@@ -112,6 +113,9 @@
"NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
"NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
"DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true},
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, "replace_with": "DEBOUNCE"},
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
"UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true},
"RGBLIGHT_ANIMATIONS": {"info_key": "rgblight.animations.all", "value_type": "bool", "deprecated": true},
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true}
}

View File

@@ -9,9 +9,10 @@
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists
# invalid: Default `false`. Set to `true` to generate errors when a value exists
# replace_with: use with a key marked deprecated or invalid to designate a replacement
"BOARD": {"info_key": "board"},
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
"BLUETOOTH": {"info_key": "bluetooth.driver"},
"BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"},
"CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"},
"ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"},
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
@@ -19,6 +20,7 @@
"MOUSE_SHARED_EP": {"info_key": "usb.shared_endpoint.mouse", "value_type": "bool"},
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
"LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"},
"RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"},
"LTO_ENABLE": {"info_key": "build.lto", "value_type": "bool"},
"MCU": {"info_key": "processor", "warn_duplicate": false},
"MOUSEKEY_ENABLE": {"info_key": "mouse_key.enabled", "value_type": "bool"},
@@ -30,9 +32,12 @@
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
"STENO_PROTOCOL": {"info_key": "stenography.protocol"},
"PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"},
"PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"},
"PS2_DRIVER": {"info_key": "ps2.driver"},
# Items we want flagged in lint
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true},
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true},
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}

View File

@@ -242,9 +242,6 @@
honeycomb: {
target: 'keyhive/honeycomb'
},
id80: {
target: 'id80/ansi'
},
idb_60: {
target: 'idb/idb_60',
layouts: {
@@ -826,6 +823,9 @@
geminate60: {
target: 'weirdo/geminate60'
},
gentleman65: {
target: 'jkeys_design/gentleman65'
},
georgi: {
target: 'gboards/georgi'
},
@@ -844,6 +844,9 @@
halberd: {
target: 'kagizaraya/halberd'
},
handwired/hillside/0_1: {
target: 'handwired/hillside/48'
}
hecomi/alpha: {
target: 'takashiski/hecomi/alpha'
},
@@ -857,7 +860,13 @@
target: 'idobao/id67/rgb'
},
id80: {
target: 'idobao/id80/v1'
target: 'idobao/id80/v2/ansi'
},
idobao/id80/v1/ansi: {
target: 'idobao/id80/v2/ansi'
},
idobao/id80/v1/iso: {
target: 'idobao/id80/v2/iso'
},
id87: {
target: 'idobao/id87/v1'

View File

@@ -9,7 +9,6 @@
"properties": {
"url": {"type": "string"}
}
},
"parse_errors": {"$ref": "qmk.definitions.v1#/string_array"},
"parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"},

View File

@@ -68,20 +68,8 @@
"type": "number"
},
"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_/]*$"
}
]
"type": "string",
"pattern": "^[0-9a-z][0-9a-z_/]*$"
},
"mcu_pin_array": {
"type": "array",

View File

@@ -15,7 +15,7 @@
"properties": {
"pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
}
}
@@ -34,7 +34,7 @@
},
"development_board": {
"type": "string",
"enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "blok", "bluepill", "blackpill_f401", "blackpill_f411"]
"enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4"]
},
"pin_compatible": {
"type": "string",
@@ -75,8 +75,7 @@
"driver": {
"type": "string",
"enum": ["BluefruitLE", "RN42"]
},
"lto": {"type": "boolean"},
}
}
},
"board": {
@@ -86,7 +85,27 @@
},
"bootloader": {
"type": "string",
"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", "rp2040"],
"enum": [
"atmel-dfu",
"bootloadhid",
"caterina",
"custom",
"gd32v-dfu",
"halfkay",
"kiibohd",
"lufa-dfu",
"lufa-ms",
"md-boot",
"qmk-dfu",
"qmk-hid",
"rp2040",
"stm32-dfu",
"stm32duino",
"tinyuf2",
"unknown",
"usbasploader",
"wb32-dfu"
]
},
"bootloader_instructions": {
"type": "string",
@@ -104,7 +123,7 @@
"type": "string",
"enum": ["bin", "hex", "uf2"]
},
"lto": {"type": "boolean"},
"lto": {"type": "boolean"}
}
},
"diode_direction": {
@@ -119,8 +138,8 @@
"enabled": {"type": "boolean"},
"both_shifts_turns_on": {"type": "boolean"},
"double_tap_shift_turns_on": {"type": "boolean"},
"idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
},
"idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"combo": {
"type": "object",
@@ -221,18 +240,17 @@
"items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
},
"cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
},
"mouse_key": {
"type": "object",
"properties": {
"enabled": {"type": "boolean"},
"delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
},
@@ -372,6 +390,20 @@
}
}
},
"ps2": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"mouse_enabled": {"type": "boolean"},
"clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"driver": {
"type": "string",
"enum": ["busywait", "interrupt", "usart", "vendor"]
}
}
},
"split": {
"type": "object",
"additionalProperties": false,
@@ -459,7 +491,7 @@
"retro_per_key": {"type": "boolean"},
"term": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"term_per_key": {"type": "boolean"},
"toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"usb": {
@@ -483,7 +515,7 @@
}
},
"suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"wait_for": {"type": "boolean"},
"wait_for": {"type": "boolean"}
}
},
"qmk": {
@@ -492,7 +524,7 @@
"properties": {
"keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"qmk_lufa_bootloader": {

View File

@@ -31,7 +31,7 @@
"properties": {
"action": {
"type": "string",
"enum": ['beep', 'delay', 'down', 'tap', 'up']
"enum": ["beep", "delay", "down", "tap", "up"]
},
"keycodes": {
"type": "array",

View File

@@ -24,4 +24,4 @@ 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
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

343
docs/ChangeLog/20220827.md Normal file
View File

@@ -0,0 +1,343 @@
# QMK Breaking Changes - 2022 August 27 Changelog
## Notable Features :id=notable-features
### Add Raspberry Pi RP2040 support ([#14877](https://github.com/qmk/qmk_firmware/pull/14877), [#17514](https://github.com/qmk/qmk_firmware/pull/17514), [#17516](https://github.com/qmk/qmk_firmware/pull/17516), [#17519](https://github.com/qmk/qmk_firmware/pull/17519), [#17612](https://github.com/qmk/qmk_firmware/pull/17612), [#17512](https://github.com/qmk/qmk_firmware/pull/17512), [#17557](https://github.com/qmk/qmk_firmware/pull/17557), [#17817](https://github.com/qmk/qmk_firmware/pull/17817), [#17839](https://github.com/qmk/qmk_firmware/pull/17839), [#18100](https://github.com/qmk/qmk_firmware/pull/18100)) :id=rp2040-support
QMK _finally_ picked up support for RP2040-based boards, such as the Raspberry Pi Pico, the Sparkfun Pro Micro RP2040, and the Adafruit KB2040. One of QMK's newest collaborators, _@KarlK90_, effectively did `/micdrop` with RP2040, with a massive set of changes to both QMK and the repository QMK uses for the base platform support, ChibiOS[-Contrib]. There has been a flurry of development this breaking changes cycle related to RP2040 from a large number of contributors -- so much so that almost all standard QMK hardware subsystems are supported.
Check the [RP2040 platform development page](platformdev_rp2040.md) for all supported peripherals and other hardware implementation details.
### Allow `qmk flash` to use prebuilt firmware binaries ([#16584](https://github.com/qmk/qmk_firmware/pull/16584)) :id=cli-flash-binaries
A long-requested capability of the QMK CLI has been the ability to flash binaries directly, without needing to build a firmware. QMK provides prebuilt `develop`-based default firmwares on our [CI page](https://qmk.tzarc.io/) -- normally people would need [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases/latest) to flash them. This new functionality written by _@Erovia_ allows `qmk flash` to be provided the prebuilt file instead, simplifying the workflow for people who haven't got Toolbox available.
## Changes Requiring User Action :id=changes-requiring-user-action
### Default layers dropped from 32 to 16 ([#15286](https://github.com/qmk/qmk_firmware/pull/15286))
QMK allows for controlling the maximum number of layers it supports through `LAYER_STATE_(8|16|32)BIT`. Each definition allows for the same number of maximum layers -- `LAYER_STATE_8BIT` => 8 layers. There is also a corresponding firmware size decrease that goes along with smaller numbers -- given the vast majority of users don't use more than 16 layers the default has been swapped to 16. AVR users who were not previously specifying their max layer count may see some space freed up as a result.
### `RESET` => `QK_BOOT` ([#17940](https://github.com/qmk/qmk_firmware/pull/17940)) :id=reset-2-qk_boot
Following the last breaking changes cycle, QMK has been migrating usages of `RESET` to `QK_BOOT` due to naming collisions with our upstream board support packages. [#17940](https://github.com/qmk/qmk_firmware/pull/17940) converts user keymaps across to use the new keycode name. `RESET` should also move to `QK_BOOT`.
### Updated Keyboard Codebases :id=updated-keyboard-codebases
The following keyboards have had their source moved within QMK:
| Old Keyboard Name | New Keyboard Name |
|------------------------|--------------------------|
| gentleman65 | jkeys_design/gentleman65 |
| handwired/hillside/0_1 | handwired/hillside/48 |
| idobao/id80/v1/ansi | idobao/id80/v2/ansi |
| idobao/id80/v1/iso | idobao/id80/v2/iso |
### Data-driven USB IDs Refactoring ([#18152](https://github.com/qmk/qmk_firmware/pull/18152)) :id=usb-ids-Refactoring
QMK has decided to deprecate the specification of USB IDs inside `config.h` in favour of `info.json`, eventually leaving data-driven as the only method to specify USB information.
A significant number of keyboards have already been changed on `master` in a like-for-like fashion, and [#18152](https://github.com/qmk/qmk_firmware/pull/18152) performs the same transformations for keyboards already on `develop`.
Previously in `config.h`:
```c
#define VENDOR_ID 0x1234
#define PRODUCT_ID 0x5678
#define DEVICE_VER 0x0001
#define MANUFACTURER Me
#define PRODUCT MyKeyboard
```
Replaced by `info.json`:
```json
{
"keyboard_name": "MyKeyboard",
"manufacturer": "Me",
"usb": {
"vid": "0x1234",
"pid": "0x5678",
"device_version": "0.0.1"
},
// ... layouts, etc. ...
}
```
#### Deprecation Schedule
- From 2022 Aug 27, specifying USB information in `config.h` will produce warnings during build but will still function as previously.
- From 2022 Nov 26, specifying USB information in `config.h` will cause compilation to fail.
## Notable core changes :id=notable-core
### Board converters ([#17514](https://github.com/qmk/qmk_firmware/pull/17514), [#17603](https://github.com/qmk/qmk_firmware/pull/17603), [#17711](https://github.com/qmk/qmk_firmware/pull/17711), [#17827](https://github.com/qmk/qmk_firmware/pull/17827), [#17593](https://github.com/qmk/qmk_firmware/pull/17593), [#17652](https://github.com/qmk/qmk_firmware/pull/17652), [#17595](https://github.com/qmk/qmk_firmware/pull/17595)) :id=board-converters
Historically QMK had a `CONVERT_TO_PROTON_C` directive for `rules.mk` to allow people to replace an AVR-based Pro Micro with a QMK Proton C. Global parts shortages have prompted people to create their own pin-compatible boards -- QMK has made this conversion generic and now allows for drop-in replacements for a lot more boards. see the [Converters Feature](feature_converters.md) documentation for the full list of supported replacement boards -- in this breaking changes cycle we've gone from 1 to 7.
### Add cli command to import keyboard|keymap|kbfirmware ([#16668](https://github.com/qmk/qmk_firmware/pull/16668)) :id=cli-import
To help with importing keyboards and keymaps from other sources, _@zvecr_ added [#16668](https://github.com/qmk/qmk_firmware/pull/16668) which adds a new set of commands to the CLI to automatically import keyboards (`qmk import-keyboard -h`), keymaps (`qmk import-keymap -h`), and kbfirmware definitions (`qmk import-kbfirmware -h`) into QMK.
The now-EOL kbfirmware allowed people who aren't set up with QMK the ability to create keyboard firmwares without requiring a full installation of QMK. Unfortunately, it targets a 7-year-old version of QMK -- adding frustration for users who want the newest features, as well as for QMK maintainers who have to spend time explaining why QMK can't just accept a drive-by code drop from kbfirmware. With any luck, this new command helps both camps!
### Generic wear-leveling for EEPROM emulation ([#16996](https://github.com/qmk/qmk_firmware/pull/16996), [#17376](https://github.com/qmk/qmk_firmware/pull/17376), [#18102](https://github.com/qmk/qmk_firmware/pull/18102)) :id=wear-leveling
QMK has had the ability to write to internal MCU flash in order to emulate EEPROM for some time now, but it was only limited to a small number of MCUs. The base HAL used by QMK for a large number of ARM devices provides a "proper" embedded MCU flash driver, so _@tzarc_ decoupled the wear-leveling algorithm from the old flash writing code, improved it, wrote some tests, and enabled its use for a much larger number of other devices... including RP2040's XIP flash, and external SPI NOR Flash.
See the [EEPROM Driver](eeprom_driver.md) documentation for more information.
### Pointing Device Improvements ([#16371](https://github.com/qmk/qmk_firmware/pull/16371), [#17111](https://github.com/qmk/qmk_firmware/pull/17111), [#17176](https://github.com/qmk/qmk_firmware/pull/17176), [#17482](https://github.com/qmk/qmk_firmware/pull/17482), [#17776](https://github.com/qmk/qmk_firmware/pull/17776), [#17613](https://github.com/qmk/qmk_firmware/pull/17613)) :id=pointing-device-improvements
Ever since Pointing Device Driver support and Split Pointing Device support were added by _@drashna_ and _@daskygit_, there has been increased interest in the development of the pointing device subsystem and its associated code.
Both the PMW33xx and the Cirque Pinnacle implementations have seen a lot of improvement to their code, as has the mouse code in general. Features like circular/edge scrolling for the Cirque, and Kinetic movement for any sensor with "lift detection" ([#17482](https://github.com/qmk/qmk_firmware/pull/17482)). Additionally, for those that make fast motions with their pointing devices, support for much larger mouse movement reports has been added ([#16371](https://github.com/qmk/qmk_firmware/pull/16371)).
Other related changes:
* Add support for large Mouse Reports ([#16371](https://github.com/qmk/qmk_firmware/pull/16371))
* Improve PS/2 mouse performance ([#17111](https://github.com/qmk/qmk_firmware/pull/17111))
* Mouse key kinetic mode fix ([#17176](https://github.com/qmk/qmk_firmware/pull/17176))
* Circular scroll, inertial cursor ([#17482](https://github.com/qmk/qmk_firmware/pull/17482))
* Create generic Pointing Device Pin defines ([#17776](https://github.com/qmk/qmk_firmware/pull/17776))
* PMW33XX drivers overhaul ([#17613](https://github.com/qmk/qmk_firmware/pull/17613))
---
## Full changelist :id=full-changelist
Core:
* Tentative Teensy 3.5 support ([#14420](https://github.com/qmk/qmk_firmware/pull/14420))
* Make default layer size 16-bit ([#15286](https://github.com/qmk/qmk_firmware/pull/15286))
* Process all changed keys in one scan loop, deprecate `QMK_KEYS_PER_SCAN` ([#15292](https://github.com/qmk/qmk_firmware/pull/15292))
* Do not enable PERMISSIVE_HOLD when TAPPING_TERM exceeds 500ms ([#15674](https://github.com/qmk/qmk_firmware/pull/15674))
* Allow usage of ChibiOS's SIO driver for split keyboards ([#15907](https://github.com/qmk/qmk_firmware/pull/15907))
* [Controller] Added board config for custom controller STeMCell ([#16287](https://github.com/qmk/qmk_firmware/pull/16287))
* PoC: Swap Escape and Caps ([#16336](https://github.com/qmk/qmk_firmware/pull/16336))
* Add support for large Mouse Reports ([#16371](https://github.com/qmk/qmk_firmware/pull/16371))
* tap-dance: Restructure code and document in more detail ([#16394](https://github.com/qmk/qmk_firmware/pull/16394))
* Teaching the CLI to flash binaries ([#16584](https://github.com/qmk/qmk_firmware/pull/16584))
* Split ChibiOS usart split driver in protocol and hardware driver part ([#16669](https://github.com/qmk/qmk_firmware/pull/16669))
* Added Wait time to sending each Keys for Dynamic Macros function ([#16800](https://github.com/qmk/qmk_firmware/pull/16800))
* Added Delay time to sending each Keys for VIA Macros function feature ([#16810](https://github.com/qmk/qmk_firmware/pull/16810))
* Improve avr wait_us() ([#16879](https://github.com/qmk/qmk_firmware/pull/16879))
* Improve ENCODER_DEFAULT_POS to recognize lost ticks ([#16932](https://github.com/qmk/qmk_firmware/pull/16932))
* Added emacs as an "operating system" for input mode. ([#16949](https://github.com/qmk/qmk_firmware/pull/16949))
* 24LC32A EEPROM addition ([#16990](https://github.com/qmk/qmk_firmware/pull/16990))
* Refactor steno and add `STENO_PROTOCOL = [all|txbolt|geminipr]` ([#17065](https://github.com/qmk/qmk_firmware/pull/17065))
* improvements for Cirque Pinnacle trackpads ([#17091](https://github.com/qmk/qmk_firmware/pull/17091))
* Use TAP_HOLD_CAPS_DELAY for KC_LOCKING_CAPS_LOCK ([#17099](https://github.com/qmk/qmk_firmware/pull/17099))
* Improve PS/2 mouse performance ([#17111](https://github.com/qmk/qmk_firmware/pull/17111))
* Update C standard to GNU11, C++ to GNU++14 ([#17114](https://github.com/qmk/qmk_firmware/pull/17114))
* Added ws2812_pwm support for WB32 MCU. ([#17142](https://github.com/qmk/qmk_firmware/pull/17142))
* Added ws2812_spi support for WB32 MCU ([#17143](https://github.com/qmk/qmk_firmware/pull/17143))
* Make bootloader_jump for dualbank STM32 respect STM32_BOOTLOADER_DUAL_BANK_DELAY ([#17178](https://github.com/qmk/qmk_firmware/pull/17178))
* Expose the time of the last change to the LED state ([#17222](https://github.com/qmk/qmk_firmware/pull/17222))
* [Code] Add solid reactive gradient mode ([#17228](https://github.com/qmk/qmk_firmware/pull/17228))
* Add keymap wrappers for introspection into the keymap. ([#17229](https://github.com/qmk/qmk_firmware/pull/17229))
* Ensure eeconfig initialised before reading EEPROM handedness. ([#17256](https://github.com/qmk/qmk_firmware/pull/17256))
* Add uf2-split-* make targets. ([#17257](https://github.com/qmk/qmk_firmware/pull/17257))
* Removes terminal from QMK. ([#17258](https://github.com/qmk/qmk_firmware/pull/17258))
* Make SPI Mode configurable for AW20216 and change default mode to 3 ([#17263](https://github.com/qmk/qmk_firmware/pull/17263))
* Move SPLIT_HAND_PIN setup to split_pre_init ([#17271](https://github.com/qmk/qmk_firmware/pull/17271))
* Allow larger SPLIT_USB_TIMEOUT with default SPLIT_USB_TIMEOUT_POLL ([#17272](https://github.com/qmk/qmk_firmware/pull/17272))
* Feature-ify Send String ([#17275](https://github.com/qmk/qmk_firmware/pull/17275))
* Rework paths for eeprom locations. ([#17326](https://github.com/qmk/qmk_firmware/pull/17326))
* Pca9505/6 driver ([#17333](https://github.com/qmk/qmk_firmware/pull/17333))
* Cirque Attenuation Setting ([#17342](https://github.com/qmk/qmk_firmware/pull/17342))
* Scale brigthness for VIA ([#17352](https://github.com/qmk/qmk_firmware/pull/17352))
* Ensure that rgb+via compiles in all cases ([#17355](https://github.com/qmk/qmk_firmware/pull/17355))
* Wear-leveling EEPROM drivers: `embedded_flash`, `spi_flash`, `legacy` ([#17376](https://github.com/qmk/qmk_firmware/pull/17376))
* In honor of king terry ([#17387](https://github.com/qmk/qmk_firmware/pull/17387))
* tap-dance: Rename tests so that tap_dance is used consistently ([#17396](https://github.com/qmk/qmk_firmware/pull/17396))
* IS31FL3737 Global Current Setting ([#17420](https://github.com/qmk/qmk_firmware/pull/17420))
* [QP] Add ILI9488 support. ([#17438](https://github.com/qmk/qmk_firmware/pull/17438))
* Mark GD32VF103 as ChibiOS-Contrib ([#17444](https://github.com/qmk/qmk_firmware/pull/17444))
* ISSI Drivers Global Current Option ([#17448](https://github.com/qmk/qmk_firmware/pull/17448))
* [Split] pointing transport check ([#17481](https://github.com/qmk/qmk_firmware/pull/17481))
* Cirque trackpad features: circular scroll, inertial cursor ([#17482](https://github.com/qmk/qmk_firmware/pull/17482))
* RGB heatmap skip NO_LED ([#17488](https://github.com/qmk/qmk_firmware/pull/17488))
* Add kb2040 and sparkfun rp2040 converters ([#17514](https://github.com/qmk/qmk_firmware/pull/17514))
* [style] rp2040 stage2 formatting ([#17516](https://github.com/qmk/qmk_firmware/pull/17516))
* Also check /run/media/ for uf2 drives ([#17517](https://github.com/qmk/qmk_firmware/pull/17517))
* RP2040 emulated EEPROM. ([#17519](https://github.com/qmk/qmk_firmware/pull/17519))
* Make debounce algorithms signal matrix changes ([#17554](https://github.com/qmk/qmk_firmware/pull/17554))
* Update PM2040 I2C pins ([#17578](https://github.com/qmk/qmk_firmware/pull/17578))
* Added implementation of WB32 MCU wear_leveling_efl. ([#17579](https://github.com/qmk/qmk_firmware/pull/17579))
* Use Pro Micro SDA/SCL pinout for PM2040 ([#17595](https://github.com/qmk/qmk_firmware/pull/17595))
* Refactor Pixel Fractal effect ([#17602](https://github.com/qmk/qmk_firmware/pull/17602))
* Add Blok RP2040 converter ([#17603](https://github.com/qmk/qmk_firmware/pull/17603))
* Use polled waiting on ChibiOS platforms that support it ([#17607](https://github.com/qmk/qmk_firmware/pull/17607))
* Stabilize Half-duplex RP2040 PIO split comms ([#17612](https://github.com/qmk/qmk_firmware/pull/17612))
* PMW33XX drivers overhaul ([#17613](https://github.com/qmk/qmk_firmware/pull/17613))
* Include stdint.h in avr/i2c_master.h ([#17639](https://github.com/qmk/qmk_firmware/pull/17639))
* Add led matrix support for CKLED2001 ([#17643](https://github.com/qmk/qmk_firmware/pull/17643))
* `STM32_USB_USE_OTG1` => `USB_ENDPOINTS_ARE_REORDERABLE` ([#17647](https://github.com/qmk/qmk_firmware/pull/17647))
* Allow MCU-specific overrides for SPI flags. ([#17650](https://github.com/qmk/qmk_firmware/pull/17650))
* Update LED/RGB Matrix flag function behavior ([#17651](https://github.com/qmk/qmk_firmware/pull/17651))
* Cirque circular scroll: Support POINTING_DEVICE_COMBINED ([#17654](https://github.com/qmk/qmk_firmware/pull/17654))
* Add support for PAW3204 Optical Sensor ([#17669](https://github.com/qmk/qmk_firmware/pull/17669))
* Add LED limits call ([#17679](https://github.com/qmk/qmk_firmware/pull/17679))
* Move Pointing Device code to a subdirectory ([#17684](https://github.com/qmk/qmk_firmware/pull/17684))
* Avoid OOB in dynamic_keymap_reset ([#17695](https://github.com/qmk/qmk_firmware/pull/17695))
* Allow dynamic keymap to compile without `via.h` ([#17703](https://github.com/qmk/qmk_firmware/pull/17703))
* Use correct angle tune range of +/-127 on PMW33XX ([#17708](https://github.com/qmk/qmk_firmware/pull/17708))
* Add Bonsai C4 converter ([#17711](https://github.com/qmk/qmk_firmware/pull/17711))
* VIA Encoder Map Support ([#17734](https://github.com/qmk/qmk_firmware/pull/17734))
* Move Pointing Device Initialization to after Split Post Initialization ([#17740](https://github.com/qmk/qmk_firmware/pull/17740))
* Add ability to enter bootloader mode from `QK_MAKE` ([#17745](https://github.com/qmk/qmk_firmware/pull/17745))
* Add `tap_code16_delay` ([#17748](https://github.com/qmk/qmk_firmware/pull/17748))
* Implement relative mode for Cirque trackpad ([#17760](https://github.com/qmk/qmk_firmware/pull/17760))
* Create generic Pointing Device Pin defines ([#17776](https://github.com/qmk/qmk_firmware/pull/17776))
* Constrain Cirque Pinnacle coordinates ([#17803](https://github.com/qmk/qmk_firmware/pull/17803))
* Refactor/rename postprocess_steno_user → post_process_steno_user ([#17823](https://github.com/qmk/qmk_firmware/pull/17823))
* Add Bit-C PRO converter ([#17827](https://github.com/qmk/qmk_firmware/pull/17827))
* guard RPC invocation by checking RPC info against crc checksum ([#17840](https://github.com/qmk/qmk_firmware/pull/17840))
* Add ST7735 driver to Quantum Painter ([#17848](https://github.com/qmk/qmk_firmware/pull/17848))
* Add minimal STM32F103C6 support ([#17853](https://github.com/qmk/qmk_firmware/pull/17853))
* Remove legacy AVR ssd1306 driver ([#17864](https://github.com/qmk/qmk_firmware/pull/17864))
* Remove tmk_core 'serial' code ([#17866](https://github.com/qmk/qmk_firmware/pull/17866))
* Use LT_ZCAR in place of LT_PLUS for modded kc definitions of keymap_lithuanian_qwerty.h ([#18000](https://github.com/qmk/qmk_firmware/pull/18000))
* Remove invisible variation selector-15 from keymap_japanese.h ([#18007](https://github.com/qmk/qmk_firmware/pull/18007))
* define CZ_PERC S(CZ_PLUS) → define CZ_PERC S(CZ_EQL) ([#18008](https://github.com/qmk/qmk_firmware/pull/18008))
* KR_DQUO S(KR_COLN) → KR_DQUO S(KR_QUOT) in keymap_korean.h ([#18011](https://github.com/qmk/qmk_firmware/pull/18011))
* Replace ; by : in the shifted symbols ASCII art of keymap_norman ([#18029](https://github.com/qmk/qmk_firmware/pull/18029))
* Add eeprom defaults for tinyuf2 bootloader ([#18042](https://github.com/qmk/qmk_firmware/pull/18042))
* Remove duplicate COMBINING HORN in keymap_us_extended.h ([#18045](https://github.com/qmk/qmk_firmware/pull/18045))
* Nix shell updates for `develop` ([#18131](https://github.com/qmk/qmk_firmware/pull/18131))
CLI:
* Add cli command to import keyboard|keymap|kbfirmware ([#16668](https://github.com/qmk/qmk_firmware/pull/16668))
* Publish data as part of API generation ([#17020](https://github.com/qmk/qmk_firmware/pull/17020))
* Allow encoder config from info.json ([#17295](https://github.com/qmk/qmk_firmware/pull/17295))
* `qmk doctor`: show arch for macOS ([#17356](https://github.com/qmk/qmk_firmware/pull/17356))
* Use --exclude-from=.gitignore in place of --exclude-standard ([#17399](https://github.com/qmk/qmk_firmware/pull/17399))
* Improve importer workflow ([#17707](https://github.com/qmk/qmk_firmware/pull/17707))
* Remove legacy bootmagic cli parsing ([#18099](https://github.com/qmk/qmk_firmware/pull/18099))
* Align CLI requirements ([#18117](https://github.com/qmk/qmk_firmware/pull/18117))
Submodule updates:
* Add Raspberry Pi RP2040 support ([#14877](https://github.com/qmk/qmk_firmware/pull/14877))
* Update mpaland/printf to eyalroz/printf fork ([#16163](https://github.com/qmk/qmk_firmware/pull/16163))
* Generic wear-leveling algorithm ([#16996](https://github.com/qmk/qmk_firmware/pull/16996))
* Update LUFA submodule ([#17368](https://github.com/qmk/qmk_firmware/pull/17368))
* Update V-USB submodule ([#17385](https://github.com/qmk/qmk_firmware/pull/17385))
* Update ChibiOS-Contrib ([#17540](https://github.com/qmk/qmk_firmware/pull/17540))
* Update to latest ChibiOS-Contrib. ([#18016](https://github.com/qmk/qmk_firmware/pull/18016))
* Update LUFA submodule ([#18168](https://github.com/qmk/qmk_firmware/pull/18168))
Keyboards:
* GMMK 2 WBG7 MCU compatibility ([#16436](https://github.com/qmk/qmk_firmware/pull/16436))
* bastardkb: restructure folder hierarchy ([#16778](https://github.com/qmk/qmk_firmware/pull/16778))
* Add Gentleman 65 SE Solderd PCB support ([#16992](https://github.com/qmk/qmk_firmware/pull/16992))
* Move/Rename to Hillside48, simplify default keymap ([#17210](https://github.com/qmk/qmk_firmware/pull/17210))
* IDOBAO ID67 code touch-ups and include factory keymap ([#17231](https://github.com/qmk/qmk_firmware/pull/17231))
* IDOBAO ID87v2 code rewrite and include factory keymap ([#17232](https://github.com/qmk/qmk_firmware/pull/17232))
* IDOBAO ID80v3 code rewrite and include factory keymap ([#17234](https://github.com/qmk/qmk_firmware/pull/17234))
* IDOBAO ID80v1 folder rename ([#17265](https://github.com/qmk/qmk_firmware/pull/17265))
* Fine!40 PCB Support ([#17426](https://github.com/qmk/qmk_firmware/pull/17426))
* Update Charybdis code for Extended Mouse reports ([#17435](https://github.com/qmk/qmk_firmware/pull/17435))
* (develop)AP2: Enable support for WL EEPROM Driver ([#17506](https://github.com/qmk/qmk_firmware/pull/17506))
* (develop)Keychron Q2: Enable support for WL EEPROM Driver ([#17507](https://github.com/qmk/qmk_firmware/pull/17507))
* Add Adafruit Macropad RP2040 ([#17512](https://github.com/qmk/qmk_firmware/pull/17512))
* Add RP2040 config defaults ([#17557](https://github.com/qmk/qmk_firmware/pull/17557))
* Add support keyboard Feker IK75 ([#17611](https://github.com/qmk/qmk_firmware/pull/17611))
* boardsource/holiday/spooky data driven ([#17632](https://github.com/qmk/qmk_firmware/pull/17632))
* boardsource/lulu data driven ([#17638](https://github.com/qmk/qmk_firmware/pull/17638))
* Added support for gmmk pro rev2 keyboard. ([#17655](https://github.com/qmk/qmk_firmware/pull/17655))
* boardsource/microdox data driven ([#17675](https://github.com/qmk/qmk_firmware/pull/17675))
* Remove full bootmagic config from user files ([#17702](https://github.com/qmk/qmk_firmware/pull/17702))
* (develop) Update bootmagic for Adafruit Macropad ([#17755](https://github.com/qmk/qmk_firmware/pull/17755))
* Add a kb2040 version of the onkey keyboard that works with the oled keymap ([#17786](https://github.com/qmk/qmk_firmware/pull/17786))
* Enable mousekeys by default for RGBKB Sol3 ([#17842](https://github.com/qmk/qmk_firmware/pull/17842))
* More glyph transformations for spidey3 userspace ([#17854](https://github.com/qmk/qmk_firmware/pull/17854))
* Default rgblight ([#17855](https://github.com/qmk/qmk_firmware/pull/17855))
* Refactor satt/comet46 to use core OLED driver ([#17856](https://github.com/qmk/qmk_firmware/pull/17856))
* Convert yosino58 to use split common ([#17861](https://github.com/qmk/qmk_firmware/pull/17861))
* Migrate crkbd keymaps to oled driver ([#17863](https://github.com/qmk/qmk_firmware/pull/17863))
* Overhaul uzu42 ([#17868](https://github.com/qmk/qmk_firmware/pull/17868))
* Update ginkgo65hot to allow use of community layouts ([#17911](https://github.com/qmk/qmk_firmware/pull/17911))
* Remove `UNUSED_PINS` ([#17931](https://github.com/qmk/qmk_firmware/pull/17931))
* RESET -> QK_BOOT user keymaps ([#17940](https://github.com/qmk/qmk_firmware/pull/17940))
* Add cursor layer to DMQ Spin ([#17996](https://github.com/qmk/qmk_firmware/pull/17996))
* add new keyboard 'soda/cherish' ([#18057](https://github.com/qmk/qmk_firmware/pull/18057))
* Move keyboard USB IDs and strings to data driven: develop ([#18152](https://github.com/qmk/qmk_firmware/pull/18152))
Keyboard fixes:
* Fixup SPI mode 3 => 0 on tzarc/djinn, `develop`. ([#17440](https://github.com/qmk/qmk_firmware/pull/17440))
* Fixup doio/kb16 ([#17545](https://github.com/qmk/qmk_firmware/pull/17545))
* Adafruit Macropad: Add VIA keymap, fix default km ([#17735](https://github.com/qmk/qmk_firmware/pull/17735))
* Fix compilation issues for Charybdis/Dilemma ([#17791](https://github.com/qmk/qmk_firmware/pull/17791))
* bastardkb: fix info.json changes that got reverted during the last merge from `master` to `develop` ([#17800](https://github.com/qmk/qmk_firmware/pull/17800))
* Fixup uzu42 ([#17867](https://github.com/qmk/qmk_firmware/pull/17867))
* use correct function in Dilemma splinky ([#17923](https://github.com/qmk/qmk_firmware/pull/17923))
* Fix compilation issues for Boardsource Microdox ([#18037](https://github.com/qmk/qmk_firmware/pull/18037))
* Fixup gmmk/pro/rev2 USB Data ([#18056](https://github.com/qmk/qmk_firmware/pull/18056))
Others:
* backlight|led 'on state' for DD configuration ([#17383](https://github.com/qmk/qmk_firmware/pull/17383))
* Dump out the largest symbols in flash and in RAM. ([#17397](https://github.com/qmk/qmk_firmware/pull/17397))
* Re-order user space rules inclusion ([#17459](https://github.com/qmk/qmk_firmware/pull/17459))
* Update feature_split_keyboard.md to add extra detail about left and right matrices. ([#17492](https://github.com/qmk/qmk_firmware/pull/17492))
* Swap F4x1 default board files away from blackpill ([#17522](https://github.com/qmk/qmk_firmware/pull/17522))
* Add converter docs ([#17593](https://github.com/qmk/qmk_firmware/pull/17593))
* Updates to Pointing Device Docs ([#17777](https://github.com/qmk/qmk_firmware/pull/17777))
* Add deprecated check for RGBLIGHT_ANIMATIONS ([#17832](https://github.com/qmk/qmk_firmware/pull/17832))
* Remove OLED driver Split Common warning ([#17862](https://github.com/qmk/qmk_firmware/pull/17862))
* Revert " Re-order user space rules inclusion (#17459)" ([#18032](https://github.com/qmk/qmk_firmware/pull/18032))
Bugs:
* Minor schema fixes ([#14200](https://github.com/qmk/qmk_firmware/pull/14200))
* Fix buffer size for WS2812 PWM driver ([#17046](https://github.com/qmk/qmk_firmware/pull/17046))
* Fix AVR I2C master 1ms timeout ([#17174](https://github.com/qmk/qmk_firmware/pull/17174))
* Mouse key kinetic mode fix ([#17176](https://github.com/qmk/qmk_firmware/pull/17176))
* Fix RGB heatmap to use XY positions and use correct led limits. ([#17184](https://github.com/qmk/qmk_firmware/pull/17184))
* Fix keys being discarded after using the leader key ([#17287](https://github.com/qmk/qmk_firmware/pull/17287))
* Fixup pimoroni trackball ([#17335](https://github.com/qmk/qmk_firmware/pull/17335))
* Fix via builds broken by brightness scaling ([#17354](https://github.com/qmk/qmk_firmware/pull/17354))
* SPI Bugfix for ChibiOS `21.11.1` => `21.11.2` ([#17371](https://github.com/qmk/qmk_firmware/pull/17371))
* Additional schema fixes ([#17414](https://github.com/qmk/qmk_firmware/pull/17414))
* Fix deadlocks on disconnected secondary half ([#17423](https://github.com/qmk/qmk_firmware/pull/17423))
* [Fix] Fix compilation warning for non-split keebs after #17423 ([#17439](https://github.com/qmk/qmk_firmware/pull/17439))
* Fix Caps Word to treat mod-taps more consistently. ([#17463](https://github.com/qmk/qmk_firmware/pull/17463))
* Fix docs regarding `USB_SUSPEND_WAKEUP_DELAY` ([#17501](https://github.com/qmk/qmk_firmware/pull/17501))
* Fixup SSD1351 build after #17438 ([#17533](https://github.com/qmk/qmk_firmware/pull/17533))
* Fixup SPI init procedure, SPI EEPROM sequencing ([#17534](https://github.com/qmk/qmk_firmware/pull/17534))
* Fix Caps Word capitalization when used with Combos + Auto Shift. ([#17549](https://github.com/qmk/qmk_firmware/pull/17549))
* Allow for `keymaps` array to be implemented in a file other than `$(KEYMAP_C)` ([#17559](https://github.com/qmk/qmk_firmware/pull/17559))
* [Fix] printf update aftermath ([#17584](https://github.com/qmk/qmk_firmware/pull/17584))
* Fix rgbkb/sol/rev2 build issues ([#17601](https://github.com/qmk/qmk_firmware/pull/17601))
* More DD encoder fixes ([#17615](https://github.com/qmk/qmk_firmware/pull/17615))
* [Fix] Make ChibiOS `_wait.h` independent of `quantum.h` ([#17645](https://github.com/qmk/qmk_firmware/pull/17645))
* Grammar fixes for docs/feature_converters.md ([#17652](https://github.com/qmk/qmk_firmware/pull/17652))
* Fix compilation issue with Cirque Guestures file ([#17656](https://github.com/qmk/qmk_firmware/pull/17656))
* Fix compile issue with LED Matrix ([#17658](https://github.com/qmk/qmk_firmware/pull/17658))
* Post-bootloader EFL/SPI fixes. ([#17661](https://github.com/qmk/qmk_firmware/pull/17661))
* Fix LED limit loop ([#17678](https://github.com/qmk/qmk_firmware/pull/17678))
* [Fix] Use correct angle tune range of +/-30 on PMW33XX ([#17693](https://github.com/qmk/qmk_firmware/pull/17693))
* Fix AVR compilation of FNV by using standard integer typenames. ([#17716](https://github.com/qmk/qmk_firmware/pull/17716))
* fix syntax error in header file ([#17732](https://github.com/qmk/qmk_firmware/pull/17732))
* Fix custom debug function and sample output ([#17790](https://github.com/qmk/qmk_firmware/pull/17790))
* Fix QK_MAKE's reboot check ([#17795](https://github.com/qmk/qmk_firmware/pull/17795))
* Chibios: Stop I2C peripheral on transaction error ([#17798](https://github.com/qmk/qmk_firmware/pull/17798))
* Fix ChibiOS `i2c_master` error codes ([#17808](https://github.com/qmk/qmk_firmware/pull/17808))
* Update ChibiOS Contrib for RP2040 fixes ([#17817](https://github.com/qmk/qmk_firmware/pull/17817))
* RP2040 disable PIO IRQs on serial timeout ([#17839](https://github.com/qmk/qmk_firmware/pull/17839))
* Fix POINTING_DEVICE_GESTURES_SCROLL_ENABLE typo ([#17850](https://github.com/qmk/qmk_firmware/pull/17850))
* Fixup compilation of printf-like functions with uint32_t args. ([#17904](https://github.com/qmk/qmk_firmware/pull/17904))
* Fix issue with #17904. ([#17905](https://github.com/qmk/qmk_firmware/pull/17905))
* Always run pointing device init ([#17936](https://github.com/qmk/qmk_firmware/pull/17936))
* Align TO() max layers with other keycodes ([#17989](https://github.com/qmk/qmk_firmware/pull/17989))
* Fix Bépo's BP_NNBS (narrow non-breaking space) ([#17999](https://github.com/qmk/qmk_firmware/pull/17999))
* Move Encoder+Encoder Map from generic features ([#18018](https://github.com/qmk/qmk_firmware/pull/18018))
* Fix wrong varaible in encoder block ([#18020](https://github.com/qmk/qmk_firmware/pull/18020))
* Fix LV_CCAR and LV_NCED in keymap_latvian.h ([#18025](https://github.com/qmk/qmk_firmware/pull/18025))
* Use ANSI ASCII art and fix comments for LT_COLN and LT_UNDS in keymap_lithuanian_qwerty.h ([#18028](https://github.com/qmk/qmk_firmware/pull/18028))
* Partially revert some WB32 specific changes ([#18038](https://github.com/qmk/qmk_firmware/pull/18038))
* Fix Emulated EEPROM issue with F466 ([#18039](https://github.com/qmk/qmk_firmware/pull/18039))
* Fix DV_SCLN and DV_COLN in keymap_spanish_dvorak.h ([#18043](https://github.com/qmk/qmk_firmware/pull/18043))
* Fix missing development_board schema entry ([#18050](https://github.com/qmk/qmk_firmware/pull/18050))
* Add key event check to `is_tap_record` and remove `is_tap_key` ([#18063](https://github.com/qmk/qmk_firmware/pull/18063))
* Fix GD32VF103 WS2812 PWM driver ([#18067](https://github.com/qmk/qmk_firmware/pull/18067))
* Fix new-keyboard default for RP2040 bootloader ([#18100](https://github.com/qmk/qmk_firmware/pull/18100))
* Fixup F4xx wear-leveling bootloader check ([#18102](https://github.com/qmk/qmk_firmware/pull/18102))
* Fix PID value for the Keyboardio Atreus 2 bootloader ([#18116](https://github.com/qmk/qmk_firmware/pull/18116))
* Add missing SS_LOPT and SS_ROPT defines ([#18175](https://github.com/qmk/qmk_firmware/pull/18175))

View File

@@ -4,6 +4,7 @@
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Getting Help/Support](support.md)
* [Building With GitHub Userspace](newbs_building_firmware_workflow.md)
* [Other Resources](newbs_learn_more_resources.md)
* [Syllabus](syllabus.md)
@@ -82,7 +83,6 @@
* [Key Overrides](feature_key_overrides.md)
* [Layers](feature_layers.md)
* [One Shot Keys](one_shot_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [Raw HID](feature_rawhid.md)
* [Secure](feature_secure.md)
* [Send String](feature_send_string.md)
@@ -117,6 +117,7 @@
* [Joystick](feature_joystick.md)
* [LED Indicators](feature_led_indicators.md)
* [MIDI](feature_midi.md)
* [Pointing Device](feature_pointing_device.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
@@ -134,7 +135,7 @@
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* [Most Recent ChangeLog](ChangeLog/20220528.md "QMK v0.17.0 - 2022 May 28")
* [Most Recent ChangeLog](ChangeLog/20220827.md "QMK v0.18.0 - 2022 Aug 27")
* [Past Breaking Changes](breaking_changes_history.md)
* C Development
@@ -169,6 +170,7 @@
* [Early initialization](platformdev_chibios_earlyinit.md)
* [Raspberry Pi RP2040](platformdev_rp2040.md)
* [Proton C](platformdev_proton_c.md)
* [WeAct Blackpill F411](platformdev_blackpill_f411.md)
* QMK Reference
* [Contributing to QMK](contributing.md)

View File

@@ -16,7 +16,7 @@ This service is an asynchronous API for compiling custom keymaps. You POST some
"layers": [
["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
["KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","QK_BOOT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
```

View File

@@ -113,15 +113,17 @@ Additionally, in the board config, you'll want to make changes to enable the DAC
### DAC Config
| Define | Defaults | Description --------------------------------------------------------------------------------------------- |
| Define | Defaults | Description |
| -------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AUDIO_DAC_SAMPLE_MAX` | `4095U` | Highest value allowed. Lower value means lower volume. And 4095U is the upper limit, since this is limited to a 12 bit value. Only effects non-pregenerated samples. |
| `AUDIO_DAC_OFF_VALUE` | `AUDIO_DAC_SAMPLE_MAX / 2` | The value of the DAC when notplaying anything. Some setups may require a high (`AUDIO_DAC_SAMPLE_MAX`) or low (`0`) value here. |
| `AUDIO_DAC_OFF_VALUE` | `AUDIO_DAC_SAMPLE_MAX / 2` | The value of the DAC when notplaying anything. Some setups may require a high (`AUDIO_DAC_SAMPLE_MAX`) or low (`0`) value here. |
| `AUDIO_MAX_SIMULTANEOUS_TONES` | __see next table__ | The number of tones that can be played simultaneously. A value that is too high may freeze the controller or glitch out when too many tones are being played. |
| `AUDIO_DAC_SAMPLE_RATE` | __see next table__ | Effective bit rate of the DAC (in hertz), higher limits simultaneous tones, and lower sacrifices quality. |
| `AUDIO_DAC_SAMPLE_RATE` | __see next table__ | Effective bit rate of the DAC (in hertz), higher limits simultaneous tones, and lower sacrifices quality. |
There are a number of predefined quality settings that you can use, with "sane minimum" being the default. You can use custom values by simply defining the sample rate and number of simultaneous tones, instead of using one of the listed presets.
| Define | Sample Rate | Simultaneous tones |
| --------------------------------- | ----------- | ------------------- |
| `AUDIO_DAC_QUALITY_VERY_LOW` | `11025U` | `8` |
| `AUDIO_DAC_QUALITY_LOW` | `22040U` | `4` |
| `AUDIO_DAC_QUALITY_HIGH` | `44100U` | `2` |

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 Aug 27](ChangeLog/20220827.md)
* [2022 May 28](ChangeLog/20220528.md)
* [2022 Feb 26](ChangeLog/20220226.md)
* [2021 Nov 27](ChangeLog/20211127.md)
@@ -22,17 +23,18 @@ 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 August 27, 2022.
The next Breaking Change is scheduled for November 26, 2022.
### Important Dates
* [x] 2022 May 28 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* [ ] 2022 Jul 31 - `develop` closed to new PR's.
* [ ] 2022 Jul 31 - Call for testers.
* [ ] 2022 Aug 13 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* [ ] 2022 Aug 25 - `master` is locked, no PR's merged.
* [ ] 2022 Aug 27 - Merge `develop` to `master`.
* [ ] 2022 Aug 27 - `master` is unlocked. PR's can be merged again.
* 2022 Aug 27 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* 2022 Oct 29 - `develop` closed to new PR's.
* 2022 Oct 29 - Call for testers.
* 2022 Nov 12 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* 2022 Nov 19 - `develop` is locked, only critical bugfix PR's merged.
* 2022 Nov 24 - `master` is locked, no PR's merged.
* 2022 Nov 26 - Merge `develop` to `master`.
* 2022 Nov 26 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
@@ -43,7 +45,7 @@ If you want your breaking change to be included in this round you need to create
Criteria for acceptance:
* The PR is complete and ready to merge
* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20220827`.
* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20221126`.
* This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PR's ID.
* One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability.
@@ -54,53 +56,47 @@ This section documents various processes we use when running the Breaking Change
### 4 Weeks Before Merge
* `develop` is now closed to new PR's, only fixes for current PR's may be merged
* Post call for testers
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
* Post call for testers: message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
* `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be raised against qmk_firmware for this breaking changes cycle is today.`
### 2 Weeks Before Merge
* `develop` is now closed to existing PR merges, only bugfixes for previous merges may be included
* Post call for testers
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
* Post call for testers: message `@Breaking Changes Updates` on `#qmk_firmware` in Discord.
* `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be merged into qmk_firmware for this breaking changes cycle is today. After that, we're handling bugfixes only.`
### 1 Week Before Merge
* Announce that master will be closed from <2 Days Before> to <Day of Merge>
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
* `develop` is now closed to PR merges, only critical bugfixes may be included
* Announce that master will be closed from <2 Days Before> to <Day of Merge> -- message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
* `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be merged into qmk_firmware for this breaking changes cycle is today. After that, we're handling bugfixes only.`
### 2 Days Before Merge
* `master` is now closed to PR merges
* Announce that master is closed for 2 days
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
* `@Breaking Changes Updates -- Hey folks, the master branch of qmk_firmware is now locked for the next couple of days while we prepare to merge the newest batch of changes from develop.`
### Day Of Merge
* `qmk_firmware` git commands
* [ ] `git checkout develop`
* [ ] `git pull --ff-only`
* [ ] Edit `readme.md`
* [ ] Remove the notes about `develop`
* [ ] Roll up the ChangeLog into one file.
* [ ] `git commit -m 'Merge point for <DATE> Breaking Change'`
* [ ] `git push upstream develop`
* `git checkout develop`
* `git pull --ff-only`
* Edit `readme.md`
* Remove the notes about `develop`
* Roll up the ChangeLog into one file.
* `git commit -m 'Merge point for <DATE> Breaking Change'`
* `git push upstream develop`
* GitHub Actions
* [ ] Create a PR for `develop`
* [ ] **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing
* Create a PR for `develop`
* **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing
* `qmk_firmware` git commands
* [ ] `git checkout master`
* [ ] `git pull --ff-only`
* [ ] `git merge --no-ff develop`
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
* [ ] `git push upstream <next_version>`
* [ ] `git push upstream master`
* `git checkout master`
* `git pull --ff-only`
* `git merge --no-ff develop`
* `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
* `git push upstream <next_version>`
* `git push upstream master`
## Post-merge operations
@@ -109,28 +105,72 @@ This section documents various processes we use when running the Breaking Change
This happens immediately after the previous `develop` branch is merged to `master`.
* `qmk_firmware` git commands
* [ ] `git checkout master`
* [ ] `git pull --ff-only`
* [ ] `git checkout develop`
* [ ] `git pull --ff-only`
* [ ] `git merge --no-ff master`
* [ ] Edit `readme.md`
* [ ] Add a big notice at the top that this is a testing branch.
* [ ] Include a link to this document
* [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
* [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
* [ ] `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
* `git checkout master`
* `git pull --ff-only`
* `git checkout develop`
* `git pull --ff-only`
* `git merge --no-ff master`
* Edit `readme.md`
* Add a big notice at the top that this is a testing branch. See previous revisions of the `develop` branch.
* Include a link to this document
* `git commit -m 'Branch point for <DATE> Breaking Change'`
* `git tag breakpoint_<YYYY>_<MM>_<DD>`
* `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
* All submodules under `lib` now need to be checked against their QMK-based forks:
* [ ] `git submodule foreach git log -n1`
* [ ] Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS:
* `git submodule foreach git log -n1`
* Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS:
* Go to [qmk/ChibiOS](https://github.com/qmk/ChibiOS)
* Compare the commit hash in the above output to the commit hash in the repository
* If there's a mismatch:
* [ ] `cd lib/chibios`
* [ ] `git fetch --all`
* [ ] `git checkout master`
* [ ] `git reset --hard <commit hash>`
* [ ] `git push origin master --force-with-lease`
* If there's a mismatch, that repository needs to have its `master` branch updated to match (otherwise Configurator won't work):
* `cd lib/chibios`
* `git fetch --all`
* `git checkout master`
* `git reset --hard <commit hash>`
* `git push origin master --force-with-lease`
* Announce that both `master` and `develop` are now unlocked -- message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
* `@Breaking Changes Updates -- Hey folks, develop has now been merged into master -- newest batch of changes are now available for everyone to use!`
* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)
### Set up Discord events for the next cycle
* Update this file with the new dates: `docs/breaking_changes.md`
* Create Events on the QMK Discord - "Somewhere Else" => "GitHub":
* Event #1:
| Field | Value |
|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Topic | Last `develop` functionality PRs to be raised |
| Start Date | ((5 weeks before merge)), 12:00am |
| End Date | ((4 weeks before merge)), 12:00am |
| Description | This is the last window for functional PRs to be raised against `develop` for the current breaking changes cycle. After ((4 weeks before merge)), any new PRs targeting `develop` will be deferred to the next cycle. |
* Event #2:
| Field | Value |
|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Topic | Last `develop` functionality PRs to be merged |
| Start Date | ((4 weeks before merge)), 12:00am |
| End Date | ((2 weeks before merge)), 12:00am |
| Description | This is the last window for functional PRs to be merged into `develop` for the current breaking changes cycle. After ((2 weeks before merge)), only bugfix PRs targeting `develop` will be considered for merge. |
* Event #3:
| Field | Value |
|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Topic | `develop` closed for merges |
| Start Date | ((2 weeks before merge)), 12:00am |
| End Date | ((day of merge)), 12:00am |
| Description | This is the deadline for functionality bugfix PRs to be merged into `develop` for the current breaking changes cycle. After ((1 week before merge)), only critical bugfix PRs targeting `develop` will be considered for merge. |
* Event #4:
| Field | Value |
|-------------|----------------------------------------------------------------------------------------------------------------------|
| Topic | `master` closed for merges |
| Start Date | ((2 days before merge)), 12:00am |
| End Date | ((day of merge)), 12:00am |
| Description | This is the period that no PRs are to be merged to `master`, so that the merge of `develop` into `master` is stable. |
* Event #5:
| Field | Value |
|-------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| Topic | `develop` merges to `master` |
| Start Date | ((day of merge)), 12:00am |
| End Date | ((day of merge)), 11:45pm |
| Description | At some point, QMK will merge `develop` into `master` and everyone will be able to reap the benefits of the newest batch of functionality. |

View File

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

View File

@@ -90,6 +90,8 @@ This command is similar to `qmk compile`, but can also target a bootloader. The
This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory.
This command can also flash binary firmware files (hex or bin) such as the ones produced by [Configurator](https://config.qmk.fm).
**Usage for Configurator Exports**:
```
@@ -102,6 +104,21 @@ qmk flash [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>] <configurat
qmk flash -kb <keyboard_name> -km <keymap_name> [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>]
```
**Usage for pre-compiled firmwares**:
**Note**: The microcontroller needs to be specified (`-m` argument) for keyboards with the following bootloaders:
* HalfKay
* QMK HID
* USBaspLoader
ISP flashing is also supported with the following flashers and require the microcontroller to be specified:
* USBasp
* USBtinyISP
```
qmk flash [-m <microcontroller>] <compiledFirmware.[bin|hex]>
```
**Listing the Bootloaders**
```

View File

@@ -39,11 +39,11 @@ This is a C header file that is one of the first things included, and will persi
* defines your VID, and for most DIY projects, can be whatever you want
* `#define PRODUCT_ID 0x5678`
* defines your PID, and for most DIY projects, can be whatever you want
* `#define DEVICE_VER 0`
* `#define DEVICE_VER 0x0100`
* defines the device version (often used for revisions)
* `#define MANUFACTURER Me`
* `#define MANUFACTURER "Me"`
* generally who/whatever brand produced the board
* `#define PRODUCT Board`
* `#define PRODUCT "Board"`
* the name of the keyboard
* `#define MATRIX_ROWS 5`
* the number of rows in your keyboard's matrix
@@ -57,8 +57,6 @@ This is a C header file that is one of the first things included, and will persi
* may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
* `#define MATRIX_IO_DELAY 30`
* the delay in microseconds when between changing matrix pin state and reading values
* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
* pins unused by the keyboard for reference
* `#define MATRIX_HAS_GHOST`
* define is matrix has ghost (unlikely)
* `#define MATRIX_UNSELECT_DRIVE_HIGH`
@@ -182,15 +180,6 @@ If you define these options you will enable the associated feature, which may in
* how long before oneshot times out
* `#define ONESHOT_TAP_TOGGLE 2`
* how many taps before oneshot toggle is triggered
* `#define QMK_KEYS_PER_SCAN 4`
* Allows sending more than one key per scan. By default, only one key event gets
sent via `process_record()` per scan. This has little impact on most typing, but
if you're doing a lot of chords, or your scan rate is slow to begin with, you can
have some delay in processing key events. Each press and release is a separate
event. For a keyboard with 1ms or so scan times, even a very fast typist isn't
going to produce the 500 keystrokes a second needed to actually get more than a
few ms of delay from this. But if you're doing chording on something with 3-4ms
scan times? You probably want this.
* `#define COMBO_COUNT 2`
* Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. Or leave it undefined and programmatically set the count.
* `#define COMBO_TERM 200`
@@ -198,7 +187,7 @@ If you define these options you will enable the associated feature, which may in
* `#define COMBO_MUST_HOLD_MODS`
* Flag for enabling extending timeout on Combos containing modifers
* `#define COMBO_MOD_TERM 200`
* Allows for extending COMBO_TERM for mod keys while mid-combo.
* Allows for extending COMBO_TERM for mod keys while mid-combo.
* `#define COMBO_MUST_HOLD_PER_COMBO`
* Flag to enable per-combo COMBO_TERM extension and `get_combo_must_hold()` function
* `#define COMBO_TERM_PER_COMBO`
@@ -218,14 +207,12 @@ If you define these options you will enable the associated feature, which may in
* `#define RGB_DI_PIN D7`
* pin the DI on the WS2812 is hooked-up to
* `#define RGBLIGHT_ANIMATIONS`
* run RGB animations
* `#define RGBLIGHT_LAYERS`
* Lets you define [lighting layers](feature_rgblight.md?id=lighting-layers) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state.
* `#define RGBLIGHT_MAX_LAYERS`
* Defaults to 8. Can be expanded up to 32 if more [lighting layers](feature_rgblight.md?id=lighting-layers) are needed.
* Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards.
* `#define RGBLIGHT_LAYER_BLINK`
* `#define RGBLIGHT_LAYER_BLINK`
* Adds ability to [blink](feature_rgblight.md?id=lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action).
* `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF`
* If defined, then [lighting layers](feature_rgblight?id=overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off.
@@ -370,8 +357,8 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* `SRC`
* Used to add files to the compilation/linking list.
* `LIB_SRC`
* Used to add files as a library to the compilation/linking list.
The files specified by `LIB_SRC` is linked after the files specified by `SRC`.
* Used to add files as a library to the compilation/linking list.
The files specified by `LIB_SRC` is linked after the files specified by `SRC`.
For example, if you specify:
```
SRC += a.c
@@ -424,7 +411,7 @@ Use these to enable or disable building certain features. The more you have enab
* `NKRO_ENABLE`
* USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `RING_BUFFERED_6KRO_REPORT_ENABLE`
* USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed.
* USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed.
* `AUDIO_ENABLE`
* Enable the audio subsystem.
* `KEY_OVERRIDE_ENABLE`

View File

@@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
@@ -84,7 +84,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the
[
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DEC", "BL_INC",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"

View File

@@ -406,11 +406,11 @@ And you're done. The RGB layer indication will only work if you want it to. And
The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM.
### Deferred Execution :id=deferred-execution
# 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. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk.
#### Deferred executor callbacks
## Deferred executor callbacks
All _deferred executor callbacks_ have a common function signature and look like:
@@ -430,7 +430,7 @@ The return value is the number of milliseconds to use if the function should be
?> Note that the returned delay will be applied to the intended trigger time, not the time of callback invocation. This allows for generally consistent timing even in the face of occasional late execution.
#### Deferred executor registration
## Deferred executor registration
Once a callback has been defined, it can be scheduled using the following API:
@@ -444,7 +444,7 @@ The third parameter is the `cb_arg` that gets passed to the callback at the poin
The return value is a `deferred_token` that can consequently be used to cancel the deferred executor callback before it's invoked. If a failure occurs, the returned value will be `INVALID_DEFERRED_TOKEN`. Usually this will be as a result of supplying `0` to the delay, or a `NULL` for the callback. The other failure case is if there are too many deferred executions "in flight" -- this can be increased by changing the limit, described below.
#### Extending a deferred execution
## Extending a deferred execution
The `deferred_token` returned by `defer_exec()` can be used to extend a the duration a pending execution waits before it gets invoked:
```c
@@ -452,7 +452,7 @@ The `deferred_token` returned by `defer_exec()` can be used to extend a the dura
extend_deferred_exec(my_token, 800);
```
#### Cancelling a deferred execution
## Cancelling a deferred execution
The `deferred_token` returned by `defer_exec()` can be used to cancel a pending execution before it gets invoked:
```c
@@ -462,7 +462,7 @@ cancel_deferred_exec(my_token);
Once a token has been canceled, it should be considered invalid. Reusing the same token is not supported.
#### Deferred callback limits
## Deferred callback limits
There are a maximum number of deferred callbacks that can be scheduled, controlled by the value of the define `MAX_DEFERRED_EXECUTORS`.

View File

@@ -22,7 +22,7 @@ You will then need to add support for your new configuration to `info.json`. The
1. Add it to the schema in `data/schemas/keyboards.jsonschema`
1. Add a mapping in `data/maps`
1. (optional and discoraged) Add code to extract/generate it to:
1. (optional and discouraged) Add code to extract/generate it to:
* `lib/python/qmk/info.py`
* `lib/python/qmk/cli/generate/config_h.py`
* `lib/python/qmk/cli/generate/rules_mk.py`

View File

@@ -8,7 +8,7 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have
## Installation
Put your keyboard into bootloader mode, either by hitting the `RESET` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](feature_bootmagic.md) docs for more details). Some boards use [Command](feature_command.md) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](feature_bootmagic.md) docs for more details). Some boards use [Command](feature_command.md) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](feature_bootmagic.md) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.

View File

@@ -59,7 +59,7 @@ When porting, or when attempting to diagnose pcb issues, it can be useful to kno
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: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %u, time: %5u, int: %u, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
#endif
return true;
}
@@ -69,12 +69,12 @@ Example output
```
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
KL: kc: 169, col: 0, row: 0, pressed: 1, time: 15505, int: 0, count: 0
KL: kc: 169, col: 0, row: 0, pressed: 0, time: 15510, int: 0, count: 0
KL: kc: 174, col: 1, row: 0, pressed: 1, time: 15703, int: 0, count: 0
KL: kc: 174, col: 1, row: 0, pressed: 0, time: 15843, int: 0, count: 0
KL: kc: 172, col: 2, row: 0, pressed: 1, time: 16303, int: 0, count: 0
KL: kc: 172, col: 2, row: 0, pressed: 0, time: 16411, int: 0, count: 0
```
### How long did it take to scan for a keypress?

View File

@@ -10,7 +10,7 @@ You probably don't want to "brick" your keyboard, making it impossible
to rewrite firmware onto it. Here are some of the parameters to show
what things are (and likely aren't) too risky.
- If your keyboard map does not include RESET, then, to get into DFU
- If your keyboard map does not include QK_BOOT, then, to get into DFU
mode, you will need to press the reset button on the PCB, which
requires unscrewing the bottom.
- Messing with tmk_core / common files might make the keyboard

View File

@@ -114,7 +114,7 @@ The audio core offers interface functions to get/set/change the tone multiplexin
There's a couple of different sounds that will automatically be enabled without any other configuration:
```
STARTUP_SONG // plays when the keyboard starts up (audio.c)
GOODBYE_SONG // plays when you press the RESET key (quantum.c)
GOODBYE_SONG // plays when you press the QK_BOOT key (quantum.c)
AG_NORM_SONG // plays when you press AG_NORM (quantum.c)
AG_SWAP_SONG // plays when you press AG_SWAP (quantum.c)
CG_NORM_SONG // plays when you press CG_NORM (quantum.c)
@@ -177,7 +177,7 @@ The available keycodes for audio are:
|`AUDIO_INIT_DELAY` | *Not defined* |Enables delay during startup song to accomidate for USB startup issues. |
|`AUDIO_ENABLE_TONE_MULTIPLEXING` | *Not defined* |Enables time splicing/multiplexing to create multiple tones simutaneously. |
|`STARTUP_SONG` | `STARTUP_SOUND` |Plays when the keyboard starts up (audio.c) |
|`GOODBYE_SONG` | `GOODBYE_SOUND` |Plays when you press the RESET key (quantum.c) |
|`GOODBYE_SONG` | `GOODBYE_SOUND` |Plays when you press the QK_BOOT key (quantum.c) |
|`AG_NORM_SONG` | `AG_NORM_SOUND` |Plays when you press AG_NORM (process_magic.c) |
|`AG_SWAP_SONG` | `AG_SWAP_SOUND` |Plays when you press AG_SWAP (process_magic.c) |
|`CG_NORM_SONG` | `AG_NORM_SOUND` |Plays when you press CG_NORM (process_magic.c) |

View File

@@ -6,9 +6,9 @@ a modern alternative to Caps Lock:
* Letters are capitalized while active, and Caps Word automatically disables
itself at the end of the word. That is, it stops by default once a space or
any key other than `a`--`z`, `0`--`9`, `-`, `_`, delete, or backspace is
pressed. Caps Word also disables itself if the keyboard is idle for 5 seconds.
This is configurable, see below.
any key other than `KC_A`--`KC_Z`, `KC_0`--`KC_9`, `KC_MINS`, `KC_UNDS`,
`KC_DELETE`, or `KC_BACKSPACE` is pressed. Caps Word also disables itself if
the keyboard is idle for 5 seconds. This is configurable, see below.
* To avoid requiring a dedicated key for Caps Word, there is an option
(`BOTH_SHIFTS_TURNS_ON_CAPS_WORD`) to activate Caps Word by simultaneously
@@ -16,7 +16,17 @@ a modern alternative to Caps Lock:
* The implementation does not use the Caps Lock (`KC_CAPS`) keycode. Caps Word
works even if you're remapping Caps Lock at the OS level to Ctrl or something
else, as Emacs and Vim users often do.
else, as Emacs and Vim users often do. As a consequence, Caps Word does not
follow the typical Caps Lock behaviour and may thus act in potentially
unexpected ways, especially when using an *OS* keyboard layout other than US
or UK. For example, Dvorak's <kbd>, <</kbd> key (`DV_COMM` aka `KC_W`) will
get shifted because Caps Word interprets that keycode as the letter 'W' by
default, the Spanish <kbd>Ñ</kbd> key (`ES_NTIL` aka `KC_SCLN`) will not get
capitalized because Caps Word interprets it as the semicolon ';' punctuation
character, and the US hyphen key (`KC_MINS`), while unaffected by Caps Lock,
is shifted by Caps Word. However, this is not really a problem because you can
[configure which keys should Caps Word
shift](#configure-which-keys-are-word-breaking).
## How do I enable Caps Word :id=how-do-i-enable-caps-word
@@ -60,7 +70,7 @@ time, since both use the Left Shift + Right Shift key combination."**
Many keyboards enable the [Command feature](feature_command.md), which by
default is also activated using the Left Shift + Right Shift key combination. To
fix this conflict, please disable Command by adding in rules.mk:
fix this conflict, please disable Command by adding in rules.mk:
```make
COMMAND_ENABLE = no
@@ -81,7 +91,7 @@ by defining `IS_COMMAND()` in config.h:
Caps Word turns off automatically if no keys are pressed for
`CAPS_WORD_IDLE_TIMEOUT` milliseconds. The default is 5000 (5 seconds).
Configure the timeout duration in config.h, for instance
Configure the timeout duration in config.h, for instance
```c
#define CAPS_WORD_IDLE_TIMEOUT 3000 // 3 seconds.

View File

@@ -255,7 +255,7 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode
```
## Variable Length Combos
If you leave `COMBO_COUNT` undefined in `config.h`, it allows you to programmatically declare the size of the Combo data structure and avoid updating `COMBO_COUNT`. Instead a variable called `COMBO_LEN` has to be set. It can be set with something similar to the following in `keymap.c`: `uint16_t COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]);` or by adding `COMBO_LENGTH` as the *last* entry in the combo enum and then `uint16_t COMBO_LEN = COMBO_LENGTH;` as such:
If you leave `COMBO_COUNT` undefined in `config.h`, it allows you to programmatically declare the size of the Combo data structure and avoid updating `COMBO_COUNT`. Instead a variable called `COMBO_LEN` has to be set. It can be set with something similar to the following in `keymap.c`: `uint16_t COMBO_LEN = ARRAY_SIZE(key_combos);` or by adding `COMBO_LENGTH` as the *last* entry in the combo enum and then `uint16_t COMBO_LEN = COMBO_LENGTH;` as such:
```c
enum myCombos {
...,
@@ -326,7 +326,7 @@ bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key
If you, for example, use multiple base layers for different key layouts, one for QWERTY, and another one for Colemak, you might want your combos to work from the same key positions on all layers. Defining the same combos again for another layout is redundant and takes more memory. The solution is to just check the keycodes from one layer.
With `#define COMBO_ONLY_FROM_LAYER _LAYER_A` the combos' keys are always checked from layer `_LAYER_A` even though the active layer would be `_LAYER_B`.
With `#define COMBO_ONLY_FROM_LAYER 0` in config.h, the combos' keys are always checked from layer `0`, even if other layers are active.
## User callbacks

View File

@@ -14,6 +14,10 @@ Currently the following converters are available:
| `promicro` | `kb2040` |
| `promicro` | `promicro_rp2040` |
| `promicro` | `blok` |
| `promicro` | `bit_c_pro` |
| `promicro` | `stemcell` |
| `promicro` | `bonsai_c4` |
| `promicro` | `elite_pi` |
See below for more in depth information on each converter.
@@ -48,12 +52,16 @@ Once a converter is enabled, it exposes the `CONVERT_TO_<target_uppercase>` flag
If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are:
| Device | Target |
|------------------------------------------------------------------------|-------------------|
| [Proton C](https://qmk.fm/proton-c/) | `proton_c` |
| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` |
| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `promicro_rp2040` |
| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` |
| Device | Target |
|------------------------------------------------------------------------------------------|-------------------|
| [Proton C](https://qmk.fm/proton-c/) | `proton_c` |
| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` |
| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `promicro_rp2040` |
| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` |
| [Bit-C PRO](https://nullbits.co/bit-c-pro) | `bit_c_pro` |
| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` |
| [customMK Bonsai C4](https://shop.custommk.com/products/bonsai-c4-microcontroller-board) | `bonsai_c4` |
| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` |
Converter summary:
@@ -63,6 +71,10 @@ Converter summary:
| `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` |
| `promicro_rp2040` | `-e CONVERT_TO=promicro_rp2040` | `CONVERT_TO=promicro_rp2040` | `#ifdef CONVERT_TO_PROMICRO_RP2040` |
| `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` |
| `bit_c_pro` | `-e CONVERT_TO=bit_c_pro` | `CONVERT_TO=bit_c_pro` | `#ifdef CONVERT_TO_BIT_C_PRO` |
| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` |
| `bonsai_c4` | `-e CONVERT_TO=bonsai_c4` | `CONVERT_TO=bonsai_c4` | `#ifdef CONVERT_TO_BONSAI_C4` |
| `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` |
### Proton C :id=proton_c
@@ -93,6 +105,37 @@ The following defaults are based on what has been implemented for [RP2040](platf
| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) |
| [Split keyboards](feature_split_keyboard.md) | Partial via `PIO` vendor driver - heavily dependent on enabled features |
### SparkFun Pro Micro - RP2040 and Blok :id=promicro_rp2040
### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO, and Elite-Pi :id=promicro_rp2040
Currently identical to [Adafruit KB2040](#kb2040).
### STeMCell :id=stemcell
Feature set currently identical to [Proton C](#proton_c).
There are two versions of STeMCell available, with different pinouts:
- v1.0.0
- v2.0.0 (pre-release v1.0.1, v1.0.2)
Default official firmware only supports v2.0.0 STeMCell.
STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips.
The following additional flags has to be used while compiling, based on the pin used for split communication.
| Split Pin | Compile flags |
|-----------|---------------|
| D3 | -e STMC_US=yes|
| D2 | Not needed |
| D1 | -e STMC_IS=yes|
| D0 | Not needed |
### Bonsai C4 :id=bonsai_c4
The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro TXLED (D5) and RXLED (B0) are mapped to it. If you want only one of them mapped, you can undefine one and redefine it to another pin by adding these line to your `config.h`:
```c
#undef B0
// If Vbus detection is unused, we can send RXLED to the Vbus detect pin instead
#define B0 PAL_LINE(GPIOA, 9)
```
No peripherals are enabled by default at this time, but example code to enable SPI, I2C, PWM, and Serial communications can be found [here](/keyboards/custommk/bonsai_c4_template)

View File

@@ -69,7 +69,7 @@ Additionally, if one side does not have an encoder, you can specify `{}` for the
## Encoder map :id=encoder-map
Encoder mapping may be added to your `keymap.c`, which replicates the normal keyswitch layer handling functionality, but with encoders. Add this to your `rules.mk`:
Encoder mapping may be added to your `keymap.c`, which replicates the normal keyswitch layer handling functionality, but with encoders. Add this to your keymap's `rules.mk`:
```make
ENCODER_MAP_ENABLE = yes
@@ -88,6 +88,16 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif
```
?> This should only be enabled at the keymap level.
Using encoder mapping pumps events through the normal QMK keycode processing pipeline, resulting in a _keydown/keyup_ combination pushed through `process_record_xxxxx()`. To configure the amount of time between the encoder "keyup" and "keydown", you can add the following to your `config.h`:
```c
#define ENCODER_MAP_KEY_DELAY 10
```
?> By default, the encoder map delay matches the value of `TAP_CODE_DELAY`.
## Callbacks
When not using `ENCODER_MAP_ENABLE = yes`, the callback functions can be inserted into your `<keyboard>.c`:
@@ -119,40 +129,43 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}
```
!> 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.
!> 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:
```c
bool encoder_update_user(uint8_t index, bool clockwise) {
if (get_highest_layer(layer_state|default_layer_state) > 0) {
if (index == 0) {
if (clockwise) {
tap_code(KC_WH_D);
} else {
tap_code(KC_WH_U);
switch(get_highest_layer(layer_state|default_layer_state)) {
case 0:
if (index == 0) {
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
} else if (index == 1) {
if (clockwise) {
rgb_matrix_increase_speed();
} else {
rgb_matrix_decrease_speed();
}
}
} else if (index == 1) {
if (clockwise) {
tap_code_delay(KC_VOLU, 10);
} else {
tap_code_delay(KC_VOLD, 10);
break;
case 1:
if (index == 0) {
if (clockwise) {
tap_code(KC_WH_D);
} else {
tap_code(KC_WH_U);
}
} else if (index == 1) {
if (clockwise) {
tap_code_delay(KC_VOLU, 10);
} else {
tap_code_delay(KC_VOLD, 10);
}
}
}
} else { /* Layer 0 */
if (index == 0) {
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
} else if (index == 1) {
if (clockwise) {
rgb_matrix_increase_speed();
} else {
rgb_matrix_decrease_speed();
}
}
break;
}
return false;
}
@@ -169,7 +182,7 @@ The A an B lines of the encoders should be wired directly to the MCU, and the C/
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
- 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
```
@@ -182,4 +195,4 @@ You could even support three encoders using only three pins (one per encoder) ho
#define ENCODERS_PAD_A { B1, B1, B2 }
#define ENCODERS_PAD_B { B2, B3, B3 }
```
Here rotating Encoder 0 `B1 B2` and Encoder 1 `B1 B3` could be interpreted as rotating Encoder 2 `B2 B3` or `B3 B2` depending on the timing. This may still be a useful configuration depending on your use case
Here rotating Encoder 0 `B1 B2` and Encoder 1 `B1 B3` could be interpreted as rotating Encoder 2 `B2 B3` or `B3 B2` depending on the timing. This may still be a useful configuration depending on your use case

View File

@@ -349,7 +349,7 @@ If the keycode is `KC_CAPS`, it waits `TAP_HOLD_CAPS_DELAY` milliseconds instead
Like `tap_code(<kc>)`, but with a `delay` parameter for specifying arbitrary intervals before sending the unregister event.
#### `register_code16(<kc>);`, `unregister_code16(<kc>);` and `tap_code16(<kc>);`
#### `register_code16(<kc>);`, `unregister_code16(<kc>);`, `tap_code16(<kc>);` and `tap_code16_delay(<kc>, <delay>);`
These functions work similar to their regular counterparts, but allow you to use modded keycodes (with Shift, Alt, Control, and/or GUI applied to them).

View File

@@ -14,8 +14,6 @@ Tested combinations:
Hardware configurations using Arm-based microcontrollers or different sizes of OLED modules may be compatible, but are untested.
!> Warning: This OLED driver currently uses the new i2c_master driver from Split Common code. If your split keyboard uses I2C to communicate between sides, this driver could cause an address conflict (serial is fine). Please contact your keyboard vendor and ask them to migrate to the latest Split Common code to fix this. In addition, the display timeout system to reduce OLED burn-in also uses Split Common to detect keypresses, so you will need to implement custom timeout logic for non-Split Common keyboards.
## Usage
To enable the OLED feature, there are two steps. First, when compiling your keyboard, you'll need to add the following to your `rules.mk`:

View File

@@ -10,7 +10,7 @@ POINTING_DEVICE_ENABLE = yes
## Sensor Drivers
There are a number of sensors that are supported by default. Note that only one sensor can be enabled by `POINTING_DEVICE_DRIVER` at a time. If you need to enable more than one sensor, then you need to implement it manually.
There are a number of sensors that are supported by default. Note that only one sensor can be enabled by `POINTING_DEVICE_DRIVER` at a time. If you need to enable more than one sensor, then you need to implement it manually, using the `custom` driver.
### ADNS 5050 Sensor
@@ -22,11 +22,13 @@ POINTING_DEVICE_DRIVER = adns5050
The ADNS 5050 sensor uses a serial type protocol for communication, and requires an additional light source.
| Setting | Description |
| ------------------- | ------------------------------------------------------------------- |
| `ADNS5050_SCLK_PIN` | (Required) The pin connected to the clock pin of the sensor. |
| `ADNS5050_SDIO_PIN` | (Required) The pin connected to the data pin of the sensor. |
| `ADNS5050_CS_PIN` | (Required) The pin connected to the cable select pin of the sensor. |
| Setting | Description | Default |
| ------------------- | ------------------------------------------------------------------- | -------------------------- |
| `ADNS5050_SCLK_PIN` | (Required) The pin connected to the clock pin of the sensor. | `POINTING_DEVICE_SCLK_PIN` |
| `ADNS5050_SDIO_PIN` | (Required) The pin connected to the data pin of the sensor. | `POINTING_DEVICE_SDIO_PIN` |
| `ADNS5050_CS_PIN` | (Required) The pin connected to the cable select pin of the sensor. | `POINTING_DEVICE_CS_PIN` |
The CPI range is 125-1375, in increments of 125. Defaults to 500 CPI.
@@ -40,13 +42,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. | `POINTING_DEVICE_CS_PIN` |
The CPI range is 800-8200, in increments of 200. Defaults to 1800 CPI.
@@ -89,52 +91,76 @@ POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
This supports the Cirque Pinnacle 1CA027 Touch Controller, which is used in the TM040040, TM035035 and the TM023023 trackpads. These are I2C or SPI compatible, and both configurations are supported.
| Setting | Description | Default |
| -------------------------------- | ---------------------------------------------------------- | ------------------ |
| `CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` |
| `CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` |
| `CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` |
| `CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` |
| `CIRQUE_PINNACLE_DIAMETER_MM` | (Optional) Diameter of the trackpad sensor in millimeters. | `40` |
| `CIRQUE_PINNACLE_ATTENUATION` | (Optional) Sets the attenuation of the sensor data. | `ADC_ATTENUATE_4X` |
| `CIRQUE_PINNACLE_CURVED_OVERLAY` | (Optional) Applies settings tuned for curved overlay. | _not defined_ |
#### Common settings
**`CIRQUE_PINNACLE_ATTENUATION`** is a measure of how much data is suppressed in regards to sensitivity. The higher the attenuation, the less sensitive the touchpad will be.
| Setting | Description | Default |
| -------------------------------- | ---------------------------------------------------------- | ------------------------------------------- |
| `CIRQUE_PINNACLE_DIAMETER_MM` | (Optional) Diameter of the trackpad sensor in millimeters. | `40` |
| `CIRQUE_PINNACLE_ATTENUATION` | (Optional) Sets the attenuation of the sensor data. | `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_4X` |
| `CIRQUE_PINNACLE_CURVED_OVERLAY` | (Optional) Applies settings tuned for curved overlay. | _not defined_ |
| `CIRQUE_PINNACLE_POSITION_MODE` | (Optional) Mode of operation. | _not defined_ |
**`CIRQUE_PINNACLE_ATTENUATION`** is a measure of how much data is suppressed in regards to sensitivity. The higher the attenuation, the less sensitive the touchpad will be.
Default attenuation is set to 4X, although if you are using a thicker overlay (such as the curved overlay) you will want a lower attenuation such as 2X. The possible values are:
* `ADC_ATTENUATE_4X`: Least sensitive
* `ADC_ATTENUATE_3X`
* `ADC_ATTENUATE_2X`
* `ADC_ATTENUATE_1X`: Most sensitive
* `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_4X`: Least sensitive
* `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_3X`
* `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X`
* `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_1X`: Most sensitive
**`CIRQUE_PINNACLE_POSITION_MODE`** can be `CIRQUE_PINNACLE_ABSOLUTE_MODE` or `CIRQUE_PINNACLE_RELATIVE_MODE`. Modes differ in supported features/gestures.
* `CIRQUE_PINNACLE_ABSOLUTE_MODE`: Reports absolute x, y, z (touch pressure) coordinates and up to 5 hw buttons connected to the trackpad
* `CIRQUE_PINNACLE_RELATIVE_MODE`: Reports x/y deltas, scroll and up to 3 buttons (2 of them can be from taps, see gestures) connected to trackpad. Supports taps on secondary side of split. Saves about 2k of flash compared to absolute mode with all features.
| I2C Setting | Description | Default |
| ------------------------- | ------------------------------------------------------------------------------- | ------- |
| `CIRQUE_PINNACLE_ADDR` | (Required) Sets the I2C Address for the Cirque Trackpad | `0x2A` |
| `CIRQUE_PINNACLE_TIMEOUT` | (Optional) The timeout for i2c communication with the trackpad in milliseconds. | `20` |
| SPI Setting | Description | Default |
| ------------------------------ | ---------------------------------------------------------------------- | ------------- |
| `CIRQUE_PINNACLE_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `1000000` |
| `CIRQUE_PINNACLE_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
| `CIRQUE_PINNACLE_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `1` |
| `CIRQUE_PINNACLE_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
| `CIRQUE_PINNACLE_SPI_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
| SPI Setting | Description | Default |
| ------------------------------ | ---------------------------------------------------------------------- | ------------------------ |
| `CIRQUE_PINNACLE_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `1000000` |
| `CIRQUE_PINNACLE_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
| `CIRQUE_PINNACLE_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `1` |
| `CIRQUE_PINNACLE_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
| `CIRQUE_PINNACLE_SPI_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | `POINTING_DEVICE_CS_PIN` |
Default Scaling is 1024. Actual CPI depends on trackpad diameter.
Also see the `POINTING_DEVICE_TASK_THROTTLE_MS`, which defaults to 10ms when using Cirque Pinnacle, which matches the internal update rate of the position registers (in standard configuration). Advanced configuration for pen/stylus usage might require lower values.
#### Cirque Trackpad gestures
#### Absolute mode settings
| Gesture Setting | Description | Default |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------- |
| `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE` | (Optional) Enable inertial cursor. Cursor continues moving after a flick gesture and slows down by kinetic friction | _not defined_ |
| `CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE` | (Optional) Enable circular scroll. Touch originating in outer ring can trigger scroll by moving along the perimeter. Near side triggers vertical scroll and far side triggers horizontal scroll. | _not defined_ |
| `CIRQUE_PINNACLE_TAP_ENABLE` | (Optional) Enable tap to click. This currently only works on the master side. | _not defined_ |
| `CIRQUE_PINNACLE_TAPPING_TERM` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
| `CIRQUE_PINNACLE_TOUCH_DEBOUNCE` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
| Setting | Description | Default |
| -------------------------------- | ---------------------------------------------------------- | ------------------ |
| `CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` |
| `CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` |
| `CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` |
| `CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` |
**`POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE`** is not specific to Cirque trackpad; any pointing device with a lift/contact status can integrate this gesture into its driver. e.g. PMW3360 can use Lift_Stat from Motion register. Note that `POINTING_DEVICE_MOTION_PIN` cannot be used with this feature; continuous polling of `pointing_device_get_report()` is needed to generate glide reports.
#### Absolute mode gestures
| Gesture Setting | Description | Default |
| ---------------------------------------------- | ------------------------------------------------------------------------------ | -------------------- |
| `CIRQUE_PINNACLE_TAP_ENABLE` | (Optional) Enable tap to click. This currently only works on the master side. | _not defined_ |
| `CIRQUE_PINNACLE_TAPPING_TERM` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
| `CIRQUE_PINNACLE_TOUCH_DEBOUNCE` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
`POINTING_DEVICE_GESTURES_SCROLL_ENABLE` in this mode enables circular scroll. Touch originating in outer ring can trigger scroll by moving along the perimeter. Near side triggers vertical scroll and far side triggers horizontal scroll.
Additionally, `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE` is supported in this mode.
#### Relative mode gestures
| Gesture Setting | Description | Default |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `CIRQUE_PINNACLE_TAP_ENABLE` | (Optional) Enable tap to "left click". Works on both sides of a split keyboard. | _not defined_ |
| `CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE` | (Optional) Tap in upper right corner (half of the finger needs to be outside of the trackpad) of the trackpad will result in "right click". `CIRQUE_PINNACLE_TAP_ENABLE` must be enabled. | _not defined_ |
Tapping term and debounce are not configurable in this mode since it's handled by trackpad internally.
`POINTING_DEVICE_GESTURES_SCROLL_ENABLE` in this mode enables side scroll. Touch originating on the right side can trigger vertical scroll (IntelliSense trackpad style).
### PAW 3204 Sensor
@@ -146,14 +172,13 @@ POINTING_DEVICE_DRIVER = paw3204
The paw 3204 sensor uses a serial type protocol for communication, and requires an additional light source.
| Setting | Description |
|--------------------|---------------------------------------------------------------------|
|`PAW3204_SCLK_PIN` | (Required) The pin connected to the clock pin of the sensor. |
|`PAW3204_SDIO_PIN` | (Required) The pin connected to the data pin of the sensor. |
| Setting | Description | Default |
| ------------------ |--------------------------------------------------------------- | -------------------------- |
| `PAW3204_SCLK_PIN` | (Required) The pin connected to the clock pin of the sensor. | `POINTING_DEVICE_SCLK_PIN` |
| `PAW3204_SDIO_PIN` | (Required) The pin connected to the data pin of the sensor. | `POINTING_DEVICE_SDIO_PIN` |
The CPI range is 400-1600, with supported values of (400, 500, 600, 800, 1000, 1200 and 1600). Defaults to 1000 CPI.
### Pimoroni Trackball
To use the Pimoroni Trackball module, add this to your `rules.mk`:
@@ -194,15 +219,15 @@ The CPI range is 50-16000, in increments of 50. Defaults to 2000 CPI.
Both PMW 3360 and PMW 3389 are SPI driven optical sensors, that use a built in IR LED for surface tracking.
| Setting | Description | Default |
| ---------------------------- | ------------------------------------------------------------------------------------------- | ------------- |
| `PMW33XX_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
| `PMW33XX_CS_PINS` | (Alternative) Sets the Cable Select pins connected to multiple sensors. | _not defined_ |
| `PMW33XX_CPI` | (Optional) Sets counts per inch sensitivity of the sensor. | _varies_ |
| `PMW33XX_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
| `PMW33XX_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
| `PMW33XX_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` |
| Setting | Description | Default |
| ---------------------------- | ------------------------------------------------------------------------------------------- | ------------------------ |
| `PMW33XX_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | `POINTING_DEVICE_CS_PIN` |
| `PMW33XX_CS_PINS` | (Alternative) Sets the Cable Select pins connected to multiple sensors. | _not defined_ |
| `PMW33XX_CPI` | (Optional) Sets counts per inch sensitivity of the sensor. | _varies_ |
| `PMW33XX_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
| `PMW33XX_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
| `PMW33XX_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` |
To use multiple sensors, instead of setting `PMW33XX_CS_PIN` you need to set `PMW33XX_CS_PINS` and also handle and merge the read from this sensor in user code.
Note that different (per sensor) values of CPI, speed liftoff, rotational angle or flipping of X/Y is not currently supported.
@@ -255,18 +280,27 @@ 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_ |
| `POINTING_DEVICE_TASK_THROTTLE_MS` | (Optional) Limits the frequency that the sensor is polled for motion. | _not defined_ |
| Setting | Description | Default |
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `MOUSE_EXTENDED_REPORT` | (Optional) Enables support for extended mouse reports. (-32767 to 32767, instead of just -127 to 127). | _not defined_ |
| `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_ |
| `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE` | (Optional) Enable inertial cursor. Cursor continues moving after a flick gesture and slows down by kinetic friction. | _not defined_ |
| `POINTING_DEVICE_GESTURES_SCROLL_ENABLE` | (Optional) Enable scroll gesture. The gesture that activates the scroll is device dependent. | _not defined_ |
| `POINTING_DEVICE_CS_PIN` | (Optional) Provides a default CS pin, useful for supporting multiple sensor configs. | _not defined_ |
| `POINTING_DEVICE_SDIO_PIN` | (Optional) Provides a default SDIO pin, useful for supporting multiple sensor configs. | _not defined_ |
| `POINTING_DEVICE_SCLK_PIN` | (Optional) Provides a default SCLK pin, useful for supporting multiple sensor configs. | _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.
The `POINTING_DEVICE_CS_PIN`, `POINTING_DEVICE_SDIO_PIN`, and `POINTING_DEVICE_SCLK_PIN` provide a convenient way to define a single pin that can be used for an interchangeable sensor config. This allows you to have a single config, without defining each device. Each sensor allows for this to be overridden with their own defines.
!> Any pointing device with a lift/contact status can integrate inertial cursor feature into its driver, controlled by `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE`. e.g. PMW3360 can use Lift_Stat from Motion register. Note that `POINTING_DEVICE_MOTION_PIN` cannot be used with this feature; continuous polling of `get_report()` is needed to generate glide reports.
## Split Keyboard Configuration
@@ -282,7 +316,6 @@ The following configuration options are only available when using `SPLIT_POINTIN
| `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_ |
| `MOUSE_EXTENDED_REPORT` | (Optional) Enables support for extended mouse reports. (-32767 to 32767, instead of just -127 to 127) |
!> 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.
@@ -454,4 +487,13 @@ report_mouse_t pointing_device_task_combined_user(report_mouse_t left_report, re
return pointing_device_combine_reports(left_report, right_report);
}
```
=======
# Troubleshooting
If you are having issues with pointing device drivers debug messages can be enabled that will give you insights in the inner workings. To enable these add to your keyboards `config.h` file:
```c
#define POINTING_DEVICE_DEBUG
```
?> The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md).

View File

@@ -32,13 +32,14 @@ In rules.mk:
```make
PS2_MOUSE_ENABLE = yes
PS2_USE_BUSYWAIT = yes
PS2_ENABLE = yes
PS2_DRIVER = busywait
```
In your keyboard config.h:
```c
#ifdef PS2_USE_BUSYWAIT
#ifdef PS2_DRIVER_BUSYWAIT
# define PS2_CLOCK_PIN D1
# define PS2_DATA_PIN D2
#endif
@@ -52,13 +53,14 @@ In rules.mk:
```make
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
PS2_ENABLE = yes
PS2_DRIVER = interrupt
```
In your keyboard config.h:
```c
#ifdef PS2_USE_INT
#ifdef PS2_DRIVER_INTERRUPT
#define PS2_CLOCK_PIN D2
#define PS2_DATA_PIN D5
@@ -84,7 +86,8 @@ In rules.mk:
```
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
PS2_ENABLE = yes
PS2_DRIVER = interrupt
```
In your keyboard config.h:
@@ -108,13 +111,14 @@ In rules.mk:
```make
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart
```
In your keyboard config.h:
```c
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2

View File

@@ -917,15 +917,15 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
```
Layer indicator on all flagged keys:
Layer indicator on all keys:
```c
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
for (uint8_t i = led_min; i <= led_max; i++) {
switch(get_highest_layer(layer_state|default_layer_state)) {
case RAISE:
case 2:
rgb_matrix_set_color(i, RGB_BLUE);
break;
case LOWER:
case 1:
rgb_matrix_set_color(i, RGB_YELLOW);
break;
default:
@@ -935,7 +935,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
```
Layer indicator with only configured keys:
Layer indicator only on keys with configured keycodes:
```c
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (get_highest_layer(layer_state) > 0) {

View File

@@ -105,7 +105,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
## Effects and Animations
Not only can this lighting be whatever color you want,
if `RGBLIGHT_EFFECT_xxxx` or `RGBLIGHT_ANIMATIONS` is defined, you also have a number of animation modes at your disposal:
if `RGBLIGHT_EFFECT_xxxx` is defined, you also have a number of animation modes at your disposal:
|Mode number symbol |Additional number |Description |
|-----------------------------|-------------------|---------------------------------------|
@@ -125,13 +125,14 @@ Check out [this video](https://youtube.com/watch?v=VKrpPAHlisY) for a demonstrat
Note: For versions older than 0.6.117, The mode numbers were written directly. In `quantum/rgblight/rgblight.h` there is a contrast table between the old mode number and the current symbol.
### Effect and Animation Toggles
Use these defines to add or remove animations from the firmware. When you are running low on flash space, it can be helpful to disable animations you are not using.
|Define |Default |Description |
|------------------------------------|-------------|-------------------------------------------------------------------------|
|`RGBLIGHT_ANIMATIONS` |*Not defined*|Enable all additional animation modes. |
|`RGBLIGHT_ANIMATIONS` |*Not defined*|Enable all additional animation modes. (deprecated) |
|`RGBLIGHT_EFFECT_ALTERNATING` |*Not defined*|Enable alternating animation mode. |
|`RGBLIGHT_EFFECT_BREATHING` |*Not defined*|Enable breathing animation mode. |
|`RGBLIGHT_EFFECT_CHRISTMAS` |*Not defined*|Enable christmas animation mode. |
@@ -143,6 +144,8 @@ Use these defines to add or remove animations from the firmware. When you are ru
|`RGBLIGHT_EFFECT_STATIC_GRADIENT` |*Not defined*|Enable static gradient mode. |
|`RGBLIGHT_EFFECT_TWINKLE` |*Not defined*|Enable twinkle animation mode. |
!> `RGBLIGHT_ANIMATIONS` is being deprecated and animation modes should be explicitly defined.
### Effect and Animation Settings
The following options are used to tweak the various animations:
@@ -162,14 +165,12 @@ The following options are used to tweak the various animations:
|`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) |
### Example Usage to Reduce Memory Footprint
1. Remove `RGBLIGHT_ANIMATIONS` from `config.h`.
1. Selectively add the animations you want to enable. The following would enable two animations and save about 4KiB:
1. Selectively disable the animations you want to enable. The following would enable two animations and save about 4KiB:
```diff
#undef RGBLED_NUM
-#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
+#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8

View File

@@ -133,7 +133,7 @@ bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
This function is called when a keypress has come in, before it is processed. The keycode should be one of `QK_STENO_BOLT`, `QK_STENO_GEMINI`, or one of the `STN_*` key values.
```c
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE], int8_t n_pressed_keys);
bool post_process_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE], int8_t n_pressed_keys);
```
This function is called after a key has been processed, but before any decision about whether or not to send a chord. This is where to put hooks for things like, say, live displays of steno chords or keys.

View File

@@ -332,7 +332,8 @@ void x_finished(qk_tap_dance_state_t *state, void *user_data) {
// Last case is for fast typing. Assuming your key is `f`:
// For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
// In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); break;
default: break;
}
}
@@ -341,8 +342,9 @@ void x_reset(qk_tap_dance_state_t *state, void *user_data) {
case TD_SINGLE_TAP: unregister_code(KC_X); break;
case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
case TD_DOUBLE_HOLD: unregister_code(KC_LALT);
case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X);
case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break;
case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X); break;
default: break;
}
xtap_state.state = TD_NONE;
}

View File

@@ -119,15 +119,13 @@ The following input modes are available:
!> Using the _Unicode Hex Input_ input source may disable some Option-based shortcuts, such as Option+Left and Option+Right.
!> `UC_OSX` is a deprecated alias of `UC_MAC` that will be removed in future versions of QMK. All new keymaps should use `UC_MAC`.
* **`UC_LNX`**: Linux built-in IBus Unicode input. Supports code points up to `0x10FFFF` (all possible code points).
Enabled by default and works almost anywhere on IBus-enabled distros. Without IBus, this mode works under GTK apps, but rarely anywhere else.
By default, this mode uses Ctrl+Shift+U (`LCTL(LSFT(KC_U))`) to start Unicode input, but this can be changed by defining [`UNICODE_KEY_LNX`](#input-key-configuration) with a different keycode. This might be required for IBus versions ≥1.5.15, where Ctrl+Shift+U behavior is consolidated into Ctrl+Shift+E.
Users who wish support in non-GTK apps without IBus may need to resort to a more indirect method, such as creating a custom keyboard layout ([more on this method](#custom-linux-layout)).
* **`UC_WIN`**: _(not recommended)_ Windows built-in hex numpad Unicode input. Supports code points up to `0xFFFF`.
To enable, create a registry key under `HKEY_CURRENT_USER\Control Panel\Input Method` of type `REG_SZ` called `EnableHexNumpad` and set its value to `1`. This can be done from the Command Prompt by running `reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1` with administrator privileges. Reboot afterwards.
@@ -172,6 +170,7 @@ You can switch the input mode at any time by using the following keycodes. Addin
|`UNICODE_MODE_WIN` |`UC_M_WI`|`UC_WIN` |Switch to Windows input |
|`UNICODE_MODE_BSD` |`UC_M_BS`|`UC_BSD` |Switch to BSD input _(not implemented)_ |
|`UNICODE_MODE_WINC` |`UC_M_WC`|`UC_WINC` |Switch to Windows input using WinCompose |
|`UNICODE_MODE_EMACS` |`UC_M_EM`|`UC_EMACS` |Switch to emacs (`C-x-8 RET`) |
You can also switch the input mode by calling `set_unicode_input_mode(x)` in your code, where _x_ is one of the above input mode constants (e.g. `UC_LNX`).
@@ -205,6 +204,17 @@ The functions for starting and finishing Unicode input on your platform can be o
You can find the default implementations of these functions in [`process_unicode_common.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_unicode_common.c).
### Input Mode Callbacks
There are callbacks functions available that are called whenever the unicode input mode changes. The new input mode is passed to the function.
|Callback |Description |
|---------------------------------------------------|-----------------------------------------------------|
| `unicode_input_mode_set_kb(uint8_t input_mode)` | Callback for unicode input mode set, for keyboard. |
| `unicode_input_mode_set_user(uint8_t input_mode)` | Callback for unicode input mode set, for users. |
This feature can be used, for instance, to implement LED indicators for the current unicode input mode.
### Input Key Configuration
You can customize the keys used to trigger Unicode input for macOS, Linux and WinCompose by adding corresponding defines to your `config.h`. The default values match the platforms' default settings, so you shouldn't need to change this unless Unicode input isn't working, or you want to use a different key (e.g. in order to free up left or right Alt).

View File

@@ -34,7 +34,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Press the `QK_BOOT` keycode
* Press the `RESET` button on the PCB if available
* Short RST to GND quickly
2. Wait for the OS to detect the device
@@ -87,7 +87,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters; some variants may require you to reset twice within 750 milliseconds):
* Press the `RESET` keycode
* Press the `QK_BOOT` keycode
* Press the `RESET` button on the PCB if available
* Short RST to GND quickly
2. Wait for the OS to detect the device
@@ -123,7 +123,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters):
* Press the `RESET` keycode
* Press the `QK_BOOT` keycode
* Press the `RESET` button on the Teensy or PCB if available
* short RST to GND quickly
2. Wait for the OS to detect the device
@@ -153,7 +153,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Press the `QK_BOOT` keycode
* Keep the `BOOT` button held while quickly tapping the `RESET` button on the PCB
2. Wait for the OS to detect the device
3. Flash a .hex file
@@ -182,7 +182,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* Tap the `QK_BOOT` keycode
* Hold the salt key while plugging the keyboard in - for PS2AVRGB boards, this is usually the key connected to MCU pins A0 and B0, otherwise it will be documented in your keyboard's readme
2. Wait for the OS to detect the device
3. Flash a .hex file
@@ -223,7 +223,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Press the `QK_BOOT` keycode
* Press the `RESET` button on the PCB if available
* short RST to GND quickly
2. Wait for the OS to detect the device
@@ -256,7 +256,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode (may not work on STM32F042 devices)
* Tap the `QK_BOOT` keycode (may not work on STM32F042 devices)
* If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped
* Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
2. Wait for the OS to detect the device
@@ -292,7 +292,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* Tap the `QK_BOOT` keycode
* If a reset circuit is present, tap the `RESET` button on the PCB
* Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
2. Wait for the OS to detect the device
@@ -316,7 +316,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* Tap the `QK_BOOT` keycode
* Press the `RESET` button on the PCB
2. Wait for the OS to detect the device
3. Flash a .bin file
@@ -342,7 +342,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* Tap the `QK_BOOT` keycode
* Double-tap the `nRST` button on the PCB.
2. Wait for the OS to detect the device
3. Copy the .uf2 file to the new USB disk
@@ -353,7 +353,7 @@ or
CLI Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* Tap the `QK_BOOT` keycode
* Double-tap the `nRST` button on the PCB.
2. Wait for the OS to detect the device
3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/blackpill_f411_tinyuf2 --keymap default`
@@ -381,7 +381,7 @@ Compatible flashers:
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `QK_BOOTLOADER` keycode
* Tap the `QK_BOOT` keycode
* Hold the `BOOTSEL` button on the PCB while plugin in the usb cable.
* Double-tap the `RESET` button on the PCB<sup>1</sup>.
2. Wait for the OS to detect the device
@@ -393,7 +393,7 @@ or
CLI Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `QK_BOOTLOADER` keycode
* Tap the `QK_BOOT` keycode
* Hold the `BOOTSEL` button on the PCB while plugin in the usb cable.
* Double-tap the `RESET` button on the PCB<sup>1</sup>.
2. Wait for the OS to detect the device

View File

@@ -5,7 +5,7 @@ ps2avr(GB) boards use an ATmega32A microcontroller and a different bootloader. I
General flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode (may not work on all devices)
* Tap the `QK_BOOT` keycode (may not work on all devices)
* Hold the salt key while plugging the keyboard in (usually documented within keyboard readme)
2. Wait for the OS to detect the device
3. Flash a .hex file

View File

@@ -177,20 +177,25 @@ From here, you should have a working keyboard once you program a firmware.
Simple firmware can be created easily using the [Keyboard Firmware Builder](https://kbfirmware.com/) website. Recreate your layout using [Keyboard Layout Editor](https://www.keyboard-layout-editor.com), import it and recreate the matrix (if not already done as part of [planning the matrix](#planning-the-matrix).
Go through the rest of the tabs, assigning keys until you get to the last one where you can compile and download your firmware. The .hex file can be flashed straight onto your keyboard, and the .zip of source files can be modified for advanced functionality and compiled locally using the method described in [Building Your First Firmware](newbs_building_firmware?id=build-your-firmware).
Go through the rest of the tabs, assigning keys until you get to the last one where you can compile and download your firmware. The .hex file can be flashed straight onto your keyboard, or for advanced functionality, compiled locally after [Setting up Your Environment](newbs_getting_started.md).
The source given by Keyboard Firmware Builder is QMK, but is based on a version of QMK from early 2017. To compile the code from your .zip file in a modern version of QMK Firmware, you'll need to open the .zip and follow these instructions:
The source given by Keyboard Firmware Builder is QMK, but is based on a version of QMK from early 2017. To compile the firmware in a modern version of QMK Firmware, you'll need to export via the `Save Configuration` button, then run:
qmk import-kbfirmware /path/to/export.json
For example:
```
$ qmk import-kbfirmware ~/Downloads/gh62.json
Ψ Importing gh62.json.
⚠ Support here is basic - Consider using 'qmk new-keyboard' instead
Ψ Imported a new keyboard named gh62.
Ψ To start working on things, `cd` into keyboards/gh62,
Ψ or open the directory in your preferred text editor.
Ψ And build with qmk compile -kb gh62 -km default.
```
1. Extract the `kb` folder to `qmk_firmware/keyboards/handwired/`.
2. Open the extracted `kb` folder, then proceed to the `keymaps/default/` folder, and open `keymap.c`.
3. Locate and delete the `action_get_macro` code block:
```
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
...
return MACRO_NONE;
}
```
4. Save and close `keymap.c`.
## Flashing the Firmware

View File

@@ -21,7 +21,7 @@
"layers": [
["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
["KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","QK_BOOT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
```

View File

@@ -181,8 +181,6 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* ワンショットがタイムアウトするまでの時間
* `#define ONESHOT_TAP_TOGGLE 2`
* ワンショットトグルが引き起こされるまでのタップ数
* `#define QMK_KEYS_PER_SCAN 4`
* 走査ごとに1つ以上のキーを送信できるようにします。デフォルトでは、走査ごとに `process_record()` 経由で1つのキーイベントのみが送信されます。これはほとんどのタイピングにほとんど影響しませんが、多くのコードを入力しているか、走査レートが最初から遅い場合、キーイベントの処理に多少の遅延が生じる可能性があります。それぞれのプレスとリリースは別のイベントです。スキャン時間が 1ms 程度のキーボードの場合、とても高速なタイピストでさえ、実際にキーボードから数 ms 以上の遅延を発生させるのに必要な 500 キーストロークを1秒間に生成することはないでしょう。しかし、34ms の走査時間でコードを入力している場合はどうでしょうか?おそらくこれが必要です。
* `#define COMBO_COUNT 2`
* [コンボ](ja/feature_combo.md)機能で使っているコンボの数にこれを設定します。
* `#define COMBO_TERM 200`
@@ -196,8 +194,6 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `#define RGB_DI_PIN D7`
* WS2812 の DI 端子につなぐピン
* `#define RGBLIGHT_ANIMATIONS`
* RGB アニメーションを実行します
* `#define RGBLIGHT_LAYERS`
* オンとオフを切り替えることができる [ライトレイヤー](ja/feature_rgblight.md?id=lighting-layers) を定義できます。現在のキーボードレイヤーまたは Caps Lock 状態を表示するのに最適です。
* `#define RGBLIGHT_MAX_LAYERS`

View File

@@ -13,7 +13,7 @@
あなたはおそらくキーボードを「文鎮化」したくないでしょう。文鎮化するとファームウェアを書き換えられないようになります。リスクがあまりに高い(そしてそうでないかもしれない)ものの一部のリストを示します。
- キーボードマップに RESET が含まれない場合、DFU モードに入るには、PCB のリセットボタンを押す必要があります。底部のネジを外す必要があります。
- キーボードマップに QK_BOOT が含まれない場合、DFU モードに入るには、PCB のリセットボタンを押す必要があります。底部のネジを外す必要があります。
- tmk_core / common にあるファイルを触るとキーボードが操作不能になるかもしれません。
- .hex ファイルが大きすぎると問題を引き起こします; `make dfu` コマンドはブロックを削除し、サイズを検査し(おっと、間違った順序です!)、エラーを出力し、
キーボードへの書き込みに失敗し、DFU モードのままになります。

View File

@@ -23,7 +23,7 @@ Timer 3:
```
STARTUP_SONG // キーボードの起動時に再生 (audio.c)
GOODBYE_SONG // RESET キーを押すと再生 (quantum.c)
GOODBYE_SONG // QK_BOOT キーを押すと再生 (quantum.c)
AG_NORM_SONG // AG_NORM キーを押すと再生 (quantum.c)
AG_SWAP_SONG // AG_SWAP キーを押すと再生 (quantum.c)
CG_NORM_SONG // CG_NORM キーを押すと再生 (quantum.c)

View File

@@ -36,13 +36,14 @@ rules.mk で:
```makefile
PS2_MOUSE_ENABLE = yes
PS2_USE_BUSYWAIT = yes
PS2_ENABLE = yes
PS2_DRIVER = busywait
```
キーボードの config.h で:
```c
#ifdef PS2_USE_BUSYWAIT
#ifdef PS2_DRIVER_BUSYWAIT
# define PS2_CLOCK_PIN D1
# define PS2_DATA_PIN D2
#endif
@@ -56,13 +57,14 @@ rules.mk で:
```makefile
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
PS2_ENABLE = yes
PS2_DRIVER = interrupt
```
キーボードの config.h で:
```c
#ifdef PS2_USE_INT
#ifdef PS2_DRIVER_INTERRUPT
#define PS2_CLOCK_PIN D2
#define PS2_DATA_PIN D5
@@ -88,14 +90,14 @@ rules.mk で:
```makefile
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart
```
キーボードの config.h で:
```c
#ifdef PS2_USE_USART
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2

View File

@@ -77,7 +77,7 @@ bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
この関数はキーが押されるとキーが処理される前に呼び出されます。キーコードは `QK_STENO_BOLT``QK_STENO_GEMINI` あるいは `STN_*` キー値のいずれかでなければなりません。
```c
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed);
bool post_process_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed);
```
この関数はキーが処理された後、ただしコードを送信するかどうかを決める前に呼び出されます。`IS_PRESSED(record->event)` が false で、`pressed` が 0 または 1 の場合は、コードはまもなく送信されますが、まだ送信されてはいません。ここが速記コードあるいはキーのライブ表示などのフックを配置する場所です。

View File

@@ -34,7 +34,7 @@ BOOTLOADER = atmel-dfu
書き込み手順:
1. `RESET` キーコードを押すか、RESET ボタンをタップします(または RST を GND にショートします)。
1. `QK_BOOT` キーコードを押すか、RESET ボタンをタップします(または RST を GND にショートします)。
2. OS がデバイスを検知するのを待ちます。
3. メモリを消去します(自動的に実行されるかもしれません)
4. .hex ファイルを書き込みます
@@ -94,7 +94,7 @@ BOOTLOADER = caterina
書き込み手順:
1. `RESET` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます)
1. `QK_BOOT` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます)
2. OS がデバイスを検知するのを待ちます。
3. .hex ファイルを書き込みます
4. デバイスが自動的にリセットされるのを待ちます
@@ -141,7 +141,7 @@ BOOTLOADER = halfkay
書き込み手順:
1. `RESET` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます)
1. `QK_BOOT` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます)
2. OS がデバイスを検知するのを待ちます。
3. .hex ファイルを書き込みます
4. デバイスをアプリケーションモードにリセットします(自動的に実行されるかもしれません)
@@ -172,7 +172,7 @@ BOOTLOADER = USBasp
書き込み手順:
1. `RESET` キーコードを押すか、RST を GND にすばやくショートしながら、ブートピンを GND にショートしたままにします。
1. `QK_BOOT` キーコードを押すか、RST を GND にすばやくショートしながら、ブートピンを GND にショートしたままにします。
2. OS がデバイスを検知するのを待ちます。
3. .hex ファイルを書き込みます
4. デバイスをアプリケーションモードにリセットします(自動的に実行されるかもしれません)
@@ -203,7 +203,7 @@ BOOTLOADER = bootloadHID
書き込み手順:
1. 以下のいずれかの方法を使ってブートローダに入ります:
* `RESET` キーコードをタップします (全てのデバイスでは動作しないかもしれません)
* `QK_BOOT` キーコードをタップします (全てのデバイスでは動作しないかもしれません)
* キーボードを接続しながらソルトキーを押し続けます (通常はキーボードの readme に書かれています)
2. OS がデバイスを検知するのを待ちます。
3. .hex ファイルを書き込みます
@@ -227,7 +227,7 @@ BOOTLOADER = bootloadHID
書き込み手順:
1. 以下のいずれかの方法を使ってブートローダに入ります:
* `RESET` キーコードをタップします (STM32F042 デバイスでは動作しないかもしれません)
* `QK_BOOT` キーコードをタップします (STM32F042 デバイスでは動作しないかもしれません)
* リセット回路が存在する場合、RESET ボタンをタップします
* それ以外の場合は、(BOOT0 ボタンあるいはブリッジ経由で)BOOT0 を VCC にブリッジし、(REEST ボタンあるいはブリッジ経由で)RESET を GND にショートし、BOOT0 ブリッジを放す必要があります。
2. OS がデバイスを検知するのを待ちます。

View File

@@ -10,7 +10,7 @@ ps2avr(GB) キーボードは ATmega32A マイクロコントローラを使い
一般的な書き込みシーケンス:
1. 以下のいずれかの方法を使ってブートローダに入ります:
* `RESET` キーコードをタップします (全てのデバイスでは動作しないかもしれません)
* `QK_BOOT` キーコードをタップします (全てのデバイスでは動作しないかもしれません)
* ソルトキーを押し続けながらキーボードを接続します (通常はキーボードの readme に書かれています)
2. OS がデバイスを検知するのを待ちます。
3. .hex ファイルを書き込みます

View File

@@ -228,10 +228,10 @@
[Quantum キーコード](ja/quantum_keycodes.md#qmk-keycodes) も見てください。
|キー |エイリアス |説明 |
|--------------|-----------|---------------------------------------------------------|
|`RESET` | |ファームウエア書き込みのためにキーボードをブートローダーモードにします |
|`DEBUG` | |デバッグモードを切り替えます |
|`EEPROM_RESET`|`EEP_RST` |キーボードの EEPROM (不揮発メモリ) を再初期化します |
|-----------------|---------|---------------------------------------------------------|
|`QK_BOOTLOADER` |`QK_BOOT`|ファームウエア書き込みのためにキーボードをブートローダーモードにします |
|`QK_DEBUG_TOGGLE`|`DB_TOGG`|デバッグモードを切り替えます |
|`QK_CLEAR_EEPROM`|`EE_CLR` |キーボードの EEPROM (不揮発メモリ) を再初期化します |
## オーディオキー :id=audio-keys

View File

@@ -14,7 +14,7 @@ quantum 内の全てのキーコードは `0x0000` と `0xFFFF` の間の数値
## QMK キーコード :id=qmk-keycodes
| キー | エイリアス | 説明 |
|----------------|------------|--------------------------------------------------------|
| `RESET` | | 書き込みのために、キーボードを bootloader モードにする |
| `DEBUG` | | デバッグモードの切り替え |
| `EEPROM_RESET` | `EEP_RST` | キーボードの EEPROM (永続化メモリ) を再初期化する |
|-----------------|---------|--------------------------------------------------------|
|`QK_BOOTLOADER` |`QK_BOOT`| 書き込みのために、キーボードを bootloader モードにする |
|`QK_DEBUG_TOGGLE`|`DB_TOGG`| デバッグモードの切り替え |
|`QK_CLEAR_EEPROM`|`EE_CLR` | キーボードの EEPROM (永続化メモリ) を再初期化する |

View File

@@ -219,13 +219,13 @@ See also: [Basic Keycodes](keycodes_basic.md)
See also: [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
|Key |Aliases |Description |
|-----------------|---------|---------------------------------------------------------------------------------|
|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) |
|`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held |
|`QK_REBOOT` |`QK_RBT` |Resets the keyboard. Does not load the bootloader |
|Key |Aliases |Description |
|-----------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------|
|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) |
|`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held. Puts keyboard into bootloader mode if shift & control are held |
|`QK_REBOOT` |`QK_RBT` |Resets the keyboard. Does not load the bootloader |
## Audio Keys :id=audio-keys

View File

@@ -0,0 +1,189 @@
# Building QMK with GitHub Userspace
This is an intermediate QMK tutorial to setup an out-of-tree build environment with a personal GitHub repository. It avoids using a fork of the QMK firmware to store and build your keymap within its source tree. Keymap files will instead be stored in your own personal GitHub repository, in [Userspace](https://docs.qmk.fm/#/feature_userspace) format, and built with an action workflow. Unlike the [default tutorial](https://docs.qmk.fm/#/newbs), this guide requires some familiarity with using Git.
?> **Is This Guide For Me?**<br>
This is a lean setup to avoid space-consuming local build environment in your computer. Troubleshooting compile-time errors will be slower with commit uploads to GitHub for the compiler workflow.
## Prerequisites
The following are required to get started:
* [GitHub Account](https://github.com/new)
* A working account is required to setup and host your repository for GitHub Actions to build QMK firmware.
* [Text editor](newbs_learn_more_resources.md#text-editor-resources)
* Youll need a program that can edit and save plain text files. The default editor that comes with many OS's does not save plain text files, so you'll need to make sure that whatever editor you chose does.
* [Toolbox](https://github.com/qmk/qmk_toolbox)
* A graphical program for Windows and macOS that allows you to both program and debug your custom keyboard.
## Environment Setup
?> If you are familiar with using [github.dev](https://docs.github.com/en/codespaces/the-githubdev-web-based-editor), you can skip to [step 2](#_2-create-github-repository) and commit the code files that follows directly on GitHub using the web-based VSCode editor.
### 1. Install Git
A working Git client is required for your local operating system to commit and push changes to GitHub.
<!-- tabs:start -->
### ** Windows **
QMK maintains a bundle of MSYS2, the CLI and all necessary dependencies including Git. Install [QMK MSYS](https://msys.qmk.fm/) with the latest release [here](https://github.com/qmk/qmk_distro_msys/releases/latest). Git will be part of the bundle.
### ** macOS **
Install Homebrew following the instructions on https://brew.sh. Git will be part of the bundle.
### ** Linux/WSL **
It's very likely that you already have Git installed. If not, use one of the following commands:
* Debian / Ubuntu / Devuan: `sudo apt install -y git`
* Fedora / Red Hat / CentOS: `sudo yum -y install git`
* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git`
* Void: `sudo xbps-install -y git`
* Solus: `sudo eopkg -y install git`
* Sabayon: `sudo equo install dev-vcs/git`
* Gentoo: `sudo emerge dev-vcs/git`
<!-- tabs:end -->
### 2. GitHub authentication
If your GitHub account is not configured for [authenticated Git operations](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/), you will need to setup at least one of the following:
* [Personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
* [Connecting with SSH](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)
### 3. Create a repository
You will need a personal GitHub repository to host your QMK code. Follow [this guide](https://docs.github.com/en/get-started/quickstart/create-a-repo#create-a-repository) to create one named `qmk_keymap`. Do not proceed to commit any files just yet.
## Initial Code Commit
### Create template files
Run the following commands in your computer to create a folder with a few template files:
```
mkdir -p ~/qmk_keymap/.github/workflows
touch ~/qmk_keymap/.github/workflows/build.yml
touch ~/qmk_keymap/config.h
echo "SRC += source.c" > ~/qmk_keymap/rules.mk
echo "#include QMK_KEYBOARD_H" > ~/qmk_keymap/source.c
```
?> For Windows user running MSYS, those commands will create the folder `qmk_keymap/` and its content in the `C:\Users\<windows_username>\qmk_keymap\` path location.
### Add a JSON keymap
Visit the [QMK Configurator](https://config.qmk.fm/#/) to create a keymap file:
1. Select your keyboard from the drop-down list (and choose a layout if required).
2. Use your GitHub username for the **Keymap Name** field.
3. Customise the key layout according to your preference.
4. Select download next to **KEYMAP.JSON** and save the JSON file into the `~/qmk_keymap/` folder.
### Add a GitHub Action workflow
Open the file `~/qmk_keymap/.github/workflows/build.yml` with your favorite [text editor](newbs_learn_more_resources.md#text-editor-resources), paste the following workflow content, and save it:
```yml
name: Build QMK firmware
on: [push, workflow_dispatch]
jobs:
build:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
strategy:
fail-fast: false
matrix:
# List of keymap json files to build
file:
- username.json
# End of json file list
steps:
- name: Checkout QMK
uses: actions/checkout@v3
with:
repository: qmk/qmk_firmware
submodules: recursive
- name: Checkout userspace
uses: actions/checkout@v3
with:
path: users/${{ github.actor }}
- name: Build firmware
run: qmk compile "users/${{ github.actor }}/${{ matrix.file }}"
- name: Archive firmware
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: ${{ matrix.file }}_${{ github.actor }}
path: |
*.hex
*.bin
*.uf2
```
Replace `username.json` with the JSON file name that was downloaded from [QMK Configurator](https://config.qmk.fm/#/) in the previous step.
!> Do note that the `build.yml` file requires ***proper indentation*** for every line. Incorrect spacing will trigger workflow syntax errors.
### Commit files to GitHub
If you have completed all steps correctly, the folder `qmk_keymap/` will contain the following files:
```
|-- .github
| `-- workflows
| `-- build.yml
|-- rules.mk
|-- config.h
|-- source.c
|-- username.json
```
To commit and push them into GitHub, run the following commands (replacing `gh-username` with your GitHub user name):
```
cd ~/qmk_keymap
git init
git add -A
git commit -m "Initial QMK keymap commit"
git branch -M main
git remote add origin https://github.com/gh-username/qmk_keymap.git
git push -u origin main
```
?> Use your GitHub personal access token at the password prompt. If you have setup SSH access, replace `https://github.com/gh-username/qmk_keymap.git` with `git@github.com:gh-username/qmk_keymap.git` in the remote origin command above.
### Review workflow output
Files committed to GitHub in the previous step will automatically trigger the workflow to build the JSON file listed in `build.yml`. To review its output:
1. Visit your "**qmk_keymap**" repository page on [GitHub](https://github.com/).
2. Select **Actions** tab to display the "**Build QMK Firmware**" workflow.
3. Select that workflow to display its run from the last commit.
4. Successfully compiled firmware will be under the "**Artifacts**" section.
5. If there are build errors, review the job log for details.
Download and flash the firmware file into your keyboard using [QMK Toolbox](https://docs.qmk.fm/#/newbs_flashing?id=flashing-your-keyboard-with-qmk-toolbox).
## Customising your keymap
This setup and workflow relies on the QMK [Userspace](https://docs.qmk.fm/#/feature_userspace) feature. The build process will copy the QMK source codes and clone your repository into its `users/` folder in a container. You must adhere to the following guidelines when customising your keymaps:
* Keymap layout files must be retained in JSON format and cannot be converted to `keymap.c`.
* User callback and functions (e.g. `process_record_user()`) can be placed in the `source.c` file.
* Multiple keymap JSON files can be built in the same workflow. List them under `matrix.file:`, e.g.:
```yml
file:
- planck.json
- crkbd.json
```
* Code changes will require Git commit into GitHub to trigger the build workflow.
?> See [GitHub Actions guide](https://docs.github.com/en/actions/learn-github-actions) to learn more about development workflow.

View File

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

View File

@@ -0,0 +1,48 @@
# WeAct Blackpill (STM32F411)
The WeAct Blackpill is a popular choice for handwired boards, as it offers a powerful micro controller, USB Type C, a good number of pins to use, and a large amount of firmware space. All for a ~$6 USD price tag.
* [WeAct GitHub for F411 Blackpill](https://github.com/WeActTC/MiniSTM32F4x1)
* Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available.
![Blackpill F411](https://i.imgur.com/nCgeolTh.png)
## Pin Usage Limitations
While the Blackpill is a great choice to use in your keyboard, there are a number of caveats in regards to using them. The first is that a number of exposed pins cannot be used, or have special considerations/hardware tweaks that are required for proper opertion.
### Unusable pins
* Pins `A11` and `A12` are not useable because they're used for USB connection, and cannot be shared.
* In theory, these pins can be used. However, doing so may disable USB connectivity, outright, if used for anything other than a USB port
* Pin `B2` is used by `BOOT1` and cannot be used, without causing problems.
* `VBAT` is not a usable pin.
* `NRST` is not a usable pin.
### Pins to be avoided
* Pin `A9` is meant for VBUS Sense and should not be used, if it can be avoided. It has an internal pull-down resesitor, which may cause issues with usage. However, a pull-up resistor can work (~5.1k), but should be avoided.
* Pin `A10` can be used, but should be avoided. Any connection on this pin can prevent the bootloader from entering the proper mode for DFU flashing. A pull-up resistor (~22k) on this pin fixes the bootloader issue.
### Shared Usage
* Pin `A0` is shared with the User Key (button) on the controller. It can be used.
* Pin `C13` is shared with the onboard LED indicator, and is connected to +3.3V. This can be used, but may cause the LED to blink intermittently, depending on activity on the pin.
*
* Pins `A4`, `A5`, `A6` and `A7` are used by the SOI8 footprint on the back of the controller, that can be used for either an SPI Flash chip, or an SPI EEPROM chip. `A4` is the Chip Select pin, and cannot be shared. However, `A5`, `A6`, and `A7` are the `SCK`, `MISO`, and `MOSI` pins, respectively, and can be shared with other SPI devices.
### Limited Usage
* Pins `C13`, `C14`, and `C15` have limits on output current. They should be used only as input. Eg, they should not be used for row pins in COL2ROW matrix configurations, but can be used as column pins.
* This is because the column pins (in COL2ROW) are pulled up (the pullup strength is independant of the current sourcing limitation) and the ROW is driven low and sinks current, then we check the state of the COLs to look for keypresses.
* Pins `A0` and `B5` are not 5V tolerant, and should only be used with 3.3V compatible functionality.
## Additional Information
### Bootloader issuse
Due to the use of a 25MHz crystal, the controller may have issues entering the bootloader. Heating up the controller can help with this issue.
Also, if pin `A10` is connected to anything at all, it needs to have a pullup resistor (see [Pins to be avoided](#pins-to-be-avoided), above)
### Tiny UF2 Support
There is [tinyuf2 support for the WeAct Blackpill](https://github.com/adafruit/tinyuf2/tree/master/ports/stm32f4/boards/stm32f411ce_blackpill). Instructions on how to compile the bootloadr can be found [here](https://github.com/adafruit/tinyuf2#build-and-flash). Setting `BOOTLOADER = tinyuf2` will enable support for this user bootloader, and the correct configuration to prevent it from being overwritten when flashing firmware.

View File

@@ -12,7 +12,7 @@ The function `early_hardware_init_pre` is the earliest possible code that can be
This is executed before RAM gets cleared, and before clocks or GPIOs are configured; for example, ChibiOS delays are not likely to work at this point. After executing this function, RAM on the MCU may be zero'ed. Assigning values to variables during execution of this function may be overwritten.
As such, if you wish to override this API consider limiting use to writing to low-level registers. The default implementation of this function can be configured to jump to bootloader if a `RESET` key was pressed:
As such, if you wish to override this API consider limiting use to writing to low-level registers. The default implementation of this function can be configured to jump to bootloader if a `QK_BOOT` key was pressed:
| `config.h` override | Description | Default |
|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|

View File

@@ -46,9 +46,12 @@ Closed PRs (for inspiration, previous sets of review comments will help you elim
https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- `info.json`
- valid URL
- valid maintainer
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
- With the move to [data driven](https://docs.qmk.fm/#/data_driven_config) keyboard configuration, we encourage contributors to utilise as many features as possible of the info.json [schema](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema).
- the mandatory elements for a minimally complete `info.json` at present are:
- valid URL
- valid maintainer
- valid USB VID/PID and device version
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
- `readme.md`
- standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
- flash command is present, and has `:flash` at end
@@ -57,12 +60,16 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- a picture about the keyboard and preferably about the PCB, too
- images are not to be placed in the `qmk_firmware` repository
- images should be uploaded to an external image hosting service, such as [imgur](https://imgur.com/).
- if imgur is used, images should be resized appropriately: append "h" to the image url i.e. `https://i.imgur.com/vqgE7Ok.jpg` becomes `https://i.imgur.com/vqgE7Okh.jpg`
- `rules.mk`
- removed `MIDI_ENABLE`, `FAUXCLICKY_ENABLE` and `HD44780_ENABLE`
- modified `# Enable Bluetooth with the Adafruit EZ-Key HID` -> `# Enable Bluetooth`
- no `(-/+size)` comments related to enabling features
- remove the list of alternate bootloaders if one has been specified
- no re-definitions of the default MCU parameters if same value, when compared to the equivalent MCU in [mcu_selection.mk](https://github.com/qmk/qmk_firmware/blob/master/builddefs/mcu_selection.mk)
- no "keymap only" features enabled
- `COMBO_ENABLE`
- `ENCODER_MAP_ENABLE`
- keyboard `config.h`
- don't repeat `MANUFACTURER` in the `PRODUCT` value
- no `#define DESCRIPTION`

View File

@@ -8,10 +8,10 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
## QMK Keycodes :id=qmk-keycodes
|Key |Aliases |Description |
|-----------------|---------|---------------------------------------------------------------------------------|
|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) |
|`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held |
|`QK_REBOOT` |`QK_RBT` |Resets the keyboard. Does not load the bootloader |
|Key |Aliases |Description |
|-----------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------|
|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) |
|`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held. Puts keyboard into bootloader mode if shift & control are held |
|`QK_REBOOT` |`QK_RBT` |Resets the keyboard. Does not load the bootloader |

View File

@@ -27,6 +27,7 @@ Hardware supported:
| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ili9488_spi` |
| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ssd1351_spi` |
| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = st7789_spi` |
| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = st7735_spi` |
## Quantum Painter Configuration :id=quantum-painter-config
@@ -727,4 +728,30 @@ The maximum number of displays can be configured by changing the following in yo
#define ST7789_NUM_DEVICES 3
```
!> Some ST7789 devices are known to have different drawing offsets -- despite being a 240x320 pixel display controller internally, some display panels are only 240x240, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.
!> Some ST7789 devices are known to have different drawing offsets -- despite being a 240x320 pixel display controller internally, some display panels are only 240x240, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.
### ST7735 :id=qp-driver-st7735
Enabling support for the ST7735 in Quantum Painter is done by adding the following to `rules.mk`:
```make
QUANTUM_PAINTER_ENABLE = yes
QUANTUM_PAINTER_DRIVERS = st7735_spi
```
Creating a ST7735 device in firmware can then be done with the following API:
```c
painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
```
The device handle returned from the `qp_st7735_make_spi_device` function can be used to perform all other drawing operations.
The maximum number of displays can be configured by changing the following in your `config.h` (default is 1):
```c
// 3 displays:
#define ST7735_NUM_DEVICES 3
```
!> Some ST7735 devices are known to have different drawing offsets -- despite being a 132x162 pixel display controller internally, some display panels are only 80x160, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.

View File

@@ -188,7 +188,11 @@ If you've done all of this, and your firmware is still too large, then it's time
That said, there are a number of Pro Micro replacements with ARM controllers:
* [Proton C](https://qmk.fm/proton-c/) (out of stock)
* [Bonsai C](https://github.com/customMK/Bonsai-C) (Open Source, DIY/PCBA)
* [Raspberry Pi 2040](https://www.sparkfun.com/products/18288) (not currently supported, no ETA)
* [STeMCell](https://github.com/megamind4089/STeMCell) (Open Source, DIY/PCBA)
* [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040)
* [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288)
* [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622)
* [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040)
There are other, non-Pro Micro compatible boards out there. The most popular being:
* [WeAct Blackpill F411](https://www.aliexpress.com/item/1005001456186625.html) (~$6 USD)

View File

@@ -71,7 +71,7 @@ At the keyboard level we define a C macro (typically named `LAYOUT()`) which map
Notice how the second block of our `LAYOUT()` macro matches the Matrix Scanning array above? This macro is what will map the matrix scanning array to keycodes. However, if you look at a 17 key numpad you'll notice that it has 3 places where the matrix could have a switch but doesn't, due to larger keys. We have populated those spaces with `KC_NO` so that our keymap definition doesn't have to.
You can also use this macro to handle unusual matrix layouts, for example the [Clueboard rev 2](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/keyboards/clueboard/66/rev2/rev2.h). Explaining that is outside the scope of this document.
You can also use this macro to handle unusual matrix layouts, for example the [Alice](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/keyboards/sneakbox/aliceclone/aliceclone.h#L24). Explaining that is outside the scope of this document.
##### Keycode Assignment
@@ -127,39 +127,52 @@ Comparing against our keymap we can see that the pressed key is `KC_NUM`. From h
The `process_record()` function itself is deceptively simple, but hidden within is a gateway to overriding functionality at various levels of QMK. The chain of events is listed below, using cluecard whenever we need to look at the keyboard/keymap level functions. Depending on options set in `rules.mk` or elsewhere, only a subset of the functions below will be included in final firmware.
* [`void action_exec(keyevent_t event)`](https://github.com/qmk/qmk_firmware/blob/88fe5c16a5cdca5e3cf13ef3cd91f5f1e4898c37/quantum/action.c#L70-L131)
* [`void pre_process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/ed49dbeac4c0deba1c6b511ac1ce8f4c542e1b3e/quantum/quantum.c#L176-L185)
* [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_combo.c#L115)
* [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/common/action.c#L172)
* [`bool process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L206)
* [Map this record to a keycode](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L226)
* [`void velocikey_accelerate(void)`](https://github.com/qmk/qmk_firmware/blob/c1c5922aae7b60b7c7d13d3769350eed9dda17ab/quantum/velocikey.c#L27)
* [`void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_tap_dance.c#L119)
* [`bool process_key_lock(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_key_lock.c#L62)
* [`bool process_clicky(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_clicky.c#L79)
* [`bool process_haptic(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/2cee371bf125a6ec541dd7c5a809573facc7c456/drivers/haptic/haptic.c#L216)
* [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/keyboards/clueboard/card/card.c#L20)
* [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/keyboards/clueboard/card/keymaps/default/keymap.c#L58)
* [`bool process_midi(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_midi.c#L81)
* [`bool process_audio(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_audio.c#L19)
* [`bool process_steno(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_steno.c#L160)
* [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_music.c#L114)
* [`void action_exec(keyevent_t event)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/action.c#L78-L140)
* [`void pre_process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/quantum.c#L204)
* [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_combo.c#L521)
* [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/action.c#L254)
* [`bool process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/quantum.c#L224)
* [Map this record to a keycode](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/quantum.c#L225)
* [`void velocikey_accelerate(void)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/velocikey.c#L27)
* [`void update_wpm(uint16_t keycode)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/wpm.c#L109)
* [`void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_tap_dance.c#L118)
* [`bool process_key_lock(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_key_lock.c#L64)
* [`bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_dynamic_macro.c#L160)
* [`bool process_clicky(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_clicky.c#L84)
* [`bool process_haptic(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_haptic.c#L87)
* [`bool process_record_via(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/via.c#L160)
* [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/keyboards/planck/ez/ez.c#L271)
* [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/keyboards/planck/keymaps/default/keymap.c#L183)
* [`bool process_secure(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_secure.c#L23)
* [`bool process_sequencer(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_sequencer.c#L19)
* [`bool process_midi(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_midi.c#L75)
* [`bool process_audio(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_audio.c#L18)
* [`bool process_backlight(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_backlight.c#L25)
* [`bool process_steno(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_steno.c#L159)
* [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_music.c#L103)
* [`bool process_key_override(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/5a1b857dea45a17698f6baa7dd1b7a7ea907fb0a/quantum/process_keycode/process_key_override.c#L397)
* [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_tap_dance.c#L141)
* [`bool process_unicode_common(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicode_common.c#L169)
* [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_tap_dance.c#L135)
* [`bool process_caps_word(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_caps_word.c#L17)
* [`bool process_unicode_common(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_unicode_common.c#L290)
calls one of:
* [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicode.c#L20)
* [`bool process_unicodemap(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicodemap.c#L46)
* [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_ucis.c#L95)
* [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_leader.c#L51)
* [`bool process_printer(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_printer.c#L77)
* [`bool process_auto_shift(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_auto_shift.c#L94)
* `bool process_dynamic_tapping_term(uint16_t keycode, keyrecord_t *record)`
* [Identify and process Quantum-specific keycodes](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L291)
* [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_unicode.c#L21)
* [`bool process_unicodemap(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_unicodemap.c#L42)
* [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_ucis.c#L70)
* [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_leader.c#L48)
* [`bool process_printer(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_printer.c#L77)
* [`bool process_auto_shift(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_auto_shift.c#L353)
* [`bool process_dynamic_tapping_term(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_dynamic_tapping_term.c#L35)
* [`bool process_space_cadet(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_space_cadet.c#L123)
* [`bool process_magic(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_magic.c#L40)
* [`bool process_grave_esc(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_grave_esc.c#L23)
* [`bool process_rgb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_rgb.c#L53)
* [`bool process_joystick(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_joystick.c#L9)
* [`bool process_programmable_button(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/process_keycode/process_programmable_button.c#L21)
* [Identify and process Quantum-specific keycodes](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/quantum/quantum.c#L343)
At any step during this chain of events a function (such as `process_record_kb()`) can `return false` to halt all further processing.
After this is called, `post_process_record()` is called, which can be used to handle additional cleanup that needs to be run after the keycode is normally handled.
After this is called, `post_process_record()` is called, which can be used to handle additional cleanup that needs to be run after the keycode is normally handled.
* [`void post_process_record(keyrecord_t *record)`]()
* [`void post_process_record_quantum(keyrecord_t *record)`]()
@@ -167,7 +180,7 @@ After this is called, `post_process_record()` is called, which can be used to ha
* [`void post_process_clicky(uint16_t keycode, keyrecord_t *record)`]()
* [`void post_process_record_kb(uint16_t keycode, keyrecord_t *record)`]()
* [`void post_process_record_user(uint16_t keycode, keyrecord_t *record)`]()
<!--
#### Mouse Handling

View File

@@ -21,7 +21,7 @@
"layers": [
["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
["KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","QK_BOOT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
```

View File

@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
@@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DEC", "BL_INC",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"

View File

@@ -34,7 +34,7 @@ BOOTLOADER = atmel-dfu
刷写过程:
1. 使用如下任一方式进入bootloader模式
* 点击 `RESET` 键码
* 点击 `QK_BOOT` 键码
* 如果PCB上有 `RESET` 键,点击之
* 快速短接一下RST到GND
2. 等待操作系统识别到设备
@@ -84,7 +84,7 @@ BOOTLOADER = caterina
刷写过程:
1. 使用如下任一方式进入bootloader模式进入该模式后只有7秒时间可以刷写一些型号需要你在750ms内重置两次
* 点击 `RESET` 键码
* 点击 `QK_BOOT` 键码
* 如果PCB上有 `RESET` 键,点击之
* 快速短接一下RST到GND
2. 等待操作系统识别到设备
@@ -117,7 +117,7 @@ BOOTLOADER = halfkay
刷写过程:
1. 使用如下任一方式进入bootloader模式进入该模式后只有7秒时间可以刷写
* 点击 `RESET` 键码
* 点击 `QK_BOOT` 键码
* 如果Teensy上或PCB上有 `RESET` 键,点击之
* 快速短接一下RST到GND
2. 等待操作系统识别到设备
@@ -144,7 +144,7 @@ BOOTLOADER = usbasploader
刷写过程:
1. 使用如下任一方式进入bootloader模式
* 点击 `RESET` 键码
* 点击 `QK_BOOT` 键码
* 在按住 `BOOT` 按钮时快速点击一下PCB上的 `RESET`
2. 等待操作系统识别到设备
3. 将.hex文件刷写进去
@@ -171,7 +171,7 @@ BOOTLOADER = bootloadhid
刷写过程:
1. 使用如下任一方式进入bootloader模式
* 点击 `RESET` 键码
* 点击 `QK_BOOT` 键码
* 在按住“盐键”salt key时插入键盘 - 在PS2AVRGB板上通常在MCU的A0及B0引脚上有这个按键否则请查看键盘的使用说明。
2. 等待操作系统识别到设备
3. 将.hex文件刷写进去
@@ -212,7 +212,7 @@ BOOTLOADER = qmk-hid
刷写过程:
1. 使用如下任一方式进入bootloader模式
* 点击 `RESET` 键码
* 点击 `QK_BOOT` 键码
* 如果PCB上有 `RESET` 键,点击之
* 快速短接一下RST到GND
2. 等待操作系统识别到设备
@@ -242,7 +242,7 @@ BOOTLOADER = stm32-dfu
刷写过程:
1. 使用如下任一方式进入bootloader模式进入该模式后只有7秒时间可以刷写
* 点击 `RESET` 键码对STM32F042设备可能无效
* 点击 `QK_BOOT` 键码对STM32F042设备可能无效
* 如果有重置电路点击PCB上的 `RESET` 键;有些主控板上可能会有一个开关需要先打开
* 否则,你需要将 `BOOT0` 接线到VCC通过 `BOOT0` 按钮或跳线),短接 `RESET` 至GND通过 `RESET` 按钮或条线),然后断开 `BOOT0` 的接线。
2. 等待操作系统识别到设备
@@ -275,7 +275,7 @@ BOOTLOADER = stm32duino
刷写过程:
1. 使用如下任一方式进入bootloader模式进入该模式后只有7秒时间可以刷写
* 点击 `RESET` 键码对STM32F042设备可能无效
* 点击 `QK_BOOT` 键码对STM32F042设备可能无效
* 如果有重置电路点击PCB上的 `RESET` 键;有些主控板上可能会有一个开关需要先打开
* 否则,你需要将 `BOOT0` 接线到VCC通过 `BOOT0` 按钮或跳线),短接 `RESET` 至GND通过 `RESET` 按钮或条线),然后断开 `BOOT0` 的接线。
2. 等待操作系统识别到设备
@@ -296,7 +296,7 @@ Input Club出品的键盘使用NXP Kinetis微控制器而非STM32并使用了
刷写过程:
1. 使用如下任一方式进入bootloader模式
* 点击 `RESET` 键码有可能只能进入到“安全”bootloader模式参见[这里](https://github.com/qmk/qmk_firmware/issues/6112)
* 点击 `QK_BOOT` 键码有可能只能进入到“安全”bootloader模式参见[这里](https://github.com/qmk/qmk_firmware/issues/6112)
* 如果PCB上有 `RESET` 键,点击之
2. 等待操作系统识别到设备
3. 将.bin文件刷写进去
@@ -322,7 +322,7 @@ BOOTLOADER = tinyuf2
刷写过程:
1. 使用如下任一方式进入bootloader模式
* 点击 `RESET` 键码
* 点击 `QK_BOOT` 键码
* 双击PCB上的 `nRST`
2. 等待操作系统识别到设备
3. 将.uf2文件拷贝到新出现的USB存储设备上

View File

@@ -10,7 +10,7 @@ ps2avr(GB)基于一片ATmega32A微控制器及特殊的bootloader无法使用
常规刷写过程:
1. 使用如下任一方式进入bootloader模式
* 点击 `RESET` 键码(一些设备上不管用)
* 点击 `QK_BOOT` 键码(一些设备上不管用)
* 在按住“盐键”salt key时插入键盘该键一般会在键盘使用说明上写明
2. 等待操作系统识别到设备
3. 将.hex文件刷写进去

View File

@@ -79,9 +79,7 @@ struct sdep_msg {
enum queue_type {
QTKeyReport, // 1-byte modifier + 6-byte key report
QTConsumer, // 16-bit key code
#ifdef MOUSE_ENABLE
QTMouseMove, // 4-byte mouse report
#endif
};
struct queue_item {
@@ -442,7 +440,7 @@ bool bluefruit_le_enable_keyboard(void) {
// Disable command echo
static const char kEcho[] PROGMEM = "ATE=0";
// Make the advertised name match the keyboard
static const char kGapDevName[] PROGMEM = "AT+GAPDEVNAME=" STR(PRODUCT);
static const char kGapDevName[] PROGMEM = "AT+GAPDEVNAME=" PRODUCT;
// Turn on keyboard support
static const char kHidEnOn[] PROGMEM = "AT+BLEHIDEN=1";
@@ -581,10 +579,12 @@ static bool process_queue_item(struct queue_item *item, uint16_t timeout) {
snprintf(cmdbuf, sizeof(cmdbuf), fmtbuf, item->key.modifier, item->key.keys[0], item->key.keys[1], item->key.keys[2], item->key.keys[3], item->key.keys[4], item->key.keys[5]);
return at_command(cmdbuf, NULL, 0, true, timeout);
#ifdef EXTRAKEY_ENABLE
case QTConsumer:
strcpy_P(fmtbuf, PSTR("AT+BLEHIDCONTROLKEY=0x%04x"));
snprintf(cmdbuf, sizeof(cmdbuf), fmtbuf, item->consumer);
return at_command(cmdbuf, NULL, 0, true, timeout);
#endif
#ifdef MOUSE_ENABLE
case QTMouseMove:
@@ -658,7 +658,6 @@ void bluefruit_le_send_consumer_key(uint16_t usage) {
}
}
#ifdef MOUSE_ENABLE
void bluefruit_le_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons) {
struct queue_item item;
@@ -673,7 +672,6 @@ void bluefruit_le_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan,
send_buf_send_one();
}
}
#endif
uint32_t bluefruit_le_read_battery_voltage(void) {
return state.vbat;

View File

@@ -40,12 +40,10 @@ extern void bluefruit_le_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uin
* (milliseconds) */
extern void bluefruit_le_send_consumer_key(uint16_t usage);
#ifdef MOUSE_ENABLE
/* Send a mouse/wheel movement report.
* The parameters are signed and indicate positive or negative direction
* change. */
extern void bluefruit_le_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons);
#endif
/* Compute battery voltage by reading an analog pin.
* Returns the integer number of millivolts */

View File

@@ -14,6 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "rn42.h"
#include "report.h"
#include "uart.h"
@@ -69,33 +71,35 @@ void rn42_send_keyboard(report_keyboard_t *report) {
uart_write(0xFD);
uart_write(0x09);
uart_write(0x01);
uart_write(report->mods);
uart_write(0x00);
for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
uart_write(report->keys[i]);
}
uart_write(report->keys[0]);
uart_write(report->keys[1]);
uart_write(report->keys[2]);
uart_write(report->keys[3]);
uart_write(report->keys[4]);
uart_write(report->keys[5]);
}
void rn42_send_mouse(report_mouse_t *report) {
uart_write(0xFD);
uart_write(0x00);
uart_write(0x03);
uart_write(0x05);
uart_write(0x02);
uart_write(report->buttons);
uart_write(report->x);
uart_write(report->y);
uart_write(report->v); // should try sending the wheel v here
uart_write(report->h); // should try sending the wheel h here
uart_write(0x00);
uart_write(report->v);
}
void rn42_send_consumer(uint16_t data) {
static uint16_t last_data = 0;
if (data == last_data) return;
last_data = data;
uint16_t bitmap = rn42_consumer_usage_to_bitmap(data);
void rn42_send_consumer(uint16_t usage) {
uint16_t bitmap = rn42_consumer_usage_to_bitmap(usage);
uart_write(0xFD);
uart_write(0x03);
uart_write(0x03);
uart_write(bitmap & 0xFF);
uart_write((bitmap >> 8) & 0xFF);
uart_write(bitmap >> 8);
}

View File

@@ -14,6 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include "report.h"
void rn42_init(void);
@@ -22,4 +24,4 @@ void rn42_send_keyboard(report_keyboard_t *report);
void rn42_send_mouse(report_mouse_t *report);
void rn42_send_consumer(uint16_t data);
void rn42_send_consumer(uint16_t usage);

View File

@@ -207,7 +207,7 @@ flash_status_t flash_erase_sector(uint32_t addr) {
/* Check that the address exceeds the limit. */
if ((addr + (EXTERNAL_FLASH_SECTOR_SIZE)) >= (EXTERNAL_FLASH_SIZE) || ((addr % (EXTERNAL_FLASH_SECTOR_SIZE)) != 0)) {
dprintf("Flash erase sector address over limit! [addr:0x%x]\n", (uint32_t)addr);
dprintf("Flash erase sector address over limit! [addr:0x%lx]\n", (uint32_t)addr);
return FLASH_STATUS_ERROR;
}
@@ -247,7 +247,7 @@ flash_status_t flash_erase_block(uint32_t addr) {
/* Check that the address exceeds the limit. */
if ((addr + (EXTERNAL_FLASH_BLOCK_SIZE)) >= (EXTERNAL_FLASH_SIZE) || ((addr % (EXTERNAL_FLASH_BLOCK_SIZE)) != 0)) {
dprintf("Flash erase block address over limit! [addr:0x%x]\n", (uint32_t)addr);
dprintf("Flash erase block address over limit! [addr:0x%lx]\n", (uint32_t)addr);
return FLASH_STATUS_ERROR;
}
@@ -303,7 +303,7 @@ flash_status_t flash_read_block(uint32_t addr, void *buf, size_t len) {
}
#if defined(CONSOLE_ENABLE) && defined(DEBUG_FLASH_SPI_OUTPUT)
dprintf("[SPI FLASH R] 0x%08lX: ", addr);
dprintf("[SPI FLASH R] 0x%08lx: ", addr);
for (size_t i = 0; i < len; ++i) {
dprintf(" %02X", (int)(((uint8_t *)read_buf)[i]));
}
@@ -339,7 +339,7 @@ flash_status_t flash_write_block(uint32_t addr, const void *buf, size_t len) {
}
#if defined(CONSOLE_ENABLE) && defined(DEBUG_FLASH_SPI_OUTPUT)
dprintf("[SPI FLASH W] 0x%08lX: ", addr);
dprintf("[SPI FLASH W] 0x%08lx: ", addr);
for (size_t i = 0; i < write_length; i++) {
dprintf(" %02X", (int)(uint8_t)(write_buf[i]));
}

View File

@@ -20,11 +20,12 @@
#include "haptic.h"
#include "gpio.h"
#include "usb_device_state.h"
#include "util.h"
#include <stdlib.h>
uint8_t solenoid_dwell = SOLENOID_DEFAULT_DWELL;
static pin_t solenoid_pads[] = SOLENOID_PINS;
#define NUMBER_OF_SOLENOIDS (sizeof(solenoid_pads) / sizeof(pin_t))
#define NUMBER_OF_SOLENOIDS ARRAY_SIZE(solenoid_pads)
bool solenoid_on[NUMBER_OF_SOLENOIDS] = {false};
bool solenoid_buzzing[NUMBER_OF_SOLENOIDS] = {false};
uint16_t solenoid_start[NUMBER_OF_SOLENOIDS] = {0};
@@ -147,7 +148,7 @@ void solenoid_check(void) {
void solenoid_setup(void) {
#ifdef SOLENOID_PINS_ACTIVE_STATE
bool state_temp[] = SOLENOID_PINS_ACTIVE_STATE;
uint8_t bound_check = (sizeof(state_temp) / sizeof(bool));
uint8_t bound_check = ARRAY_SIZE(state_temp);
#endif
for (uint8_t i = 0; i < NUMBER_OF_SOLENOIDS; i++) {

View File

@@ -0,0 +1,218 @@
/* Copyright 2021 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ckled2001-simple.h"
#include "i2c_master.h"
#include "wait.h"
#ifndef CKLED2001_TIMEOUT
# define CKLED2001_TIMEOUT 100
#endif
#ifndef CKLED2001_PERSISTENCE
# define CKLED2001_PERSISTENCE 0
#endif
#ifndef PHASE_CHANNEL
# define PHASE_CHANNEL MSKPHASE_12CHANNEL
#endif
#ifndef CKLED2001_CURRENT_TUNE
# define CKLED2001_CURRENT_TUNE \
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
#endif
// Transfer buffer for TWITransmitData()
uint8_t g_twi_transfer_buffer[20];
// These buffers match the CKLED2001 PWM registers.
// The control buffers match the PG0 LED On/Off registers.
// Storing them like this is optimal for I2C transfers to the registers.
// We could optimize this and take out the unused registers from these
// buffers and the transfers in CKLED2001_write_pwm_buffer() but it's
// probably not worth the extra complexity.
uint8_t g_pwm_buffer[DRIVER_COUNT][192];
bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0};
bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
// If the transaction fails function returns false.
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
#if CKLED2001_PERSISTENCE > 0
for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) {
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) {
return false;
}
}
#else
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) {
return false;
}
#endif
return true;
}
bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// Assumes PG1 is already selected.
// If any of the transactions fails function returns false.
// Transmit PWM registers in 12 transfers of 16 bytes.
// g_twi_transfer_buffer[] is 20 bytes
// Iterate over the pwm_buffer contents at 16 byte intervals.
for (int i = 0; i < 192; i += 16) {
g_twi_transfer_buffer[0] = i;
// Copy the data from i to i+15.
// Device will auto-increment register for data after the first byte
// Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
for (int j = 0; j < 16; j++) {
g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
}
#if CKLED2001_PERSISTENCE > 0
for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) {
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_TIMEOUT) != 0) {
return false;
}
}
#else
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_TIMEOUT) != 0) {
return false;
}
#endif
}
return true;
}
void CKLED2001_init(uint8_t addr) {
// Select to function page
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
// Setting LED driver to shutdown mode
CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
// Setting internal channel pulldown/pullup
CKLED2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL);
// Select number of scan phase
CKLED2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL);
// Setting PWM Delay Phase
CKLED2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE);
// Setting Driving/Sinking Channel Slew Rate
CKLED2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE);
// Setting Iref
CKLED2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE);
// Set LED CONTROL PAGE (Page 0)
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) {
CKLED2001_write_register(addr, i, 0x00);
}
// Set PWM PAGE (Page 1)
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE);
for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) {
CKLED2001_write_register(addr, i, 0x00);
}
// Set CURRENT PAGE (Page 4)
uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE;
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE);
for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) {
CKLED2001_write_register(addr, i, current_tuen_reg_list[i]);
}
// Enable LEDs ON/OFF
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) {
CKLED2001_write_register(addr, i, 0xFF);
}
// Select to function page
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
// Setting LED driver to normal mode
CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
}
void CKLED2001_set_value(int index, uint8_t value) {
ckled2001_led led;
if (index >= 0 && index < DRIVER_LED_TOTAL) {
memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
g_pwm_buffer[led.driver][led.v] = value;
g_pwm_buffer_update_required[led.driver] = true;
}
}
void CKLED2001_set_value_all(uint8_t value) {
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
CKLED2001_set_value(i, value);
}
}
void CKLED2001_set_led_control_register(uint8_t index, bool value) {
ckled2001_led led;
memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
uint8_t control_register = led.v / 8;
uint8_t bit_value = led.v % 8;
if (value) {
g_led_control_registers[led.driver][control_register] |= (1 << bit_value);
} else {
g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value);
}
g_led_control_registers_update_required[led.driver] = true;
}
void CKLED2001_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) {
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE);
// If any of the transactions fail we risk writing dirty PG0,
// refresh page 0 just in case.
if (!CKLED2001_write_pwm_buffer(addr, g_pwm_buffer[index])) {
g_led_control_registers_update_required[index] = true;
}
}
g_pwm_buffer_update_required[index] = false;
}
void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_led_control_registers_update_required[index]) {
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
for (int i = 0; i < 24; i++) {
CKLED2001_write_register(addr, i, g_led_control_registers[index][i]);
}
}
g_led_control_registers_update_required[index] = false;
}
void CKLED2001_sw_return_normal(uint8_t addr) {
// Select to function page
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
// Setting LED driver to normal mode
CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
}
void CKLED2001_sw_shutdown(uint8_t addr) {
// Select to function page
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
// Setting LED driver to shutdown mode
CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
// Write SW Sleep Register
CKLED2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE);
}

View File

@@ -0,0 +1,337 @@
/* Copyright 2021 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <stdint.h>
#include <stdbool.h>
#include "progmem.h"
typedef struct ckled2001_led {
uint8_t driver : 2;
uint8_t v;
} __attribute__((packed)) ckled2001_led;
extern const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL];
void CKLED2001_init(uint8_t addr);
bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data);
bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
void CKLED2001_set_value(int index, uint8_t value);
void CKLED2001_set_value_all(uint8_t value);
void CKLED2001_set_led_control_register(uint8_t index, bool value);
// This should not be called from an interrupt
// (eg. from a timer interrupt).
// Call this while idle (in between matrix scans).
// If the buffer is dirty, it will update the driver with the buffer.
void CKLED2001_update_pwm_buffers(uint8_t addr, uint8_t index);
void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index);
void CKLED2001_sw_return_normal(uint8_t addr);
void CKLED2001_sw_shutdown(uint8_t addr);
// Registers Page Define
#define CONFIGURE_CMD_PAGE 0xFD
#define LED_CONTROL_PAGE 0x00
#define LED_PWM_PAGE 0x01
#define FUNCTION_PAGE 0x03
#define CURRENT_TUNE_PAGE 0x04
// Function Register: address 0x00
#define CONFIGURATION_REG 0x00
#define MSKSW_SHUT_DOWN_MODE (0x0 << 0)
#define MSKSW_NORMAL_MODE (0x1 << 0)
#define DRIVER_ID_REG 0x11
#define CKLED2001_ID 0x8A
#define PDU_REG 0x13
#define MSKSET_CA_CB_CHANNEL 0xAA
#define MSKCLR_CA_CB_CHANNEL 0x00
#define SCAN_PHASE_REG 0x14
#define MSKPHASE_12CHANNEL 0x00
#define MSKPHASE_11CHANNEL 0x01
#define MSKPHASE_10CHANNEL 0x02
#define MSKPHASE_9CHANNEL 0x03
#define MSKPHASE_8CHANNEL 0x04
#define MSKPHASE_7CHANNEL 0x05
#define MSKPHASE_6CHANNEL 0x06
#define MSKPHASE_5CHANNEL 0x07
#define MSKPHASE_4CHANNEL 0x08
#define MSKPHASE_3CHANNEL 0x09
#define MSKPHASE_2CHANNEL 0x0A
#define MSKPHASE_1CHANNEL 0x0B
#define SLEW_RATE_CONTROL_MODE1_REG 0x15
#define MSKPWM_DELAY_PHASE_ENABLE 0x04
#define MSKPWM_DELAY_PHASE_DISABLE 0x00
#define SLEW_RATE_CONTROL_MODE2_REG 0x16
#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE 0xC0
#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_DISABLE 0x00
#define OPEN_SHORT_ENABLE_REG 0x17
#define MSKOPEN_DETECTION_ENABLE (0x01 << 7)
#define MSKOPEN_DETECTION_DISABLE (0x00)
#define MSKSHORT_DETECTION_ENABLE (0x01 << 6)
#define MSKSHORT_DETECTION_DISABLE (0x00)
#define OPEN_SHORT_DUTY_REG 0x18
#define OPEN_SHORT_FLAG_REG 0x19
#define MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7)
#define MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00)
#define MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6)
#define MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00)
#define SOFTWARE_SLEEP_REG 0x1A
#define MSKSLEEP_ENABLE 0x02
#define MSKSLEEP_DISABLE 0x00
// LED Control Registers
#define LED_CONTROL_ON_OFF_FIRST_ADDR 0x0
#define LED_CONTROL_ON_OFF_LAST_ADDR 0x17
#define LED_CONTROL_ON_OFF_LENGTH ((LED_CONTROL_ON_OFF_LAST_ADDR - LED_CONTROL_ON_OFF_FIRST_ADDR) + 1)
#define LED_CONTROL_OPEN_FIRST_ADDR 0x18
#define LED_CONTROL_OPEN_LAST_ADDR 0x2F
#define LED_CONTROL_OPEN_LENGTH ((LED_CONTROL_OPEN_LAST_ADDR - LED_CONTROL_OPEN_FIRST_ADDR) + 1)
#define LED_CONTROL_SHORT_FIRST_ADDR 0x30
#define LED_CONTROL_SHORT_LAST_ADDR 0x47
#define LED_CONTROL_SHORT_LENGTH ((LED_CONTROL_SHORT_LAST_ADDR - LED_CONTROL_SHORT_FIRST_ADDR) + 1)
#define LED_CONTROL_PAGE_LENGTH 0x48
// LED Control Registers
#define LED_PWM_FIRST_ADDR 0x00
#define LED_PWM_LAST_ADDR 0xBF
#define LED_PWM_LENGTH 0xC0
// Current Tune Registers
#define LED_CURRENT_TUNE_FIRST_ADDR 0x00
#define LED_CURRENT_TUNE_LAST_ADDR 0x0B
#define LED_CURRENT_TUNE_LENGTH 0x0C
#define A_1 0x00
#define A_2 0x01
#define A_3 0x02
#define A_4 0x03
#define A_5 0x04
#define A_6 0x05
#define A_7 0x06
#define A_8 0x07
#define A_9 0x08
#define A_10 0x09
#define A_11 0x0A
#define A_12 0x0B
#define A_13 0x0C
#define A_14 0x0D
#define A_15 0x0E
#define A_16 0x0F
#define B_1 0x10
#define B_2 0x11
#define B_3 0x12
#define B_4 0x13
#define B_5 0x14
#define B_6 0x15
#define B_7 0x16
#define B_8 0x17
#define B_9 0x18
#define B_10 0x19
#define B_11 0x1A
#define B_12 0x1B
#define B_13 0x1C
#define B_14 0x1D
#define B_15 0x1E
#define B_16 0x1F
#define C_1 0x20
#define C_2 0x21
#define C_3 0x22
#define C_4 0x23
#define C_5 0x24
#define C_6 0x25
#define C_7 0x26
#define C_8 0x27
#define C_9 0x28
#define C_10 0x29
#define C_11 0x2A
#define C_12 0x2B
#define C_13 0x2C
#define C_14 0x2D
#define C_15 0x2E
#define C_16 0x2F
#define D_1 0x30
#define D_2 0x31
#define D_3 0x32
#define D_4 0x33
#define D_5 0x34
#define D_6 0x35
#define D_7 0x36
#define D_8 0x37
#define D_9 0x38
#define D_10 0x39
#define D_11 0x3A
#define D_12 0x3B
#define D_13 0x3C
#define D_14 0x3D
#define D_15 0x3E
#define D_16 0x3F
#define E_1 0x40
#define E_2 0x41
#define E_3 0x42
#define E_4 0x43
#define E_5 0x44
#define E_6 0x45
#define E_7 0x46
#define E_8 0x47
#define E_9 0x48
#define E_10 0x49
#define E_11 0x4A
#define E_12 0x4B
#define E_13 0x4C
#define E_14 0x4D
#define E_15 0x4E
#define E_16 0x4F
#define F_1 0x50
#define F_2 0x51
#define F_3 0x52
#define F_4 0x53
#define F_5 0x54
#define F_6 0x55
#define F_7 0x56
#define F_8 0x57
#define F_9 0x58
#define F_10 0x59
#define F_11 0x5A
#define F_12 0x5B
#define F_13 0x5C
#define F_14 0x5D
#define F_15 0x5E
#define F_16 0x5F
#define G_1 0x60
#define G_2 0x61
#define G_3 0x62
#define G_4 0x63
#define G_5 0x64
#define G_6 0x65
#define G_7 0x66
#define G_8 0x67
#define G_9 0x68
#define G_10 0x69
#define G_11 0x6A
#define G_12 0x6B
#define G_13 0x6C
#define G_14 0x6D
#define G_15 0x6E
#define G_16 0x6F
#define H_1 0x70
#define H_2 0x71
#define H_3 0x72
#define H_4 0x73
#define H_5 0x74
#define H_6 0x75
#define H_7 0x76
#define H_8 0x77
#define H_9 0x78
#define H_10 0x79
#define H_11 0x7A
#define H_12 0x7B
#define H_13 0x7C
#define H_14 0x7D
#define H_15 0x7E
#define H_16 0x7F
#define I_1 0x80
#define I_2 0x81
#define I_3 0x82
#define I_4 0x83
#define I_5 0x84
#define I_6 0x85
#define I_7 0x86
#define I_8 0x87
#define I_9 0x88
#define I_10 0x89
#define I_11 0x8A
#define I_12 0x8B
#define I_13 0x8C
#define I_14 0x8D
#define I_15 0x8E
#define I_16 0x8F
#define J_1 0x90
#define J_2 0x91
#define J_3 0x92
#define J_4 0x93
#define J_5 0x94
#define J_6 0x95
#define J_7 0x96
#define J_8 0x97
#define J_9 0x98
#define J_10 0x99
#define J_11 0x9A
#define J_12 0x9B
#define J_13 0x9C
#define J_14 0x9D
#define J_15 0x9E
#define J_16 0x9F
#define K_1 0xA0
#define K_2 0xA1
#define K_3 0xA2
#define K_4 0xA3
#define K_5 0xA4
#define K_6 0xA5
#define K_7 0xA6
#define K_8 0xA7
#define K_9 0xA8
#define K_10 0xA9
#define K_11 0xAA
#define K_12 0xAB
#define K_13 0xAC
#define K_14 0xAD
#define K_15 0xAE
#define K_16 0xAF
#define L_1 0xB0
#define L_2 0xB1
#define L_3 0xB2
#define L_4 0xB3
#define L_5 0xB4
#define L_6 0xB5
#define L_7 0xB6
#define L_8 0xB7
#define L_9 0xB8
#define L_10 0xB9
#define L_11 0xBA
#define L_12 0xBB
#define L_13 0xBC
#define L_14 0xBD
#define L_15 0xBE
#define L_16 0xBF

View File

@@ -30,6 +30,11 @@
# define PHASE_CHANNEL MSKPHASE_12CHANNEL
#endif
#ifndef CKLED2001_CURRENT_TUNE
# define CKLED2001_CURRENT_TUNE \
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
#endif
// Transfer buffer for TWITransmitData()
uint8_t g_twi_transfer_buffer[20];
@@ -123,18 +128,10 @@ void CKLED2001_init(uint8_t addr) {
}
// Set CURRENT PAGE (Page 4)
uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE;
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE);
for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) {
switch (i) {
case 2:
case 5:
case 8:
case 11:
CKLED2001_write_register(addr, i, 0xA0);
break;
default:
CKLED2001_write_register(addr, i, 0xFF);
}
CKLED2001_write_register(addr, i, current_tuen_reg_list[i]);
}
// Enable LEDs ON/OFF
@@ -220,14 +217,14 @@ void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index) {
g_led_control_registers_update_required[index] = false;
}
void CKLED2001_return_normal(uint8_t addr) {
void CKLED2001_sw_return_normal(uint8_t addr) {
// Select to function page
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
// Setting LED driver to normal mode
CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
}
void CKLED2001_shutdown(uint8_t addr) {
void CKLED2001_sw_shutdown(uint8_t addr) {
// Select to function page
CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
// Setting LED driver to shutdown mode

View File

@@ -45,8 +45,8 @@ void CKLED2001_set_led_control_register(uint8_t index, bool red, bool green, boo
void CKLED2001_update_pwm_buffers(uint8_t addr, uint8_t index);
void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index);
void CKLED2001_return_normal(uint8_t addr);
void CKLED2001_shutdown(uint8_t addr);
void CKLED2001_sw_return_normal(uint8_t addr);
void CKLED2001_sw_shutdown(uint8_t addr);
// Registers Page Define
#define CONFIGURE_CMD_PAGE 0xFD

View File

@@ -0,0 +1,144 @@
// Copyright 2021 Paul Cotter (@gr1mr3aver)
// Copyright 2021 Nick Brassel (@tzarc)
// Copyright 2022 David Hoelscher (@customMK)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "qp_internal.h"
#include "qp_comms.h"
#include "qp_st7735.h"
#include "qp_st77xx_opcodes.h"
#include "qp_st7735_opcodes.h"
#include "qp_tft_panel.h"
#ifdef QUANTUM_PAINTER_ST7735_SPI_ENABLE
# include "qp_comms_spi.h"
#endif // QUANTUM_PAINTER_ST7735_SPI_ENABLE
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Common
// Driver storage
tft_panel_dc_reset_painter_device_t st7735_drivers[ST7735_NUM_DEVICES] = {0};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Automatic viewport offsets
#ifndef ST7735_NO_AUTOMATIC_OFFSETS
static inline void st7735_automatic_viewport_offsets(painter_device_t device, painter_rotation_t rotation) {
struct painter_driver_t *driver = (struct painter_driver_t *)device;
// clang-format off
const struct {
uint16_t offset_x;
uint16_t offset_y;
} rotation_offsets_80x160[] = {
[QP_ROTATION_0] = { .offset_x = 24, .offset_y = 0 },
[QP_ROTATION_90] = { .offset_x = 0, .offset_y = 24 },
[QP_ROTATION_180] = { .offset_x = 24, .offset_y = 0 },
[QP_ROTATION_270] = { .offset_x = 0, .offset_y = 24 },
};
// clang-format on
if (driver->panel_width == 80 && driver->panel_height == 160) {
driver->offset_x = rotation_offsets_80x160[rotation].offset_x;
driver->offset_y = rotation_offsets_80x160[rotation].offset_y;
}
}
#endif // ST7735_NO_AUTOMATIC_OFFSETS
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialization
bool qp_st7735_init(painter_device_t device, painter_rotation_t rotation) {
// clang-format off
const uint8_t st7735_init_sequence[] = {
// Command, Delay, N, Data[N]
ST77XX_CMD_RESET, 120, 0,
ST77XX_CMD_SLEEP_OFF, 5, 0,
ST77XX_SET_PIX_FMT, 0, 1, 0x55,
ST77XX_CMD_INVERT_OFF, 0, 0,
ST77XX_CMD_NORMAL_ON, 0, 0,
ST77XX_CMD_DISPLAY_ON, 20, 0
};
// clang-format on
qp_comms_bulk_command_sequence(device, st7735_init_sequence, sizeof(st7735_init_sequence));
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
[QP_ROTATION_0] = ST77XX_MADCTL_BGR,
[QP_ROTATION_90] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MX | ST77XX_MADCTL_MV,
[QP_ROTATION_180] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MX | ST77XX_MADCTL_MY,
[QP_ROTATION_270] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MV | ST77XX_MADCTL_MY,
};
qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation]);
#ifndef ST7735_NO_AUTOMATIC_VIEWPORT_OFFSETS
st7735_automatic_viewport_offsets(device, rotation);
#endif // ST7735_NO_AUTOMATIC_VIEWPORT_OFFSETS
return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Driver vtable
const struct tft_panel_dc_reset_painter_driver_vtable_t st7735_driver_vtable = {
.base =
{
.init = qp_st7735_init,
.power = qp_tft_panel_power,
.clear = qp_tft_panel_clear,
.flush = qp_tft_panel_flush,
.pixdata = qp_tft_panel_pixdata,
.viewport = qp_tft_panel_viewport,
.palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
.append_pixels = qp_tft_panel_append_pixels_rgb565,
},
.num_window_bytes = 2,
.swap_window_coords = false,
.opcodes =
{
.display_on = ST77XX_CMD_DISPLAY_ON,
.display_off = ST77XX_CMD_DISPLAY_OFF,
.set_column_address = ST77XX_SET_COL_ADDR,
.set_row_address = ST77XX_SET_ROW_ADDR,
.enable_writes = ST77XX_SET_MEM,
},
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SPI
#ifdef QUANTUM_PAINTER_ST7735_SPI_ENABLE
// Factory function for creating a handle to the ST7735 device
painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) {
for (uint32_t i = 0; i < ST7735_NUM_DEVICES; ++i) {
tft_panel_dc_reset_painter_device_t *driver = &st7735_drivers[i];
if (!driver->base.driver_vtable) {
driver->base.driver_vtable = (const struct painter_driver_vtable_t *)&st7735_driver_vtable;
driver->base.comms_vtable = (const struct painter_comms_vtable_t *)&spi_comms_with_dc_vtable;
driver->base.panel_width = panel_width;
driver->base.panel_height = panel_height;
driver->base.rotation = QP_ROTATION_0;
driver->base.offset_x = 0;
driver->base.offset_y = 0;
driver->base.native_bits_per_pixel = 16; // RGB565
// SPI and other pin configuration
driver->base.comms_config = &driver->spi_dc_reset_config;
driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
driver->spi_dc_reset_config.spi_config.lsb_first = false;
driver->spi_dc_reset_config.spi_config.mode = spi_mode;
driver->spi_dc_reset_config.dc_pin = dc_pin;
driver->spi_dc_reset_config.reset_pin = reset_pin;
return (painter_device_t)driver;
}
}
return NULL;
}
#endif // QUANTUM_PAINTER_ST7735_SPI_ENABLE
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -0,0 +1,45 @@
// Copyright 2021 Paul Cotter (@gr1mr3aver)
// Copyright 2021 Nick Brassel (@tzarc)
// Copyright 2022 David Hoelscher (@customMK)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "gpio.h"
#include "qp_internal.h"
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Quantum Painter ST7735 configurables (add to your keyboard's config.h)
#ifndef ST7735_NUM_DEVICES
/**
* @def This controls the maximum number of ST7735 devices that Quantum Painter can communicate with at any one time.
* Increasing this number allows for multiple displays to be used.
*/
# define ST7735_NUM_DEVICES 1
#endif
// Additional configuration options to be copied to your keyboard's config.h (don't change here):
// If you know exactly which offsets should be used on your panel with respect to selected rotation, then this config
// option allows you to save some flash space -- you'll need to invoke qp_set_viewport_offsets() instead from your keyboard.
// #define ST7735_NO_AUTOMATIC_VIEWPORT_OFFSETS
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Quantum Painter ST7735 device factories
#ifdef QUANTUM_PAINTER_ST7735_SPI_ENABLE
/**
* Factory method for an ST7735 SPI LCD device.
*
* @param panel_width[in] the width of the display panel
* @param panel_height[in] the height of the display panel
* @param chip_select_pin[in] the GPIO pin used for SPI chip select
* @param dc_pin[in] the GPIO pin used for D/C control
* @param reset_pin[in] the GPIO pin used for RST
* @param spi_divisor[in] the SPI divisor to use when communicating with the display
* @param spi_mode[in] the SPI mode to use when communicating with the display
* @return the device handle used with all drawing routines in Quantum Painter
*/
painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
#endif // QUANTUM_PAINTER_ST7735_SPI_ENABLE

View File

@@ -0,0 +1,31 @@
// Copyright 2022 David Hoelscher (@customMK)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Quantum Painter ST7735 additional command opcodes
// Panel Function Commands
#define ST7735_SET_FRAME_RATE_CTL_1 0xB1 // Set frame rate control 1
#define ST7735_SET_FRAME_RATE_CTL_2 0xB2 // Set frame rate control 2
#define ST7735_SET_FRAME_RATE_CTL_3 0xB3 // Set frame rate control 3
#define ST7735_SET_INVERSION_CTL 0xB4 // Set inversion mode control
#define ST7735_SET_DISPLAY_CTL 0xB6 // Set display control 5
#define ST7735_SET_POWER_CTL_1 0xC0 // Set GVDD
#define ST7735_SET_POWER_CTL_2 0xC1 // Set VGH and VGL
#define ST7735_SET_POWER_CTL_3 0xC2 // Set normal mode op amp current
#define ST7735_SET_POWER_CTL_4 0xC3 // Set idle mode op amp current
#define ST7735_SET_POWER_CTL_5 0xC4 // Set partial mode op amp current
#define ST7735_SET_VCOM_CTL 0xC5 // Set VCOM voltages
#define ST7735_SET_VCOM_OFFSET_CTL 0xC7 // Set VCOM offset ctl
#define ST7735_SET_LCD_ID 0xD1 // Set LCD module version
#define ST7735_SET_PROJECT_ID 0xD2 // Set product project ID
#define ST7735_SET_POWER_CTL_6 0xFC // Set partial+idle op amp current
#define ST7735_SET_NVMEM_CTL_STATUS 0xD9 // EEPROM Control Status
#define ST7735_SET_NVMEM_READ_CMD 0xCC // EEPROM Read Command
#define ST7735_SET_NVMEM_WRITE_CMD 0xDF // EEPROM Write Command
#define ST7735_SET_PGAMMA 0xE0 // Set positive gamma
#define ST7735_SET_NGAMMA 0xE1 // Set negative gamma
#define ST7735_SET_EXTENSION_ENABLE 0xF0 // Enable extension command
#define ST7735_SET_VCOM_DELAY 0xFF // Set VCOM delay time

View File

@@ -40,15 +40,27 @@
// Definitions for the ADNS serial line.
#ifndef ADNS5050_SCLK_PIN
# error "No clock pin defined -- missing ADNS5050_SCLK_PIN"
# ifdef POINTING_DEVICE_SCLK_PIN
# define ADNS5050_SCLK_PIN POINTING_DEVICE_SCLK_PIN
# else
# error "No clock pin defined -- missing POINTING_DEVICE_SCLK_PIN or ADNS5050_SCLK_PIN"
# endif
#endif
#ifndef ADNS5050_SDIO_PIN
# error "No data pin defined -- missing ADNS5050_SDIO_PIN"
# ifdef POINTING_DEVICE_SDIO_PIN
# define ADNS5050_SDIO_PIN POINTING_DEVICE_SDIO_PIN
# else
# error "No data pin defined -- missing POINTING_DEVICE_SDIO_PIN or ADNS5050_SDIO_PIN"
# endif
#endif
#ifndef ADNS5050_CS_PIN
# error "No chip select pin defined -- missing ADNS5050_CS_PIN"
# ifdef POINTING_DEVICE_CS_PIN
# define ADNS5050_CS_PIN POINTING_DEVICE_CS_PIN
# else
# error "No chip select pin defined -- missing POINTING_DEVICE_CS_PIN or ADNS5050_CS_PIN define"
# endif
#endif
typedef struct {

View File

@@ -43,7 +43,11 @@
#endif
#ifndef ADNS9800_CS_PIN
# error "No chip select pin defined -- missing ADNS9800_CS_PIN"
# ifdef POINTING_DEVICE_CS_PIN
# define ADNS9800_CS_PIN POINTING_DEVICE_CS_PIN
# else
# error "No chip select pin defined -- missing POINTING_DEVICE_CS_PIN or ADNS9800_CS_PIN"
# endif
#endif
typedef struct {

View File

@@ -4,11 +4,11 @@
// refer to documentation: Gen2 and Gen3 (Pinnacle ASIC) at https://www.cirque.com/documentation
#include "cirque_pinnacle.h"
#include "print.h"
#include "debug.h"
#include "wait.h"
#include "timer.h"
#include <stdlib.h>
#ifndef CIRQUE_PINNACLE_ATTENUATION
# ifdef CIRQUE_PINNACLE_CURVED_OVERLAY
# define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X
@@ -25,12 +25,7 @@ void cirque_pinnacle_enable_feed(bool feedEnable);
void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count);
void RAP_Write(uint8_t address, uint8_t data);
#ifdef CONSOLE_ENABLE
void print_byte(uint8_t byte) {
xprintf("%c%c%c%c%c%c%c%c|", (byte & 0x80 ? '1' : '0'), (byte & 0x40 ? '1' : '0'), (byte & 0x20 ? '1' : '0'), (byte & 0x10 ? '1' : '0'), (byte & 0x08 ? '1' : '0'), (byte & 0x04 ? '1' : '0'), (byte & 0x02 ? '1' : '0'), (byte & 0x01 ? '1' : '0'));
}
#endif
#if CIRQUE_PINNACLE_POSITION_MODE
/* Logical Scaling Functions */
// Clips raw coordinates to "reachable" window of sensor
// NOTE: values outside this window can only appear as a result of noise
@@ -46,6 +41,7 @@ void ClipCoordinates(pinnacle_data_t* coordinates) {
coordinates->yValue = CIRQUE_PINNACLE_Y_UPPER;
}
}
#endif
uint16_t cirque_pinnacle_get_scale(void) {
return scale_data;
@@ -56,6 +52,7 @@ void cirque_pinnacle_set_scale(uint16_t scale) {
// Scales data to desired X & Y resolution
void cirque_pinnacle_scale_data(pinnacle_data_t* coordinates, uint16_t xResolution, uint16_t yResolution) {
#if CIRQUE_PINNACLE_POSITION_MODE
uint32_t xTemp = 0;
uint32_t yTemp = 0;
@@ -71,6 +68,22 @@ void cirque_pinnacle_scale_data(pinnacle_data_t* coordinates, uint16_t xResoluti
// scale coordinates to (xResolution, yResolution) range
coordinates->xValue = (uint16_t)(xTemp * xResolution / CIRQUE_PINNACLE_X_RANGE);
coordinates->yValue = (uint16_t)(yTemp * yResolution / CIRQUE_PINNACLE_Y_RANGE);
#else
int32_t xTemp = 0, yTemp = 0;
ldiv_t temp;
static int32_t xRemainder, yRemainder;
temp = ldiv(((int32_t)coordinates->xDelta) * (int32_t)xResolution + xRemainder, (int32_t)CIRQUE_PINNACLE_X_RANGE);
xTemp = temp.quot;
xRemainder = temp.rem;
temp = ldiv(((int32_t)coordinates->yDelta) * (int32_t)yResolution + yRemainder, (int32_t)CIRQUE_PINNACLE_Y_RANGE);
yTemp = temp.quot;
yRemainder = temp.rem;
coordinates->xDelta = (int16_t)xTemp;
coordinates->yDelta = (int16_t)yTemp;
#endif
}
// Clears Status1 register flags (SW_CC and SW_DR)
@@ -142,14 +155,20 @@ void ERA_WriteByte(uint16_t address, uint8_t data) {
cirque_pinnacle_clear_flags();
}
void cirque_pinnacle_set_adc_attenuation(uint8_t adcGain) {
bool cirque_pinnacle_set_adc_attenuation(uint8_t adcGain) {
uint8_t adcconfig = 0x00;
ERA_ReadBytes(EXTREG__TRACK_ADCCONFIG, &adcconfig, 1);
adcconfig &= EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_MASK;
adcGain &= EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_MASK;
if (adcGain == (adcconfig & EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_MASK)) {
return false;
}
adcconfig &= ~EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_MASK;
adcconfig |= adcGain;
ERA_WriteByte(EXTREG__TRACK_ADCCONFIG, adcconfig);
ERA_ReadBytes(EXTREG__TRACK_ADCCONFIG, &adcconfig, 1);
return true;
}
// Changes thresholds to improve detection of fingers
@@ -207,30 +226,52 @@ void cirque_pinnacle_init(void) {
touchpad_init = true;
// Host clears SW_CC flag
cirque_pinnacle_clear_flags();
// send a RESET command now, in case QMK had a soft-reset without a power cycle
RAP_Write(HOSTREG__SYSCONFIG1, HOSTREG__SYSCONFIG1__RESET);
wait_ms(30); // Pinnacle needs 10-15ms to boot, so wait long enough before configuring
RAP_Write(HOSTREG__SYSCONFIG1, HOSTREG__SYSCONFIG1_DEFVAL);
wait_us(50);
// FeedConfig2 (Feature flags for Relative Mode Only)
// Host clears SW_CC flag
cirque_pinnacle_clear_flags();
#if CIRQUE_PINNACLE_POSITION_MODE
RAP_Write(HOSTREG__FEEDCONFIG2, HOSTREG__FEEDCONFIG2_DEFVAL);
#else
// FeedConfig2 (Feature flags for Relative Mode Only)
uint8_t feedconfig2 = HOSTREG__FEEDCONFIG2__GLIDE_EXTEND_DISABLE | HOSTREG__FEEDCONFIG2__INTELLIMOUSE_MODE;
# if !defined(CIRQUE_PINNACLE_TAP_ENABLE)
feedconfig2 |= HOSTREG__FEEDCONFIG2__ALL_TAP_DISABLE;
# endif
# if !defined(CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE)
feedconfig2 |= HOSTREG__FEEDCONFIG2__SECONDARY_TAP_DISABLE;
# elif !defined(CIRQUE_PINNACLE_TAP_ENABLE)
# error CIRQUE_PINNACLE_TAP_ENABLE must be defined for CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE to work
# endif
# if !defined(CIRQUE_PINNACLE_SIDE_SCROLL_ENABLE)
feedconfig2 |= HOSTREG__FEEDCONFIG2__SCROLL_DISABLE;
# endif
RAP_Write(HOSTREG__FEEDCONFIG2, feedconfig2);
#endif
// FeedConfig1 (Data Output Flags)
RAP_Write(HOSTREG__FEEDCONFIG1, CIRQUE_PINNACLE_POSITION_MODE ? HOSTREG__FEEDCONFIG1__DATA_TYPE__REL0_ABS1 : HOSTREG__FEEDCONFIG1_DEFVAL);
#if CIRQUE_PINNACLE_POSITION_MODE
// Host sets z-idle packet count to 5 (default is 0x1E/30)
RAP_Write(HOSTREG__ZIDLE, 5);
#endif
bool calibrate = cirque_pinnacle_set_adc_attenuation(CIRQUE_PINNACLE_ATTENUATION);
cirque_pinnacle_set_adc_attenuation(CIRQUE_PINNACLE_ATTENUATION);
#ifdef CIRQUE_PINNACLE_CURVED_OVERLAY
cirque_pinnacle_tune_edge_sensitivity();
calibrate = true;
#endif
// Force a calibration after setting ADC attenuation
cirque_pinnacle_calibrate();
if (calibrate) {
// Force a calibration after setting ADC attenuation
cirque_pinnacle_calibrate();
}
cirque_pinnacle_enable_feed(true);
}
@@ -265,10 +306,18 @@ pinnacle_data_t cirque_pinnacle_read_data(void) {
#else
// Decode data for relative mode
// Registers 0x16 and 0x17 are unused in this mode
result.buttons = data[0] & 0x07; // bit0 = primary button, bit1 = secondary button, bit2 = auxilary button, if Taps enabled then also software-recognized taps are reported
result.xDelta = data[1];
result.yDelta = data[2];
result.wheelCount = data[3];
result.buttons = data[0] & 0x07; // Only three buttons are supported
if ((data[0] & 0x10) && data[1] != 0) {
result.xDelta = -((int16_t)256 - (int16_t)(data[1]));
} else {
result.xDelta = data[1];
}
if ((data[0] & 0x20) && data[2] != 0) {
result.yDelta = ((int16_t)256 - (int16_t)(data[2]));
} else {
result.yDelta = -((int16_t)data[2]);
}
result.wheelCount = ((int8_t*)data)[3];
#endif
result.valid = true;

View File

@@ -5,6 +5,7 @@
#include "cirque_pinnacle_regdefs.h"
#include <stdint.h>
#include <stdbool.h>
#include "pointing_device_internal.h"
#ifndef CIRQUE_PINNACLE_TIMEOUT
# define CIRQUE_PINNACLE_TIMEOUT 20 // I2C timeout in milliseconds
@@ -21,24 +22,35 @@
# define CIRQUE_PINNACLE_DIAMETER_MM 40
#endif
#if CIRQUE_PINNACLE_POSITION_MODE
// Coordinate scaling values
#ifndef CIRQUE_PINNACLE_X_LOWER
# define CIRQUE_PINNACLE_X_LOWER 127 // min "reachable" X value
#endif
#ifndef CIRQUE_PINNACLE_X_UPPER
# define CIRQUE_PINNACLE_X_UPPER 1919 // max "reachable" X value
#endif
#ifndef CIRQUE_PINNACLE_Y_LOWER
# define CIRQUE_PINNACLE_Y_LOWER 63 // min "reachable" Y value
#endif
#ifndef CIRQUE_PINNACLE_Y_UPPER
# define CIRQUE_PINNACLE_Y_UPPER 1471 // max "reachable" Y value
#endif
#ifndef CIRQUE_PINNACLE_X_RANGE
# define CIRQUE_PINNACLE_X_RANGE (CIRQUE_PINNACLE_X_UPPER - CIRQUE_PINNACLE_X_LOWER)
#endif
#ifndef CIRQUE_PINNACLE_Y_RANGE
# define CIRQUE_PINNACLE_Y_RANGE (CIRQUE_PINNACLE_Y_UPPER - CIRQUE_PINNACLE_Y_LOWER)
# ifndef CIRQUE_PINNACLE_X_LOWER
# define CIRQUE_PINNACLE_X_LOWER 127 // min "reachable" X value
# endif
# ifndef CIRQUE_PINNACLE_X_UPPER
# define CIRQUE_PINNACLE_X_UPPER 1919 // max "reachable" X value
# endif
# ifndef CIRQUE_PINNACLE_Y_LOWER
# define CIRQUE_PINNACLE_Y_LOWER 63 // min "reachable" Y value
# endif
# ifndef CIRQUE_PINNACLE_Y_UPPER
# define CIRQUE_PINNACLE_Y_UPPER 1471 // max "reachable" Y value
# endif
# ifndef CIRQUE_PINNACLE_X_RANGE
# define CIRQUE_PINNACLE_X_RANGE (CIRQUE_PINNACLE_X_UPPER - CIRQUE_PINNACLE_X_LOWER)
# endif
# ifndef CIRQUE_PINNACLE_Y_RANGE
# define CIRQUE_PINNACLE_Y_RANGE (CIRQUE_PINNACLE_Y_UPPER - CIRQUE_PINNACLE_Y_LOWER)
# endif
# if defined(POINTING_DEVICE_GESTURES_SCROLL_ENABLE)
# define CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE
# endif
#else
# define CIRQUE_PINNACLE_X_RANGE 256
# define CIRQUE_PINNACLE_Y_RANGE 256
# if defined(POINTING_DEVICE_GESTURES_SCROLL_ENABLE)
# define CIRQUE_PINNACLE_SIDE_SCROLL_ENABLE
# endif
#endif
#if !defined(POINTING_DEVICE_TASK_THROTTLE_MS)
# define POINTING_DEVICE_TASK_THROTTLE_MS 10 // Cirque Pinnacle in normal operation produces data every 10ms. Advanced configuration for pen/stylus usage might require lower values.
@@ -67,7 +79,11 @@
# define CIRQUE_PINNACLE_SPI_DIVISOR 64
# endif
# ifndef CIRQUE_PINNACLE_SPI_CS_PIN
# error "No Chip Select pin has been defined -- missing CIRQUE_PINNACLE_SPI_CS_PIN define"
# ifdef POINTING_DEVICE_CS_PIN
# define CIRQUE_PINNACLE_SPI_CS_PIN POINTING_DEVICE_CS_PIN
# else
# error "No Chip Select pin has been defined -- missing POINTING_DEVICE_CS_PIN or CIRQUE_PINNACLE_SPI_CS_PIN define"
# endif
# endif
# endif
#endif
@@ -86,9 +102,9 @@ typedef struct {
uint8_t buttonFlags;
bool touchDown;
#else
uint8_t xDelta;
uint8_t yDelta;
uint8_t wheelCount;
int16_t xDelta;
int16_t yDelta;
int8_t wheelCount;
uint8_t buttons;
#endif
} pinnacle_data_t;

View File

@@ -20,12 +20,15 @@
#include "pointing_device.h"
#include "timer.h"
#include "wait.h"
#if defined(SPLIT_POINTING_ENABLE) && defined(POINTING_DEVICE_COMBINED)
# include "keyboard.h"
#endif
#if defined(CIRQUE_PINNACLE_TAP_ENABLE) || defined(CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE)
#if (defined(CIRQUE_PINNACLE_TAP_ENABLE) || defined(CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE)) && CIRQUE_PINNACLE_POSITION_MODE
static cirque_pinnacle_features_t features = {.tap_enable = true, .circular_scroll_enable = true};
#endif
#ifdef CIRQUE_PINNACLE_TAP_ENABLE
#if defined(CIRQUE_PINNACLE_TAP_ENABLE) && CIRQUE_PINNACLE_POSITION_MODE
static trackpad_tap_context_t tap;
static report_mouse_t trackpad_tap(report_mouse_t mouse_report, pinnacle_data_t touchData) {
@@ -59,6 +62,9 @@ void cirque_pinnacle_enable_tap(bool enable) {
#endif
#ifdef CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE
# if !CIRQUE_PINNACLE_POSITION_MODE
# error "Circular scroll is not supported in relative mode"
# endif
/* To set a trackpad exclusively as scroll wheel: outer_ring_pct = 100, trigger_px = 0, trigger_ang = 0 */
static circular_scroll_context_t scroll = {.config = {.outer_ring_pct = 33,
.trigger_px = 16,
@@ -92,18 +98,28 @@ static inline uint16_t atan2_16(int32_t dy, int32_t dx) {
static circular_scroll_t circular_scroll(pinnacle_data_t touchData) {
circular_scroll_t report = {0, 0, false};
int8_t x, y, wheel_clicks;
uint8_t center = 256 / 2, mag;
uint8_t center = INT8_MAX, mag;
int16_t ang, dot, det, opposite_side, adjacent_side;
uint16_t scale = cirque_pinnacle_get_scale();
if (touchData.zValue) {
/*
* Place origin at center of trackpad, treat coordinates as vectors.
* Scale to fixed int8_t size; angles are independent of resolution.
* Scale to +/-INT8_MAX; angles are independent of resolution.
*/
if (scale) {
x = (int8_t)((int32_t)touchData.xValue * 256 / scale - center);
y = (int8_t)((int32_t)touchData.yValue * 256 / scale - center);
/* Rotate coordinates into a consistent orientation */
report_mouse_t rot = {.x = (int8_t)((int32_t)touchData.xValue * INT8_MAX * 2 / scale - center), .y = (int8_t)((int32_t)touchData.yValue * INT8_MAX * 2 / scale - center)};
# if defined(SPLIT_POINTING_ENABLE) && defined(POINTING_DEVICE_COMBINED)
if (!is_keyboard_left()) {
rot = pointing_device_adjust_by_defines_right(rot);
} else
# endif
{
rot = pointing_device_adjust_by_defines(rot);
}
x = rot.x;
y = rot.y;
} else {
x = 0;
y = 0;
@@ -125,15 +141,7 @@ static circular_scroll_t circular_scroll(pinnacle_data_t touchData) {
* Horizontal if started from left half
* Flipped for left-handed
*/
# if defined(POINTING_DEVICE_ROTATION_90)
scroll.axis = y < 0;
# elif defined(POINTING_DEVICE_ROTATION_180)
scroll.axis = x > 0;
# elif defined(POINTING_DEVICE_ROTATION_270)
scroll.axis = y > 0;
# else
scroll.axis = x < 0;
# endif
}
} else if (scroll.state == SCROLL_DETECTING) {
report.suppress_touch = true;
@@ -208,6 +216,9 @@ bool cirque_pinnacle_gestures(report_mouse_t* mouse_report, pinnacle_data_t touc
bool suppress_mouse_update = false;
#ifdef CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE
# if !CIRQUE_PINNACLE_POSITION_MODE
# error "Circular scroll is not supported in relative mode"
# endif
circular_scroll_t scroll_report;
if (features.circular_scroll_enable) {
scroll_report = circular_scroll(touchData);
@@ -217,7 +228,7 @@ bool cirque_pinnacle_gestures(report_mouse_t* mouse_report, pinnacle_data_t touc
}
#endif
#ifdef CIRQUE_PINNACLE_TAP_ENABLE
#if defined(CIRQUE_PINNACLE_TAP_ENABLE) && CIRQUE_PINNACLE_POSITION_MODE
if (features.tap_enable) {
*mouse_report = trackpad_tap(*mouse_report, touchData);
}

View File

@@ -24,7 +24,7 @@ typedef struct {
bool circular_scroll_enable;
} cirque_pinnacle_features_t;
#ifdef CIRQUE_PINNACLE_TAP_ENABLE
#if defined(CIRQUE_PINNACLE_TAP_ENABLE) && CIRQUE_PINNACLE_POSITION_MODE
# ifndef CIRQUE_PINNACLE_TAPPING_TERM
# include "action.h"
# include "action_tapping.h"
@@ -44,6 +44,9 @@ void cirque_pinnacle_enable_tap(bool enable);
#endif
#ifdef CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE
# if !CIRQUE_PINNACLE_POSITION_MODE
# error "Circular scroll is not supported in relative mode"
# endif
typedef enum {
SCROLL_UNINITIALIZED,
SCROLL_DETECTING,

View File

@@ -1,8 +1,6 @@
// Copyright (c) 2018 Cirque Corp. Restrictions apply. See: www.cirque.com/sw-license
#include "cirque_pinnacle.h"
#include "i2c_master.h"
#include "print.h"
#include "debug.h"
#include "stdio.h"
// Masks for Cirque Register Access Protocol (RAP)
@@ -18,9 +16,7 @@ void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) {
if (touchpad_init) {
i2c_writeReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, NULL, 0, CIRQUE_PINNACLE_TIMEOUT);
if (i2c_readReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, data, count, CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) {
#ifdef CONSOLE_ENABLE
dprintf("error cirque_pinnacle i2c_readReg\n");
#endif
pd_dprintf("error cirque_pinnacle i2c_readReg\n");
touchpad_init = false;
}
i2c_stop();
@@ -33,9 +29,7 @@ void RAP_Write(uint8_t address, uint8_t data) {
if (touchpad_init) {
if (i2c_writeReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, &data, sizeof(data), CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) {
#ifdef CONSOLE_ENABLE
dprintf("error cirque_pinnacle i2c_writeReg\n");
#endif
pd_dprintf("error cirque_pinnacle i2c_writeReg\n");
touchpad_init = false;
}
i2c_stop();

View File

@@ -384,7 +384,7 @@
#define EXTREG__TRACK_ADCCONFIG 0x0187
// ADC-attenuation settings (held in BIT_7 and BIT_6)
// 1X = most sensitive, 4X = least sensitive
# define EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_MASK 0x3F
# define EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_MASK 0xC0
# define EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_1X 0x00
# define EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X 0x40
# define EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_3X 0x80

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